diff --git a/.github/workflows/black.yml b/.github/workflows/black.yml new file mode 100644 index 000000000..96aaea347 --- /dev/null +++ b/.github/workflows/black.yml @@ -0,0 +1,24 @@ +name: Black Code Formatter + +on: [push, pull_request] + +jobs: + black: + runs-on: ubuntu-latest + + steps: + - name: Check out code + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: "3.11" + + - name: Install Black + run: | + python -m pip install --upgrade pip + pip install black + + - name: Check Black Formatting + run: black --check . diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c42657ae2..c02c060dd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,4 +1,4 @@ -name: Py 3.7 3.8, 3.9 | Windows Mac Linux +name: Py 3.8, 3.9, 3.10, 3.11 | Windows Mac Linux on: push: @@ -9,153 +9,364 @@ on: branches: - master - develop - jobs: + set-os: + runs-on: ubuntu-latest + outputs: + matrix_os: ${{ steps.set-matrix.outputs.matrix_os }} + steps: + - id: set-matrix + run: | + if [[ "${{ github.event_name }}" == "pull_request" && "${{ github.base_ref }}" == "develop" ]]; then + echo "matrix_os=[ \"ubuntu-latest\"]" >> $GITHUB_OUTPUT + else + echo "matrix_os=[\"windows-latest\", \"ubuntu-latest\", \"macos-latest\"]" >> $GITHUB_OUTPUT + fi + + check-changes: + runs-on: ubuntu-latest + outputs: + wave_io_hindcast_changed: ${{ steps.changes.outputs.wave_io_hindcast }} + should-run-hindcast: ${{ steps.hindcast-logic.outputs.should-run-hindcast }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Check for changes in wave/io/hindcast + id: changes + uses: dorny/paths-filter@v3 + with: + filters: | + wave_io_hindcast: + - 'mhkit/wave/io/hindcast/**' + - 'mhkit/tests/wave/io/hindcast/**' + + - id: hindcast-logic + run: | + if [[ "${{ github.event.pull_request.base.ref }}" == "master" || "${{ steps.changes.outputs.wave_io_hindcast }}" == "true" ]]; then + echo "should-run-hindcast=true" >> "$GITHUB_OUTPUT" + else + echo "should-run-hindcast=false" >> "$GITHUB_OUTPUT" + fi + + prepare-nonhindcast-cache: + runs-on: ubuntu-latest + env: + PYTHON_VER: 3.9 + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Miniconda + uses: conda-incubator/setup-miniconda@v3 + with: + miniconda-version: 'latest' + auto-update-conda: true + python-version: ${{ env.PYTHON_VER }} + activate-environment: TESTconda + use-only-tar-bz2: true + + - name: Setup Conda environment + shell: bash -l {0} + run: | + conda install numpy cython pip hdf5 libnetcdf cftime netcdf4 --strict-channel-priority + pip install -e . --force-reinstall + + - name: Install dependencies + shell: bash -l {0} + run: | + python -m pip install --upgrade pip wheel + pip install coverage pytest coveralls . + + - name: Prepare non-hindcast API data + shell: bash -l {0} + run: | + pytest mhkit/tests/river/test_io_usgs.py + pytest mhkit/tests/tidal/test_io.py + pytest mhkit/tests/wave/io/test_cdip.py + + - name: Upload data as artifact + uses: actions/upload-artifact@v4 + with: + name: data + path: ~/.cache/mhkit + + prepare-wave-hindcast-cache: + needs: [check-changes] + runs-on: ubuntu-latest + env: + PYTHON_VER: 3.9 + if: (needs.check-changes.outputs.should-run-hindcast == 'true') + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Miniconda + uses: conda-incubator/setup-miniconda@v3 + with: + miniconda-version: 'latest' + auto-update-conda: true + activate-environment: TEST + python-version: ${{ env.PYTHON_VER }} + use-only-tar-bz2: true + + - name: Setup Conda environment + shell: bash -l {0} + run: | + conda install numpy cython pip pytest hdf5 libnetcdf cftime netcdf4 coverage --strict-channel-priority + pip install -e . --force-reinstall + + - name: Install dependencies + shell: bash -l {0} + run: | + python -m pip install --upgrade pip wheel + pip install coverage pytest coveralls . + + - name: Prepare Wave Hindcast data + shell: bash -l {0} + run: | + pytest mhkit/tests/wave/io/hindcast/test_hindcast.py + + - name: Upload Wave Hindcast data as artifact + uses: actions/upload-artifact@v4 + with: + name: wave-hindcast-data + path: ~/.cache/mhkit + + prepare-wind-hindcast-cache: + needs: [check-changes, prepare-wave-hindcast-cache] + runs-on: ubuntu-latest + env: + PYTHON_VER: 3.9 + if: (needs.check-changes.outputs.should-run-hindcast == 'true') + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Miniconda + uses: conda-incubator/setup-miniconda@v3 + with: + miniconda-version: 'latest' + auto-update-conda: true + activate-environment: TEST + python-version: ${{ env.PYTHON_VER }} + use-only-tar-bz2: true + + - name: Setup Conda environment + shell: bash -l {0} + run: | + conda install numpy cython pip pytest hdf5 libnetcdf cftime netcdf4 coverage --strict-channel-priority + pip install -e . --no-deps --force-reinstall + + - name: Install dependencies + shell: bash -l {0} + run: | + python -m pip install --upgrade pip wheel + pip install coverage pytest coveralls . + + - name: Prepare Wind Hindcast data + shell: bash -l {0} + run: | + pytest mhkit/tests/wave/io/hindcast/test_wind_toolkit.py + + - name: Upload Wind Hindcast data as artifact + uses: actions/upload-artifact@v4 + with: + name: wind-hindcast-data + path: ~/.cache/mhkit + conda-build: name: conda-${{ matrix.os }}/${{ matrix.python-version }} + needs: [set-os, prepare-nonhindcast-cache] runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - os: ["windows-latest", "ubuntu-latest", "macos-latest"] - python-version: [3.7, 3.8, 3.9] + os: ${{fromJson(needs.set-os.outputs.matrix_os)}} + python-version: ['3.8', '3.9', '3.10', '3.11'] + env: + PYTHON_VER: ${{ matrix.python-version }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - - name: Setup Conda - uses: s-weigand/setup-conda@v1 + - name: Setup Miniconda + uses: conda-incubator/setup-miniconda@v3 with: - activate-conda: false - conda-channels: conda-forge + miniconda-version: 'latest' + auto-update-conda: true + environment-file: environment.yml + activate-environment: TEST + python-version: ${{ matrix.python-version }} + use-only-tar-bz2: false - - name: Python ${{ matrix.python-version }} + - name: Create and setup Conda environment shell: bash -l {0} run: | - conda create --name TEST python=${{ matrix.python-version }} numpy cython pip pytest hdf5 libnetcdf cftime netcdf4 --strict-channel-priority - source activate TEST - export PATH="${CONDA_PREFIX}/bin:${CONDA_PREFIX}/Library/bin:$PATH" # so setup.py finds nc-config - pip install -e . --no-deps --force-reinstall + conda install -c conda-forge pytest coverage=7.5.0 coveralls --strict-channel-priority + pip install -e . --force-reinstall - - name: Tests - shell: bash -l {0} - run: | - source activate TEST - python -m pip install --upgrade pip wheel - pip install coverage - pip install pytest - pip install coveralls - pip install . + - name: Download data from artifact + uses: actions/download-artifact@v4 + with: + name: data + path: ~/.cache/mhkit - - name: Run pytest + - name: Run pytest & generate coverage report shell: bash -l {0} run: | - source activate TEST coverage run --rcfile=.github/workflows/.coveragerc --source=./mhkit/ -m pytest -c .github/workflows/pytest.ini + coverage lcov - name: Upload coverage data to coveralls.io - shell: bash -l {0} - run: | - source activate TEST - coveralls --service=github - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - COVERALLS_FLAG_NAME: ${{ matrix.python-version }} - COVERALLS_PARALLEL: true + uses: coverallsapp/github-action@master + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + flag-name: ${{ matrix.python-version }} + parallel: true + path-to-lcov: ./coverage.lcov pip-build: name: pip-${{ matrix.os }}/${{ matrix.python-version }} + needs: [set-os, prepare-nonhindcast-cache] runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - os: ["windows-latest", "ubuntu-latest", "macos-latest"] - python-version: [3.8, 3.9] + os: ${{fromJson(needs.set-os.outputs.matrix_os)}} + python-version: ['3.8', '3.9', '3.10', '3.11'] steps: - - uses: conda-incubator/setup-miniconda@v2 + - uses: conda-incubator/setup-miniconda@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} + - name: Install HDF5 (macOS with Python 3.8) + if: startsWith(runner.os, 'macOS') && matrix.python-version == '3.8' + run: brew install hdf5 + + - name: Install NetCDF (macOS with Python 3.8) + if: startsWith(runner.os, 'macOS') && matrix.python-version == '3.8' + run: brew install netcdf + + - name: Set environment variables (macOS with Python 3.8) + if: startsWith(runner.os, 'macOS') && matrix.python-version == '3.8' + run: | + echo "HDF5_DIR=$(brew --prefix hdf5)" >> $GITHUB_ENV + echo "NETCDF4_DIR=$(brew --prefix netcdf)" >> $GITHUB_ENV + echo "PKG_CONFIG_PATH=$(brew --prefix hdf5)/lib/pkgconfig:$(brew --prefix netcdf)/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV + - name: Set up Git repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 + + - name: Download data from artifact + uses: actions/download-artifact@v4 + with: + name: data + path: ~/.cache/mhkit - name: Update and install packages + shell: bash -l {0} run: | python -m pip install --upgrade pip wheel - pip install coverage - pip install pytest - pip install coveralls - pip install . + pip install coverage pytest coveralls . - - name: Run pytest + - name: Run pytest & generate coverage report + shell: bash -l {0} run: | - coverage run --rcfile=.github/workflows/.coveragerc --source=./mhkit/ -m pytest -c .github/workflows/pytest.ini + coverage run --rcfile=.github/workflows/.coveragerc --source=./mhkit/ -m pytest -c .github/workflows/pytest.ini + coverage lcov - name: Upload coverage data to coveralls.io - run: coveralls --service=github - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - COVERALLS_FLAG_NAME: ${{ matrix.python-version }} - COVERALLS_PARALLEL: true + uses: coverallsapp/github-action@master + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + flag-name: ${{ matrix.python-version }} + parallel: true + path-to-lcov: ./coverage.lcov hindcast-calls: name: hindcast-${{ matrix.os }}/${{ matrix.python-version }} + needs: + [ + check-changes, + prepare-wave-hindcast-cache, + prepare-wind-hindcast-cache, + set-os, + ] + if: (needs.check-changes.outputs.should-run-hindcast == 'true') + runs-on: ${{ matrix.os }} strategy: max-parallel: 1 fail-fast: false matrix: - os: ["windows-latest", "macos-latest"] - python-version: [3.9] + os: ${{fromJson(needs.set-os.outputs.matrix_os)}} + python-version: ['3.8', '3.9', '3.10', '3.11'] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - - name: Setup Conda - uses: s-weigand/setup-conda@v1 + - name: Setup Miniconda + uses: conda-incubator/setup-miniconda@v3 with: - activate-conda: false - conda-channels: conda-forge + miniconda-version: 'latest' + auto-update-conda: true + environment-file: environment.yml + activate-environment: TEST + python-version: ${{ matrix.python-version }} + use-only-tar-bz2: false - - name: Python ${{ matrix.python-version }} + - name: Setup Conda environment shell: bash -l {0} run: | - conda create --name TEST python=${{ matrix.python-version }} numpy cython pip pytest hdf5 libnetcdf cftime netcdf4 coverage --strict-channel-priority - source activate TEST - export PATH="${CONDA_PREFIX}/bin:${CONDA_PREFIX}/Library/bin:$PATH" # so setup.py finds nc-config - pip install -e . --no-deps --force-reinstall + conda install -c conda-forge pytest coverage=7.5.0 coveralls --strict-channel-priority + pip install -e . --force-reinstall - - name: Install MHKiT - shell: bash -l {0} + - name: Download Wave Hindcast data from artifact + uses: actions/download-artifact@v4 + with: + name: wave-hindcast-data + path: ~/.cache/mhkit/wave-hindcast + + - name: Download Wind Hindcast data from artifact + uses: actions/download-artifact@v4 + with: + name: wind-hindcast-data + path: ~/.cache/mhkit/wind-hindcast + + - name: Consolidate hindcast data run: | - source activate TEST - python -m pip install --upgrade pip wheel - pip install coveralls - pip install . + mkdir -p ~/.cache/mhkit/hindcast + mv ~/.cache/mhkit/wave-hindcast/hindcast/* ~/.cache/mhkit/hindcast/ + mv ~/.cache/mhkit/wind-hindcast/hindcast/* ~/.cache/mhkit/hindcast/ + shell: bash - - name: Run pytest + - name: Install MHKiT and run pytest shell: bash -l {0} run: | - source activate TEST - coverage run --rcfile=.github/workflows/.coveragehindcastrc -m pytest -c .github/workflows/pytest-hindcast.ini + coverage run --rcfile=.github/workflows/.coveragehindcastrc -m pytest -c .github/workflows/pytest-hindcast.ini + coverage lcov - name: Upload coverage data to coveralls.io - shell: bash -l {0} - run: | - source activate TEST - coveralls --service=github - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - COVERALLS_FLAG_NAME: ${{ matrix.python-version }} - COVERALLS_PARALLEL: true + uses: coverallsapp/github-action@master + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + flag-name: ${{ matrix.python-version }} + parallel: true + path-to-lcov: ./coverage.lcov coveralls: name: Indicate completion to coveralls.io needs: [conda-build, pip-build, hindcast-calls] + if: | + always() && + needs.conda-build.result == 'success' && + needs.pip-build.result == 'success' && + (needs.hindcast-calls.result == 'success' || needs.hindcast-calls.result == 'skipped') runs-on: ubuntu-latest container: python:3-slim steps: diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml new file mode 100644 index 000000000..08458f95d --- /dev/null +++ b/.github/workflows/pylint.yml @@ -0,0 +1,30 @@ +name: Pylint Loads + +on: [push, pull_request] + +jobs: + formatting-and-linting: + runs-on: ubuntu-latest + + steps: + - name: Check out code + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.11' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip wheel + pip install pylint + pip install . + + - name: Run Pylint on mhkit/loads/ + run: | + pylint mhkit/loads/ + + - name: Run Pylint on mhkit/power/ + run: | + pylint mhkit/power/ diff --git a/.hscfg b/.hscfg index f6f00424b..f9aa99caa 100644 --- a/.hscfg +++ b/.hscfg @@ -1,4 +1,4 @@ hs_endpoint = https://developer.nrel.gov/api/hsds hs_username = hs_password = -hs_api_key = 3K3JQbjZmWctY0xmIfSYvYgtIcM3CN0cb1Y2w9bf +hs_api_key = jODGciIBnejrYd9GXxgXjbbAjMDLBMWQer05P98N diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 000000000..b0037417e --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,8 @@ +# To run Black formating every time you commit: +# pip install pre-commit +# pre-commit install +repos: + - repo: https://github.com/psf/black + rev: stable + hooks: + - id: black diff --git a/.pypirc b/.pypirc deleted file mode 100644 index be070c7e6..000000000 --- a/.pypirc +++ /dev/null @@ -1,7 +0,0 @@ -[distutils] -index-servers=pypi - -[pypi] -repository = https://upload.pypi.org/legacy/ -username = -password = \ No newline at end of file diff --git a/README.md b/README.md index d4d0833cf..15e9483a7 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ -![](figures/logo.png) MHKiT-Python -===================================== +# ![](logo.png) MHKiT-Python

@@ -16,37 +15,41 @@

-MHKiT-Python is a Python package designed for marine renewable energy applications to assist in -data processing and visualization. The software package include functionality for: +MHKiT-Python is a Python package designed for marine renewable energy applications to assist in +data processing and visualization. The software package include functionality for: -* Data processing -* Data visualization -* Data quality control -* Resource assessment -* Device performance -* Device loads +- Data processing +- Data visualization +- Data quality control +- Resource assessment +- Device performance +- Device loads + +## Documentation -Documentation ------------------- MHKiT-Python documentation includes overview information, installation instructions, API documentation, and examples. See the [MHKiT documentation](https://mhkit-software.github.io/MHKiT) for more information. -Installation ------------------------- -MHKiT-Python requires Python (3.7, 3.8, or 3.9) along with several Python -package dependencies. MHKiT-Python can be installed from PyPI using the command ``pip install mhkit``. +## Installation + +MHKiT-Python requires Python (3.8, 3.9, 3.10, 3.11) along with several Python +package dependencies. MHKiT-Python can be installed from PyPI using the command: + +`pip install mhkit` + See [installation instructions](https://mhkit-software.github.io/MHKiT/installation.html) for more information. -Copyright and license ------------------------- -MHKiT-Python is copyright through the National Renewable Energy Laboratory, -Pacific Northwest National Laboratory, and Sandia National Laboratories. +## Copyright and license + +MHKiT-Python is copyright through the National Renewable Energy Laboratory, +Pacific Northwest National Laboratory, and Sandia National Laboratories. The software is distributed under the Revised BSD License. See [copyright and license](LICENSE.md) for more information. -Issues ------------------------- +## Issues + The GitHub platform has the Issues feature that is used to track ideas, feedback, tasks, and/or bugs. To submit an Issue, follow the steps below. More information about GitHub Issues can be found [here](https://docs.github.com/en/issues/tracking-your-work-with-issues/about-issues) + 1. Navigate to the [MHKiT-Python main page](https://github.com/MHKiT-Software/MHKiT-Python) 2. 2.Under the repository name (upper left), click **Issues**. 3. Click **New Issue**. @@ -54,9 +57,10 @@ The GitHub platform has the Issues feature that is used to track ideas, feedback 5. Provide a **Title** and **description** for the issue. Be sure the title is relevant to the issue and that the description is clear and provided with sufficient detail. 6. When you're finished, click **Submit new issue**. The developers will follow-up once the issue is addressed. -Creating a fork ------------------------- +## Creating a fork + The GitHub platform has the Fork feature that facilitates code modification and contributions. A fork is a new repository that shares code and visibility settings with the original upstream repository. To fork MHKiT-Python, follow the steps below. More information about GitHub Forks can be found [here](https://docs.github.com/en/get-started/quickstart/fork-a-repo) + 1. Navigate to the [MHKiT-Python main page](https://github.com/MHKiT-Software/MHKiT-Python) 2. Under the repository name (upper left), click **Fork**. 3. Select an owner for the forked repository. @@ -65,25 +69,38 @@ The GitHub platform has the Fork feature that facilitates code modification and 6. Choose whether to copy only the default branch or all branches to the new fork. You will only need copy the default branch to contribute to MHKiT-Python. 7. When you're finished, click **Create fork**. You will now have a fork of the MHKiT-Python repository. -Creating a branch ------------------------- +## Creating a branch + The GitHub platform has the branch feature that facilitates code contributions and collaboration amongst developers. A branch isolates development work without affecting other branches in the repository. Each repository has one default branch, and can have multiple other branches. To create a branch of your forked MHKiT-Python repository, follow the steps below. More information about GitHub branches can be found [here](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches) + 1. Navigate to your fork of MHKiT-Python (see instructions above) 2. Above the list of files, click **Branches**. -3. Click **New Branch**. +3. Click **New Branch**. 4. Enter a name for the branch. Be sure to select **MHKiT-Software/MHKiT-Python:master** as the source. 5. Click **Create branch**. You will now have a branch on your fork of MHKiT-Python that you can use to work with the code base. -Creating a pull request ------------------------- +## Creating a pull request + The GitHub platform has the pull request feature that allows you to propose changes to a repository such as MHKiT-Python. The pull request will allow the repository administrators to evaluate the pull request. To create a pull request for MHKiT-Python repository, follow the steps below. More information about GitHub pull requests can be found [here](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) + 1. Navigate to the [MHKiT-Python main page](https://github.com/MHKiT-Software/MHKiT-Python) 2. Above the list of files, click **Pull request**. -3. On the compare page, click **Compare accross forks**. -4. In the "base branch" drop-down menu, select the branch of the upstream repository you'd like to merge changes into. +3. On the compare page, click **Compare accross forks**. +4. In the "base branch" drop-down menu, select the branch of the upstream repository you'd like to merge changes into. 5. In the "head fork" drop-down menu, select your fork, then use the "compare branch" drop-down menu to select the branch you made your changes in. 6. Type a title and description for your pull request. 7. If you want to allow anyone with push access to the upstream repository to make changes to your pull request, select **Allow edits from maintainers**. 8. To create a pull request that is ready for review, click **Create Pull Request**. To create a draft pull request, use the drop-down and select **Create Draft Pull Request**, then click **Draft Pull Request**. More information about draft pull requests can be found [here](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests#draft-pull-requests) 9. MHKiT-Python adminstrators will review your pull request and contact you if needed. +## Code Formatting in MHKiT + +MHKiT adheres to the "black" code formatting standard to maintain a consistent and readable code style. Developers contributing to MHKiT have several options to ensure their code meets this standard: + +1. **Manual Formatting with Black**: Install the 'black' formatter and run it manually from the terminal to format your code. This can be done by executing a command like `black [file or directory]`. + +2. **IDE Extension**: If you are using an Integrated Development Environment (IDE) like Visual Studio Code (VS Code), you can install the 'black' formatter as an extension. This allows for automatic formatting of code within the IDE. + +3. **Pre-Commit Hook**: Enable the pre-commit hook in your development environment. This automatically formats your code with 'black' each time you make a commit, ensuring that all committed code conforms to the formatting standard. + +For detailed instructions on installing and using 'black', please refer to the [Black Documentation](https://black.readthedocs.io/en/stable/). This resource provides comprehensive guidance on installation, usage, and configuration of the formatter. diff --git a/ci/install_python.ps1 b/ci/install_python.ps1 deleted file mode 100644 index b41eea5e5..000000000 --- a/ci/install_python.ps1 +++ /dev/null @@ -1,93 +0,0 @@ -# Sample script to install Python and pip under Windows -# Authors: Olivier Grisel, Jonathan Helmus and Kyle Kastner -# License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/ - -$MINICONDA_URL = "http://repo.continuum.io/miniconda/" -$BASE_URL = "https://www.python.org/ftp/python/" - - -function DownloadMiniconda ($python_version, $platform_suffix) { - $webclient = New-Object System.Net.WebClient - if ($python_version -eq "3.4") { - $filename = "Miniconda3-3.7.3-Windows-" + $platform_suffix + ".exe" - } else { - $filename = "Miniconda-3.7.3-Windows-" + $platform_suffix + ".exe" - } - $url = $MINICONDA_URL + $filename - - $basedir = $pwd.Path + "\" - $filepath = $basedir + $filename - if (Test-Path $filename) { - Write-Host "Reusing" $filepath - return $filepath - } - - # Download and retry up to 3 times in case of network transient errors. - Write-Host "Downloading" $filename "from" $url - $retry_attempts = 2 - for($i=0; $i -lt $retry_attempts; $i++){ - try { - $webclient.DownloadFile($url, $filepath) - break - } - Catch [Exception]{ - Start-Sleep 1 - } - } - if (Test-Path $filepath) { - Write-Host "File saved at" $filepath - } else { - # Retry once to get the error message if any at the last try - $webclient.DownloadFile($url, $filepath) - } - return $filepath -} - - -function InstallMiniconda ($python_version, $architecture, $python_home) { - Write-Host "Installing Python" $python_version "for" $architecture "bit architecture to" $python_home - if (Test-Path $python_home) { - Write-Host $python_home "already exists, skipping." - return $false - } - if ($architecture -eq "32") { - $platform_suffix = "x86" - } else { - $platform_suffix = "x86_64" - } - $filepath = DownloadMiniconda $python_version $platform_suffix - Write-Host "Installing" $filepath "to" $python_home - $install_log = $python_home + ".log" - $args = "/S /D=$python_home" - Write-Host $filepath $args - Start-Process -FilePath $filepath -ArgumentList $args -Wait -Passthru - if (Test-Path $python_home) { - Write-Host "Python $python_version ($architecture) installation complete" - } else { - Write-Host "Failed to install Python in $python_home" - Get-Content -Path $install_log - Exit 1 - } -} - - -function InstallMinicondaPip ($python_home) { - $pip_path = $python_home + "\Scripts\pip.exe" - $conda_path = $python_home + "\Scripts\conda.exe" - if (-not(Test-Path $pip_path)) { - Write-Host "Installing pip..." - $args = "install --yes pip" - Write-Host $conda_path $args - Start-Process -FilePath "$conda_path" -ArgumentList $args -Wait -Passthru - } else { - Write-Host "pip already installed." - } -} - - -function main () { - InstallMiniconda $env:PYTHON_VERSION $env:PYTHON_ARCH $env:PYTHON - InstallMinicondaPip $env:PYTHON -} - -main \ No newline at end of file diff --git a/ci/requirements-py36.yml b/ci/requirements-py36.yml deleted file mode 100644 index 9f58e5202..000000000 --- a/ci/requirements-py36.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: test_env -channels: - - defaults - - conda-forge -dependencies: - - python=3.6 - - pandas - - numpy - - scipy - - matplotlib - - requests - - nose - - NREL-rex - - pip: - - coveralls diff --git a/ci/requirements-py37.yml b/ci/requirements-py37.yml deleted file mode 100644 index 28efef533..000000000 --- a/ci/requirements-py37.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: test_env -channels: - - defaults - - conda-forge -dependencies: - - python=3.7 - - pandas - - numpy - - scipy - - matplotlib - - requests - - nose - - NREL-rex - - pip: - - coveralls diff --git a/environment.yml b/environment.yml new file mode 100644 index 000000000..92b603f09 --- /dev/null +++ b/environment.yml @@ -0,0 +1,25 @@ +name: myenv +channels: + - conda-forge + - defaults +dependencies: + - python>=3.8 + - pandas>=1.0.0 + - numpy>=1.21.0 + - scipy + - matplotlib + - requests + - lxml + - scikit-learn + - statsmodels + - bottleneck + - beautifulsoup4 + - xarray + - h5py>=3.6.0 + - netcdf4>=1.5.8 + - pip: + - pecos>=0.3.0 + - fatpack + - NREL-rex>=0.2.63 + - h5pyd>=0.7.0 + - six>=1.13.0 diff --git a/examples/ADCP_Delft3D_TRTS_example.ipynb b/examples/ADCP_Delft3D_TRTS_example.ipynb index 142ebc068..4b3655ce6 100644 --- a/examples/ADCP_Delft3D_TRTS_example.ipynb +++ b/examples/ADCP_Delft3D_TRTS_example.ipynb @@ -30,13 +30,14 @@ "import matplotlib\n", "import scipy.io\n", "import netCDF4\n", - "import math \n", + "import math\n", "import utm\n", + "\n", "# MHKiT Imports\n", "from mhkit.dolfyn.rotate import api as ap\n", "from mhkit.dolfyn.adp import api\n", "from mhkit import dolfyn as dlfn\n", - "from mhkit.river.io import d3d \n", + "from mhkit.river.io import d3d\n", "from mhkit import river" ] }, @@ -705,10 +706,14 @@ ], "source": [ "# Read in the two transect passes\n", - "transect_1_raw = api.read('data/river/ADCP_transect/tanana_transects_08_10_10_0_002_10-08-10_142214.PD0') \n", - "transect_2_raw = api.read('data/river/ADCP_transect/tanana_transects_08_10_10_0_003_10-08-10_143335.PD0')\n", + "transect_1_raw = api.read(\n", + " \"data/river/ADCP_transect/tanana_transects_08_10_10_0_002_10-08-10_142214.PD0\"\n", + ")\n", + "transect_2_raw = api.read(\n", + " \"data/river/ADCP_transect/tanana_transects_08_10_10_0_003_10-08-10_143335.PD0\"\n", + ")\n", "# Create one dataset from the two passes\n", - "transect_1_2= xr.merge([transect_1_raw, transect_2_raw])\n", + "transect_1_2 = xr.merge([transect_1_raw, transect_2_raw])\n", "# Print the xarray data\n", "transect_1_2" ] @@ -731,15 +736,11 @@ "outputs": [], "source": [ "# Convert Coordiantes to UTM using utm module\n", - "utm_x_y = utm.from_latlon(\n", - " transect_1_2.latitude_gps, \n", - " transect_1_2.longitude_gps, \n", - " 6,'W'\n", - " ) \n", - "\n", - "# Create a DataFrame from the points \n", - "gps = [[x, y] for x, y in zip(utm_x_y[0], utm_x_y[1])] \n", - "gps_points = pd.DataFrame(np.array(gps), columns= ['utm_x','utm_y'])" + "utm_x_y = utm.from_latlon(transect_1_2.latitude_gps, transect_1_2.longitude_gps, 6, \"W\")\n", + "\n", + "# Create a DataFrame from the points\n", + "gps = [[x, y] for x, y in zip(utm_x_y[0], utm_x_y[1])]\n", + "gps_points = pd.DataFrame(np.array(gps), columns=[\"utm_x\", \"utm_y\"])" ] }, { @@ -760,7 +761,7 @@ "source": [ "# Nenana Alaska is 15.7 deg East\n", "angle = 15.7\n", - "ap.set_declination(transect_1_2, angle, inplace=True) " + "ap.set_declination(transect_1_2, angle, inplace=True)" ] }, { @@ -780,8 +781,8 @@ "metadata": {}, "outputs": [], "source": [ - "# Rotate to 'earth' coordinate system \n", - "api.rotate2(transect_1_2, 'earth', inplace=True)" + "# Rotate to 'earth' coordinate system\n", + "api.rotate2(transect_1_2, \"earth\", inplace=True)" ] }, { @@ -831,48 +832,55 @@ } ], "source": [ - "\n", "# Linear regression using first order polyfit\n", - "a,b = np.polyfit(gps_points.utm_x, gps_points.utm_y,1)\n", + "a, b = np.polyfit(gps_points.utm_x, gps_points.utm_y, 1)\n", "\n", "# Generate a DataFrame of points from the linear regression\n", - "ideal= [ [x, y] for x, y in zip(gps_points.utm_x, a*gps_points.utm_x+b)] \n", - "ideal_points = pd.DataFrame(np.array(ideal), columns= ['utm_x','utm_y'])\n", + "ideal = [[x, y] for x, y in zip(gps_points.utm_x, a * gps_points.utm_x + b)]\n", + "ideal_points = pd.DataFrame(np.array(ideal), columns=[\"utm_x\", \"utm_y\"])\n", "\n", "# Repeat UTM corrdinates to match the ADCP points matrix (dir, range, time)\n", "utm_x_points = np.tile(gps_points.utm_x, np.size(transect_1_2.range))\n", - "utm_y_points = np.tile(a*gps_points.utm_x+b, np.size(transect_1_2.range))\n", - "depth_points = np.repeat( transect_1_2.range, np.size(gps_points.utm_x))\n", + "utm_y_points = np.tile(a * gps_points.utm_x + b, np.size(transect_1_2.range))\n", + "depth_points = np.repeat(transect_1_2.range, np.size(gps_points.utm_x))\n", "\n", - "ADCP_ideal_points={\n", - " 'utm_x': utm_x_points, \n", - " 'utm_y': utm_y_points, \n", - " 'waterdepth': depth_points\n", - " }\n", - "ADCP_ideal_points=pd.DataFrame(ADCP_ideal_points)\n", + "ADCP_ideal_points = {\n", + " \"utm_x\": utm_x_points,\n", + " \"utm_y\": utm_y_points,\n", + " \"waterdepth\": depth_points,\n", + "}\n", + "ADCP_ideal_points = pd.DataFrame(ADCP_ideal_points)\n", "\n", "# Initialize the figure\n", - "figure(figsize=(8,6))\n", + "figure(figsize=(8, 6))\n", "fig, ax = plt.subplots()\n", "\n", "# Get data from the original transect in UTM for comparison\n", - "transect_1 = utm.from_latlon(transect_1_raw.latitude_gps, transect_1_raw.longitude_gps, 6, 'W') \n", - "transect_2 = utm.from_latlon(transect_2_raw.latitude_gps, transect_2_raw.longitude_gps, 6, 'W') \n", + "transect_1 = utm.from_latlon(\n", + " transect_1_raw.latitude_gps, transect_1_raw.longitude_gps, 6, \"W\"\n", + ")\n", + "transect_2 = utm.from_latlon(\n", + " transect_2_raw.latitude_gps, transect_2_raw.longitude_gps, 6, \"W\"\n", + ")\n", "\n", "# Plot the original transect data for comparison\n", - "plt.plot(transect_1[0],transect_1[1], 'b', label= 'GPS Transect 1' )\n", - "plt.plot(transect_2[0],transect_2[1], 'r--', label= 'GPS Transect 2')\n", + "plt.plot(transect_1[0], transect_1[1], \"b\", label=\"GPS Transect 1\")\n", + "plt.plot(transect_2[0], transect_2[1], \"r--\", label=\"GPS Transect 2\")\n", "\n", "# Plot the Idealized Transect\n", - "plt.plot(ADCP_ideal_points.utm_x, ADCP_ideal_points.utm_y, 'k-.', label='Ideal Transect')\n", - "plt.ticklabel_format(style= 'scientific',useOffset=False)\n", - "ax.get_xaxis().set_major_formatter(matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), ',')))\n", + "plt.plot(\n", + " ADCP_ideal_points.utm_x, ADCP_ideal_points.utm_y, \"k-.\", label=\"Ideal Transect\"\n", + ")\n", + "plt.ticklabel_format(style=\"scientific\", useOffset=False)\n", + "ax.get_xaxis().set_major_formatter(\n", + " matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), \",\"))\n", + ")\n", "plt.xticks(rotation=45)\n", "\n", "# Plot Settings\n", "plt.legend()\n", - "plt.xlabel('$UTM_x (m)$')\n", - "plt.ylabel('$UTM_y (m)$')" + "plt.xlabel(\"$UTM_x (m)$\")\n", + "plt.ylabel(\"$UTM_y (m)$\")" ] }, { @@ -893,7 +901,7 @@ "outputs": [], "source": [ "# Adjust the range offset, included here for reference\n", - "offset=0\n", + "offset = 0\n", "api.clean.set_range_offset(transect_1_2, offset)" ] }, @@ -937,11 +945,11 @@ ], "source": [ "# Apply the correlation filter\n", - "min_correlation=40\n", + "min_correlation = 40\n", "transect_1_2 = api.clean.correlation_filter(transect_1_2, thresh=min_correlation)\n", "\n", "# Plot the results the (data is displayed upside-down)\n", - "transect_1_2.corr.sel(beam=1).plot() " + "transect_1_2.corr.sel(beam=1).plot()" ] }, { @@ -969,23 +977,25 @@ ], "source": [ "# Filtering out depth sounder values above the river surface\n", - "depth_sounder = transect_1_2.where(transect_1_2.dist_bt > 0 )\n", + "depth_sounder = transect_1_2.where(transect_1_2.dist_bt > 0)\n", "\n", "# Of the 4 values beams get the shallowest depth value at each location\n", "bottom = np.min(depth_sounder.dist_bt, axis=0)\n", "\n", - "# River bottom for ideal transect \n", - "bottom_avg = interp.griddata(gps_points, bottom, ideal_points, method='linear')\n", + "# River bottom for ideal transect\n", + "bottom_avg = interp.griddata(gps_points, bottom, ideal_points, method=\"linear\")\n", "\n", "# Create a matrix of depths\n", - "bottom_filter = d3d.create_points(x=bottom_avg, y=transect_1_2.range.to_numpy(), waterdepth=1)\n", + "bottom_filter = d3d.create_points(\n", + " x=bottom_avg, y=transect_1_2.range.to_numpy(), waterdepth=1\n", + ")\n", "\n", - "# Creating a mask matrix with ones in the area of the river cross section and nan's outside \n", + "# Creating a mask matrix with ones in the area of the river cross section and nan's outside\n", "river_bottom_filter = []\n", - "for index, row in bottom_filter.iterrows():\n", - " if row['x'] > row['y']: \n", - " filter = 1 \n", - " else: \n", + "for index, row in bottom_filter.iterrows():\n", + " if row[\"x\"] > row[\"y\"]:\n", + " filter = 1\n", + " else:\n", " filter = float(\"nan\")\n", " river_bottom_filter = np.append(river_bottom_filter, filter)" ] @@ -1177,33 +1187,26 @@ ], "source": [ "# Tiling the GPS data for each depth bin\n", - "gps_utm_x = np.tile(\n", - " gps_points.utm_x, \n", - " np.size(transect_1_2.range)\n", - " )\n", - "gps_utm_y = np.tile(\n", - " gps_points.utm_y, \n", - " np.size(transect_1_2.range)\n", - " )\n", + "gps_utm_x = np.tile(gps_points.utm_x, np.size(transect_1_2.range))\n", + "gps_utm_y = np.tile(gps_points.utm_y, np.size(transect_1_2.range))\n", "\n", "# Repeating the depth bins for each GPS point\n", - "depth = np.repeat( \n", - " transect_1_2.range, \n", - " np.size(gps_points.utm_x)\n", - " )\n", + "depth = np.repeat(transect_1_2.range, np.size(gps_points.utm_x))\n", "\n", "# Create Dataframe from the calculated points\n", - "ADCP_points = pd.DataFrame({\n", - " 'utm_x': gps_utm_x, \n", - " 'utm_y': gps_utm_y, \n", - " 'waterdepth': depth\n", - " })\n", - "\n", - "# Raveling the veocity data to correspond with 'ADCP_points' and filtering out velocity data bellow the river bottom \n", - "ADCP_points['east_velocity']= np.ravel(transect_1_2.vel[0, :,:]) * river_bottom_filter\n", - "ADCP_points['north_velocity']= np.ravel(transect_1_2.vel[1, :,:]) * river_bottom_filter\n", - "ADCP_points['vertical_velocity']= np.ravel(transect_1_2.vel[2, :,:])* river_bottom_filter\n", - "ADCP_points= ADCP_points.dropna()\n", + "ADCP_points = pd.DataFrame(\n", + " {\"utm_x\": gps_utm_x, \"utm_y\": gps_utm_y, \"waterdepth\": depth}\n", + ")\n", + "\n", + "# Raveling the veocity data to correspond with 'ADCP_points' and filtering out velocity data bellow the river bottom\n", + "ADCP_points[\"east_velocity\"] = np.ravel(transect_1_2.vel[0, :, :]) * river_bottom_filter\n", + "ADCP_points[\"north_velocity\"] = (\n", + " np.ravel(transect_1_2.vel[1, :, :]) * river_bottom_filter\n", + ")\n", + "ADCP_points[\"vertical_velocity\"] = (\n", + " np.ravel(transect_1_2.vel[2, :, :]) * river_bottom_filter\n", + ")\n", + "ADCP_points = ADCP_points.dropna()\n", "\n", "# Show points\n", "ADCP_points" @@ -1226,29 +1229,33 @@ "metadata": {}, "outputs": [], "source": [ - "# Project velocity onto ideal tansect \n", - "ADCP_ideal= pd.DataFrame()\n", - "ADCP_ideal['east_velocity'] = interp.griddata(\n", - " ADCP_points[['utm_x','utm_y','waterdepth']],\n", - " ADCP_points['east_velocity'],\n", - " ADCP_ideal_points[['utm_x','utm_y','waterdepth']],\n", - " method='linear'\n", - " )\n", - "ADCP_ideal['north_velocity'] = interp.griddata(\n", - " ADCP_points[['utm_x','utm_y','waterdepth']],\n", - " ADCP_points['north_velocity'],\n", - " ADCP_ideal_points[['utm_x','utm_y','waterdepth']],\n", - " method='linear'\n", - " )\n", - "ADCP_ideal['vertical_velocity'] = interp.griddata(\n", - " ADCP_points[['utm_x','utm_y','waterdepth']],\n", - " ADCP_points['vertical_velocity'],\n", - " ADCP_ideal_points[['utm_x','utm_y','waterdepth']],\n", - " method='linear'\n", - " )\n", + "# Project velocity onto ideal tansect\n", + "ADCP_ideal = pd.DataFrame()\n", + "ADCP_ideal[\"east_velocity\"] = interp.griddata(\n", + " ADCP_points[[\"utm_x\", \"utm_y\", \"waterdepth\"]],\n", + " ADCP_points[\"east_velocity\"],\n", + " ADCP_ideal_points[[\"utm_x\", \"utm_y\", \"waterdepth\"]],\n", + " method=\"linear\",\n", + ")\n", + "ADCP_ideal[\"north_velocity\"] = interp.griddata(\n", + " ADCP_points[[\"utm_x\", \"utm_y\", \"waterdepth\"]],\n", + " ADCP_points[\"north_velocity\"],\n", + " ADCP_ideal_points[[\"utm_x\", \"utm_y\", \"waterdepth\"]],\n", + " method=\"linear\",\n", + ")\n", + "ADCP_ideal[\"vertical_velocity\"] = interp.griddata(\n", + " ADCP_points[[\"utm_x\", \"utm_y\", \"waterdepth\"]],\n", + " ADCP_points[\"vertical_velocity\"],\n", + " ADCP_ideal_points[[\"utm_x\", \"utm_y\", \"waterdepth\"]],\n", + " method=\"linear\",\n", + ")\n", "\n", "# Calculate the magnitude of the velocity components\n", - "ADCP_ideal['magnitude']= np.sqrt(ADCP_ideal.east_velocity**2+ADCP_ideal.north_velocity**2+ADCP_ideal.vertical_velocity**2)" + "ADCP_ideal[\"magnitude\"] = np.sqrt(\n", + " ADCP_ideal.east_velocity**2\n", + " + ADCP_ideal.north_velocity**2\n", + " + ADCP_ideal.vertical_velocity**2\n", + ")" ] }, { @@ -1298,29 +1305,31 @@ ], "source": [ "# Set the contour color bar bounds\n", - "min_plot=0\n", - "max_plot=3\n", + "min_plot = 0\n", + "max_plot = 3\n", "\n", - "# The Contour of velocity magnitude from the ADCP transect data \n", - "fig,ax = plt.subplots(figsize=(10,4.4))\n", + "# The Contour of velocity magnitude from the ADCP transect data\n", + "fig, ax = plt.subplots(figsize=(10, 4.4))\n", "\n", "contour_plot = plt.tripcolor(\n", - " ADCP_ideal_points.utm_x, \n", - " -ADCP_ideal_points.waterdepth, \n", - " ADCP_ideal.magnitude*river_bottom_filter,\n", + " ADCP_ideal_points.utm_x,\n", + " -ADCP_ideal_points.waterdepth,\n", + " ADCP_ideal.magnitude * river_bottom_filter,\n", " vmin=min_plot,\n", - " vmax=max_plot\n", + " vmax=max_plot,\n", ")\n", "\n", - "plt.xlabel('$UTM_x (m)$')\n", - "plt.ylabel('Water Depth (m)')\n", - "cbar= plt.colorbar(contour_plot)\n", - "cbar.set_label('velocity [m/s]')\n", - "plt.ylim([-8.5,-1])\n", - "plt.xlim([400950,401090])\n", - "plt.plot(ideal_points.utm_x,-bottom_avg,'k', label= 'river bottom')\n", - "plt.legend(loc= 7)\n", - "ax.get_xaxis().set_major_formatter(matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), ',')))\n", + "plt.xlabel(\"$UTM_x (m)$\")\n", + "plt.ylabel(\"Water Depth (m)\")\n", + "cbar = plt.colorbar(contour_plot)\n", + "cbar.set_label(\"velocity [m/s]\")\n", + "plt.ylim([-8.5, -1])\n", + "plt.xlim([400950, 401090])\n", + "plt.plot(ideal_points.utm_x, -bottom_avg, \"k\", label=\"river bottom\")\n", + "plt.legend(loc=7)\n", + "ax.get_xaxis().set_major_formatter(\n", + " matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), \",\"))\n", + ")\n", "plt.xticks(rotation=45)" ] }, @@ -1363,38 +1372,39 @@ ], "source": [ "# Interpolate points by getting min & max first\n", - "start_utmx = min(ADCP_ideal_points.utm_x)\n", + "start_utmx = min(ADCP_ideal_points.utm_x)\n", "start_utmy = min(ADCP_ideal_points.utm_y)\n", "\n", "end_utmx = max(ADCP_ideal_points.utm_x)\n", "end_utmy = min(ADCP_ideal_points.utm_y)\n", "\n", "# Using N points for x calculate the y values on an ideal transect from the linear regression used earlier\n", - "N=10\n", + "N = 10\n", "utm_x_ideal_downsampeled = np.linspace(start_utmx, end_utmx, N)\n", - "utm_y_ideal_downsampeled = (a*utm_x_ideal_downsampeled) + b\n", - "\n", + "utm_y_ideal_downsampeled = (a * utm_x_ideal_downsampeled) + b\n", "\n", "\n", "# Plot the Idealized Transect for comparison\n", "plt.plot(\n", - " ADCP_ideal_points.utm_x, \n", - " ADCP_ideal_points.utm_y, \n", - " '.', ms=1, label='Ideal Transect'\n", - " )\n", + " ADCP_ideal_points.utm_x, ADCP_ideal_points.utm_y, \".\", ms=1, label=\"Ideal Transect\"\n", + ")\n", "\n", "# Plot the downsampled transect\n", "plt.plot(\n", - " utm_x_ideal_downsampeled, \n", - " utm_y_ideal_downsampeled, \n", - " 'ro', label='Down Sampled Ideal Transect')\n", + " utm_x_ideal_downsampeled,\n", + " utm_y_ideal_downsampeled,\n", + " \"ro\",\n", + " label=\"Down Sampled Ideal Transect\",\n", + ")\n", "\n", "\n", "# Plot settings\n", - "ax.get_xaxis().set_major_formatter(matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), ',')))\n", + "ax.get_xaxis().set_major_formatter(\n", + " matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), \",\"))\n", + ")\n", "plt.xticks(rotation=45)\n", - "plt.xlabel('$UTM_x$')\n", - "plt.ylabel('$UTM_y$')\n", + "plt.xlabel(\"$UTM_x$\")\n", + "plt.ylabel(\"$UTM_y$\")\n", "plt.legend()" ] }, @@ -1435,52 +1445,46 @@ ], "source": [ "# Create an idealized depth N layers deep\n", - "N_layers=12\n", + "N_layers = 12\n", "downsampled_depth = np.linspace(\n", - " transect_1_2.range.min(), \n", - " np.nanmax(bottom_avg), \n", - " N_layers\n", - " )\n", + " transect_1_2.range.min(), np.nanmax(bottom_avg), N_layers\n", + ")\n", "\n", - "# Repeat this over the N points of the DownSampled Ideal Transect above \n", - "depth_ideal_points_downsampled = np.repeat(\n", - " downsampled_depth,\n", - " N\n", - " )\n", + "# Repeat this over the N points of the DownSampled Ideal Transect above\n", + "depth_ideal_points_downsampled = np.repeat(downsampled_depth, N)\n", "\n", "# Tile the x, y over the N of layers to add to a DataFrame\n", - "utm_x_ideal_points_downsampled= np.tile(\n", - " utm_x_ideal_downsampeled, \n", - " N_layers\n", - " )\n", - "utm_y_ideal_points_downsampled= np.tile(\n", - " utm_y_ideal_downsampeled, \n", - " N_layers\n", - " )\n", + "utm_x_ideal_points_downsampled = np.tile(utm_x_ideal_downsampeled, N_layers)\n", + "utm_y_ideal_points_downsampled = np.tile(utm_y_ideal_downsampeled, N_layers)\n", "\n", "# Create a Dataframe of our idealized x,y,depth points\n", - "ADCP_ideal_points_downsamples=pd.DataFrame({\n", - " 'utm_x': utm_x_ideal_points_downsampled, \n", - " 'utm_y': utm_y_ideal_points_downsampled,\n", - " 'waterdepth': depth_ideal_points_downsampled\n", - " })\n", + "ADCP_ideal_points_downsamples = pd.DataFrame(\n", + " {\n", + " \"utm_x\": utm_x_ideal_points_downsampled,\n", + " \"utm_y\": utm_y_ideal_points_downsampled,\n", + " \"waterdepth\": depth_ideal_points_downsampled,\n", + " }\n", + ")\n", "\n", "# Plot the Down sampled data points at the x locations\n", - "fig,ax = plt.subplots(figsize=(10,4.4))\n", - "plt.plot(ADCP_ideal_points_downsamples.utm_x, \n", - " ADCP_ideal_points_downsamples.waterdepth * -1, \n", - " 'ro', \n", - " )\n", + "fig, ax = plt.subplots(figsize=(10, 4.4))\n", + "plt.plot(\n", + " ADCP_ideal_points_downsamples.utm_x,\n", + " ADCP_ideal_points_downsamples.waterdepth * -1,\n", + " \"ro\",\n", + ")\n", "\n", "# Plot the ADCP river bed\n", - "plt.plot(ideal_points.utm_x,-bottom_avg,'k', label= 'river bottom')\n", + "plt.plot(ideal_points.utm_x, -bottom_avg, \"k\", label=\"river bottom\")\n", "\n", "# Plot settings\n", - "ax.get_xaxis().set_major_formatter(matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), ',')))\n", + "ax.get_xaxis().set_major_formatter(\n", + " matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), \",\"))\n", + ")\n", "plt.xticks(rotation=45)\n", - "plt.title('DownSampled Ideal Transect Depth')\n", - "plt.xlabel('$UTM_x [m]$')\n", - "plt.ylabel('$ Depth [m]$')" + "plt.title(\"DownSampled Ideal Transect Depth\")\n", + "plt.xlabel(\"$UTM_x [m]$\")\n", + "plt.ylabel(\"$ Depth [m]$\")" ] }, { @@ -1632,27 +1636,31 @@ } ], "source": [ - "# Project velocity onto ideal tansect \n", - "ADCP_ideal_downsamples= pd.DataFrame()\n", - "ADCP_ideal_downsamples['east_velocity']= interp.griddata(\n", - " ADCP_points[['utm_x','utm_y','waterdepth']],\n", - " ADCP_points['east_velocity'],\n", - " ADCP_ideal_points_downsamples[['utm_x','utm_y','waterdepth']],\n", - " method='linear'\n", - " )\n", - "ADCP_ideal_downsamples['north_velocity']= interp.griddata(\n", - " ADCP_points[['utm_x','utm_y','waterdepth']],\n", - " ADCP_points['north_velocity'],\n", - " ADCP_ideal_points_downsamples[['utm_x','utm_y','waterdepth']],\n", - " method='linear'\n", + "# Project velocity onto ideal tansect\n", + "ADCP_ideal_downsamples = pd.DataFrame()\n", + "ADCP_ideal_downsamples[\"east_velocity\"] = interp.griddata(\n", + " ADCP_points[[\"utm_x\", \"utm_y\", \"waterdepth\"]],\n", + " ADCP_points[\"east_velocity\"],\n", + " ADCP_ideal_points_downsamples[[\"utm_x\", \"utm_y\", \"waterdepth\"]],\n", + " method=\"linear\",\n", + ")\n", + "ADCP_ideal_downsamples[\"north_velocity\"] = interp.griddata(\n", + " ADCP_points[[\"utm_x\", \"utm_y\", \"waterdepth\"]],\n", + " ADCP_points[\"north_velocity\"],\n", + " ADCP_ideal_points_downsamples[[\"utm_x\", \"utm_y\", \"waterdepth\"]],\n", + " method=\"linear\",\n", + ")\n", + "ADCP_ideal_downsamples[\"vertical_velocity\"] = interp.griddata(\n", + " ADCP_points[[\"utm_x\", \"utm_y\", \"waterdepth\"]],\n", + " ADCP_points[\"vertical_velocity\"],\n", + " ADCP_ideal_points_downsamples[[\"utm_x\", \"utm_y\", \"waterdepth\"]],\n", + " method=\"linear\",\n", + ")\n", + "ADCP_ideal_downsamples[\"magnitude\"] = np.sqrt(\n", + " ADCP_ideal_downsamples.east_velocity**2\n", + " + ADCP_ideal_downsamples.north_velocity**2\n", + " + ADCP_ideal_downsamples.vertical_velocity**2\n", ")\n", - "ADCP_ideal_downsamples['vertical_velocity']= interp.griddata(\n", - " ADCP_points[['utm_x','utm_y','waterdepth']],\n", - " ADCP_points['vertical_velocity'],\n", - " ADCP_ideal_points_downsamples[['utm_x','utm_y','waterdepth']],\n", - " method='linear'\n", - " )\n", - "ADCP_ideal_downsamples['magnitude']= np.sqrt(ADCP_ideal_downsamples.east_velocity**2+ADCP_ideal_downsamples.north_velocity**2+ADCP_ideal_downsamples.vertical_velocity**2)\n", "ADCP_ideal_downsamples" ] }, @@ -1682,23 +1690,31 @@ ], "source": [ "# Create a DataFrame of downsampled points\n", - "ideal_downsampeled= [ [x, y] for x, y in zip(utm_x_ideal_downsampeled, utm_y_ideal_downsampeled)] \n", - "ideal_points_downsampled = pd.DataFrame(np.array(ideal_downsampeled), columns= ['utm_x','utm_y'])\n", + "ideal_downsampeled = [\n", + " [x, y] for x, y in zip(utm_x_ideal_downsampeled, utm_y_ideal_downsampeled)\n", + "]\n", + "ideal_points_downsampled = pd.DataFrame(\n", + " np.array(ideal_downsampeled), columns=[\"utm_x\", \"utm_y\"]\n", + ")\n", "\n", - "# River bottom for downsampled ideal transect \n", - "bottom_avg_downsampled= interp.griddata(gps_points, bottom, ideal_points_downsampled, method='linear')\n", + "# River bottom for downsampled ideal transect\n", + "bottom_avg_downsampled = interp.griddata(\n", + " gps_points, bottom, ideal_points_downsampled, method=\"linear\"\n", + ")\n", "\n", "# Create a matrix of depths\n", - "bottom_filter_downsampled = d3d.create_points(x=bottom_avg_downsampled, y=downsampled_depth, waterdepth=1)\n", - "\n", - "# Creating a mask matrix with ones in the area of the river cross section and nan's outside \n", - "river_bottom_filter_downsampled= []\n", - "for index, row in bottom_filter_downsampled.iterrows():\n", - " if row['x'] > row['y']: \n", - " filter= 1 \n", - " else: \n", - " filter= float(\"nan\")\n", - " river_bottom_filter_downsampled= np.append(river_bottom_filter_downsampled, filter)" + "bottom_filter_downsampled = d3d.create_points(\n", + " x=bottom_avg_downsampled, y=downsampled_depth, waterdepth=1\n", + ")\n", + "\n", + "# Creating a mask matrix with ones in the area of the river cross section and nan's outside\n", + "river_bottom_filter_downsampled = []\n", + "for index, row in bottom_filter_downsampled.iterrows():\n", + " if row[\"x\"] > row[\"y\"]:\n", + " filter = 1\n", + " else:\n", + " filter = float(\"nan\")\n", + " river_bottom_filter_downsampled = np.append(river_bottom_filter_downsampled, filter)" ] }, { @@ -1747,28 +1763,30 @@ } ], "source": [ - "# Plotting \n", - "fig,ax = plt.subplots(figsize=(10,4.4))\n", + "# Plotting\n", + "fig, ax = plt.subplots(figsize=(10, 4.4))\n", "contour_plot = plt.tripcolor(\n", - " ADCP_ideal_points_downsamples.utm_x, \n", - " -ADCP_ideal_points_downsamples.waterdepth, \n", - " ADCP_ideal_downsamples.magnitude*river_bottom_filter_downsampled,\n", + " ADCP_ideal_points_downsamples.utm_x,\n", + " -ADCP_ideal_points_downsamples.waterdepth,\n", + " ADCP_ideal_downsamples.magnitude * river_bottom_filter_downsampled,\n", " vmin=min_plot,\n", - " vmax=max_plot\n", - " )\n", + " vmax=max_plot,\n", + ")\n", "\n", "# Plot river bottom for comparison\n", - "plt.plot(ideal_points.utm_x,-bottom_avg,'k', label= 'river bottom')\n", + "plt.plot(ideal_points.utm_x, -bottom_avg, \"k\", label=\"river bottom\")\n", "\n", "# Plot Settings\n", - "plt.xlabel('$UTM_x$ (m)')\n", - "plt.ylabel('Water Depth (m)')\n", - "cbar= plt.colorbar(contour_plot)\n", - "cbar.set_label('Velocity [m/s]')\n", - "plt.ylim([-8.5,-1])\n", - "plt.xlim([400950,401090])\n", - "plt.legend(loc= 7)\n", - "ax.get_xaxis().set_major_formatter(matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), ',')))\n", + "plt.xlabel(\"$UTM_x$ (m)\")\n", + "plt.ylabel(\"Water Depth (m)\")\n", + "cbar = plt.colorbar(contour_plot)\n", + "cbar.set_label(\"Velocity [m/s]\")\n", + "plt.ylim([-8.5, -1])\n", + "plt.xlim([400950, 401090])\n", + "plt.legend(loc=7)\n", + "ax.get_xaxis().set_major_formatter(\n", + " matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), \",\"))\n", + ")\n", "plt.xticks(rotation=45)" ] }, @@ -1842,33 +1860,33 @@ "# Use the requests method to obtain 1 day of instantneous gage height data\n", "water_level_USGS_data = river.io.usgs.request_usgs_data(\n", " station=\"15515500\",\n", - " parameter='00065',\n", - " start_date='2010-08-10',\n", - " end_date='2010-08-10',\n", - " data_type='Instantaneous'\n", - " )\n", + " parameter=\"00065\",\n", + " start_date=\"2010-08-10\",\n", + " end_date=\"2010-08-10\",\n", + " data_type=\"Instantaneous\",\n", + ")\n", "\n", "# Plot data\n", "water_level_USGS_data.plot()\n", "\n", "# Plot Settings\n", - "plt.xlabel('Time')\n", - "plt.ylabel('Gage Height (feet)')\n", + "plt.xlabel(\"Time\")\n", + "plt.ylabel(\"Gage Height (feet)\")\n", "\n", "# Use the requests method to obtain 1 day of instantneous discharge data\n", "discharge_USGS_data = river.io.usgs.request_usgs_data(\n", " station=\"15515500\",\n", - " parameter='00060',\n", - " start_date='2010-08-10',\n", - " end_date='2010-08-10',\n", - " data_type='Instantaneous'\n", - " )\n", + " parameter=\"00060\",\n", + " start_date=\"2010-08-10\",\n", + " end_date=\"2010-08-10\",\n", + " data_type=\"Instantaneous\",\n", + ")\n", "\n", "# Print data\n", "discharge_USGS_data.plot()\n", "# Plot Settings\n", - "plt.xlabel('Time')\n", - "plt.ylabel('Dischage ($f^3/s$)')" + "plt.xlabel(\"Time\")\n", + "plt.ylabel(\"Dischage ($f^3/s$)\")" ] }, { @@ -1888,10 +1906,12 @@ "outputs": [], "source": [ "# Import the simulated data\n", - "d3d_data = netCDF4.Dataset('data/river/ADCP_transect/tanana81010_final_map.nc')\n", + "d3d_data = netCDF4.Dataset(\"data/river/ADCP_transect/tanana81010_final_map.nc\")\n", "\n", "# Get the ADCP sample points\n", - "ADCP_ideal_points_downsamples_xy = ADCP_ideal_points_downsamples.rename(columns={\"utm_x\": \"x\", \"utm_y\": \"y\"})" + "ADCP_ideal_points_downsamples_xy = ADCP_ideal_points_downsamples.rename(\n", + " columns={\"utm_x\": \"x\", \"utm_y\": \"y\"}\n", + ")" ] }, { @@ -1919,11 +1939,13 @@ ], "source": [ "# Interpolate the Delft3D simulated data onto the the sample points\n", - "variables= ['ucy', 'ucx', 'ucz']\n", - "D3D= d3d.variable_interpolation(d3d_data, variables, points= ADCP_ideal_points_downsamples_xy)\n", + "variables = [\"ucy\", \"ucx\", \"ucz\"]\n", + "D3D = d3d.variable_interpolation(\n", + " d3d_data, variables, points=ADCP_ideal_points_downsamples_xy\n", + ")\n", "\n", "# Calculate the magnitude of the velocity\n", - "D3D['magnitude'] = np.sqrt(D3D.ucy**2 + D3D.ucx**2 + D3D.ucz**2)" + "D3D[\"magnitude\"] = np.sqrt(D3D.ucy**2 + D3D.ucx**2 + D3D.ucz**2)" ] }, { @@ -1972,29 +1994,31 @@ ], "source": [ "# Plot Delft3D interpolated Data\n", - "fig,ax = plt.subplots(figsize=(10,4.4))\n", + "fig, ax = plt.subplots(figsize=(10, 4.4))\n", "contour_plot = plt.tripcolor(\n", - " D3D.x, \n", - " -D3D.waterdepth, \n", - " D3D.magnitude*river_bottom_filter_downsampled,\n", + " D3D.x,\n", + " -D3D.waterdepth,\n", + " D3D.magnitude * river_bottom_filter_downsampled,\n", " vmin=min_plot,\n", " vmax=max_plot,\n", - " #shading='gouraud'\n", - " alpha=1\n", + " # shading='gouraud'\n", + " alpha=1,\n", ")\n", "\n", "# Plot the river bottom calculated frol ADCP for comparison\n", - "plt.plot(ideal_points.utm_x,-bottom_avg,'k', label= 'river bottom')\n", + "plt.plot(ideal_points.utm_x, -bottom_avg, \"k\", label=\"river bottom\")\n", "\n", "# Figure settings\n", - "plt.xlabel('$UTM_x (m)$')\n", - "plt.ylabel('Water Depth (m)')\n", - "cbar= plt.colorbar(contour_plot)\n", - "cbar.set_label('velocity [m/s]')\n", - "plt.ylim([-8.5,-1])\n", - "plt.xlim([400960,401090])\n", - "plt.legend(loc= 7)\n", - "ax.get_xaxis().set_major_formatter(matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), ',')))\n", + "plt.xlabel(\"$UTM_x (m)$\")\n", + "plt.ylabel(\"Water Depth (m)\")\n", + "cbar = plt.colorbar(contour_plot)\n", + "cbar.set_label(\"velocity [m/s]\")\n", + "plt.ylim([-8.5, -1])\n", + "plt.xlim([400960, 401090])\n", + "plt.legend(loc=7)\n", + "ax.get_xaxis().set_major_formatter(\n", + " matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), \",\"))\n", + ")\n", "plt.xticks(rotation=45)" ] }, @@ -2021,7 +2045,10 @@ "outputs": [], "source": [ "# L1\n", - "L1_Magnitude= abs(ADCP_ideal_downsamples.magnitude-D3D.magnitude)/ADCP_ideal_downsamples.magnitude" + "L1_Magnitude = (\n", + " abs(ADCP_ideal_downsamples.magnitude - D3D.magnitude)\n", + " / ADCP_ideal_downsamples.magnitude\n", + ")" ] }, { @@ -2039,15 +2066,17 @@ "metadata": {}, "outputs": [], "source": [ - "river_bottom_edge_filter_downsampled= []\n", - "for i in L1_Magnitude:\n", - " if 1 > i: \n", - " filter= 1 \n", - " else: \n", - " filter= float(\"nan\")\n", - " river_bottom_edge_filter_downsampled= np.append(river_bottom_edge_filter_downsampled, filter)\n", - " \n", - "error_filter = river_bottom_edge_filter_downsampled*river_bottom_filter_downsampled" + "river_bottom_edge_filter_downsampled = []\n", + "for i in L1_Magnitude:\n", + " if 1 > i:\n", + " filter = 1\n", + " else:\n", + " filter = float(\"nan\")\n", + " river_bottom_edge_filter_downsampled = np.append(\n", + " river_bottom_edge_filter_downsampled, filter\n", + " )\n", + "\n", + "error_filter = river_bottom_edge_filter_downsampled * river_bottom_filter_downsampled" ] }, { @@ -2079,7 +2108,7 @@ ], "source": [ "# Calculate and priont the Mean Absolute Error\n", - "MAE= np.sum(L1_Magnitude*error_filter)/len(L1_Magnitude[L1_Magnitude< 1000 ])\n", + "MAE = np.sum(L1_Magnitude * error_filter) / len(L1_Magnitude[L1_Magnitude < 1000])\n", "MAE" ] }, @@ -2121,33 +2150,35 @@ ], "source": [ "# Set the min and max error values\n", - "max_plot_error=1\n", - "min_plot_error=0\n", + "max_plot_error = 1\n", + "min_plot_error = 0\n", "\n", "# Plotting the L1 error\n", - "fig,ax = plt.subplots(figsize=(10,4.4))\n", + "fig, ax = plt.subplots(figsize=(10, 4.4))\n", "contour_plot_L1 = plt.tripcolor(\n", - " D3D.x, \n", - " -D3D.waterdepth, \n", - " L1_Magnitude*error_filter,\n", + " D3D.x,\n", + " -D3D.waterdepth,\n", + " L1_Magnitude * error_filter,\n", " vmin=min_plot_error,\n", - " vmax=max_plot_error\n", - " )\n", + " vmax=max_plot_error,\n", + ")\n", "\n", "# Plot the river bottom for comparison\n", - "plt.plot(ideal_points.utm_x,-bottom_avg,'k', label= 'river bottom')\n", + "plt.plot(ideal_points.utm_x, -bottom_avg, \"k\", label=\"river bottom\")\n", "\n", "# Plot settings\n", - "plt.xlim([400960,401090])\n", - "plt.ylim([-8.5,-1])\n", - "plt.xlabel('UTM x (m)')\n", - "plt.ylabel('Water Depth (m)')\n", - "cbar= plt.colorbar(contour_plot_L1)\n", - "cbar.set_label('$L_1$ Velocity Error')\n", - "plt.legend(loc= 7)\n", - "\n", - "ax.get_xaxis().set_major_formatter(matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), ',')))\n", - "plt.xticks(rotation=45)\n" + "plt.xlim([400960, 401090])\n", + "plt.ylim([-8.5, -1])\n", + "plt.xlabel(\"UTM x (m)\")\n", + "plt.ylabel(\"Water Depth (m)\")\n", + "cbar = plt.colorbar(contour_plot_L1)\n", + "cbar.set_label(\"$L_1$ Velocity Error\")\n", + "plt.legend(loc=7)\n", + "\n", + "ax.get_xaxis().set_major_formatter(\n", + " matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), \",\"))\n", + ")\n", + "plt.xticks(rotation=45)" ] }, { @@ -2169,8 +2200,11 @@ "metadata": {}, "outputs": [], "source": [ - "# L2 \n", - "L2_Magnitude= ((ADCP_ideal_downsamples.magnitude-D3D.magnitude)/ADCP_ideal_downsamples.magnitude)**2" + "# L2\n", + "L2_Magnitude = (\n", + " (ADCP_ideal_downsamples.magnitude - D3D.magnitude)\n", + " / ADCP_ideal_downsamples.magnitude\n", + ") ** 2" ] }, { @@ -2202,7 +2236,7 @@ } ], "source": [ - "MSE=np.sum(L2_Magnitude*error_filter)/np.size(L2_Magnitude[L2_Magnitude< 1000])\n", + "MSE = np.sum(L2_Magnitude * error_filter) / np.size(L2_Magnitude[L2_Magnitude < 1000])\n", "MSE" ] }, @@ -2244,29 +2278,31 @@ ], "source": [ "# Create a contour plot of the error\n", - "# Plotting \n", - "fig,ax = plt.subplots(figsize=(10,4.4))\n", + "# Plotting\n", + "fig, ax = plt.subplots(figsize=(10, 4.4))\n", "contour_plot_L2 = plt.tripcolor(\n", - " D3D.x, \n", - " -D3D.waterdepth, \n", - " L2_Magnitude*error_filter,\n", + " D3D.x,\n", + " -D3D.waterdepth,\n", + " L2_Magnitude * error_filter,\n", " vmin=min_plot_error,\n", - " vmax=max_plot_error\n", + " vmax=max_plot_error,\n", ")\n", "\n", "# Plot the river bottom for comparison\n", - "plt.plot(ideal_points.utm_x,-bottom_avg,'k', label= 'river bottom')\n", + "plt.plot(ideal_points.utm_x, -bottom_avg, \"k\", label=\"river bottom\")\n", "\n", "# Plot settings\n", - "plt.xlim([400960,401090])\n", - "plt.ylim([-8.5,-1])\n", - "plt.xlabel('UTM x (m)')\n", - "plt.ylabel('Water Depth (m)')\n", - "cbar= plt.colorbar(contour_plot_L1)\n", - "cbar.set_label('$L_2$ Velocity Error')\n", - "plt.legend(loc= 7)\n", - "\n", - "ax.get_xaxis().set_major_formatter(matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), ',')))\n", + "plt.xlim([400960, 401090])\n", + "plt.ylim([-8.5, -1])\n", + "plt.xlabel(\"UTM x (m)\")\n", + "plt.ylabel(\"Water Depth (m)\")\n", + "cbar = plt.colorbar(contour_plot_L1)\n", + "cbar.set_label(\"$L_2$ Velocity Error\")\n", + "plt.legend(loc=7)\n", + "\n", + "ax.get_xaxis().set_major_formatter(\n", + " matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), \",\"))\n", + ")\n", "plt.xticks(rotation=45)" ] }, @@ -2301,7 +2337,7 @@ ], "source": [ "# L inf\n", - "L_inf=np.nanmax(L1_Magnitude*error_filter)\n", + "L_inf = np.nanmax(L1_Magnitude * error_filter)\n", "L_inf" ] }, diff --git a/examples/Delft3D_example.ipynb b/examples/Delft3D_example.ipynb index a87de112b..1c76ca080 100644 --- a/examples/Delft3D_example.ipynb +++ b/examples/Delft3D_example.ipynb @@ -22,14 +22,15 @@ "outputs": [], "source": [ "from os.path import abspath, dirname, join, normpath, relpath\n", - "from mhkit.river.io import d3d \n", + "from mhkit.river.io import d3d\n", "from math import isclose\n", "import scipy.interpolate as interp\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "import netCDF4\n", - "plt.rcParams.update({'font.size': 15}) # Set font size of plots title and labels " + "\n", + "plt.rcParams.update({\"font.size\": 15}) # Set font size of plots title and labels" ] }, { @@ -111,16 +112,16 @@ ], "source": [ "# Downloading Data\n", - "datadir = normpath(join(relpath(join('data', 'river', 'd3d'))))\n", - "filename= 'turbineTest_map.nc'\n", - "d3d_data = netCDF4.Dataset(join(datadir,filename)) \n", + "datadir = normpath(join(relpath(join(\"data\", \"river\", \"d3d\"))))\n", + "filename = \"turbineTest_map.nc\"\n", + "d3d_data = netCDF4.Dataset(join(datadir, filename))\n", "\n", "# Printing variable and description\n", "for var in d3d_data.variables.keys():\n", - " try: \n", + " try:\n", " d3d_data[var].long_name\n", " except:\n", - " print(f'\"{var}\"') \n", + " print(f'\"{var}\"')\n", " else:\n", " print(f'\"{var}\": {d3d_data[var].long_name}')" ] @@ -150,7 +151,7 @@ } ], "source": [ - "time= d3d.get_all_time(d3d_data)\n", + "time = d3d.get_all_time(d3d_data)\n", "print(time)" ] }, @@ -186,7 +187,7 @@ ], "source": [ "seconds_run = 62\n", - "time_index=d3d._convert_time(d3d_data,seconds_run=seconds_run)\n", + "time_index = d3d._convert_time(d3d_data, seconds_run=seconds_run)\n", "print(time_index)" ] }, @@ -229,14 +230,14 @@ } ], "source": [ - "# Getting variable data \n", - "variable= 'ucx' \n", - "var_data_df= d3d.get_all_data_points(d3d_data, variable, time_index=4)\n", + "# Getting variable data\n", + "variable = \"ucx\"\n", + "var_data_df = d3d.get_all_data_points(d3d_data, variable, time_index=4)\n", "print(var_data_df)\n", "\n", - "# Setting plot limits \n", - "max_plot_vel= 1.25\n", - "min_plot_vel=0.5" + "# Setting plot limits\n", + "max_plot_vel = 1.25\n", + "min_plot_vel = 0.5" ] }, { @@ -331,21 +332,21 @@ ], "source": [ "# Use rectangular grid min and max to find flume centerline\n", - "xmin=var_data_df.x.max()\n", - "xmax=var_data_df.x.min()\n", + "xmin = var_data_df.x.max()\n", + "xmax = var_data_df.x.min()\n", "\n", - "ymin=var_data_df.y.max()\n", - "ymax=var_data_df.y.min()\n", + "ymin = var_data_df.y.max()\n", + "ymax = var_data_df.y.min()\n", "\n", - "waterdepth_min=var_data_df.waterdepth.max()\n", - "waterdepth_max=var_data_df.waterdepth.min()\n", + "waterdepth_min = var_data_df.waterdepth.max()\n", + "waterdepth_max = var_data_df.waterdepth.min()\n", "\n", - "# Creating one array and 2 points \n", + "# Creating one array and 2 points\n", "x = np.linspace(xmin, xmax)\n", - "y = np.mean([ymin,ymax])\n", - "waterdepth = np.mean([waterdepth_min,waterdepth_max])\n", + "y = np.mean([ymin, ymax])\n", + "waterdepth = np.mean([waterdepth_min, waterdepth_max])\n", "\n", - "# Creating an array of points \n", + "# Creating an array of points\n", "cline_points = d3d.create_points(x, y, waterdepth)\n", "cline_points.head()" ] @@ -390,19 +391,19 @@ "source": [ "# Interpolate raw data onto the centerline\n", "cline_variable = interp.griddata(\n", - " var_data_df[['x','y','waterdepth']], \n", + " var_data_df[[\"x\", \"y\", \"waterdepth\"]],\n", " var_data_df[variable],\n", - " cline_points[['x','y','waterdepth']]\n", - ") \n", + " cline_points[[\"x\", \"y\", \"waterdepth\"]],\n", + ")\n", "\n", "# Plotting\n", - "plt.figure(figsize=(12,5))\n", + "plt.figure(figsize=(12, 5))\n", "plt.plot(x, cline_variable)\n", "\n", "plt.grid()\n", - "plt.xlabel('x (m)')\n", - "plt.ylabel('$u_x$ [m/s]' )\n", - "plt.title(f'Centerline Velocity at: {var_data_df.time[1]} s')" + "plt.xlabel(\"x (m)\")\n", + "plt.ylabel(\"$u_x$ [m/s]\")\n", + "plt.title(f\"Centerline Velocity at: {var_data_df.time[1]} s\")" ] }, { @@ -451,23 +452,23 @@ "layer = 2\n", "layer_data = d3d.get_layer_data(d3d_data, variable, layer)\n", "\n", - "# Plotting \n", - "plt.figure(figsize=(12,4))\n", + "# Plotting\n", + "plt.figure(figsize=(12, 4))\n", "contour_plot = plt.tricontourf(\n", " layer_data.x,\n", - " layer_data.y, \n", - " layer_data.v, \n", + " layer_data.y,\n", + " layer_data.v,\n", " vmin=min_plot_vel,\n", " vmax=max_plot_vel,\n", - " levels=np.linspace(min_plot_vel,max_plot_vel,10)\n", + " levels=np.linspace(min_plot_vel, max_plot_vel, 10),\n", ")\n", - " \n", + "\n", "cbar = plt.colorbar(contour_plot)\n", - "cbar.set_label('$u_x$ [m/s]')\n", - " \n", - "plt.xlabel('x [m]')\n", - "plt.ylabel('y [m]')\n", - "plt.title(f'Velocity on Layer {layer} at Time: {layer_data.time[1]} s')" + "cbar.set_label(\"$u_x$ [m/s]\")\n", + "\n", + "plt.xlabel(\"x [m]\")\n", + "plt.ylabel(\"y [m]\")\n", + "plt.title(f\"Velocity on Layer {layer} at Time: {layer_data.time[1]} s\")" ] }, { @@ -617,9 +618,9 @@ "# Create x-y plane at z level midpoint\n", "x2 = np.linspace(xmin, xmax, num=100)\n", "y_contour = np.linspace(ymin, ymax, num=40)\n", - "z2 = np.mean([waterdepth_min,waterdepth_max])\n", + "z2 = np.mean([waterdepth_min, waterdepth_max])\n", "\n", - "contour_points = d3d.create_points(x2, y_contour, z2) \n", + "contour_points = d3d.create_points(x2, y_contour, z2)\n", "contour_points" ] }, @@ -639,9 +640,9 @@ "outputs": [], "source": [ "contour_variable = interp.griddata(\n", - " var_data_df[['x','y','waterdepth']],\n", + " var_data_df[[\"x\", \"y\", \"waterdepth\"]],\n", " var_data_df[variable],\n", - " contour_points[['x','y','waterdepth']]\n", + " contour_points[[\"x\", \"y\", \"waterdepth\"]],\n", ")" ] }, @@ -673,23 +674,23 @@ } ], "source": [ - "# Plotting \n", - "plt.figure(figsize=(12,4))\n", + "# Plotting\n", + "plt.figure(figsize=(12, 4))\n", "contour_plot = plt.tricontourf(\n", " contour_points.x,\n", " contour_points.y,\n", " contour_variable,\n", " vmin=min_plot_vel,\n", " vmax=max_plot_vel,\n", - " levels=np.linspace(min_plot_vel,max_plot_vel,10)\n", + " levels=np.linspace(min_plot_vel, max_plot_vel, 10),\n", ")\n", "\n", - "plt.xlabel('x (m)')\n", - "plt.ylabel('y (m)')\n", - "plt.title(f'Velocity on x-y Plane')\n", + "plt.xlabel(\"x (m)\")\n", + "plt.ylabel(\"y (m)\")\n", + "plt.title(f\"Velocity on x-y Plane\")\n", "\n", - "cbar= plt.colorbar(contour_plot)\n", - "cbar.set_label(f'$u_x$ [m/s]')" + "cbar = plt.colorbar(contour_plot)\n", + "cbar.set_label(f\"$u_x$ [m/s]\")" ] }, { @@ -925,33 +926,29 @@ } ], "source": [ - "# Calculating turbulent intensity \n", - "TI=d3d.turbulent_intensity(\n", - " d3d_data,\n", - " points=contour_points,\n", - " intermediate_values=True\n", - ") \n", + "# Calculating turbulent intensity\n", + "TI = d3d.turbulent_intensity(d3d_data, points=contour_points, intermediate_values=True)\n", "\n", - "# Creating new plot limits \n", - "max_plot_TI=27\n", - "min_plot_TI=0\n", + "# Creating new plot limits\n", + "max_plot_TI = 27\n", + "min_plot_TI = 0\n", "\n", - "# Plotting \n", - "plt.figure(figsize=(12,4))\n", + "# Plotting\n", + "plt.figure(figsize=(12, 4))\n", "contour_plot = plt.tricontourf(\n", - " TI.x, \n", - " TI.y, \n", + " TI.x,\n", + " TI.y,\n", " TI.turbulent_intensity,\n", - " vmin=min_plot_TI, \n", + " vmin=min_plot_TI,\n", " vmax=max_plot_TI,\n", - " levels=np.linspace(min_plot_TI,max_plot_TI,10)\n", + " levels=np.linspace(min_plot_TI, max_plot_TI, 10),\n", ")\n", "\n", - "plt.xlabel('x (m)')\n", - "plt.ylabel('y (m)')\n", - "plt.title('Turbulent Intensity')\n", - "cbar= plt.colorbar(contour_plot)\n", - "cbar.set_label('Turbulent Intensity [%]')\n", + "plt.xlabel(\"x (m)\")\n", + "plt.ylabel(\"y (m)\")\n", + "plt.title(\"Turbulent Intensity\")\n", + "cbar = plt.colorbar(contour_plot)\n", + "cbar.set_label(\"Turbulent Intensity [%]\")\n", "\n", "TI" ] @@ -1183,37 +1180,39 @@ } ], "source": [ - "variables= ['turkin1', 'ucx', 'ucy', 'ucz']\n", + "variables = [\"turkin1\", \"ucx\", \"ucy\", \"ucz\"]\n", "\n", - "Var= d3d.variable_interpolation(d3d_data, variables, points='faces', edges = 'nearest')\n", + "Var = d3d.variable_interpolation(d3d_data, variables, points=\"faces\", edges=\"nearest\")\n", "\n", "# Replacing negative numbers close to zero with zero\n", - "neg_index=np.where(Var['turkin1']<0)# Finding negative numbers\n", + "neg_index = np.where(Var[\"turkin1\"] < 0) # Finding negative numbers\n", "\n", - "# Determining if negative number are close to zero \n", - "zero_bool= np.isclose(\n", - " Var['turkin1'][Var['turkin1']<0].array, \n", - " np.zeros(len(Var['turkin1'][Var['turkin1']<0].array)),\n", - " atol=1.0e-4\n", + "# Determining if negative number are close to zero\n", + "zero_bool = np.isclose(\n", + " Var[\"turkin1\"][Var[\"turkin1\"] < 0].array,\n", + " np.zeros(len(Var[\"turkin1\"][Var[\"turkin1\"] < 0].array)),\n", + " atol=1.0e-4,\n", ")\n", "\n", - "# Identifying the location of negative values close to zero \n", - "zero_ind= neg_index[0][zero_bool] \n", + "# Identifying the location of negative values close to zero\n", + "zero_ind = neg_index[0][zero_bool]\n", "\n", "# Identifying the location of negative number that are not close to zero\n", - "non_zero_ind= neg_index[0][~zero_bool]\n", + "non_zero_ind = neg_index[0][~zero_bool]\n", "\n", - "# Replacing negative number close to zero with zero \n", - "Var.loc[zero_ind,'turkin1']=np.zeros(len(zero_ind)) \n", + "# Replacing negative number close to zero with zero\n", + "Var.loc[zero_ind, \"turkin1\"] = np.zeros(len(zero_ind))\n", "\n", - "# Replacing negative numbers not close to zero with nan \n", - "Var.loc[non_zero_ind,'turkin1']=[np.nan]*len(non_zero_ind)\n", + "# Replacing negative numbers not close to zero with nan\n", + "Var.loc[non_zero_ind, \"turkin1\"] = [np.nan] * len(non_zero_ind)\n", "\n", - "# Calculating the root mean squared velocity \n", - "Var['u_mag']=d3d.unorm(np.array(Var['ucx']),np.array(Var['ucy']), np.array(Var['ucz']))\n", + "# Calculating the root mean squared velocity\n", + "Var[\"u_mag\"] = d3d.unorm(\n", + " np.array(Var[\"ucx\"]), np.array(Var[\"ucy\"]), np.array(Var[\"ucz\"])\n", + ")\n", "\n", - "# Calculating turbulent intensity as a percent \n", - "Var['turbulent_intensity']= (np.sqrt(2/3*Var['turkin1'])/Var['u_mag'])*100 \n", + "# Calculating turbulent intensity as a percent\n", + "Var[\"turbulent_intensity\"] = (np.sqrt(2 / 3 * Var[\"turkin1\"]) / Var[\"u_mag\"]) * 100\n", "\n", "Var" ] @@ -1258,43 +1257,47 @@ } ], "source": [ - "turbine_x_loc= 6 \n", - "turbine_diameter= 0.7\n", - "N=1\n", - "x_sample = turbine_x_loc+N*turbine_diameter\n", + "turbine_x_loc = 6\n", + "turbine_diameter = 0.7\n", + "N = 1\n", + "x_sample = turbine_x_loc + N * turbine_diameter\n", "y_samples = np.linspace(ymin, ymax, num=40)\n", - "waterdepth_samples = np.linspace(waterdepth_min,waterdepth_max, num=256)\n", + "waterdepth_samples = np.linspace(waterdepth_min, waterdepth_max, num=256)\n", "\n", - "variables= ['turkin1', 'ucx', 'ucy', 'ucz']\n", - "sample_points = d3d.create_points(x_sample, y_samples, waterdepth_samples) \n", + "variables = [\"turkin1\", \"ucx\", \"ucy\", \"ucz\"]\n", + "sample_points = d3d.create_points(x_sample, y_samples, waterdepth_samples)\n", "\n", - "Var_sample= d3d.variable_interpolation(d3d_data, variables, points= sample_points, edges = 'nearest')\n", + "Var_sample = d3d.variable_interpolation(\n", + " d3d_data, variables, points=sample_points, edges=\"nearest\"\n", + ")\n", "\n", - "#root mean squared calculation \n", - "Var_sample['u_mag']=d3d.unorm(\n", - " np.array(Var_sample['ucx']),\n", - " np.array(Var_sample['ucy']), \n", - " np.array(Var_sample['ucz'])\n", - ") \n", + "# root mean squared calculation\n", + "Var_sample[\"u_mag\"] = d3d.unorm(\n", + " np.array(Var_sample[\"ucx\"]),\n", + " np.array(Var_sample[\"ucy\"]),\n", + " np.array(Var_sample[\"ucz\"]),\n", + ")\n", "# turbulent intesity calculation\n", - "Var_sample['turbulent_intensity']= np.sqrt(2/3*Var_sample['turkin1'])/Var_sample['u_mag']*100 \n", + "Var_sample[\"turbulent_intensity\"] = (\n", + " np.sqrt(2 / 3 * Var_sample[\"turkin1\"]) / Var_sample[\"u_mag\"] * 100\n", + ")\n", "\n", - "# Plotting \n", - "plt.figure(figsize=(10,4.4))\n", + "# Plotting\n", + "plt.figure(figsize=(10, 4.4))\n", "contour_plot = plt.tricontourf(\n", - " Var_sample.y, \n", - " Var_sample.waterdepth, \n", + " Var_sample.y,\n", + " Var_sample.waterdepth,\n", " Var_sample.turbulent_intensity,\n", - " vmin=min_plot_TI, \n", + " vmin=min_plot_TI,\n", " vmax=max_plot_TI,\n", - " levels=np.linspace(min_plot_TI,max_plot_TI,10)\n", + " levels=np.linspace(min_plot_TI, max_plot_TI, 10),\n", ")\n", "\n", - "plt.xlabel('y (m)')\n", - "plt.ylabel('z (m)')\n", - "plt.title('Turbulent Intensity')\n", - "cbar= plt.colorbar(contour_plot)\n", - "cbar.set_label('Turbulent Intensity [%]')" + "plt.xlabel(\"y (m)\")\n", + "plt.ylabel(\"z (m)\")\n", + "plt.title(\"Turbulent Intensity\")\n", + "cbar = plt.colorbar(contour_plot)\n", + "cbar.set_label(\"Turbulent Intensity [%]\")" ] }, { diff --git a/examples/PacWave_resource_characterization_example.ipynb b/examples/PacWave_resource_characterization_example.ipynb index 80594fba1..0b4248f7a 100644 --- a/examples/PacWave_resource_characterization_example.ipynb +++ b/examples/PacWave_resource_characterization_example.ipynb @@ -24,7 +24,7 @@ "from sklearn.mixture import GaussianMixture\n", "from mhkit.wave.io import ndbc\n", "import matplotlib.pyplot as plt\n", - "from matplotlib import colors \n", + "from matplotlib import colors\n", "from scipy import stats\n", "import pandas as pd\n", "import numpy as np\n", @@ -32,12 +32,15 @@ "import os\n", "\n", "import matplotlib.pylab as pylab\n", - "params = {'legend.fontsize': 'x-large',\n", - " 'figure.figsize': (15, 5),\n", - " 'axes.labelsize': 'x-large',\n", - " 'axes.titlesize':'x-large',\n", - " 'xtick.labelsize':'x-large',\n", - " 'ytick.labelsize':'x-large'}\n", + "\n", + "params = {\n", + " \"legend.fontsize\": \"x-large\",\n", + " \"figure.figsize\": (15, 5),\n", + " \"axes.labelsize\": \"x-large\",\n", + " \"axes.titlesize\": \"x-large\",\n", + " \"xtick.labelsize\": \"x-large\",\n", + " \"ytick.labelsize\": \"x-large\",\n", + "}\n", "pylab.rcParams.update(params)" ] }, @@ -207,15 +210,30 @@ } ], "source": [ - "m = folium.Map(location=[44.613600975457715, -123.74317583354498], zoom_start=9, tiles=\"Stamen Terrain\", control_scale = True)\n", + "m = folium.Map(\n", + " location=[44.613600975457715, -123.74317583354498],\n", + " zoom_start=9,\n", + " tiles=\"Stamen Terrain\",\n", + " control_scale=True,\n", + ")\n", "\n", "tooltip = \"NDBC 46050\"\n", - "folium.Marker([44.669, -124.546], popup=\" Water depth: 160 m\", tooltip=tooltip).add_to(m)\n", + "folium.Marker(\n", + " [44.669, -124.546], popup=\" Water depth: 160 m\", tooltip=tooltip\n", + ").add_to(m)\n", "\n", "tooltip = \"PACWAVE North\"\n", - "folium.Marker([44.69, -124.13472222222222], tooltip=tooltip, icon=folium.Icon(color='green',icon=\"th-large\")).add_to(m)\n", + "folium.Marker(\n", + " [44.69, -124.13472222222222],\n", + " tooltip=tooltip,\n", + " icon=folium.Icon(color=\"green\", icon=\"th-large\"),\n", + ").add_to(m)\n", "tooltip = \"PACWAVE South\"\n", - "folium.Marker([44.58444444444444, -124.2125], tooltip=tooltip, icon=folium.Icon(color='red', icon=\"th\")).add_to(m)\n", + "folium.Marker(\n", + " [44.58444444444444, -124.2125],\n", + " tooltip=tooltip,\n", + " icon=folium.Icon(color=\"red\", icon=\"th\"),\n", + ").add_to(m)\n", "\n", "m.save(\"index.png\")\n", "\n", @@ -259,7 +277,7 @@ ], "source": [ "# Get buoy metadata\n", - "buoy_number = '46050' \n", + "buoy_number = \"46050\"\n", "buoy_metadata = ndbc.get_buoy_metadata(buoy_number)\n", "print(\"Buoy Metadata:\")\n", "for key, value in buoy_metadata.items():\n", @@ -631,17 +649,17 @@ ], "source": [ "# Spectral wave density for buoy 46050\n", - "parameter = 'swden'\n", + "parameter = \"swden\"\n", "\n", "\n", "# Request list of available files\n", - "ndbc_available_data= ndbc.available_data(parameter, buoy_number)\n", + "ndbc_available_data = ndbc.available_data(parameter, buoy_number)\n", "\n", "# Pass file names to NDBC and request the data\n", - "filenames = ndbc_available_data['filename']\n", + "filenames = ndbc_available_data[\"filename\"]\n", "ndbc_requested_data = ndbc.request_data(parameter, filenames)\n", "\n", - "ndbc_requested_data['2020']" + "ndbc_requested_data[\"2020\"]" ] }, { @@ -1048,13 +1066,13 @@ } ], "source": [ - "ndbc_data={}\n", + "ndbc_data = {}\n", "# Create a Datetime Index and remove NOAA date columns for each year\n", "for year in ndbc_requested_data:\n", " year_data = ndbc_requested_data[year]\n", " ndbc_data[year] = ndbc.to_datetime_index(parameter, year_data)\n", - " \n", - "ndbc_data['2020']" + "\n", + "ndbc_data[\"2020\"]" ] }, { @@ -1073,11 +1091,11 @@ "outputs": [], "source": [ "# Intialize empty lists to store the results from each year\n", - "Hm0_list=[]\n", - "Te_list=[]\n", - "J_list=[]\n", - "Tp_list=[]\n", - "Tz_list=[]\n", + "Hm0_list = []\n", + "Te_list = []\n", + "J_list = []\n", + "Tp_list = []\n", + "Tz_list = []\n", "\n", "# Iterate over each year and save the result in the initalized dictionary\n", "for year in ndbc_data:\n", @@ -1085,26 +1103,26 @@ " year_data = data_raw[data_raw != 999.0].dropna()\n", " Hm0_list.append(resource.significant_wave_height(year_data.T))\n", " Te_list.append(resource.energy_period(year_data.T))\n", - " J_list.append(resource.energy_flux(year_data.T, h=399.))\n", + " J_list.append(resource.energy_flux(year_data.T, h=399.0))\n", " Tp_list.append(resource.peak_period(year_data.T))\n", " Tz_list.append(resource.average_zero_crossing_period(year_data.T))\n", - " \n", + "\n", "# Concatenate list of Series into a single DataFrame\n", - "Te = pd.concat(Te_list ,axis=0)\n", - "Tp = pd.concat(Tp_list ,axis=0)\n", - "Hm0 = pd.concat(Hm0_list ,axis=0)\n", - "J = pd.concat(J_list ,axis=0)\n", - "Tz = pd.concat(Tz_list ,axis=0)\n", - "data = pd.concat([Hm0, Te, Tp, J, Tz],axis=1)\n", + "Te = pd.concat(Te_list, axis=0)\n", + "Tp = pd.concat(Tp_list, axis=0)\n", + "Hm0 = pd.concat(Hm0_list, axis=0)\n", + "J = pd.concat(J_list, axis=0)\n", + "Tz = pd.concat(Tz_list, axis=0)\n", + "data = pd.concat([Hm0, Te, Tp, J, Tz], axis=1)\n", "\n", "# Calculate wave steepness\n", - "data['Sm'] = data.Hm0 / (9.81/(2*np.pi) * data.Tz**2)\n", + "data[\"Sm\"] = data.Hm0 / (9.81 / (2 * np.pi) * data.Tz**2)\n", "\n", "# Drop any NaNs created from the calculation of Hm0 or Te\n", "data.dropna(inplace=True)\n", "# Sort the DateTime index\n", "data.sort_index(inplace=True)\n", - "#data" + "# data" ] }, { @@ -1140,20 +1158,22 @@ "# Start by cleaning the data of outliers\n", "data_clean = data[data.Hm0 < 20]\n", "sigma = data_clean.J.std()\n", - "data_clean = data_clean[data_clean.J > (data_clean.J.mean() - 0.9* sigma)]\n", + "data_clean = data_clean[data_clean.J > (data_clean.J.mean() - 0.9 * sigma)]\n", "\n", - "# Organizing the cleaned data \n", - "Hm0=data_clean.Hm0\n", - "Te=data_clean.Te\n", - "J=data_clean.J\n", + "# Organizing the cleaned data\n", + "Hm0 = data_clean.Hm0\n", + "Te = data_clean.Te\n", + "J = data_clean.J\n", "\n", - "# Setting the bins for the resource frequency and power distribution \n", + "# Setting the bins for the resource frequency and power distribution\n", "Hm0_bin_size = 0.5\n", - "Hm0_edges = np.arange(0,15+Hm0_bin_size,Hm0_bin_size)\n", + "Hm0_edges = np.arange(0, 15 + Hm0_bin_size, Hm0_bin_size)\n", "Te_bin_size = 1\n", - "Te_edges = np.arange(0, 20+Te_bin_size,Te_bin_size)\n", + "Te_edges = np.arange(0, 20 + Te_bin_size, Te_bin_size)\n", "\n", - "fig = mhkit.wave.graphics.plot_avg_annual_energy_matrix(Hm0, Te, J, Hm0_edges=Hm0_edges, Te_edges=Te_edges)" + "fig = mhkit.wave.graphics.plot_avg_annual_energy_matrix(\n", + " Hm0, Te, J, Hm0_edges=Hm0_edges, Te_edges=Te_edges\n", + ")" ] }, { @@ -1212,43 +1232,45 @@ } ], "source": [ - "months=data_clean.index.month\n", - "data_group=data_clean.groupby(months)\n", + "months = data_clean.index.month\n", + "data_group = data_clean.groupby(months)\n", "\n", "QoIs = data_clean.keys()\n", - "fig, axs = plt.subplots(len(QoIs),1, figsize=(8, 12), sharex=True)\n", - "#shade between 25% and 75%\n", + "fig, axs = plt.subplots(len(QoIs), 1, figsize=(8, 12), sharex=True)\n", + "# shade between 25% and 75%\n", "QoIs = data_clean.keys()\n", "for i in range(len(QoIs)):\n", " QoI = QoIs[i]\n", - " axs[i].plot(data_group.median()[QoI], marker='.')\n", + " axs[i].plot(data_group.median()[QoI], marker=\".\")\n", "\n", - " axs[i].fill_between(months.unique(),\n", - " data_group.describe()[QoI, '25%'],\n", - " data_group.describe()[QoI, '75%'],\n", - " alpha=0.2)\n", + " axs[i].fill_between(\n", + " months.unique(),\n", + " data_group.describe()[QoI, \"25%\"],\n", + " data_group.describe()[QoI, \"75%\"],\n", + " alpha=0.2,\n", + " )\n", " axs[i].grid()\n", " mx = data_group.median()[QoI].max()\n", - " mx_month= data_group.median()[QoI].argmax()+1\n", + " mx_month = data_group.median()[QoI].argmax() + 1\n", " mn = data_group.median()[QoI].min()\n", - " mn_month= data_group.median()[QoI].argmin()+1\n", - " print('--------------------------------------------')\n", - " print(f'{QoI} max:{np.round(mx,4)}, month: {mx_month}')\n", - " print(f'{QoI} min:{np.round(mn,4)}, month: {mn_month}')\n", + " mn_month = data_group.median()[QoI].argmin() + 1\n", + " print(\"--------------------------------------------\")\n", + " print(f\"{QoI} max:{np.round(mx,4)}, month: {mx_month}\")\n", + " print(f\"{QoI} min:{np.round(mn,4)}, month: {mn_month}\")\n", "\n", - "plt.setp(axs[5], xlabel='Month')\n", + "plt.setp(axs[5], xlabel=\"Month\")\n", "\n", - "plt.setp(axs[0], ylabel=f'{QoIs[0]} [m]')\n", - "plt.setp(axs[1], ylabel=f'{QoIs[1]} [s]')\n", - "plt.setp(axs[2], ylabel=f'{QoIs[2]} [s]')\n", - "plt.setp(axs[3], ylabel=f'{QoIs[3]} [kW/M]')\n", - "plt.setp(axs[4], ylabel=f'{QoIs[4]} [s]')\n", - "plt.setp(axs[5], ylabel=f'{QoIs[5]} [ ]')\n", + "plt.setp(axs[0], ylabel=f\"{QoIs[0]} [m]\")\n", + "plt.setp(axs[1], ylabel=f\"{QoIs[1]} [s]\")\n", + "plt.setp(axs[2], ylabel=f\"{QoIs[2]} [s]\")\n", + "plt.setp(axs[3], ylabel=f\"{QoIs[3]} [kW/M]\")\n", + "plt.setp(axs[4], ylabel=f\"{QoIs[4]} [s]\")\n", + "plt.setp(axs[5], ylabel=f\"{QoIs[5]} [ ]\")\n", "\n", "\n", "plt.tight_layout()\n", "\n", - "plt.savefig('40650QoIs.png')" + "plt.savefig(\"40650QoIs.png\")" ] }, { @@ -1290,7 +1312,7 @@ ], "source": [ "ax = graphics.monthly_cumulative_distribution(data_clean.J)\n", - "plt.xlim([1000, 1E6])" + "plt.xlim([1000, 1e6])" ] }, { @@ -1325,49 +1347,49 @@ } ], "source": [ - "# Delta time of sea-states \n", - "dt = (data_clean.index[2]-data_clean.index[1]).seconds \n", + "# Delta time of sea-states\n", + "dt = (data_clean.index[2] - data_clean.index[1]).seconds\n", "\n", "# Return period (years) of interest\n", - "period = 100 \n", + "period = 100\n", "copulas100 = contours.environmental_contours(\n", - " data.Hm0, \n", - " data.Te, \n", + " data.Hm0,\n", + " data.Te,\n", " dt,\n", " period,\n", - " method='PCA',\n", + " method=\"PCA\",\n", ")\n", "\n", "period = 50\n", "copulas50 = contours.environmental_contours(\n", - " data.Hm0, \n", - " data.Te, \n", - " dt, \n", - " period, \n", - " method='PCA', \n", + " data.Hm0,\n", + " data.Te,\n", + " dt,\n", + " period,\n", + " method=\"PCA\",\n", ")\n", "\n", "\n", "Te_data = np.array(data_clean.Te)\n", "Hm0_data = np.array(data_clean.Hm0)\n", "\n", - "Hm0_contours = [copulas50['PCA_x1'], copulas100['PCA_x1']]\n", - "Te_contours = [copulas50['PCA_x2'], copulas100['PCA_x2']]\n", + "Hm0_contours = [copulas50[\"PCA_x1\"], copulas100[\"PCA_x1\"]]\n", + "Te_contours = [copulas50[\"PCA_x2\"], copulas100[\"PCA_x2\"]]\n", "\n", - "fig, ax = plt.subplots(figsize=(9,4))\n", + "fig, ax = plt.subplots(figsize=(9, 4))\n", "ax = graphics.plot_environmental_contour(\n", - " Te_data, \n", - " Hm0_data, \n", - " Te_contours, \n", - " Hm0_contours , \n", - " data_label='NDBC 46050', \n", - " contour_label=['50 Year Contour','100 Year Contour'],\n", - " x_label = 'Energy Period, $Te$ [s]',\n", - " y_label = 'Sig. wave height, $Hm0$ [m]', \n", - " ax=ax\n", + " Te_data,\n", + " Hm0_data,\n", + " Te_contours,\n", + " Hm0_contours,\n", + " data_label=\"NDBC 46050\",\n", + " contour_label=[\"50 Year Contour\", \"100 Year Contour\"],\n", + " x_label=\"Energy Period, $Te$ [s]\",\n", + " y_label=\"Sig. wave height, $Hm0$ [m]\",\n", + " ax=ax,\n", ")\n", - "plt.legend(loc='upper left')\n", - "plt.tight_layout() " + "plt.legend(loc=\"upper left\")\n", + "plt.tight_layout()" ] }, { @@ -1390,10 +1412,14 @@ ], "source": [ "print(f\"50-year: Hm0 max {copulas50['PCA_x1'].max().round(1)}\")\n", - "print(f\"50-year: Te at Hm0 max {copulas50['PCA_x2'][copulas50['PCA_x1'].argmax()].round(1)}\")\n", + "print(\n", + " f\"50-year: Te at Hm0 max {copulas50['PCA_x2'][copulas50['PCA_x1'].argmax()].round(1)}\"\n", + ")\n", "print(\"\\n\")\n", "print(f\"100-year: Hm0 max {copulas100['PCA_x1'].max().round(1)}\")\n", - "print(f\"100-year: Te at Hm0 max { copulas100['PCA_x2'][copulas100['PCA_x1'].argmax()].round(1)}\")" + "print(\n", + " f\"100-year: Te at Hm0 max { copulas100['PCA_x2'][copulas100['PCA_x1'].argmax()].round(1)}\"\n", + ")" ] }, { @@ -1423,9 +1449,9 @@ } ], "source": [ - "nHours = (data_clean.index[1] - data_clean.index[0]).seconds/3600\n", + "nHours = (data_clean.index[1] - data_clean.index[0]).seconds / 3600\n", "Total = data_clean.J.sum() * nHours\n", - "print(f'{Total} (W*hr)/m')" + "print(f\"{Total} (W*hr)/m\")" ] }, { @@ -1451,11 +1477,12 @@ } ], "source": [ - "Jsum, xe, ye, bn = stats.binned_statistic_2d(data_clean.Hm0, data_clean.Te, data_clean.J,\n", - " statistic='sum')#,bins=[Te_bins, Hm0_bins])\n", + "Jsum, xe, ye, bn = stats.binned_statistic_2d(\n", + " data_clean.Hm0, data_clean.Te, data_clean.J, statistic=\"sum\"\n", + ") # ,bins=[Te_bins, Hm0_bins])\n", "\n", - "hist_result = np.round(Jsum.sum().sum()/Total,4)\n", - "print(f'{hist_result} = (2D Histogram J) / (1-year total J) ')" + "hist_result = np.round(Jsum.sum().sum() / Total, 4)\n", + "print(f\"{hist_result} = (2D Histogram J) / (1-year total J) \")" ] }, { @@ -1497,30 +1524,29 @@ ], "source": [ "# Compute Gaussian Mixture Model for each number of clusters\n", - "Ns= [4, 8, 16, 32, 64]\n", + "Ns = [4, 8, 16, 32, 64]\n", "X = np.vstack((data_clean.Te.values, data_clean.Hm0.values)).T\n", - "fig, axs = plt.subplots(len(Ns),1, figsize=(8, 24), sharex=True)\n", + "fig, axs = plt.subplots(len(Ns), 1, figsize=(8, 24), sharex=True)\n", "\n", - "results={}\n", + "results = {}\n", "for N in Ns:\n", " gmm = GaussianMixture(n_components=N).fit(X)\n", "\n", " # Save centers and weights\n", - " result = pd.DataFrame(gmm.means_, columns=['Te','Hm0'])\n", - " result['weights'] = gmm.weights_\n", + " result = pd.DataFrame(gmm.means_, columns=[\"Te\", \"Hm0\"])\n", + " result[\"weights\"] = gmm.weights_\n", "\n", - " result['Tp'] = result.Te / 0.858\n", + " result[\"Tp\"] = result.Te / 0.858\n", " results[N] = result\n", - " \n", - " \n", + "\n", " labels = gmm.predict(X)\n", - " \n", + "\n", " i = Ns.index(N)\n", " axs[i].scatter(data_clean.Te.values, data_clean.Hm0.values, c=labels, s=40)\n", - " axs[i].plot(result.Te, result.Hm0, 'm+')\n", - " axs[i].title.set_text(f'{N} Clusters')\n", - " plt.setp(axs[i], ylabel='Energy Period, $T_e$ [s]')\n", - "plt.setp(axs[len(Ns)-1], xlabel='Sig. wave height, $Hm0$ [m') " + " axs[i].plot(result.Te, result.Hm0, \"m+\")\n", + " axs[i].title.set_text(f\"{N} Clusters\")\n", + " plt.setp(axs[i], ylabel=\"Energy Period, $T_e$ [s]\")\n", + "plt.setp(axs[len(Ns) - 1], xlabel=\"Sig. wave height, $Hm0$ [m\")" ] }, { @@ -1555,26 +1581,26 @@ ], "source": [ "w = ndbc_data[year].columns.values\n", - "f = w / 2*np.pi\n", + "f = w / 2 * np.pi\n", "\n", "\n", "for N in results:\n", " result = results[N]\n", - " J=[]\n", + " J = []\n", " for i in range(len(result)):\n", " b = resource.jonswap_spectrum(f, result.Tp[i], result.Hm0[i])\n", - " J.extend([resource.energy_flux(b, h=399.).values[0][0]])\n", - " \n", - " result['J'] = J\n", + " J.extend([resource.energy_flux(b, h=399.0).values[0][0]])\n", + "\n", + " result[\"J\"] = J\n", " results[N] = result\n", "\n", - "ratios={}\n", + "ratios = {}\n", "for N in results:\n", - " J_hr = results[N].J*len(data_clean)\n", - " total_weighted_J= (J_hr * results[N].weights).sum()\n", + " J_hr = results[N].J * len(data_clean)\n", + " total_weighted_J = (J_hr * results[N].weights).sum()\n", " normalized_weighted_J = total_weighted_J / Total\n", " ratios[N] = np.round(normalized_weighted_J, 4)\n", - " \n", + "\n", "pd.Series(ratios)" ] }, diff --git a/examples/SWAN_example.ipynb b/examples/SWAN_example.ipynb index 974ca6cc0..d4eeb4620 100644 --- a/examples/SWAN_example.ipynb +++ b/examples/SWAN_example.ipynb @@ -20,7 +20,7 @@ "from os.path import join\n", "import pandas as pd\n", "\n", - "swan_data_folder = join('data','wave','swan')" + "swan_data_folder = join(\"data\", \"wave\", \"swan\")" ] }, { @@ -41,9 +41,9 @@ "metadata": {}, "outputs": [], "source": [ - "swan_table_file = join(swan_data_folder, 'SWANOUT.DAT')\n", - "swan_block_file = join(swan_data_folder, 'SWANOUTBlock.DAT')\n", - "swan_block_mat_file = join(swan_data_folder, 'SWANOUT.mat')" + "swan_table_file = join(swan_data_folder, \"SWANOUT.DAT\")\n", + "swan_block_file = join(swan_data_folder, \"SWANOUTBlock.DAT\")\n", + "swan_block_mat_file = join(swan_data_folder, \"SWANOUT.mat\")" ] }, { @@ -646,7 +646,7 @@ } ], "source": [ - "swan_block['Significant wave height']" + "swan_block[\"Significant wave height\"]" ] }, { @@ -1082,7 +1082,7 @@ } ], "source": [ - "swan_block_mat['Hsig']" + "swan_block_mat[\"Hsig\"]" ] }, { @@ -1323,10 +1323,9 @@ ], "source": [ "plt.figure()\n", - "plt.tricontourf(swan_table.Xp, swan_table.Yp, \n", - " swan_table.Hsig, levels=256)\n", + "plt.tricontourf(swan_table.Xp, swan_table.Yp, swan_table.Hsig, levels=256)\n", "cbar = plt.colorbar()\n", - "cbar.set_label('Significant wave height [m]')" + "cbar.set_label(\"Significant wave height [m]\")" ] }, { @@ -1349,11 +1348,15 @@ ], "source": [ "plt.figure()\n", - "plt.tricontourf(swan_block_mat_as_table.x, swan_block_mat_as_table.y, \n", - " swan_block_mat_as_table.Hsig,\n", - " levels=256, cmap='viridis')\n", + "plt.tricontourf(\n", + " swan_block_mat_as_table.x,\n", + " swan_block_mat_as_table.y,\n", + " swan_block_mat_as_table.Hsig,\n", + " levels=256,\n", + " cmap=\"viridis\",\n", + ")\n", "cbar = plt.colorbar()\n", - "cbar.set_label('Significant wave height [m]')" + "cbar.set_label(\"Significant wave height [m]\")" ] }, { @@ -1376,11 +1379,15 @@ ], "source": [ "plt.figure()\n", - "plt.tricontourf(swan_block_as_table.x, swan_block_as_table.y, \n", - " swan_block_as_table['Significant wave height'], \n", - " levels=256, cmap='viridis')\n", + "plt.tricontourf(\n", + " swan_block_as_table.x,\n", + " swan_block_as_table.y,\n", + " swan_block_as_table[\"Significant wave height\"],\n", + " levels=256,\n", + " cmap=\"viridis\",\n", + ")\n", "cbar = plt.colorbar()\n", - "cbar.set_label('Significant wave height [m]')" + "cbar.set_label(\"Significant wave height [m]\")" ] }, { @@ -1412,10 +1419,10 @@ ], "source": [ "plt.figure()\n", - "plt.imshow(swan_block_mat['Hsig'])\n", + "plt.imshow(swan_block_mat[\"Hsig\"])\n", "plt.gca().invert_yaxis()\n", "cbar = plt.colorbar()\n", - "cbar.set_label('Significant wave height [m]')" + "cbar.set_label(\"Significant wave height [m]\")" ] } ], diff --git a/examples/WPTO_hindcast_example.ipynb b/examples/WPTO_hindcast_example.ipynb index 9963a9ff0..1b6565797 100644 --- a/examples/WPTO_hindcast_example.ipynb +++ b/examples/WPTO_hindcast_example.ipynb @@ -101,7 +101,7 @@ } ], "source": [ - "lat_lon = [44.624076,-124.280097]\n", + "lat_lon = [44.624076, -124.280097]\n", "region = wave.io.hindcast.hindcast.region_selection(lat_lon)\n", "print(region)" ] @@ -121,12 +121,14 @@ "metadata": {}, "outputs": [], "source": [ - "data_type = '3-hour' # setting the data type to the 3-hour dataset\n", + "data_type = \"3-hour\" # setting the data type to the 3-hour dataset\n", "years = [1995]\n", - "lat_lon = (44.624076,-124.280097) \n", - "parameter = 'significant_wave_height' \n", + "lat_lon = (44.624076, -124.280097)\n", + "parameter = \"significant_wave_height\"\n", "\n", - "Hs, metadata= wave.io.hindcast.hindcast.request_wpto_point_data(data_type,parameter,lat_lon,years)" + "Hs, metadata = wave.io.hindcast.hindcast.request_wpto_point_data(\n", + " data_type, parameter, lat_lon, years\n", + ")" ] }, { @@ -378,11 +380,12 @@ } ], "source": [ - "parameter = 'energy_period'\n", - "lat_lon = ((44.624076,-124.280097),\n", - " (43.489171,-125.152137)) \n", + "parameter = \"energy_period\"\n", + "lat_lon = ((44.624076, -124.280097), (43.489171, -125.152137))\n", "\n", - "Te, metadata = wave.io.hindcast.hindcast.request_wpto_point_data(data_type, parameter, lat_lon, years)\n", + "Te, metadata = wave.io.hindcast.hindcast.request_wpto_point_data(\n", + " data_type, parameter, lat_lon, years\n", + ")\n", "\n", "# View Te from two locations\n", "Te.head()" @@ -582,11 +585,13 @@ } ], "source": [ - "years = [1995, 1996] \n", - "parameter = 'omni-directional_wave_power'\n", - "lat_lon = (44.624076,-124.280097) \n", + "years = [1995, 1996]\n", + "parameter = \"omni-directional_wave_power\"\n", + "lat_lon = (44.624076, -124.280097)\n", "\n", - "J, metadata= wave.io.hindcast.hindcast.request_wpto_point_data(data_type,parameter,lat_lon,years) \n", + "J, metadata = wave.io.hindcast.hindcast.request_wpto_point_data(\n", + " data_type, parameter, lat_lon, years\n", + ")\n", "\n", "J" ] @@ -670,12 +675,14 @@ "metadata": {}, "outputs": [], "source": [ - "data_type = '1-hour' # Setting the data_type to 1 hour data\n", - "years = [1995] \n", - "parameter = ['significant_wave_height','peak_period','mean_wave_direction']\n", - "lat_lon = (44.624076,-124.280097) \n", + "data_type = \"1-hour\" # Setting the data_type to 1 hour data\n", + "years = [1995]\n", + "parameter = [\"significant_wave_height\", \"peak_period\", \"mean_wave_direction\"]\n", + "lat_lon = (44.624076, -124.280097)\n", "\n", - "data, metadata= wave.io.hindcast.hindcast.request_wpto_point_data(data_type,parameter,lat_lon,years) " + "data, metadata = wave.io.hindcast.hindcast.request_wpto_point_data(\n", + " data_type, parameter, lat_lon, years\n", + ")" ] }, { @@ -801,34 +808,35 @@ "from numpy import histogramdd, array, arange, mean\n", "\n", "# Generate bins for Hm0, Te and Direction\n", - "Hm0_bins = arange(0, data.significant_wave_height_0.values.max() + 0.5, 0.5) \n", + "Hm0_bins = arange(0, data.significant_wave_height_0.values.max() + 0.5, 0.5)\n", "Te_bins = arange(0, data.peak_period_0.values.max() + 1, 1)\n", "Dir_bins = arange(0, data.mean_wave_direction_0.values.max() + 10, 10)\n", "\n", "# Combine data for better handling\n", - "jpd_3d = array([\n", - " data.significant_wave_height_0.values.flatten(),\n", - " data.peak_period_0.values.flatten(),\n", - " data.mean_wave_direction_0.values.flatten()\n", - " ]).T\n", + "jpd_3d = array(\n", + " [\n", + " data.significant_wave_height_0.values.flatten(),\n", + " data.peak_period_0.values.flatten(),\n", + " data.mean_wave_direction_0.values.flatten(),\n", + " ]\n", + ").T\n", "\n", "# Calculate the bin centers of the data\n", - "Hm0_center = array([\n", - " mean([Hm0_bins[i+1],Hm0_bins[i]]) \n", - " for i in range(Hm0_bins.shape[0]-1)\n", - " ])\n", - "Te_center = array([\n", - " mean([Te_bins[i+1],Te_bins[i]]) \n", - " for i in range(Te_bins.shape[0]-1)\n", - " ])\n", - "Dir_center = array([\n", - " mean([Dir_bins[i+1],Dir_bins[i]]) \n", - " for i in range(Dir_bins.shape[0]-1)\n", - " ])\n", + "Hm0_center = array(\n", + " [mean([Hm0_bins[i + 1], Hm0_bins[i]]) for i in range(Hm0_bins.shape[0] - 1)]\n", + ")\n", + "Te_center = array(\n", + " [mean([Te_bins[i + 1], Te_bins[i]]) for i in range(Te_bins.shape[0] - 1)]\n", + ")\n", + "Dir_center = array(\n", + " [mean([Dir_bins[i + 1], Dir_bins[i]]) for i in range(Dir_bins.shape[0] - 1)]\n", + ")\n", "\n", "\n", - "# Calculate the JPD for Hm0, Te, and Dir \n", - "probability, edges = histogramdd(jpd_3d,bins=[Hm0_bins,Te_bins,Dir_bins],density=True)" + "# Calculate the JPD for Hm0, Te, and Dir\n", + "probability, edges = histogramdd(\n", + " jpd_3d, bins=[Hm0_bins, Te_bins, Dir_bins], density=True\n", + ")" ] }, { @@ -1844,36 +1852,38 @@ "fig.subplots_adjust(right=0.8, bottom=0.25)\n", "\n", "d = 0\n", - "plot_jpd = probability[:,:,d]\n", + "plot_jpd = probability[:, :, d]\n", "\n", - "im = ax.imshow(plot_jpd, origin='lower', aspect='auto')\n", + "im = ax.imshow(plot_jpd, origin=\"lower\", aspect=\"auto\")\n", "\n", - "axcolor = 'lightgoldenrodyellow'\n", + "axcolor = \"lightgoldenrodyellow\"\n", "axDir = plt.axes([0.3, 0.075, 0.45, 0.03], facecolor=axcolor)\n", "\n", - "newD = Slider(axDir, 'Income Wave\\n Direction', 5, 355, valinit=d, valstep=10)\n", + "newD = Slider(axDir, \"Income Wave\\n Direction\", 5, 355, valinit=d, valstep=10)\n", + "\n", "\n", "def update(val):\n", - " d = int(newD.val/10)\n", - " im.set_data(probability[:,:,d])\n", + " d = int(newD.val / 10)\n", + " im.set_data(probability[:, :, d])\n", " fig.canvas.draw()\n", "\n", + "\n", "newD.on_changed(update)\n", "\n", "cax = fig.add_axes([0.82, 0.3, 0.03, 0.5])\n", - "cbar = fig.colorbar(im, cax=cax, orientation='vertical')\n", + "cbar = fig.colorbar(im, cax=cax, orientation=\"vertical\")\n", "\n", - "cbar.set_label('Probability Density (1/(sec*m*deg)', rotation=270, labelpad=15)\n", + "cbar.set_label(\"Probability Density (1/(sec*m*deg)\", rotation=270, labelpad=15)\n", "\n", - "ax.set_xlabel('Te (seconds)')\n", - "ax.set_ylabel('Hm0 (meters)')\n", + "ax.set_xlabel(\"Te (seconds)\")\n", + "ax.set_ylabel(\"Hm0 (meters)\")\n", "\n", "ax.set_xticks(arange(len(Te_center)))\n", "ax.set_yticks(arange(len(Hm0_center)))\n", - "ax.set_xticklabels(Te_center,rotation=45)\n", + "ax.set_xticklabels(Te_center, rotation=45)\n", "ax.set_yticklabels(Hm0_center)\n", "\n", - "fig.suptitle('Joint Probability Density\\n of Hm0 and Te per Direction')\n" + "fig.suptitle(\"Joint Probability Density\\n of Hm0 and Te per Direction\")" ] }, { @@ -1905,9 +1915,11 @@ } ], "source": [ - "year = '1993' # only one year can be passed at a time as a string\n", - "lat_lon=(43.489171,-125.152137)\n", - "dir_spectra,meta = wave.io.hindcast.hindcast.request_wpto_directional_spectrum(lat_lon,year)\n", + "year = \"1993\" # only one year can be passed at a time as a string\n", + "lat_lon = (43.489171, -125.152137)\n", + "dir_spectra, meta = wave.io.hindcast.hindcast.request_wpto_directional_spectrum(\n", + " lat_lon, year\n", + ")\n", "\n", "print(dir_spectra)" ] diff --git a/examples/adcp_example.ipynb b/examples/adcp_example.ipynb index 0c1c77d37..6c1cbdfff 100644 --- a/examples/adcp_example.ipynb +++ b/examples/adcp_example.ipynb @@ -1,4013 +1,4086 @@ { - "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Analyzing ADCP Data with MHKiT\n", - "\n", - "The following example illustrates a straightforward workflow for analyzing Acoustic Doppler Current Profiler (ADCP) data utilizing MHKiT. MHKiT has integrated the DOLfYN codebase as a module to facilitate ADCP and Acoustic Doppler Velocimetry (ADV) data processing.\n", - "\n", - "Here is a standard workflow for ADCP data analysis:\n", - "\n", - "1. **Import Data**\n", - "\n", - "2. **Review, QC, and Prepare the Raw Data**:\n", - " 1. Calculate or verify the correctness of depth bin locations\n", - " 2. Discard data recorded above the water surface or below the seafloor\n", - " 3. Assess the quality of velocity, beam amplitude, and/or beam correlation data\n", - " 4. Rotate Data Coordinate System\n", - "\n", - "3. **Data Averaging**: \n", - " - If not already executed within the instrument, average the data into time bins of a predetermined duration, typically between 5 and 10 minutes\n", - "\n", - "4. **Speed and Direction**\n", - "\n", - "5. **Plotting**\n", - "\n", - "6. **Saving and Loading DOLfYN datasets**\n", - "\n", - "7. **Turbulence Statistics**\n", - " 1. TI\n", - " 2. Power Spectral Densities\n", - " 3. TKE Dissipation Rate\n", - " 4. TKE Componenets\n", - " 5. ADCP Noise\n", - " 6. TKE Production\n", - " 7. TKE Balance \n", - "\n", - "\n", - "Begin your analysis by importing the requisite tools:" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\Users\\mcve343\\Anaconda3\\lib\\site-packages\\xarray\\backends\\cfgrib_.py:29: UserWarning: Failed to load cfgrib - most likely there is a problem accessing the ecCodes library. Try `import cfgrib` to get the full error message\n", - " warnings.warn(\n" - ] - } - ], - "source": [ - "from mhkit import dolfyn\n", - "from mhkit.dolfyn.adp import api" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 1. Importing Raw Instrument Data\n", - "\n", - "One of DOLfYN's key features is its ability to directly import raw data from an Acoustic Doppler Current Profiler (ADCP) right after it has been transferred. In this instance, we are using a Nortek Signature1000 ADCP, with the data stored in files with an '.ad2cp' extension. This specific dataset represents several hours of velocity data, captured at 1 Hz by an ADCP mounted on a bottom lander within a tidal inlet. The list of instruments compatible with DOLfYN can be found in the [MHKiT DOLfYN documentation](https://mhkit-software.github.io/MHKiT/mhkit-python/api.dolfyn.html).\n", - "\n", - "We'll start by importing the raw data file downloaded from the instrument. The `read` function processes the raw file and converts the information into an xarray Dataset. This Dataset includes several groups of variables:\n", - "\n", - "1. **Velocity**: Recorded in the coordinate system saved by the instrument (beam, XYZ, ENU)\n", - "2. **Beam Data**: Includes amplitude and correlation data\n", - "3. **Instrumental & Environmental Measurements**: Captures the instrument's bearing and environmental conditions\n", - "4. **Orientation Matrices**: Used by DOLfYN for rotating through different coordinate frames.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reading file data/dolfyn/Sig1000_tidal.ad2cp ...\n" - ] - } - ], - "source": [ - "ds = dolfyn.read('data/dolfyn/Sig1000_tidal.ad2cp')" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "There are two ways to see what's in a Dataset. The first is to simply type the dataset's name to see the standard xarray output. To access a particular variable in a dataset, use dict-style (`ds['vel']`) or attribute-style syntax (`ds.vel`). See the [xarray docs](http://xarray.pydata.org/en/stable/getting-started-guide/quick-overview.html) for more details on how to use the xarray format." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
<xarray.Dataset>\n",
-              "Dimensions:              (time: 55000, dirIMU: 3, dir: 4, range: 28, beam: 4,\n",
-              "                          earth: 3, inst: 3, q: 4, time_b5: 55000,\n",
-              "                          range_b5: 28, x1: 4, x2: 4)\n",
-              "Coordinates:\n",
-              "  * time                 (time) datetime64[ns] 2020-08-15T00:20:00.500999927 ...\n",
-              "  * dirIMU               (dirIMU) <U1 'E' 'N' 'U'\n",
-              "  * dir                  (dir) <U2 'E' 'N' 'U1' 'U2'\n",
-              "  * range                (range) float64 0.6 1.1 1.6 2.1 ... 12.6 13.1 13.6 14.1\n",
-              "  * beam                 (beam) int32 1 2 3 4\n",
-              "  * earth                (earth) <U1 'E' 'N' 'U'\n",
-              "  * inst                 (inst) <U1 'X' 'Y' 'Z'\n",
-              "  * q                    (q) <U1 'w' 'x' 'y' 'z'\n",
-              "  * time_b5              (time_b5) datetime64[ns] 2020-08-15T00:20:00.4384999...\n",
-              "  * range_b5             (range_b5) float64 0.6 1.1 1.6 2.1 ... 13.1 13.6 14.1\n",
-              "  * x1                   (x1) int32 1 2 3 4\n",
-              "  * x2                   (x2) int32 1 2 3 4\n",
-              "Data variables: (12/38)\n",
-              "    c_sound              (time) float32 1.502e+03 1.502e+03 ... 1.498e+03\n",
-              "    temp                 (time) float32 14.55 14.55 14.55 ... 13.47 13.47 13.47\n",
-              "    pressure             (time) float32 9.713 9.718 9.718 ... 9.596 9.594 9.596\n",
-              "    mag                  (dirIMU, time) float32 72.5 72.7 72.6 ... -197.2 -195.7\n",
-              "    accel                (dirIMU, time) float32 -0.00479 -0.01437 ... 9.729\n",
-              "    batt                 (time) float32 16.6 16.6 16.6 16.6 ... 16.4 16.4 15.2\n",
-              "    ...                   ...\n",
-              "    telemetry_data       (time) uint8 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0\n",
-              "    boost_running        (time) uint8 0 0 0 0 0 0 0 0 1 0 ... 0 1 0 0 0 0 0 0 1\n",
-              "    heading              (time) float32 -12.52 -12.51 -12.51 ... -12.52 -12.5\n",
-              "    pitch                (time) float32 -0.065 -0.06 -0.06 ... -0.06 -0.05 -0.05\n",
-              "    roll                 (time) float32 -7.425 -7.42 -7.42 ... -6.45 -6.45 -6.45\n",
-              "    beam2inst_orientmat  (x1, x2) float32 1.183 0.0 -1.183 ... 0.5518 0.0 0.5518\n",
-              "Attributes: (12/34)\n",
-              "    filehead_config:       {"CLOCKSTR": {"TIME": "\\"2020-08-13 13:56:21\\""}, ...\n",
-              "    inst_model:            Signature1000\n",
-              "    inst_make:             Nortek\n",
-              "    inst_type:             ADCP\n",
-              "    burst_config:          {"press_valid": true, "temp_valid": true, "compass...\n",
-              "    n_cells:               28\n",
-              "    ...                    ...\n",
-              "    proc_idle_less_12pct:  0\n",
-              "    rotate_vars:           ['vel', 'accel', 'accel_b5', 'angrt', 'angrt_b5', ...\n",
-              "    coord_sys:             earth\n",
-              "    fs:                    1\n",
-              "    has_imu:               1\n",
-              "    beam_angle:            25
" - ], - "text/plain": [ - "\n", - "Dimensions: (time: 55000, dirIMU: 3, dir: 4, range: 28, beam: 4,\n", - " earth: 3, inst: 3, q: 4, time_b5: 55000,\n", - " range_b5: 28, x1: 4, x2: 4)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 2020-08-15T00:20:00.500999927 ...\n", - " * dirIMU (dirIMU) : Nortek Signature1000\n", - " . 15.28 hours (started: Aug 15, 2020 00:20)\n", - " . earth-frame\n", - " . (55000 pings @ 1Hz)\n", - " Variables:\n", - " - time ('time',)\n", - " - time_b5 ('time_b5',)\n", - " - vel ('dir', 'range', 'time')\n", - " - vel_b5 ('range_b5', 'time_b5')\n", - " - range ('range',)\n", - " - orientmat ('earth', 'inst', 'time')\n", - " - heading ('time',)\n", - " - pitch ('time',)\n", - " - roll ('time',)\n", - " - temp ('time',)\n", - " - pressure ('time',)\n", - " - amp ('beam', 'range', 'time')\n", - " - amp_b5 ('range_b5', 'time_b5')\n", - " - corr ('beam', 'range', 'time')\n", - " - corr_b5 ('range_b5', 'time_b5')\n", - " - accel ('dirIMU', 'time')\n", - " - angrt ('dirIMU', 'time')\n", - " - mag ('dirIMU', 'time')\n", - " ... and others (see `.variables`)" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ds_dolfyn = ds.velds\n", - "ds_dolfyn" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2. Initial Steps for Data Quality Control (QC)\n", - "\n", - "### 2.1: Set the Deployment Height\n", - "\n", - "When using Nortek instruments, the deployment software does not factor in the deployment height. The deployment height represents the position of the Acoustic Doppler Current Profiler (ADCP) within the water column. \n", - "\n", - "In this context, the center of the first depth bin is situated at a distance that is the sum of three elements: \n", - "1. Deployment height (the ADCP's position in the water column)\n", - "2. Blanking distance (the minimum distance from the ADCP to the first measurement point)\n", - "3. Cell size (the vertical distance of each measurement bin in the water column)\n", - "\n", - "To ensure accurate readings, it is critical to calibrate the 'range' coordinate to make '0' correspond to the seafloor. This calibration can be achieved using the `set_range_offset` function. This function is also useful when working with a down-facing instrument as it helps account for the depth below the water surface. \n", - "\n", - "For those using a Teledyne RDI ADCP, the TRDI deployment software will prompt you to specify the deployment height/depth during setup. If there's a need for calibration post-deployment, the `set_range_offset` function can be utilized in the same way as described above." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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grDAmVJ61mg0eN3rXscll1zCJz/5Sd7whjfMSrKS5znvete7WL16NY1Gg3322Yf3vve9uPEPZgqCIAjCDohXqnpTaGrL/Jo4bjwXXHAB995774zWOekrLN/4xjcedb1Sinq9zn777cfq1aunHRjAhz70IT71qU9x5ZVX8vSnP51bb72V0047jYGBAc4555wZaUMQBEEQ5oSd+JbQN7/5TS666CKOOuooXv/61/Oyl72Mer0+rTonnbCceOKJE14PKynXKaV47nOfy7XXXsvixYunFdwPf/hDTjjhBF7ykpcAsPfee/PlL3+ZW2+9dVr1CoIgCIIwe9x222389Kc/5fLLL+ctb3kLZ511Fq985St53etex6GHHjqlOiednl1//fUceuihXH/99QwODjI4OMj111/Pc57zHP7t3/6Nm2++mc2bN/PWt751SgGN57nPfS7f/e53+fWvfw3AT37yE2655ZbHfRup0+k8YgpgQRAEQZh37GQuoYdz4IEH8tGPfpQNGzbwuc99jg0bNnDEEUdwwAEH8PGPf5zBwcFJ1TelmW4vu+wyDj/88GrdC17wAur1On/913/Nz3/+cz72sY/xute9brJVP4K//du/ZXBwkKc85SkYY7DW8v73v5+//Mu/fMx91q5dy4UXXjjttgVBEARhVtmJbwmNxzlHmqZ0Oh289yxZsoRLL72Ud7/73XzmM5/hFa94xTbVM+mj/e1vf0t/f/8j1vf39/O73/0OgCc96Uk8+OCDk636EXzlK1/hi1/8Il/60pe4/fbbufLKK/n7v/97rrzyysfc57zzzquu/AwODrJ+/fppxyEIgiAIM830Hrid3rT+24PbbruNs88+m+XLl/OWt7yFgw8+mF/+8pfcdNNN/OpXv+L888/nTW960zbXN+krLIcccghve9vb+PznP8+uu4ZpyR944AHe/va3V/elfvOb37DnnntOtupH8La3vY13vOMdvPKVrwTggAMO4N5772Xt2rWceuqpj7pPrVajVqtNu21BEARBEKbGgQceyC9/+Ute9KIX8dnPfpaXvvSlGGMmlDnllFN429vets11Tjph+exnP8sJJ5zAnnvuycqVK1FKsW7dOvbZZx++/vWvAzAyMsK73/3uyVb9CEZHR9EP02cbY+S1ZkEQBGHHR+nK/zXl/ecpJ510Eq973eseV2646667Turv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29YxmoUxoXXYVsWgNVoHOaF1QUgYRJI6SCiNruSNo5mlHml6axFGhXispxAWhj4ojyPWClvIH8tj1UpVwsTMeWpFn5V97bwns66SPWbOEevQ37oQKJbltQoiS43CEYSOsda0MluNpXJMqGLMleexFBNaH/54lbGG86PQdCWI3nf3M6VEsig3fvxEujteYH6/ebOjUK/Xec1rXsP3vvc97rrrLl7zmtfw2c9+ln322Ydjjz2Wf/mXf5lSvVOeOK6np2fGLvMIgiAIwoJjOm8Izdd7Qg9j9erVvO997+Oee+7hqquu4tZbb+Uv//Ivp1TXNr0l9LKXvWybK7z66qunFIggCIIgLCQcHjeNrGM6+25PbrjhBi6//HKuvvpqoijir/7qr6ZUzzYlLAMDA1OqXBAEQRCEhce6deu44ooruOKKK7jnnnt43vOexyc/+UlOOukkGo3GlOrcpoTl8ssvn1LlgiAIgiA8OtWtnWnsP9/40pe+xOWXX84NN9zAbrvtximnnMLrX/969ttvv2nXPe/lhxs2bODVr341S5cupaenh4MOOojbbrttrsMSBEEQhGmxM74l9NrXvpbe3l6uvfZa1q9fz9q1a2ckWYFtvMLyrGc9i+9+97ssXryYgw8+uHoK+9GYyen5t2zZwhFHHMGaNWv41re+xbJly/jtb3/LokWLZqwNQRAEQRBmht///vcsW7ZsVurepoTlhBNOoFYLr92eeOKJsxLIo/GhD32IlStXTrgltffee2+39gVBEARhttgZbwnNVrIC25iwLF68GF3MX3Daaaex5557Vp9nk2984xsce+yxnHTSSdx0003ssccenHnmmY/7hHGn06kM0gBDQ0OzHqcgCIIgTJaF8pbQTLFNWce5555b/eFfvXo1Dz744KwGVfK73/2OSy+9lCc96Ul8+9vf5owzzuBNb3oTn//85x9zn7Vr1zIwMFAtK1eu3C6xCoIgCMJkmJapeZpXZ3ZEtukKy4oVK/ja177Gi1/8Yrz3/P73v6fdbj9q2VWrVs1YcM45nv3sZ/OBD3wAgIMPPpif//znXHrppZxyyimPus95553HueeeW30eGhqSpEUQBEEQthPWWm655RYOPPBAFi9ePGP1blPC8q53vYs3vvGNnH322SilOPTQQx9RxnuPUgo7bsr06bJ8+XKe9rSnTVj31Kc+la997WuPuU+tVquetxEEQRCE+YrzvlIiTHX/+YgxhmOPPZZf/vKX2z9h+eu//mv+8i//knvvvZcDDzyQ73znOyxdunTGgngsjjjiCO68884J637961+z1157zXrbgiAIgjCbWBeW6ew/XznggAP43e9+x+rVq2eszm1KWAD6+vp4xjOeweWXX84RRxyxXa5ivOUtb+Hwww/nAx/4AH/xF3/B//zP/3DZZZdx2WWXTbquIHsbd7ilZE7pCWW8buAL8aHXUZDLFdJDXI5yOT6qB7lh0kB1WmG7UmF71oGYrkCxFHHFtQltK+9C/aWEcWwIVesJdSVNaA8HgZ7WENXwrWGUNqg4hijpxl88/OyzNMj/AN8uBHh5VogOM9Aa124VosQ0yPYKWaFZuju0YxgnXnTDW9DNPtzwliBT7IRbgD5PQzlrg+TQOXAO5Syu3cLnGb49ik/bQexHkBOWMkDfboX48wylNUprXLFe9fSjag1UUsePDuFaQ3hnUVESRIxa4ztj1J50AHbzRshTVLMfnMVbi07quLEQg46jsH+W4tqjqDgOAsei35QJwkE7NopxNkga8wztbGg/bQepotaVtFE3mqEfCrGjK+SK3hayw1Z4zss7F9rKMxhrofoWhdjbo0HkWPQxUEglu7dX3VgL1WgGOaM2+M5YOL4sQyVZGFNjQ5DUQ/3OQr0vjCcMPgqizTCWi/GVFW3ZvIiPYIVzeTi2cT8DlVzOecrJCxRBWRJpxWjmUErhfSm5CzK5zHn6E00rc9UvUYennbtKlOh9EMyl1ocfl0J6B2GfzHoSo3hw1NKbhJ/VeqQrmV/Hu+oXfOaCeLCS7VlPPdJkzjGalRI/XUj0gkywHulKPqiVop1bemKD0YqsCLo3iahHmtEsSAuBSiRoPeRFubrRhYQwlIsJgr9apBnLuleZS2FhiCfIDtu5m/CfdZD/hW01rRlJc7RS1Io4wj6WehQTa0VuHb1JRK04nnqk6ViHcx6t1SOEjbHRQUzoPL1J9DBZpaq+xsW+EMSQjdjQE2uMUtQjzUhqg2TROmpGF3LEIFfUxRjoiXUheyyO2QTxYl+iKlFiT2wYbAeBpbWQGBXklMXvMktXwljGVx6PVmFsmurcBNmh9R7tPQ4wBAmm0YpO7gv55jixYXGMirBv7jzWQaxD/cLM8P73v5+3vvWtvO997+OQQw6h2WxO2N7f3z/pOrc5YSk59dRTAbjtttv45S9/iVKKpz71qTzrWc+adONPxKGHHso111zDeeedx3vf+15Wr17Nxz72MU4++eQZb0sQBEEQtic76y0hgOOOOw6AP/3TP50wd9t0Hh+ZdMKyadMmXvnKV3LjjTeyaNEivPcMDg6yZs0arrrqKnbddddJB/F4/Mmf/Al/8id/MqN1CoIgCMJcE64e7ZwJyw033DDjdU46YXnjG9/I0NAQP//5z3nqU58KwC9+8QtOPfVU3vSmN/HlL395xoMUBEEQBGHH4aijjprxOic9+9t1113HpZdeWiUrAE972tP4p3/6J771rW/NaHCCIAiCsLMSfEB+GstcH8Hj8/3vf59Xv/rVHH744WzYsAGAL3zhC9xyyy1Tqm/SCYtzjjiOH7E+jmOcm8ePLAuCIAjCPKJ8iHw6y3zla1/7GsceeyyNRoPbb7+9moF+eHi4mlttskw6YXn+85/POeecw3333Vet27BhA295y1t4wQteMKUgBEEQBEHYebjooov41Kc+xWc+85kJFzkOP/zwKUuSJ52wXHLJJQwPD7P33nuz7777st9++7F69WqGh4f5xCc+MaUgBEEQBGGhMb3bQdN7w2i2ufPOOznyyCMfsb6/v5+tW7dOqc5JP3S7cuVKbr/9dq6//np+9atf4b3naU97Gi984QunFIAgCIIgLETsNN8Sms6+s83y5cu566672HvvvSesv+WWW9hnn32mVOekEpY8z6nX69xxxx0cc8wxHHPMMVNqVBAEQRAWOg6m9eDsbD7C8v73v59///d/54477iBJkklfFTn99NM555xz+NznPodSivvuu48f/vCHvPWtb+U973nPlGKaVMISRRF77bXXjPqCBEEQBEGYX6RpykknncRhhx3GZz/72Unv//a3v72ao63dbnPkkUdSq9V461vfytlnnz2lmCZ9S+hd73oX5513Hl/84hdZsmTJlBoVBEEQhIWOdb7SBkx1/9niwgsvBOCKK66Ych3vf//7eec738kvfvELnHM87WlPo7e3d8r1TTph+cd//EfuuusuVqxYwV577fUIP8BUn/4VBEEQhIWEn+aDs6XTa2hoaML6Wq22XXx/j8frXvc6Pv7xj9PX18ezn/3san2r1eKNb3wjn/vc5yZd56QTlhNOOGGCF2BHweviUL0HbcLNP+8KmWFxYsdJ4FAa5UuLW17s6/BKo/I2Pu4J63QhnCu2u6SBsjlKB2FcKdrySgcxYtGGj2vB/OVcENUVMapCsEjSwKdjQSQ4sCwIE6MYn9qiKYsiRhmDy1O06StkfSZ8LcV8LkgBdaNZSRF9lnWlfs4VckIT2hodYsKPT5QEOV8hDfSFnK/cpnQhRUy7ZVxrCFVvgnP4ThsVxahaHTe8teh7G2SApWAQKuGhimL86FDVt7oWhIZ0CjHalgcw2hRiSBPabreCzNA5VJ6Gvkrq6GY/dssmlDHhONJCslhvhjgKESFA5+470UmEG96K2W0V3jl0sR/O4fMMFSdB7pi2Q18W0kQVx/ixVoilEE6WYkcVJ5XosBqLabfPfHsU6qC0KeSUMRTzGfk8DefHmNBfcaPqF9caQjf7w3jwLizOhvHlHViLior13oNSQdgJQZToXSHtLBZnUcrhdVLdUzdakecOlEIBufMPc4KAL0aLUUEkV480uXOM5Q6jFLEO4sNSYhdEiUFMV66rR5rhjq1+cZdSv1gHmWE5fblWimYS5ICd3LGkobBe0cldJdmLjSI2QRpYjzSZLWR5CnpiHSR3RmO0KrY7YqMrQaDz4T/eUgSYWY81XVlgia4khIaRFNpFDGbcr8ZGbBhJc9q5o1aPiLVisJMTjyuklQpCQRfa6omDhDA2mlpkiI2tzgVQSQB7E0PmfCUU1Eqhi3oz6yqZIihs7sitK0SMQTK4uBHz4GhWHVMpGMwyy0AtIisEgz2xCXWnFP0cxlDHuiCWVF2xZDsPUsQQp6/OYaw1sVFkWSgXjidIM8uu8D7IMmOtyPIgyLTeUzPd7eXQK9v13uN9EGZaG8YfxTqjg1AxKRp4+LMeRqnwO3ecWNF6oDj3OxorV66c8Pn888/nggsumJtgCq688ko++MEP0tfXN2H92NgYn//857dPwjLXnSAIgiAIOwPWd5PQqe4PsH79+gn248e6unLBBRdUt3oeix//+McTrohMlqGhoSqZHB4epl6vd+O1lv/4j/9g2bJlU6p7mxOW0dFR3va2t3HttdeSZRkvfOEL+cd//Ed22WWXKTUsCIIgCAuZmbI19/f3T0hYHouzzz6bV77ylY9b5uGvIU+WRYsWoZRCKcX+++//iO1KqSdMmh6LbU5Yzj//fK644gpOPvlk6vU6X/7yl/n//r//j69+9atTalgQBEEQhO3HLrvsMusXGW644Qa89zz/+c/na1/72oSXc5IkYa+99mLFihVTqnubE5arr76az372s1V29upXv5ojjjgCay3GmCk1LgiCIAgLlfn8ltC6det46KGHWLduHdZa7rjjDgD222+/x33Tp7Q033333axcuRKtJz2h/mOyzQnL+vXred7znld9fs5znkMURdx3332PeOBHEARBEITHZ6ZuCc0G73nPe7jyyiurzwcffDAQrqAcffTRT7j/XnvtBYTHSdatW0eaphO2H3jggZOOaZsTFmstSZJM3DmKyPN80o0KgiAIgjB/ueKKK6Y1B8sDDzzAaaedxre+9a1H3T6VCWi3OWHx3vPa1752wtPH7XabM844Y8JcLFdfffWkgxAEQRCEhcZMvSU0H3nzm9/Mli1b+NGPfsSaNWu45ppr+MMf/sBFF13EP/zDP0ypzm1OWE499dRHrHv1q189pUYFQRAEYaEzn28JTZfvfe97fP3rX+fQQw9Fa81ee+3FMcccQ39/P2vXruUlL3nJpOvc5oTl8ssvn3TlgiAIgiA8Os553DQenJ3OvrNNq9Wq5ltZsmQJDzzwAPvvvz8HHHDAlGfEn7nHdwVBEARBEIAnP/nJ3HnnnQAcdNBBfPrTn2bDhg186lOfYvny5VOqc9Iz3QqCIAiCMH3cNJ9hmccXWHjzm9/M/fffD4R53I499lj++Z//mSRJpvwwryQsgiAIgjAH7IzPsNx1113st99+nHzyydW6gw8+mHvuuYdf/epXrFq1asqT1y2sW0ImDjI4CCYtE+NKoRwU4rhiADgbZHHegY4qSZzyLsjplA7SQhMF4V5ZziT4pAdvErxJwvpSqqgNyuZBfAgoG0R93oTXxVUlscvxJq5kgsrlQbLoXJDxEWR5OFeIDE23/lodFcfhEEaHMX2L8Hm3jGsN4dutQlboQGvs5o1BrlfIAH0hRPRZFuSEzgapn3P4tI0b3hraKYSD5GlXYhjFoe48xRfxl5LAanEWFSVBntho4or4vHNh/04bn2X4PA0xaINtjQQRYK1O+vvfoerNUG6shbe2KKdDH0RxkD9qTT7aJt28OYQxvBU3VggGtQn9UvRb1NPApTm200EZg22n2NZw6I8shTwNfZe2ca0hiOLqmEuq+vIUn2e40WGIYnS9GY7H2tBfRZtECd5aVHneojjs127h8xTXGu4KLeMkjINCVOjTdjWuynGjXF6Nb+XyMH6VDmOpLKd1EHHartCzGmNKExfeN6MVeSHAK99kyIrQvfdERhFpVUnlPEF4pxREhdhOqSC5i7WqxHW1SFfCPoDYKHqTiNgUMkSCINGOEx5mLogUO9bhfJDflfWUYkTrCgGgUtQKuWFZfyla1EoRG1UJ+AB6YoN1nnbuyIp/V8t9yzg71mFUt91YK1whLBwvTcyKf5VtIVDMrcM53xUIFjJIU8RYSvZ27UmK+hyZDXXGhaiwvxZRizR1o6u+iIymJzY47+nk4QzUI41RQUKZua7Qr/yDmBVSv+HU0hMXAkIVzk0Zm1FQG1e3VorM+urcxUbTE4c4emJd9avRqhIuhv6DzPpKCBmbUI8uxkQlw8RTixSJUZUMcTymqBu64sOyROknjEwYg7ro91A2tKPLvhgnNNTlUuzvirpD++HzbE7GthDYf//9WblyJaeccgpXXHEF99xzDwA9PT0861nPmtZMu3KFRRAEQRDmgDIxn87+842bbrqJm266iRtvvJGzzjqLdrvNqlWreP7zn8+aNWtYs2YNe+yxx5TqloRFEARBEOaAnfEtoec973k873nP413vehdZlvHDH/6QG2+8kRtvvJEvf/nLdDod9ttvv+qB3MkgCYsgCIIgCDNOHMcceeSRHHrooRx22GF8+9vf5jOf+Qx33XXXlOqThEUQBEEQ5gDLNGe6nbFIZpZ2u81//dd/ccMNN3DjjTfy4x//mNWrV3PUUUdx6aWXVoLEySIJiyAIgiDMATvjW0JHHXUUP/7xj9l333058sgjeeMb38hRRx3FbrvtNu26JWERBEEQBGFG+K//+i+WL1/OmjVrOProoznyyCOn9WbQeBbWa82CIAiCME8o3xKazjLf2Lp1K5dddhk9PT186EMfYo899uCAAw7g7LPP5l//9V954IEHply3XGERBEEQhDnAFfPETGf/+Uaz2eS4447juOOOA2B4eJhbbrmFG264gQ9/+MOcfPLJPOlJT+JnP/vZpOuWhEUQBEEQ5gA7zYRlR5jkrtlssmTJEpYsWcLixYuJoohf/vKXU6pLEhZBEARBEGYE5xy33norN954IzfccAM/+MEPaLVa7LHHHqxZs4Z/+qd/Ys2aNVOqWxIWQRAEQZgDdsYrLIsWLaLVarF8+XKOPvpoLr74YtasWcO+++477bolYREEQRCEOcC66SUd1j1xme3NRz7yEdasWcP+++8/43VLwiIIgiAIwoxw+umnz1rdC+u15sKc7AvjLQSDrTdRYVcONmdVmG9VaWAu9/Xj0lmlwj5RfZzhOQcbzM1eR93yRZ1oXSyhTh8V1maXB4Owd4VZOWxXtZ5g6/UumJRL+3FpQtaPcfoqM7KujMs+bePGWqHeKNh7fRZsyCF2h++0w/bCQuzzFGVM1wbtbKgrz4Ip2drKTFyZiov2VVLHF3ZjtMENbi4symnXeFy0a5p9406RIxtpBSOxc6g4Jh8dwzR6UHGMz1JMLfSbHRut6qAwNYe4M7yz3eMp+snnKS7LQ71aY7dswmU5qlYP9mWj8dYFOzPg0hzfGcONbMW1hvHtFroezonSBj2wNJwT54KFubBalzHY4a2hn5xFN5qoOEZpXfW/SkrjtQ196brjy+dZYdS2Xbt0ZxSK8+HTdhhXSR01NtQdo+O/FmNS2axrH1calXdC+3latenHjXMzUZpLIffFe09SbPS+ayUubcCp9eTW44HIBCNuPdJYB4lWj/hv0HlPXJybWAf7b26prMb1SFc2Yus9NaN5oFWcG09lR4511zBc1leaemMdbMplew+faGu8Obq0FgfLsK7KaqXo5K4yGDdiQ1Tak62rbMwhThioRRgdygWjs6r69NEm+qpFmsWNuDqGWqSpRZp27hioR1W9ndzSl0Rd83BhTe6vRWTWVXHWorJPJ1qnY6PJi3LOh8+9SYTzvrJR9xQxQ7AXl6/NZjYYjzPrq5jK+rsGZ1PYuTVGh3MfLNDBvh1rjfcQFfsFw3YwREdakRbnKTEapbqG5tIkXcZYrjdahXHowvfl2MydL9YH83dUrA9xhH27x9gdl+phtujtQXlLaDrLQkKusAiCIAjCHLAzPsMymyysKyyCIAiCIOyQyBUWQRAEQZgDdsaJ42YTSVgEQRAEYQ4onwObzv4LiR3qltDatWtRSvHmN795rkMRBEEQBGE7ssNcYfnxj3/MZZddxoEHHjjXoQiCIAjCtJGHbifHDnGFZWRkhJNPPpnPfOYzLF68eK7DEQRBEIRpI681T44dImE566yzeMlLXsILX/jCJyzb6XQYGhqasAiCIAjCfCN3ftrLQmLe3xK66qqruP322/nxj3+8TeXXrl3LhRdeOMtRCYIgCIKwPZnXV1jWr1/POeecwxe/+EXq9fo27XPeeecxODhYLevXr5/lKAVBEARh8sgtockxr6+w3HbbbWzatIlDDjmkWmet5eabb+aSSy6h0+lgjJmwT61Wo1ZM3S4IgiAI8xWZh2VyzOuE5QUveAH/93//N2HdaaedxlOe8hT+9m//9hHJiiAIgiAIOyfz+pZQX18fz3jGMyYszWaTpUuX8oxnPGPS9XkdBTGfd12hH4AqxHnFV6+KbnE2yAwhCAl1kCSiC3mi0kFgaEzYbpLwtRQolu0oPTEG70IbpZRvXPulBFHZDJ91ip2C5K6U+flOGxUlQZxXShGjpCsgdLYrSiy++iwN8r04CcdYlFW1Oj5Pu/VoE2SB2uCGt0Ih6tN9i6p2JrQRJaikjm40Q73OQZ5ClOBGh4O8r2gzVGQK0Z9FaY0ba4Vja7fwYy2yjeur9nW9B59lRL29qDgObTvXjaU8fXEcJI3O4tN26J+kDs4S9zbD8RftuCwvujQIC6OeOpSiQcBlOW5kK740ohVSQ4Bo+Wp8nqHiJPRZezQIEAlCydD2WDg+gjwRZ/Ht0RCPNuEYdIhVGYOq94TtcRIkifVmdVy6b1EQI5YxaBNiHWt1z6GOQuxKh9jytBpTKm93x57SKDtue3keIUg7vQMbxoT1QS7YFfaFCaqUUvhioqryH7tYK4xWxFpN+E9Ro4h0kOxlzuGBuKjQeY8mCPFKMV8QCIaySaQwOkjwYhOEhPWolBqGbQBGUwn3kiiU67YBvYmp9inrCWJFxUAtCvJCF6SGZf0ASxoRo5mtpHvOeyKju8dqdNU31lNIDh2xUeTFuKkbTV/ZhvWVTDHWilqkyZynFplCMNgVES7tScispyc2xEZXssN6pKlFhkZsMFrhvGegFtETh2OMjSY2msho6uP6rezvUtLYKOoFyKyjHoXjKmMIgscgJGznjsx6WqmtpIiZ85XQsjeJ6KsZYq3pq5lK7Dh+MjNT9H090sU5Df0f5JZBPGgLqWYpPdTFYlS4ZaJUGGeeIETUxfkd7yq0Log3NWE/paikh+PHplGFKLEYm957Yk0laNzeWO+nvSwk5vUVFkEQBEHYWZF5WCbHDpew3HjjjXMdgiAIgiAI25kdLmERBEEQhJ0BucIyOSRhEQRBEIQ5QBKWyTGvH7oVBEEQBEEAucIiCIIgCHOC9Q7r3LT2X0hIwiIIgiAIc4BMHDc55JaQIAiCIMwB83Vq/nvuuYfXv/71rF69mkajwb777sv5559Pmqaz0t62IldYBEEQBEGo+NWvfoVzjk9/+tPst99+/OxnP+Ov/uqvaLVa/P3f//2cxSUJiyAIgiDMAbkDNY2rJPksPcJy3HHHcdxxx1Wf99lnH+68804uvfRSSVgEQRAEYaFhnUfPwGvNQ0NDE9bPhgR4cHCQJUuWzGidk0WeYREEQRCEHZiVK1cyMDBQLWvXrp3R+n/729/yiU98gjPOOGNG650sCydhMQmYCK90V24IlcQQpYMArpBJVWV0uAhVSgsBvEmC3DBvo7OxUFY9sitLwaE3cbWfNwk+KQR3hYDQx7VuG0rjs061TykZDAJBje+MVUJCby1KmyDC64yhtEaNl9ppgy/2t1seCPI8rdHNfnynHeR5eQbO4cda+LRdSfyA0CZAnoZ2SuFia6iSAI5HRTG63lOJB8sYiOLqs4qCgFH3LQ6ywHYh8ivaHLr7fnQSVXJA3bcoCAajJBw7QVyo+xajjO4KGcs6CrEgEOJt9qOTCFfKDQshodIaXe+p+hFAGY1NM3ynjY4jot5edLOvqF8HSWOeoXv6ivrj0Hc2SBfdWCvIGZv9qKRexedaQ7jRoSCvrGSUWdVu1X/lMbhwXnW9iW72Q62JqvWUhfB5iq43g2hRR6G/S3Gm1mHMKo2yefG1FHiaMIaVBpt32y3K+bgBBEGc9x5bCBCtr34ssNXX7n+F3pfyOFAqCO1KiZ33FJJBTy1SoZyDyEAzMcRGMZpZGrEuRHya8T63du7o5K6QDoalJzYsrsdYF0R2tXHWdlPIEXUhxmvEupAzhrqdDwK/du6CzLAQIlrnMYVkr5QeGh3i1irIBmuRoSc29MQ6SBeLNoxW1E1Yp7VioB7TX4+rvhwvIlzak6BVkCT2xBqtFCNpXpVd0gi/bzIXhIXWB3FiLdL0xOF3jHWe0cxW5epRqGc0syH+4hhKGaFWisWNmFoRY19iGKhFxEZTjzUD9WiCzNEUsslSLBlEhbqSMGY2tDn+uPpqEbEJ57YvKY6hGCyx1pV4EiDSXRFmKTP0nqIthVKQFEJNoxWaMK6i4qQaHSScvhAg+kLMaYry5V2Schy18674MCnaTZ0ndx5XHHOQLart/gdxph66Xb9+PYODg9Vy3nnnPWp7F1xwAUqpx11uvfXWCfvcd999HHfccZx00km84Q1vmPU+eTzklpAgCIIgzAEzdUuov7+f/v7+Jyx/9tln88pXvvJxy+y9997V9/fddx9r1qzhsMMO47LLLptynDOFJCyCIAiCsADYZZdd2GWXXbap7IYNG1izZg2HHHIIl19+OVrP/Q0ZSVgEQRAEYQ6YrxPH3XfffRx99NGsWrWKv//7v+eBBx6otu2+++6z0ua2IAmLIAiCIMwB1vlpvdY8WxPH/ed//id33XUXd911F3vuueeEbd7P3ey6c3+NRxAEQRCEecNrX/va4sHmRy5ziVxhEQRBEIQ5wHuPn8ZVkrlOILY3krAIgiAIwhzgnJ/WcygLTX4oCYsgCIIgzAHTvc2y0K6wyDMsgiAIgiDMe+QKiyAIgiDMAd5N8xkWuSUkCIIgCMJsI8+wTA65JSQIgiAIwrxnYSUs3j1ylYkhT7tSOKW6MsRin1KE6ONG+GyC9M/rIFPEdCWAPqrho/q4+hPwvlrnoxrYrNuG0ijv8LUmGBNkdnGtKz2s1cHEQVwHkGfoRhOfp6i4lPvVUXGCdw6fp0HGV4gVlTZB/FcI9XAuCAhrIR6V1AuhYjJBQlgJBJ2t1qukjs8KkV6eVkLASmzYaE74Wh4DeYaqNyfUg9ahzbJcIRhc/JS90VGMavYHuWMUh/KAMkFs6MdaxXEWMsqxVqgfUFqDNqhaIxxLnmL6FoVtcULULM5NlKDiBNtOIU/RzX50FFNb3Ieq1dFJFPq43gxSx0YT126F446Sqh99FvYHcFmQ2Pk8A2fRcYR348ZcUc7naXUsSpvq+HzRpxTrfJ5Cc3GQF9qsGo+qkFgCqLTVPWdKVwLNaqy7PIw57yq5p3I5yoVY1bjxXa7LnacWaRTgCgGiUl3hodFBFugL2SFQifZy5zE6SOYqWZ0KkkEAhw/SPMICEyV51nuc98TF8fUlUSXKayZBPmgdNBNNEim8D223M0dsFFHxY1LKDnUhNCxjjLXGOl+I/RS1SNOxrhArBuFfKeuLtaK/FtETGzIb4qoZjfNBythbixioRWil6K/HWBe220JImNlQpmY0RsGyZo16FESCjdigC8lgrENZrRTt3GEUldxwNLP0xEFWOJJachtEkEAlgsycp5Nb6lEQGdaMruSG1XEbTV8t9F9sFNb7SvrYm4Rj6EsMsQ7bemKD82Fb5kL/DNQj2rmjJzbVeXNFPbFW9CYRRkNWjPnYqGrcOO9RKpx/UwgOy7HlqnMT5ImlSNMRBIbWQzMObcTF2CvrKAWJRhd1+fBHzaiwPQgVi7qAzHUnWyuFjzBxArZH/pWYPaofy2ksCwm5JSQIgiAIc4C8JTQ5FtYVFkEQBEEQdkjkCosgCIIgzAHy0O3kkIRFEARBEOYAea15csgtIUEQBEEQ5j1yhUUQBEEQ5oJpXmFhgV1hkYRFEARBEOYA5z1qGm/6uAX2lpAkLIIgCIIwB3g/zWdYFljCIs+wCIIgCIIw75ErLIIgCIIwB8hbQpNDEhZBEARBmAOcAzWteVhmMJgdALklJAiCIAjCvGdhJSxlOholldxQuTx8Hv/wknegVNimoyAe9K4QAUZBRgddQWKxjy+FhuO/pyuV8zpC5Z0gqYsb+CgOi9IhNmu7UjqbBlmgtUFeB6haA6IY71whECxMb8VXVQjjKMSH5BneWXRR1jtbSPWySlgYhHthf5+2g6yvlCCW9TkbBIlFW6rRhCjBZ1kQAOYZuncRPstCbFES5H+9i8J2a1FxHIR/hfCwlP7p3kW4sRa+M4aKE/TAUlSzP0gPTXFccYyKggBS9y0qpIoOU6uFz1pX0sNSABnEghqfjTvWLEXHxfl0FlVvBmFhlIT2mv2YZh9oQ7zbykIWaUO/lH2qDeQpvjOGb49W40nVm0HGqHUlbKykjfVm6JNonCSzkEi6sp+LY1JRgu7pK47J4KMEn2f4PEPFtSAurAXZJXkWxJjQHW86Apd3x+aEMdod435cLOPH0IRVikKUV3wGMudRUMnnchekdmV5YIL0UCmITNhWChCjQlaXGMVoFqR93sOieoRRCq0UmXNoBfU4yAETo6gXMr/YBJmiJggWY6MKAZ+mkwdxXz3SFMWpRboSBcYmyPIacRAE1qOu8LAkNooljdCvznsGalGoo4hbKwppYZAXLmkEQeKSRlyI+BS1QqQ4UIsYqHcXXfRB5oIQ0HpY3IixPtQ5klqW9dbQKsgGY63piTWx0dQiTVSIDZc1axjVlQFqpVhcj6lHmr5ahPOezDp26QnneZeeGK1U1SdBDqkY7lhqUdcCWMoYtQoySFP0a6M4D2UfPDSWhbHhQn9lzmOU4qGxnMToSqg41MmJdDg/mhBvKScEyF1XThnGRuhfpUqJYTgH5UWIUnxoxo0npSApx5ymkkOWY7Ycv86Hh1RV0W+miCXSCqUUSWFD3J5/FEuX0HSWhYTcEhIEQRCEOWC6xuWFZmteWFdYBEEQBEHYIZErLIIgCIIwBzjnp/nQrdwSEgRBEARhlpHXmieH3BISBEEQBGHeM68TlrVr13LooYfS19fHsmXLOPHEE7nzzjvnOixBEARBmDblFZbpLAuJeZ2w3HTTTZx11ln86Ec/4vrrryfPc170ohfRarXmOjRBEARBmBbhle3pLQuJef0My3XXXTfh8+WXX86yZcu47bbbOPLII+coKkEQBEGYPvIMy+SY1wnLwxkcHARgyZIlj1mm0+nQ6XSqz0NDQ7MelyAIgiAIs8u8viU0Hu895557Ls997nN5xjOe8Zjl1q5dy8DAQLWsXLlyO0YpCIIgCNuG99N8hmWB3RLaYRKWs88+m5/+9Kd8+ctfftxy5513HoODg9Wyfv367RShIAiCIGw73nncNBa5JTQPeeMb38g3vvENbr75Zvbcc8/HLVur1ajVatspMkEQBEEQtgfzOmHx3vPGN76Ra665hhtvvJHVq1fPdUiCIAiCMCNMV2Aot4TmEWeddRZf/OIX+dKXvkRfXx8bN25k48aNjI2NTboulbfDNybYbL3SeBMFg21pkPIOr6PCuOyrdbjComyCWdnHjaLS0H3exPi4gRpftrTfFm2VbSiXB72osyib46M6yjuUDTbgqn0VDL7KmMo8DEwwMQOoOFxN8llamZK9s8FYHMXB+FvUo7TB52mwCReG4lBHUpmRAXye4cbCq+O6XpiZnUMZg240J5h9o2V7hM9VfCne2crq7J3Dbd0UtmldGYxDbBrVaIb248JSDPiibVVvhs+dri3ZtYaxnQ7e2q6lutao+kD39KGb/cGeXPZRTz+mb1FYHyX40eJBbGeJmvUJn32WBXN0owlF/+ievmBTzrPiWA2uPVrF4EeH8GkbnUThWOrNwiy9uDpen6fBOh0noQ8LgzQQzkU9tKfiGN3shzxDNZroTiv0aZbiO6N4k4Q2x1rh+Hxh104aYeyMx3vQUbCEF+VQCm9iVJ4WYzcK566wsCmXY7Qid8GQa11phYXMhSqtD6bl0qbr/URDbjAph1+miQlmXOe7ZbUCRfgxqEfBDOzwRDqYnXsKM3Ct2LcWBWuwLV7jLO3Q1nsa/397dx5XVbnuAfz3rrVHRgEHQAG1HFMp8VrqUSxzSClNS/MYqbcsSzPLBk9cEzM1S8uOJ5uOerLjzeGqeTIzzTI1HEnScmoQRcXUBJFhT2s994+194LNIDjA3uDz/Xz4wF7j+6y92Lys6WcQetKy0ZO26057NrmjiUPMBgSatH3FqRDMsuROXdbShiUB1LMa9LRpIbSEZwCoH2DSbx01ylpbC50qJCEQZDIg3J2C7FS0328tpVlCqEVLcHaqBIt7WXaXClkCgkwygk0ywqxG5Nmc7uTh4uWbZQn1A4xaOrIs4FQIAUYJ9QNMCDVry61nNeCSQ/FKibYYtJRks1y8PrM73VkSAioRzLIMs6ylWYdatFRnk3teAFrCtMUAoyxQP8AIp6pqydnQ0oxl93vpVAlW9zwGSejJyQAQaJRgNUh68rMsFSd3m9zJyIC2D1kN2nDPn12FtH1DKvEaKB6vlhrudJ8S0acjrT1E5JXm7Pk4l93jPO02uJOfJaHt60IIr325uvFzWK6MX3dY3nvvPVy8eBE9e/ZEVFSU/rV8+XJfN40xxhhjNcjvTwkxxhhjdZGqEsDhh1Xm1x0WxhhjrK4iVdFOoV/D/DcS7rAwxhhjPsAdlivj19ewMMYYY4wBfISFMcYY8wlS1Ws8wqJWPlEdwh0WxhhjzAdIUbTHI1zD/DcSPiXEGGOMMS/33XcfYmNjYbFYEBUVheTkZJw+fdqnbeIOC2OMMeYDRIp+4e1VfVH1HWG58847sWLFChw5cgSrVq3Cb7/9hgceeKDa1lcVfEqIMcYY8wF/vkvo2Wef1X+Oi4vD5MmTMWjQIDidThiNxmpb7+Vwh4UxxhirxfLy8rxeX+8Q4AsXLmDp0qXo2rWrzzorAJ8SYowxxnzimk4HlTg6ExMTg9DQUP1r1qxZ16V9L730EgIDAxEREYETJ05g7dq112W5V+uG6bCQkLQAOCq+DUwoLpCs9RbJHSIoXHZ40tVIMoAMZkBI2ne4wws9h+FUl/Ya0ILzhKTN6w5FFKpLW6ds1Id5ghUFqSCDSQtUlAzuUEWztjxStencQXsAtO+qAtVh04IQ3eGBACDMFkBVQfYikMuhheJJWtihNp8KGIxaIGKJ2+g8YYCQJC3wz2TRw/okqzt40B2cKLnDAPXwQgBwOaBc/BOSJQBQVS1gMDhMbxMVFWjLtARCGEyQgupBmLXXauEliMAQr9qE2Qpy2LSQRINR26aqCnLYtPW6AxWFLEGYLZACg7XQQFWBaivUgyI974cwWbT1SRKkgGB92WS3act2OWEIa6Ct32DSa5NDI7z2HSk0QgsYVLQQSmG2wNCgsb4NREAI4HJ4zSdkWVu/O1SSnE4teNGphQ7CYHK/b4oeHCmZLCCnE5AM+vtOkgFqUUFxOCWpECaLO2BSC8nUlynLEC6bO6hTdodslthHSUsvJKNFm082FO+XqqKHJxokoQXQCcAkSxDu4DpZ0sYBgNUg6SFx7sxBPUiOiNzzCBBpgYCS0MIGTbKA2R2iZ5QErEYtJE+CtpAgowxZAGZDcXCdFpInuX+WYHGHF5pkAcn9u+oJ2DMbhN5GT4adLMG9LgGLUUKAUYYshBYsqKruYEaBAKMMoztwMdAkQyoxTBbQAwmdigqVCLI7IzXfoWhBf7JA/QCTHsZoMUoIMsnueUgPW1QJCLUYYDFIsBplmA1am8yyti2CzbK+vEKnFnAIAI2CTAi1GKC4I0u0wEShBzU6VRVCAPkOF2wuFQbZEwpZ/DHv+VELpZQQHmCEQsXLsRglmGRPkKIMq3t7FbmDG82yBJeqhTECWnil4g65NMhAVJBZD6e0GiWEW7W2mw1Ce4/c4YMmWcDuIsiSgEMhCGjBiLLQplHcgZqewEVniUfQm+TiME1FhVfwohDekS7a+qDvD57FePZTghasKNzfazD3EMD167BkZWXh4sWL+tff/va3cteXmpqq/25W9LV37159+hdeeAH79u3Dxo0bIcsyHnnkEZ9G5vApIcYYY6wWCwkJQUhISKXTjR8/Hg899NBlp2natKn+c/369VG/fn20bNkSbdq0QUxMDHbu3IkuXbpca5OvCndYGGOMMR+o6QfHeTogV7Uu95EVu91+VfNfD9xhYYwxxnxAVZXi09hXO3812L17N3bv3o2//OUvCAsLw++//45XXnkFN910k8+OrgDcYWGMMcZ8wl9va7ZarVi9ejWmTp2KgoICREVFoV+/fli2bNl1vfvoSnGHhTHGGGO69u3b45tvvvF1M8rgDgtjjDHmA/56hMVfcYeFMcYY8wVFAUnX0Ong8EPGGGOMMf/CR1gYY4wxHyC6truEqjP80B9xh4UxxhjzAVLVa+uwXOFzWGo7PiXEGGOMMb/HR1gYY4wxH6BrfHDcjXaX0I1zhMVg0ULfJAMguwP/DCYtnFBxh8N5Qg6JikMSiTyJWgCpWkCcJ0RRSO7X7mk8QYbuYSQkkMGizSek4uULob2WDPrOSiYryGgFySZ3G9zrDwwrDkBUFS0UUJIBl1Obz1niMckuJ4TJAskSCMkSqIUdShLgDv/TAgQlkMvpFZ4lDCaQqkIKjYBkDYQc1kCbVlVB7mWqBXmQ3GGCcmiEFvTnDlcU1kAtoNAdkAgAUkAIhDUQkjUQUnA9CEuA1t6iAshhDQCXE1JAsHuzS1qAoLudUmAIpOAwPYxRC080Qg6NgDGqKSRPSGFEFOTQCC1U0WTRvlsD9W0kjFqgobAGam10OrT6GsVCjojSNmnBJUBVIIdG6GGJUnCYFpAIaCGFBpO2PFnWtoc7MFK4Y9bl4HqQI6IgDEZtOxu174b6kSCnA3JwPT0MkRw2bZlGo/Y+BYRAcm8/rc1G7b2X3OGXpL0HWju0ushWoLeDJAOE0QSSTVp7FQWqKUi7+8BogXA59P2UJAPIZIVwObTgQ/c+D8kAoTj03UhSnJDcQWgKUZmwM0kASokwOuEOn5NKvJYEYFe0wDxJFAfUmdxJiZ5FWmQJAUYttFAhwCgBDpVgkQVcKvRQREm4AwwNQg/XM0gCKhEM7l8Pg6wF6EkCCDDKUAlwKJ6gQAGTJKCoBKtRgtE9rywEQs0GyBIQbDIg2GRw1yIQGWSCJLSAxTCrEZI7MLF+gDY81Ky9/6FmA4JMBphlGSaDNo3dpUIW2rSBJhk2lwqTOwCwfoARQe71RAWbEWCUtUBGybN9tZBEi0GCLLSAxgCjDKM7mS/QJMPh0uqyukMIPe2UoAU2xoZaIQsg2Czr81gMEgKN2ndAW77VHV5olCQEmwwINEp6OKVDIVjcjZKF0EMbAaBRoBkGqThYUnJ/RBplLWzQqRbPa5K0/chqkFDkUiGEgEUWMLgDLD37khBaGKbsDskUojhs0+IOoDTJWhCixb2drQZtuCSK90O5RPilLNwfzaJ431VL7LOl1XD2ofvR/Nf2dSO5cTosjDHGGKu1+JQQY4wx5gN8SujKcIeFMcYY8wHusFwZ7rAwxhhjPqCqCgR3WKqMr2FhjDHGmN/jIyyMMcaYD5CiAuIajrAoN9ZdQtxhYYwxxnyAH81/ZfiUEGOMMcb8Hh9hYYwxxnyAVOXaTgndYBfdcoeFMcYY8wHusFwZPiXEGGOMMb9X54+weHJQLl26VJzPIyRA0TJWhOLQc36E6gIJCUJx6llB2vSiOC/I3aP13DtPkqxNJ4SW2eKZHwBIhSDScltUxZ3bouXDQFW0cZIM4dLygMjoglSYDwgB4bJrWUAurQ3CaQPZC6AWFUI2FEDNL4QkjHo8OdltWvaPqkAYtPWrRYWQYAQ57BAmBeSwg5y24mwieDaHDKWgCJJk0jKKJAlUVAThIsBg1McbrIUQCqAUFEI4VagFRRCqcGccuSAJI5SCQgCA5NLWLwwukMsBCVruilJQBNlcALWgEJJkhlpUCLWwCJAVSJBBRUUglxOyqRBqQRFgcOc8qSqE0QVJleEotMFQUAghyRCyEUqBNo+QJAhVFC9PFVA9dQFwFdogkQRBBkiqgKuwCFRkgyQMkC3a+lT3stWCIiiFNsiWQsiyBc7CIsiGQiju8RASyGkDFRVBNhaCFCeUgiIIgwtCFZBcAsKpwFVQBFku1N8LV0ERjPkFUAoKIbmElp9E7nwnuw3CaIRwCagFBRBOFXAQlIJCyMYCCEkCOQDo8wNCzgdsBVCNlyA5i7QsIZcEqSgfZFIgnDaoirb/kWzUc4NIcv/qe76TCtVMEKoLEBIUyQinSpAEYHOq8NyLILtzggAtp0dRSc8cKp0lVOS+g8ElS3C482IUIgho2TceKhHckT8QRgn5DgWqLMGmFM8j2WUUKSoEAIXcmTCkZcQ4VUKRU4XizghyKKRl98gSXCrBadAydlyyQL7NBZMsQTVKyLe54HSvQ3LKcLn/WZUlQFG13Jp8uwKXqqLQqcKiaPtwgU1BoUtBvnBAIYLdpcLuIqhGCSaDlo1TYFNgVY1wqQSDJFCQb0e+sKPArkA1SpCEQIFD0belJARcKqHQpSJfNaLApkA4JBTYFBhlAdUowWWQUGBzgdxZQoWFDuQbnSgocqGwyIUCxQBhMqCg0AmYZBTmFyHf6EJBkQv5ZIRREpCFtn1MsvbdYdAylfJtClSjDJdRQAAocGpZSKpRQr5d0eYzCBQ5VX0/UIxCz2oyygJOheBQCJJDRqFThWqUoLo/f50qwSVLcBHBIUkgIjiJIOwyLjm0DW+SJH3bS3oGkECRSwVMEpwK6fuhURL6Oov3I7hzkbT3QJY8mVbavunJGHKqBKdBa4PqHZMFwP23AiiToVUdyGm7tqMknr81N4g632Hx7HzNb4n3cUsYY4zVFpcuXUJoaGi1LNtkMiEyMhJnDq645mVFRkbCZDJdh1b5P0E10Y30IVVVcfr0aQQHB1eY0Okv8vLyEBMTg6ysLISEhPi6OdeM6/FvXI9/43p8g4hw6dIlREdHQ5Kq76oJm80Gh8NR+YSVMJlMsFgs16FF/q/OH2GRJAlNmjTxdTOuSEhIiF//Ql8prse/cT3+jeupedV1ZKUki8Vyw3Q0rhe+6JYxxhhjfo87LIwxxhjze9xh8SNmsxlTp06F2Wz2dVOuC67Hv3E9/o3rYcxbnb/oljHGGGO1Hx9hYYwxxpjf4w4LY4wxxvwed1gYY4wx5ve4w8IYY4wxv8cdlhrE1zf7P36PWE3g/YyxK8cdlhqiKIqea1QX2O12rF69+ro8Wtof2Gw2vPzyy/jwww993ZTrwm63Iy0tDcePH/d1U66Z0+nEqVOn9Ne1/Y89fxYwdnW4w1ID3n77bXTr1g2DBg3CxIkT8dtvvwHQco5qo4KCArRr1w4PPPAAtm7d6uvmXLOFCxciMjISu3fvhtFoRFFRka+bdE3mzZuHpk2b4oknnkB8fDzef/99KMo1JML60Ny5c9GiRQsMGDAASUlJ2LFjh99ngl0OfxYwdvX4OSzV6JdffsHYsWORlZWFlJQUHD58GFu2bEFwcDA2btzo6+ZdFSJCYWEhkpOT8dtvv8FsNuPbb79FYGCgr5t2VX777TeMHj0aI0aMwBNPPOHr5lyzKVOmYOXKlXjrrbfQsmVLLFmyBPPnz8fp06dhtVp93bwr8tZbb2H+/PmYM2cO8vLysHbtWnz//fdYuXIlevbs6evmXRH+LGDsOiBWLRRFoblz51L//v3p1KlT+vCVK1dSfHw8HTp0yIetuzY//vgj3XbbbXTs2DEKDAykd999Vx+nqqoPW3bl5s6dS7fddhsRER0/fpymTJlC//znP2nbtm0+btmVO3/+PN1+++00Z84cfdjRo0epbdu2dO7cOSKqHe+PoijkdDrpnnvuoSeffNJr3F/+8hfq168f7du3zzeNuwr8WcDY9cGnhKqJy+VCixYtMG7cOERHR+uHfIOCgnDmzBlERET4uIVXhkociBNCICYmBk2bNsXYsWMxffp0fbzdbvdVE6+Ip72//vorevfujS+//BKdOnXCnj178P7776NXr1547733atXpocDAQOzfv9/r0ecpKSmIiorCypUrcfr0aR+2ruokSYKqqjhw4AA6duwIQLvGCNBOdx09ehQbNmyoVftaXfosKKkufBaw2oM7LNfJkiVL8Oyzz2LJkiX4448/YDKZcO+996J///4AoJ93z8vLQ3R0tN8fni9Zz9mzZ72uG8jKytL/+M2ZMwcmkwl33XUX2rdvjw0bNviqyZdVUT316tXDihUrsH79erz22mtYt24d9uzZg6effhoff/wxtmzZ4tuGV6B0PYAWV//cc8/hlVdewaBBgxAaGopffvkFHTp0wN///ncMHjwY69at83HLy9qwYYNXh1hVVZhMJnTt2hX//ve/AWi1qaqKhIQE9OnTB6tWrcL58+d91eTLKlkPEUGWZQwYMKDWfhaUfn9Kqo2fBawW89mxnTrizJkz1KtXL2rcuDHdf//9FBsbS61bt6adO3fq06iqqh8efeaZZyg5OZmItEPF/qYq9bz55puUkpJCRETff/89NWnShIQQNHnyZHI6nb5qerkqqictLY2IiNLT0ykyMpIkSaLvv/9en+/ixYvUokULeuedd3zV9HJVVM+OHTv0aY4dO0Zjxoyhhx56iFwuFxFp+2DHjh3p5Zdf9pv97uDBg5SYmEhCCJo+fToRef9OLFmyhJo0aULr168nIqKioiIiIsrKyiIhhNc+6Q8qq8ejtnwWVKWeuXPn1prPAlb78RGWa7Rt2zZkZ2fjhx9+wOrVq3H06FEEBwdjxowZ2L17NwDtvyzPf1VfffWVfsGgJEnIzMzUp/EHl6snLS0NgNbuvXv3YujQobjzzjsxePBgdOrUCUeOHPFx68uqqJ6ZM2di3759aN++Pe6//36YzWZIkvbroKoqQkJCEB4ejoMHD/q4Am+Xq2fnzp0AgLCwMOzZswcjR46ELMuw2WwQQiA8PBwZGRl6nb6UmZmJ2bNno0GDBpgwYQLeeOMNnD17FpIk6Xc03XHHHbj99tsxc+ZMANpRFiKC2WxGTEyMX703l6un9O92bfgsqKwez3sky3Kt+SxgtZ/vP7lqMSLCtm3b0KBBAwQHB0NVVZjNZsybNw9//PEHli5dCofDoZ+T379/P3Jzc9GvXz9cuHABjz76KJo3b46jR4/6xa2aldWzfPlyqKoKu92O7du3w2azYefOnXjnnXfwzjvv4LPPPsPnn3/u6zJ0ldXz8ccfQ5IkjBs3Do0bN8b06dPxyy+/QJIkHDp0CKqqYvjw4b4uQ1dZPZ9++insdjtCQ0Nx8eJFpKenA9D+0B89ehQFBQUYNmyYj6vQNGzYELfeeiteeOEFTJ48Gc2aNcOzzz4LoPgPeosWLfDwww/j+PHjeP755+F0OiGEwIEDB2A2m/3qTqHL1VMef/8sqKweWZYBALm5uUhLS/P7zwJWR/jq0E5t5zms+9JLL1GbNm2IiPTD70REL7/8MnXt2pU2b96sD1u2bBl17tyZZs2aRSEhIdSjRw86ePBgzTa8AlWp5/bbb6c9e/bQH3/8Qd9//z3Z7XavZcybN8/rLghfqko9d9xxB23ZsoWIiNLS0igmJoZiY2Np6NChFBERQQ899BDl5eXVfOPLUdX97ZtvviEiotmzZ5MQgoYNG0YTJkyghg0b0pAhQygnJ6fG216apxabzaYPW7FihddpHs/pBLvdTsuXL6eAgADq2LEjjRo1ikJCQujxxx+noqIiv7gTpSr1lD6VUhs+Cy5Xj8PhICKizMxMSktL8+vPAlZ3cIflKnl+qdPT08loNNKmTZuIqPiX/NixY9SsWTNasGCBPs+oUaNICEEtWrSgVatW1XyjL6Oq9ZS8bdGfXcn745n2p59+oqVLl9KLL75IX375pW8aXoGreX/efvttevzxx+n+++/XrwPxN5668vLyKCkpiTp37lzudF9//TXNmTOHRo8eTevWravJJl6RqtYzcuRIv/0sKKmq9TBWE7jDchm5ubn0+uuv088//1zhNOfPn6fBgwdT+/bt9WGe/3wHDBhAw4YNIyLtP8bFixfThx9+WL2NvozrWY8/4Ho0JesZOnRotbezKqpSS2lpaWlkNptpyZIlRKTVlZubW11NvCLXqx7PEbtFixb5/WdBaaXrURSFLl26VF1NZKwMvoalAtOmTUNYWBi2bt2Kxo0bVzhdREQExo0bh5MnT2LGjBkAtPO7DocDNpsNsbGxAACDwYBRo0ZhzJgxNdL+0q53Pb7G9ZRfT1xcHADfXrhZ1VpK69SpE5588kmkpKTg0KFDeOSRRzB37lwUFBRUY2srdz3rmT17NhwOB0aPHu33nwWlla4nOTkZb7zxhs/fH3YD8XWPyd+sX7+eYmJi6KabbqryYXS73U4LFiwgIQRNmjSJvv32W5o/fz5FR0d7XcPiC1wP11NTrqaW0vbu3UtCCBJCUOvWrX16XQfXU5Y/1cNuPNxhKWXIkCEkhNAfZX78+HH67rvv6NixY5Sfn09E3hc7lvTmm2/SX/7yF2rTpg3FxsbSypUra6zdFeF6inE91etaalFVlTZv3kyRkZEUGxvrF9epcD3F/LEeduPh8ENoh89VVYUsyzh37hyaNWuGKVOm4OTJk1i7di0iIiKQnZ2NO++8E59++mmZ+VVV1Z9tQUQ4fPgw2rRpU9Nl6Lgeb1xP9bnWWjxcLhfmzJkDu92OqVOn1mAF3rie8vlLPewG55Nukp/4+uuvvV57/ruYMmUKCSFo4MCBtGnTJsrIyKDFixdTVFQUjRs3jogu/wRLX+F6uJ6acj1r8dThy6e9cj3+XQ9jRDfoKaH09HT6r//6LxJC0KeffkpE2l08Jf8ATJw4kfbv3+813+LFi8lgMND58+drtL2V4Xo0XE/1q0u1EHE9Hv5aD2Ml3XAdloyMDBowYAA9+OCDNHToUGrZsqU+TlVV/b8Izzndkr744gtq0KABbd26tcbaWxmupxjXU73qUi1EXE9J/lgPY6XdcLc1N2nSBB07dsTUqVMxYcIEOJ1OpKamAvC+NiAgIKDMvOnp6WjVqhU6depUk02+LK6nGNdTvepSLQDXU5I/1sNYGb7uMdUkz2FRT+prYWEhTZ8+ncLCwig7O5uIyl4lf+7cOTp9+jRNmzaNGjdurD/sydfXQ5RsA9fD9VS3ulRLyTZwPf5ZD2PluaE6LCV5Do/+/PPP1LlzZ3rooYeIyPuX9dChQzRlyhSKi4ujNm3a+PyZHZfD9XA9NaUu1ULE9fh7PYx51LkOi91u14PTSvMMV1VV/+V1Op20aNEiCg4Opm3btunLINJyWtavX+/TrA+uh+upKXWpFk9buB7/rYexK1WnOixTp06lXr160eDBg2nt2rX64VFPsmhpnv9EsrKyaNCgQdStWzc6ceIEDRkyRM/L8CWuh+upKXWpFiKux9/rYexq1IkOy/79+yk+Pp5uvfVWWrBgASUmJlJCQgJt2bLFa7rly5eTxWKhTz75pMwyli1bRkIIkiSJbrnlFsrMzKyp5pfB9XA9NaUu1ULE9fh7PYxdizrRYZk2bRr16dNHPyyam5tLQUFB+sOTcnJyaNiwYdSgQQOaM2cO2Ww2fV6n00lr166liIgIatGiBX311Vc+qaEkrofrqSl1qRYirsff62HsWhh8fZfStSAi5OfnIy0tDTExMfrwCxcuoHv37qhfvz4AICgoCEOGDMHbb7+NqKgor2U4HA6sXbsWzz77LFJSUmq0/aVxPVxPTalLtQBcj7/Xw9j1UOuyhLZv347Y2FjExsbqw5566ils3boV9957LywWC2bPno3Y2Fj8+eef6NGjB5566in06tULRAQhhD6f57WiKJBl2RflcD1cD9dylbge/66HseuuBo/mXJPNmzdTs2bNKC4ujqKioig5OZn27NlDRERnz56l999/n8aPH0+NGjWif//733Tx4kXavHkzDRs2jPr27Vvh1fW+wvVwPTWlLtVCxPX4ez2MVZda0WHJysqiLl26UEpKCh0/fpw+//xzuvXWW6lXr1505MgRfboZM2bQoEGDvJ43MH36dEpISKCsrCxfNL1cXA/XU1PqUi1EXI+/18NYdaoVj+Y/dOgQ9u3bh5EjRyI2NhZJSUmYPXs2VFXFK6+8ok+3fft2dOjQwevQaH5+PsLCwtC4cWNfNL1cXA/XU1PqUi0A1+Pv9TBWnWpFh+XChQto3bo1VFXVh91999144IEHsGvXLqxfvx4A0KVLF8ybNw/z58/Hvn37kJKSgo8//hjJyckQQoD85HIdrofrqSl1qRaA6/H3ehirVj48ulNlBw4cILPZTJ999pnX8MOHD9PAgQNp5MiR+rAhQ4ZQy5YtqXXr1pSQkKA/4dGfcD1cT02pS7UQcT3+Xg9j1anW3CXUv39/FBYWYt26dQgKCtKHP/PMMzh69ChWrFiB4OBg2Gw2XLp0CadPn0Z8fLwPW3x5XA/XU1PqUi0A1+Pv9TBWbXzdY6qqjIwMMhgM9N5773k9HGn69OkUGxvrlaVRG3A9/q0u1VOXaiHiehi7UdWaB8fFx8fjpZdewquvvgpZljF8+HCoqordu3djxIgRMBi0UkpelObPuB7/VpfqqUu1AFwPYzeqWnNKyGPcuHFYtWoVYmNjcfbsWQQEBGDFihVo166dr5t2Vbge/1aX6qlLtQBcD2M3mlrXYbHb7Th48CAyMjJgMpkwYsQIXzfpmnA9/q0u1VOXagG4HsZuNLWuw8IYY4yxG0+teA4LY4wxxm5s3GFhjDHGmN/jDgtjjDHG/B53WBhjjDHm97jDwhhjjDG/xx0WxhhjjPk97rAwxhhjzO9xh4Uxxhhjfo87LIwxxhjze9xhYdUmNTUVt956a42vd8uWLRBCQAiBQYMG1fj6rydPLbm5udd92T179sTEiROv+3IZY6w6cIeFXRVPh6Cir1GjRuH555/H5s2bfdbGI0eO4F//+pfP1u/vVq9ejenTp/u0DT///DOGDBmCpk2bQgiBefPmlZnm0qVLmDhxIuLi4mC1WtG1a1fs2bPHa5qK9sM333xTn8Zut+Ppp59G/fr1ERgYiPvuuw8nT56stI0nTpzAvffei8DAQNSvXx8TJkyAw+HQx9tsNowaNQrt27eHwWC4ok7yqlWr0LZtW5jNZrRt2xZr1qzxGr9161bce++9iI6OhhACn332WZWXzVhdwx0WdlWys7P1r3nz5iEkJMRr2DvvvIOgoCBERET4rI0NGzZEvXr1fLZ+fxceHo7g4GCftqGwsBDNmzfH66+/jsjIyHKneeyxx7Bp0yZ88sknOHDgAPr06YO7774bp06d0qcpue9lZ2dj0aJFEEJgyJAh+jQTJ07EmjVrsGzZMmzfvh35+flISkqCoigVtk9RFAwYMAAFBQXYvn07li1bhlWrVmHSpEle01itVkyYMAF33313lWvfsWMHhg0bhuTkZPz4449ITk7G0KFDsWvXLn2agoICxMfH4x//+EeVl8tYnUWMXaPFixdTaGhomeFTp06l+Ph4/fXIkSNp4MCBNGPGDGrYsCGFhoZSamoqOZ1Oev755yksLIwaN25MCxcu9FrOyZMnaejQoVSvXj0KDw+n++67j44dO1Zhe7799lsCQDk5OV7DV65cSe3atSOLxULh4eHUq1cvys/P18cvWrSIWrduTWazmVq1akXvvvuu1/xZWVk0bNgwCgsLo4CAAEpISKCdO3fq4xcsWEDNmzcno9FILVu2pCVLlnjND4A++ugjGjRoEFmtVrr55ptp7dq1XtN88cUX1KJFC7JYLNSzZ09avHixVy2ZmZmUlJRE9erVo4CAAGrbti198cUXFW6Ld999l26++WYym83UsGFDGjJkiD4uMTGRnnnmGf11XFwczZgxg0aPHk1BQUEUExNDH3zwwRVtg//85z/UsWNHMpvN1KxZM/39rYq4uDh6++23vYYVFhaSLMu0bt06r+Hx8fGUkpJS4bIGDhxId911l/46NzeXjEYjLVu2TB926tQpkiSJNmzYUOFy1q9fT5Ik0alTp/Rhn376KZnNZrp48WKZ6T37eFUMHTqU+vXr5zWsb9++9NBDD5U7PQBas2ZNlZbNWF3ER1hYjfrmm29w+vRpbN26FW+99RZSU1ORlJSEsLAw7Nq1C2PHjsXYsWORlZUFQPsP/M4770RQUBC2bt2K7du3IygoCP369fM6LF+Z7OxsDB8+HP/93/+NQ4cOYcuWLRg8eDDIHVb+0UcfISUlBTNmzMChQ4cwc+ZMTJkyBR9//DEAID8/H4mJiTh9+jT+85//4Mcff8SLL74IVVUBAGvWrMEzzzyDSZMm4aeffsITTzyB0aNH49tvv/Vqx7Rp0zB06FDs378f/fv3x4gRI3DhwgUAQFZWFgYPHoz+/fsjIyMDjz32GCZPnuw1/7hx42C327F161YcOHAAs2fPRlBQULk17927FxMmTMCrr76KI0eOYMOGDejRo8dlt9PcuXPRqVMn7Nu3D0899RSefPJJHD58uErb4KuvvsLDDz+MCRMm4ODBg/jggw/wr3/9CzNmzKjy+1Say+WCoiiwWCxew61WK7Zv317uPH/88Qe++OILPProo/qw9PR0OJ1O9OnTRx8WHR2Ndu3aIS0trcL179ixA+3atUN0dLQ+rG/fvrDb7UhPT7/asvRll2yPZ9mXaw9jNzRf95hY7XclR1ji4uJIURR9WKtWrah79+76a5fLRYGBgfTpp58SEdHChQupVatWpKqqPo3dbier1UpfffVVue0p7whLeno6AaDMzMxy54mJiaH//d//9Ro2ffp06tKlCxERffDBBxQcHEx//vlnufN37dqVxowZ4zXswQcfpP79++uvAdD//M//6K/z8/NJCEFffvklERH97W9/ozZt2njV+tJLL3nV0r59e0pNTS23DaWtWrWKQkJCKC8vr9zx5R1hefjhh/XXqqpSw4YN6b333iOiyrdB9+7daebMmV7DPvnkE4qKiqpSe8s7wkJE1KVLF0pMTKRTp06Ry+WiTz75hIQQ1LJly3KXM3v2bAoLC6OioiJ92NKlS8lkMpWZtnfv3vT4449X2KYxY8ZQ7969yww3mUxl9heiKzvCYjQaaenSpV7DKmonER9hYYyPsLAadcstt0CSine7Ro0aoX379vprWZYRERGBs2fPAtD+M/71118RHByMoKAgBAUFITw8HDabDb/99luV1xsfH49evXqhffv2ePDBB/HRRx8hJycHAHDu3DlkZWXh0Ucf1dcRFBSE1157TV9HRkYGbrvtNoSHh5e7/EOHDqFbt25ew7p164ZDhw55DevQoYP+c2BgIIKDg/VaDx06hDvuuANCCH2aLl26eM0/YcIEvPbaa+jWrRumTp2K/fv3V1hz7969ERcXh+bNmyM5ORlLly5FYWHhZbdTyfYJIRAZGam3r7JtkJ6ejldffdVrG44ZMwbZ2dmVrvdyPvnkExARGjduDLPZjL///e/461//ClmWy51+0aJFGDFiRJmjMuUhIn1733PPPXq7b7nlFn2aku9HefNV5sSJE17bZObMmRUu+0qWy9iNxuDrBrAbi9Fo9HothCh3mOc0g6qqSEhIwNKlS8ssq0GDBlVeryzL2LRpE9LS0rBx40bMnz8fKSkp2LVrFwICAgBop4Vuv/32MvMB2imIylTlj8/laiX36anLeeyxx9C3b1988cUX2LhxI2bNmoW5c+fi6aefLjNtcHAwfvjhB2zZsgUbN27EK6+8gtTUVOzZs6fCi5Ev177KtoGqqpg2bRoGDx5cZlxVOg8Vuemmm/Ddd9+hoKAAeXl5iIqKwrBhw9CsWbMy027btg1HjhzB8uXLvYZHRkbC4XAgJycHYWFh+vCzZ8+ia9euAIB//vOfKCoqAlC8HSIjI70uggWAnJwcOJ1ONGrUqErtj46ORkZGhv7a0+GLjIzEmTNnvKY9e/ZslZfL2I2Gj7Awv9axY0f88ssvaNiwIW6++Wavr9DQ0CtalhAC3bp1w7Rp07Bv3z6YTCasWbMGjRo1QuPGjfH777+XWYfnj2KHDh2QkZGhX29SWps2bcpcU5GWloY2bdpUuX1t27bFzp07vYaVfg0AMTExGDt2LFavXo1Jkybho48+qnCZBoMBd999N9544w3s378fmZmZ+Oabb6rcppIq2wYdO3bEkSNHymzDm2++2euo2tUKDAxEVFQUcnJy8NVXX2HgwIFlplm4cCESEhIQHx/vNTwhIQFGoxGbNm3Sh2VnZ+Onn37SOyyNGzfW2xsXFwdAO8L1008/ITs7W59v48aNMJvNSEhIqFK7DQaD17bwdFi6dOni1R7Psj3tYYx54yMszK+NGDECb775JgYOHIhXX30VTZo0wYkTJ7B69Wq88MILaNKkSZWWs2vXLmzevBl9+vRBw4YNsWvXLpw7d07vUKSmpmLChAkICQnBPffcA7vdjr179yInJwfPPfcchg8fjpkzZ2LQoEGYNWsWoqKisG/fPkRHR6NLly544YUXMHToUHTs2BG9evXC559/jtWrV+Prr7+ucq1jx47F3Llz8dxzz+GJJ55Aenp6mefITJw4Effccw9atmyJnJwcfPPNNxV2itatW4fff/8dPXr0QFhYGNavXw9VVdGqVasqt6mkyrbBK6+8gqSkJMTExODBBx+EJEnYv38/Dhw4gNdee63cZTocDhw8eFD/+dSpU8jIyEBQUBBuvvlmANrFvESEVq1a4ddff8ULL7yAVq1aYfTo0V7LysvLw8qVKzF37twy6wkNDcWjjz6KSZMmISIiAuHh4Xj++efRvn37y96K3KdPH7Rt2xbJycl48803ceHCBTz//PMYM2YMQkJC9OkOHjwIh8OBCxcu4NKlS/oRlcs9OPGZZ55Bjx49MHv2bAwcOBBr167F119/7dXxzc/Px6+//qq/PnbsGDIyMhAeHo7Y2NgKl81YneTD62dYHXGltzWXVPrCT6KyF19mZ2fTI488QvXr1yez2UzNmzenMWPGlHtbKVH5F90ePHiQ+vbtSw0aNCCz2UwtW7ak+fPne823dOlSuvXWW8lkMlFYWBj16NGDVq9erY/PzMykIUOGUEhICAUEBFCnTp1o165d+viq3NZc+qLJ0NBQWrx4sf76888/129D7t69Oy1atMirlvHjx9NNN91EZrOZGjRoQMnJyXT+/Plyt8O2bdsoMTGRwsLCyGq1UocOHWj58uX6+PIuui190Wt8fDxNnTq1yttgw4YN1LVrV7JarRQSEkKdO3emDz/8sNz2EREdO3aMAJT5SkxM1KdZvnw5NW/enEwmE0VGRtK4ceMoNze3zLI++OADslqt5Y4jIioqKqLx48dTeHg4Wa1WSkpKohMnTlTYNo/jx4/TgAEDyGq1Unh4OI0fP55sNpvXNHFxceXWUZmVK1dSq1atyGg0UuvWrWnVqlVe4z37cumvkSNHVrpsxuoaQVSFE+eM1SJbtmzBnXfeiZycHH5wHGOM1RF8DQurs5o0aYLhw4f7uhmMMcauAz7CwuqcoqIi/bHtQUFBFT7ynTHGWO3BHRbGGGOM+T0+JcQYY4wxv8cdFsZYjcnMzIQQAkKIy97yyxhjpXGHhTEfWrBgAZo1awaLxYKEhARs27ZNH0dESE1NRXR0NKxWK3r27Imff/650mUeOHAAiYmJsFqtaNy4MV599dUyT9H97rvvkJCQAIvFgubNm+P999+vdLl2ux1PP/006tevj8DAQNx33304efKk1zQ5OTlITk5GaGgoQkNDkZycjNzcXH18TEwMsrOzMWnSpErXxxhjJXGHhTEfWb58OSZOnIiUlBTs27cP3bt3xz333IMTJ04AAN544w289dZb+Mc//oE9e/YgMjISvXv3xqVLlypcZl5eHnr37o3o6Gjs2bMH8+fPx5w5c/DWW2/p0xw7dgz9+/dH9+7dsW/fPrz88suYMGECVq1addn2Tpw4EWvWrMGyZcuwfft25OfnIykpCYqi6NP89a9/RUZGBjZs2IANGzYgIyMDycnJ+nhZlhEZGVlhwjRjjFXId4+AYezG1rlzZxo7dqzXsNatW9PkyZNJVVWKjIyk119/XR9ns9koNDSU3n///QqXuWDBAgoNDfV6sNmsWbMoOjpaT4F+8cUXqXXr1l7zPfHEE3THHXdUuNzc3FwyGo20bNkyfdipU6dIkiTasGEDEWkP5wNAO3fu1KfZsWMHAaDDhw97La/0QwUZY6wyfISFMR9wOBxIT09Hnz59vIb36dMHaWlpOHbsGM6cOeM13mw2IzExEWlpafqwUaNGoWfPnvrrHTt2IDExEWazWR/Wt29fnD59GpmZmfo0pdfbt29f7N27F06nE4D28D0hhD5Peno6nE6n13zR0dFo166d3p4dO3YgNDTUK0DyjjvuQGhoqFebGWPsanCHhTEfOH/+PBRFKZPM26hRI5w5c0ZP8a1ovEdUVJRXpsyZM2fKnccz7nLTuFwunD9/HgAQEBCAVq1a6anFZ86cgclk8ko6Lt2eM2fOoGHDhmVqbdiwYZlUYsYYu1IcfsiYDwkhvF4TkdewysbPmjWrSsssPbyyaTp37ozDhw9X2v7K2lveNIwxdjX4CAtjPlC/fn3IslzmyMPZs2fRqFEj/em8FY2vSGRkZLnzAMVHWiqaxmAwICIiosLlOhwO5OTkVNieyMhI/PHHH2XmPXfu3GXbzBhjVcEdFsZ8wGQyISEhAZs2bfIavmnTJnTt2hXNmjVDZGSk13iHw4HvvvsOXbt2rXC5Xbp0wdatW+FwOPRhGzduRHR0NJo2bapPU3q9GzduRKdOnfRTQKUlJCTAaDR6zZednY2ffvpJb0+XLl1w8eJF7N69W59m165duHjx4mXbzBhjVeLLK34Zu5EtW7aMjEYjLVy4kA4ePEgTJ06kwMBAyszMJCKi119/nUJDQ2n16tV04MABGj58OEVFRVFeXp6+jMmTJ1NycrL+Ojc3lxo1akTDhw+nAwcO0OrVqykkJITmzJmjT/P7779TQEAAPfvss3Tw4EFauHAhGY1G+r//+z99ml27dlGrVq3o5MmT+rCxY8dSkyZN6Ouvv6YffviB7rrrLoqPjyeXy6VP069fP+rQoQPt2LGDduzYQe3bt6ekpKQytfNdQoyxK8UdFsZ86N1336W4uDgymUzUsWNH+u677/RxqqrS1KlTKTIyksxmM/Xo0YMOHDjgNf/IkSMpMTHRa9j+/fupe/fuZDabKTIyklJTU/Vbmj22bNlCt912G5lMJmratCm99957XuO//fZbAkDHjh3ThxUVFdH48eMpPDycrFYrJSUl0YkTJ7zm+/PPP2nEiBEUHBxMwcHBNGLECMrJySlTN3dYGGNXisMPGWM1LjU1FZ999hkyMjJ83RTGWC3BdwkxxmrMiRMn0LZtWzgcDrRt29bXzWGM1SJ8hIUxVmNcLpf+MDqz2YyYmBjfNogxVmtwh4Uxxhhjfo9va2aMMcaY3+MOC2OMMcb8HndYGGOMMeb3uMPCGGOMMb/HHRbGGGOM+T3usDDGGGPM73GHhTHGGGN+jzssjDHGGPN7/w9BiotlNZm7CQAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "ds['vel'][1].plot()" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "# The ADCP transducers were measured to be 0.6 m from the feet of the lander\n", - "api.clean.set_range_offset(ds, 0.6)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "So, the center of bin 1 is located at 1.2 m:" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
<xarray.DataArray 'range' (range: 28)>\n",
-              "array([ 1.2,  1.7,  2.2,  2.7,  3.2,  3.7,  4.2,  4.7,  5.2,  5.7,  6.2,  6.7,\n",
-              "        7.2,  7.7,  8.2,  8.7,  9.2,  9.7, 10.2, 10.7, 11.2, 11.7, 12.2, 12.7,\n",
-              "       13.2, 13.7, 14.2, 14.7])\n",
-              "Coordinates:\n",
-              "  * range    (range) float64 1.2 1.7 2.2 2.7 3.2 ... 12.7 13.2 13.7 14.2 14.7\n",
-              "Attributes:\n",
-              "    units:    m
" - ], - "text/plain": [ - "\n", - "array([ 1.2, 1.7, 2.2, 2.7, 3.2, 3.7, 4.2, 4.7, 5.2, 5.7, 6.2, 6.7,\n", - " 7.2, 7.7, 8.2, 8.7, 9.2, 9.7, 10.2, 10.7, 11.2, 11.7, 12.2, 12.7,\n", - " 13.2, 13.7, 14.2, 14.7])\n", - "Coordinates:\n", - " * range (range) float64 1.2 1.7 2.2 2.7 3.2 ... 12.7 13.2 13.7 14.2 14.7\n", - "Attributes:\n", - " units: m" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ds.range" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.2. Discard Data Above Surface Level\n", - "\n", - "To reduce computational load, we can exclude all data at or above the water surface level. Since the instrument was oriented upwards, we can utilize the pressure sensor data along with the function `find_surface_from_P`. However, this approach necessitates that the pressure sensor was calibrated or 'zeroed' prior to deployment. If the instrument is facing downwards or doesn't include pressure data, the function `find_surface` can be used to detect the seabed or water surface.\n", - "\n", - "It's important to note that Acoustic Doppler Current Profilers (ADCPs) do not measure water salinity, so you'll need to supply this information to the function. The dataset returned by this function includes an additional variable, \"depth\". If `find_surface_from_P` is invoked after `set_range_offset`, \"depth\" represents the distance from the water surface to the seafloor. Otherwise, it indicates the distance to the ADCP pressure sensor.\n", - "\n", - "After determining the \"depth\", you can use the nan_beyond_surface function to discard data in depth bins at or above the actual water surface. Be aware that this function will generate a new dataset." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "api.clean.find_surface_from_P(ds, salinity=31)\n", - "ds = api.clean.nan_beyond_surface(ds)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjoAAAHyCAYAAADiG2SEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAACeEUlEQVR4nOzdeZwdVZ3//9c5td61t6STTsgKAgooCC6ALJExbDIuiDgom44P+GIEZBgUcQkuZHAcZBQFYYCg6MjMIIyOuPBTAqJhZIuIwyIaSAwJISG93LW28/ujbl9sE6C7b6dv0vk8H496JLdu1alzl3R/cupUvZUxxiCEEEIIMQXpdndACCGEEGJ7kUJHCCGEEFOWFDpCCCGEmLKk0BFCCCHElCWFjhBCCCGmLCl0hBBCCDFlSaEjhBBCiClLCh0hhBBCTFlS6AghhBBiypJCR4hJsHTpUpRSI9bNnz+fM844oz0d2ob58+ejlOLss8/e6rkVK1aglOK//uu/XraN5cuXo5RqLps2bWo+9/vf/55zzjmHgw8+mFwuh1KKFStWbLOdzs7OZhtLlixp6XUJIXZtUugI0Sa33XYbn/70p9vdja1cf/31PPHEEy218f3vf5+VK1fS2dnZXPfAAw9w++23093dzVFHHfWy+/9//9//x8qVK1vqgxBCgBQ6QrTNAQccwO677/6y24RhSBRFk9QjmqMtn/zkJ1tq54ADDuDNb34ztm0315166qk8++yz/OhHP+K000572f0POugg3vzmN7fUByGEACl0hJhwP/rRj9h///3xPI8FCxbw5S9/eZvb/fWpq+HTQ9/+9rf5h3/4B2bPno3neTz11FOT1HPo7u7mE5/4BN///ve57777JrRtreXHjRBi8tmvvIkQYrR+/vOf8453vIODDz6Y733ve8RxzJe+9CWee+65Ubdx8cUXc/DBB3PNNdegtaa3t/clt43jGGPMK7aptR51oXHeeedx1VVXcdFFF3HPPfeMut9CCLEjkkJHiAl0ySWXMGPGDO6880583wfg6KOPZv78+aNuY/fdd+c///M/R73tM88884rbffazn2Xp0qWjajOTybB06VI+/OEP8z//8z+8/e1vH9V+QgixI5JCR4gJUi6Xuf/++znnnHOaRQ5AoVDghBNO4KabbhpVOyeeeOKoj/nDH/6Qer3+itvNmjVr1G0CnHnmmXzlK1/hE5/4BMcdd9yY9hVCiB2JFDpCTJAtW7aQJAkzZ87c6rltrXspfX19o972Na95zahPXY2FZVlcdtllvPOd7+Smm25iwYIFY9pfCCF2FDI7UIgJ0tXVhVKKDRs2bPXctta9lL++387L2X333XEc5xWXz33uc6Nuc9g73vEODj30UD772c9Sq9XGvL8QQuwIZERHiAmSy+V44xvfyPe//33++Z//uXn6amhoiB/+8Ifb5Zjb69TVsMsvv5y3vOUtfPWrXx3X/kII0W5S6AgxgT7/+c9zzDHH8La3vY1/+Id/II5jLr/8cnK5HC+88MKEH2+//fab8Db/0qGHHso73vEO/vu//7vltiqVCnfccQdA89L1u+++m02bNpHL5Tj22GNbPoYQQvw1KXSEmEBve9vbuP322/nUpz7FySefzMyZMznnnHOoVqtceuml7e7euCxbtoz/+Z//IY7jltrZuHEjJ5100oh1w1eCzZs3j6effrql9oUQYluUGc1MRiGEGIXly5dz5pln8tRTTzFv3rwRd0Yei+H7AzmOw0c+8hGuuuqqCe6pEGJXIZORhRATbo899sBxnBGhnmPR09OD4zgT3CshxK5IRnSEEBNm8+bNrF69uvl4//33H9eozqpVq5oZX729vcydO3fC+iiE2LVIoSOEEEKIKUtOXQkhhBBiypJCRwghhNgFLFu2jDe84Q0UCgV6e3t55zvfyRNPPPGK+919990ceOCB+L7PwoULueaaayahtxNHCh0hhBBiF3D33XfzkY98hPvuu48777yTKIpYvHgx5XL5JfdZvXo1xx13HIcddhgPP/wwn/zkJzn33HO59dZbJ7HnrZnyc3SSJOHZZ5+lUCiM6db6Qgghdj3GGIaGhpg1a9aYM+LGolarEQRBy+0YY7b63eZ5Hp7nveK+zz//PL29vdx9990cfvjh29zm4x//OD/4wQ947LHHmuvOPvtsfvvb37Jy5crWOj9JpvwNA5999lnmzJnT7m4IIYTYiaxdu5bddtttu7Rdq9XoyeSp0NpNOAHy+TylUmnEus9+9rPNm3G+nIGBAQC6u7tfcpuVK1eyePHiEeuOPvporr/+esIw3CluAzHlC51CoQCkX9pisdjm3gghhNiRDQ4OMmfOnObvju0hCAIqxJzGbNwWZpAEJHyrtG6r32+jGc0xxnDBBRfw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DeTOyKmzzjqLcrn8ks/PnTuXG2+8cdztS6EjhBBCtINqcY6OmhpzdN71rne97PNdXV2cfvrp425/apSDQgghhJgyfvWrX1Gv1yekLSl0hBBCiHYYvuqqlWWKOvbYY1m3bt2EtCWnroQQQog2kDk6L62Vycd/beq+S0IIIYTY5bW10Lnnnns44YQTmDVrFkopbr/99hHPG2NYunQps2bNIpPJcOSRR/L73/++PZ0VQgghJpKcunpJ3/zmN5kxY8aEtNXWQqdcLvO6172Oq666apvPf+lLX+KKK67gqquu4v7772fmzJm87W1vY2hoaJJ7KoQQQkyw4RsGjnuZuidlTjnlFOI45vbbb+exxx5rqa22ztE59thjOfbYY7f5nDGGK6+8kksuuYR3v/vdANx0003MmDGD7373u5x11lnb3K9er4+YqT04ODjxHRdCCCFa1Gow51QL9Xzve9/L4YcfzpIlS6hWqxx00EE8/fTTGGP43ve+x4knnjiudnfYcnD16tVs2LCBxYsXN9d5nscRRxzBr3/965fcb9myZXR0dDSXOXPmTEZ3hRBCCNGCe+65h8MOOwyA2267DWMM/f39fPWrX+ULX/jCuNvdYQudDRs2AGx1jm7GjBnN57bl4osvZmBgoLmsXbt2u/ZTCCGEGBetW1+mkIGBAbq7uwH4yU9+woknnkg2m+X444/nD3/4w7jb3eEvL//rxNJXSjH1PA/P87Z3t4QQQojWSHr5CHPmzGHlypV0d3fzk5/8hO9973sAbNmyBd/3x93uDlsOzpw5E2Cr0ZuNGzdO2ExsIYQQQuwYzj//fN7//vez2267MWvWLI488kggPaW13377jbvdHbbQWbBgATNnzuTOO+9srguCgLvvvptDDjmkjT0TQgghWqe01fIylZxzzjncd9993HDDDdx7773oxqm5hQsX7rxzdEqlEqtWrWLVqlVAOgF51apVrFmzBqUU559/Ppdddhm33XYbjz76KGeccQbZbJZTTjmlnd0WQgghWqdanJ+jxvcr/Bvf+AYLFizA930OPPBAfvnLX77ktitWrEAptdXy+OOPj/dVv6wDDzyQd73rXeTz+ea6448/nkMPPXTcbbZ1js4DDzzAokWLmo8vuOACAE4//XSWL1/ORRddRLVa5ZxzzmHLli286U1v4mc/+xmFQqFdXRZCCCF2Wrfccgvnn38+3/jGNzj00EP55je/ybHHHsv//d//MXfu3Jfc74knnqBYLDYfT58+fTK6OyGUmchAiR3Q4OAgHR0dDAwMjPiQhBBCiL82Gb8zho+xecV/UMxnx99OqULPke9l7dq1I/r6chflvOlNb+L1r389V199dXPdq1/9at75zneybNmyrbZfsWIFixYtYsuWLXR2do67r+20w87REUIIIaa0Cboz8pw5c0bcP25bBQuk81wffPDBEfenA1i8ePHL3p8O4IADDqCvr4+jjjqKu+66a2Je/yTZ4S8vF0IIIcRL29aIzrZs2rSJOI7HdH+6vr4+rr32Wg488EDq9Trf/va3Oeqoo1ixYgWHH374xL2I7UgKHSGEEKIdWr3pX2PfYrE4ptNsY7k/3V577cVee+3VfHzwwQezdu1avvzlL2+XQqdWq/HII4+wceNGkiQZ8dzf/u3fjqtNKXSEEEKINpjsrKtp06ZhWVbL96d785vfzM033zymY4/GT37yE0477TQ2bdq01XNKKeI4Hle7MkdHCCGEaIeW5ueM/a7Kruty4IEHjrg/HcCdd945pvvTPfzww/T19Y3p2KOxZMkSTjrpJNavX0+SJCOW8RY5ICM6QgghxC7jggsu4NRTT+Wggw7i4IMP5tprr2XNmjWcffbZQJoXuW7dOr71rW8BcOWVVzJ//nz22WcfgiDg5ptv5tZbb+XWW2+d8L5t3LiRCy64YMLTD6TQEUIIIdqhDVlXJ598Mps3b+Zzn/sc69evZ9999+WOO+5g3rx5AKxfv541a9Y0tw+CgAsvvJB169aRyWTYZ599+NGPfsRxxx03/n6/hPe85z2sWLGC3XfffULblfvoCCGEEA2TeR+dLQ/+lGI+N/52SmW6Djx6yvx+q1QqnHTSSUyfPp399tsPx3FGPH/uueeOq10Z0RFCCCFE2333u9/lpz/9KZlMphk9MUwpJYWOEEIIsVNRLZ66UlMr1PNTn/oUn/vc5/jEJz7RDPScCFLoCCGEEO2g1LiDOZv7TyFBEHDyySdPaJEDcnm5EEIIIXYAp59+OrfccsuEtysjOkIIIUQ7KN3iiM7UGquI45gvfelL/PSnP+W1r33tVpORr7jiinG1K4WOEEII0QZGaUwLxUor++6Ifve733HAAQcA8Oijj4547qUiKkZjVIXOI488MuaGX/Oa12DbUkcJIYQQ4pVtr1T0UVUi+++/P0opRnvLHa01Tz75JAsXLmypc0IIIcSUJaeuJsWoh1z+93//l+nTp7/idsYY9t1335Y6JYQQQkx5SrV25dQUuOrq3e9+N8uXLx/1DQ/f//7385WvfIXe3t5RH2NUhc4RRxzBHnvsQWdn56gaPfzww8lkMqPuhBBCCLHL0TpdWtl/J/ff//3fPP/886Pa1hjDD3/4Qz7/+c9PfKEz1vNmd9xxx5i2F0IIIcSuxxjDnnvuuV2PIbOFhRBCiDaQq67GNwF59uzZY9p+zIWOMYb/+q//4q677mLjxo0kSTLi+e9///tjbXJSxM88QpKxIYkxSYJyPJJSP8pxIYkh3wOV/vTvtpvulMQo18cENUy1DLaDCWpYXb0kQ/0klUGsnr7mtvHAZtyDT2zbaxRCiF3R79YPECeGomcRJgZXK2IDceMCmoydFgRxYnB0Oq8lTAzDl9dYSqEUuJaiPFievI7LZGSOOOKI7X6MMRc65513Htdeey2LFi1ixowZLV3bLoQQQgixPY250Ln55pv5/ve/z3HHHbc9+iOEEELsGmREZ1KMudDp6OiQ++MIIYQQrZJCZ1KM+V1aunQpl156KdVqdXv0RwghhBBiwox5ROekk07i3//93+nt7WX+/PlbhW499NBDE9Y5IYQQYqoySrV41dXUmiO7dOlSzjzzTObNmzeh7Y650DnjjDN48MEH+cAHPiCTkYUQQojxklNXI/zwhz/kC1/4AkcccQQf+tCHePe7343v+y23O+ZC50c/+hE//elPectb3tLywYUQQgghAB588EEeeeQRbrzxRj72sY/xkY98hPe973188IMf5A1veMO42x1zOThnzpxRZ1IIIYQQ4iUMZ121skwxr33ta/nKV77CunXruOGGG1i3bh2HHnoo++23H//6r//KwMDAmNscc6HzL//yL1x00UU8/fTTYz6YEEIIIRqGT121skxRSZIQBAH1eh1jDN3d3Vx99dXMmTOHW265ZUxtjfnU1Qc+8AEqlQq777472Wx2q8nIL7zwwlibFEIIIXY5EgGxtQcffJAbb7yRf//3f8fzPE477TS+/vWvs8ceewDpYMu5557LySefPOo2x1zoXHnllWPdRQghhBDiZb32ta/lscceY/HixVx//fWccMIJWJY1YpvTTjuNf/zHfxxTu2MudE4//fSx7iKEEEKIv6Y0aLnqathJJ53EBz/4wZcN7Zw+ffpWGZuvZFSFzuDg4JgmIA8NDVEoFMbUke1NxQHGzkOlH2U7EIfoXDEN+XSK6fPaAm2lwZ7aQvl5TFBN/54rohyPaMPTaYNJjKmWMfVqGvpZq6D8LOH9P4AkQflZksEXsKbPxpQHiZ5bgy50YcIAtEUyuBmdLaAyuTQgdKgfnSuQVMvoQhfJ0BYA4nIJEyc4XV3UNz6PdmyCoTJxLcDv6aC8fjOWa+N1FoiDkKhSwy3k8PtmgLYoP/0Mfk8HcS1AOzb1/iEApp37L236JIQQ7XbCtSvpyXtUgwiAjGvTXwnYc0aBR9cN0JN36a+E9OQ93rSwmzseWU9fZ4ZqELFwep44Mfx5S5XegkfGteivhOzWneGFUkAliFnYmyOIEoIoYVrew7FenDRbCWMKrs3sos+mSkDWsdhSDck4FpaCLdWQA/o62Fiu0+HbjX0SOrz071nnxf/hJxisxoTcMDaUgoSMranHBrsR3mlMGuapVRr0SZJGebqWJjYGDcQGHK2IYsPYfoW2SC4vH8EYQ1dX11brq9Uq//zP/8xnPvOZcbU7qnepq6uLjRs3jrrR2bNn86c//WlcHRJCCCHErufSSy+lVCpttb5SqXDppZeOu91RjegYY/i3f/s38vn8qBoNw3DcHRJCCCF2CTKiM4IxZps3If7tb39Ld3f3uNsdVaEzd+5crrvuulE3OnPmzK2uxhJCCCHEX5BCB0jPGimlUEqx5557jih24jimVCpx9tlnj7v9URU6cs8cIYQQQmwPV155JcYYPvjBD3LppZfS0dHRfM51XebPn8/BBx887vbHfNWVEEIIIVonoZ6p4au5FyxYwCGHHDLhZ4Sk0BFCCCHaQU5djbiq+4ADDqBarVKtVre57Xjjp6TQEUIIIURbdHV1sX79enp7e+ns7NzmZOThScpxHI/rGDt0oRNFEUuXLuU73/kOGzZsoK+vjzPOOINPfepT6FZusiSEEEK0W6vBnFPg1NUvfvGL5hVVv/jFL7ZZ6LRqhy50Lr/8cq655hpuuukm9tlnHx544AHOPPNMOjo6OO+889rdPSGEEGL85NQVRxxxRPPvRx555HY5xrjepV/+8pd84AMf4OCDD2bdunUAfPvb3+bee++d0M6tXLmSd7zjHRx//PHMnz+f97znPSxevJgHHnhgQo8jhBBCTLbhUM9WlvH4xje+wYIFC/B9nwMPPJBf/vKXL7v93XffzYEHHojv+yxcuJBrrrlmXMd9JTfeeCP/+Z//udX6//zP/+Smm24ad7tjfpduvfVWjj76aDKZDA8//DD1eh1IYx8uu+yycXdkW97ylrfw85//nCeffBJIbxp07733ctxxx73kPvV6ncHBwRGLEEIIIeCWW27h/PPP55JLLuHhhx/msMMO49hjj2XNmjXb3H716tUcd9xxHHbYYTz88MN88pOf5Nxzz+XWW2+d8L790z/9E9OmTdtqfW9vb0v1xZgLnS984Qtcc801XHfddSMuATvkkEN46KGHxt2Rbfn4xz/O3/3d37H33nvjOA4HHHAA559/Pn/3d3/3kvssW7aMjo6O5jJnzpwJ7ZMQQggxIYZPXbWywFb/uR8egNiWK664gg996EP8/d//Pa9+9au58sormTNnDldfffU2t7/mmmuYO3cuV155Ja9+9av5+7//ez74wQ/y5S9/ecLfjmeeeYYFCxZstX7evHkvWYiNxpjn6DzxxBMcfvjhW60vFov09/ePuyPbcsstt3DzzTfz3e9+l3322YdVq1Zx/vnnM2vWrJdMUb/44ou54IILmo8HBweZM2cOxnJRSQSuD9rGKI2K04BNFTYuZUtilOtjghiiABwvDfhsPGcA7ecwUSPiQlvQSFFVrp+GcQ5sxkQB2ul8cb8kBttFZwsktTLKdjG1MsrLpJsM9YPWmCQhqVXQhS50Jkc8sBllaUycEG7ZglPIEvSXsH2PuBZg+S5JGGHiBL9HY7kOcS0gqtUxYYjKuCitUVrjdHYS9vdjOQ61/iFK3/kclfWbMUlCZnoXSRgRlqs4uQxOIctzv/k/OnafTRJG1PtLhOUa+dnTsH2PYKiM0hq/p4OhNc8R1wIA/J4i5Q0v0LXnHLY8uZbi/JlElRpRNeCFx9cy7bUL6H9yLdqx6dl3gQSLil3O0d/4FZvWD7HXq3pY93wZpRX1akSu6FEerGMSg+NZuJ7N5g1DdE7PUci5bNxQwvFswnpET2+OoaE6JoFcwSWKEnafWWCgElCPErYM1FjQV2T1+kFyORfX1uzWlaVUj3hmY4nSQI3pM/LEScJQLSLjWlSDiEIjQLMz65BxbTaXAvo6fII4IetadGYc4sSQ921KtYggiqlHCR1ZB8/WvFBKfw5kXQvX0gRRgmtrwiQh6zgM1EOyjkWpFpF1LGpRgqNHTjx1rBf/712LEpwwIetoHK2IjcFvtGdplYZ5GrA0VOuG2BjqURrqqVQa0mliSJTBkM7bNQYCk4Z6OtoQxIaMrYmThLiR5tl4elKk99EZ/+Tb4X3/+j/0n/3sZ1m6dOlW2wdBwIMPPsgnPvGJEesXL17Mr3/9620eY+XKlSxevHjEuqOPPprrr7+eMAwn9J43vb29PPLII8yfP3/E+t/+9rf09PSMu90xFzp9fX089dRTW3Xk3nvvZeHChePuyLb84z/+I5/4xCd43/veB8B+++3HM888w7Jly16y0PE8D8/zJrQfQgghxI5q7dq1I+4x81K/Azdt2kQcx8yYMWPE+hkzZrBhw4Zt7rNhw4Ztbh9FEZs2baKvr6/F3r/ofe97H+eeey6FQqE5oHL33Xdz3nnnNeuA8RhzoXPWWWdx3nnnccMNN6CU4tlnn2XlypVceOGF445QfymVSmWry8gtyyJpjKIIIYQQOytjWhtBGt63WCyO6WZ6f30J90uFab7c9tta36ovfOELPPPMMxx11FHYdlqeJEnCaaed1tIcnTEXOhdddBEDAwMsWrSIWq3G4Ycfjud5XHjhhSxZsmTcHdmWE044gS9+8YvMnTuXffbZh4cffpgrrriCD37wgxN6HCGEEGKyJcaQtFDpjHXfadOmYVnWVqM3Gzdu3GrUZtjMmTO3ub1t2y2dTtoW13W55ZZb+PznP89vf/tbMpkM++23H/PmzWup3XHdR+eLX/wil1xyCf/3f/9HkiS85jWvIZ/Pt9SRbfna177Gpz/9ac455xw2btzIrFmzOOussyZ85EgIIYSY6lzX5cADD+TOO+/kXe96V3P9nXfeyTve8Y5t7nPwwQfzwx/+cMS6n/3sZxx00EETnkk1bM899+RVr3oVMDGjRuO+21A2m+Wggw7ijW9843YpcgAKhQJXXnklzzzzDNVqlT/+8Y984QtfwHXd7XI8IYQQYrKYCVjG6oILLuDf/u3fuOGGG3jsscf42Mc+xpo1azj77LOB9IKe0047rbn92WefzTPPPMMFF1zAY489xg033MD111/PhRdeOM5X/fK+9a1vsd9++5HJZMhkMrz2ta/l29/+dkttjnlE513vetc2KyylFL7vs8cee3DKKaew1157tdQxIYQQYipLTLq0sv9YnXzyyWzevJnPfe5zrF+/nn333Zc77rijeXpo/fr1Iy7lXrBgAXfccQcf+9jH+PrXv86sWbP46le/yoknnjj+jr+EK664gk9/+tMsWbKEQw89FGMMv/rVrzj77LPZtGkTH/vYx8bV7pgLnY6ODm6//XY6Ozs58MADMcbw8MMP09/fz+LFi7nlllu4/PLL+fnPf86hhx46rk4JIYQQYvs455xzOOecc7b53PLly7dad8QRR0z4ffK25Wtf+xpXX331iBGld7zjHeyzzz4sXbp08gqdmTNncsopp3DVVVc1r4hKkoTzzjuPQqHA9773Pc4++2w+/vGPT3gkhBBCCDFVGGOaVzCNd/+pZP369RxyyCFbrT/kkENYv379uNsd8xyd66+/nvPPP3/EZd9aaz760Y9y7bXXopRiyZIlPProo+PulBBCCDHVDZ+6amWZSvbYYw/+4z/+Y6v1t9xyS3Ny8niMeUQniiIef/xx9txzzxHrH3/8ceI4vYuw7/vbJWpdCCGEmEqmWK3SkksvvZSTTz6Ze+65h0MPPRSlFPfeey8///nPt1kAjdaYC51TTz2VD33oQ3zyk5/kDW94A0opfvOb33DZZZc1z6vdfffd7LPPPuPulBBCCCF2LSeeeCL/+7//y1e+8hVuv/12jDG85jWv4Te/+Q0HHHDAuNsdc6Hzla98hRkzZvClL32J5557DkhvB/2xj32Mj3/840Cam3HMMceMu1NCCCHEVNeOq652dAceeCA333zzhLY55kLHsiwuueQSLrnkEgYHBwG2uvX03LlzJ6Z3QgghxBQlk5Fp1hGjMZaYi780rjsjt3rQtjFJM43c+AVUWCUe2IzV1YsJaigvm26nLUwY0JxllMQk5SF0oTNNO3c8VEcP8cDmRsK4hc4W0l1zBUwco2wHnS1g6rUX26iV08RzQBc6MWGIVexGeX7aryRGaU28eT06V8Q0Mr20axMOVrCzGZSlsXM+AOFgpfnS3J4ehp56mrBcI9vbhXIcTLWMW8wRVWpYjbbKGzbj9xRRjbT04XWZng6iWkASRsRBiO17aMsiGKpQnN9H9fkt1DYPkp89HYBgqIJbzAEQhxGWk36VTBzjdnWShH/C7+mgf/Mg9f4hnJxLVK7hFrOE5RphucZjZ/4ttu9S3jhEx4JekjAkGKwQBzGWa1Gc30cwVCEqV4lqAfXBOtP2ncuffvJ7irsVsH2bofUlOnYrEpQDomrErEP2JBiq8NxDa5j/tn3Z+PAfyfYW2fR/zzHj9XPZ/H/Pkp2WIapFTHvtAvou/vrEfsfEDuWf7voDGwfreLZmqJYmdP/p+RJ53yHv2QRxwkAloDvnYWnFC+U6ed9hfX8Vz9bUo4S+zgx/2lgi46bJ2wDlwTqzZuZ55pl+bMciCmN2m9PBloEafsZhsL+Gl7FRSlEaqFHsyhDHCZal0bZm42CdSimgoydLdSggCtOfS3GcYCcWcZyQ78hgNVLAta0xxhDHCUGUkMQGbSnixFCvRgRRQtT4732SGOIkwfFseos+GwdrZF2LP2+pYNkaz3ewtCKI0hTwzqxLqRY2kszTPy2tqAcxrq0p1SJcWzO96NFfDakGMdUgJu879ORdBiohm8sBPY2k9EoQoxtzNAcqIXFi6PAcqkH6Gi2tSBJDKYgan1JCGCfMLvoM1SM822omlGcdTRinyeRAs12AKDEMP/RtjWMUiUkTyQueph4ZwiTd19Hpe2VpUEY19lVoZQgaseWxSRPOg6k4TLID6+zsfMU5vcNZXMPzgMdqzIXOc889x4UXXsjPf/5zNm7cuFVFOd6OCCGEELuSpLG0sv/O7q677truxxhzoXPGGWewZs0aPv3pT9PX1ydXVwkhhBDjMFHp5TuzI444YrsfY8yFzr333ssvf/lL9t9//+3QHSGEEELsqn75y1/yzW9+kz/96U/853/+J7Nnz+bb3/42CxYs4C1vecu42hzzDQPnzJkzJSZACSGEEO0kNwwc6dZbb+Xoo48mk8nw0EMPUa/XARgaGuKyyy4bd7tjLnSuvPJKPvGJT/D000+P+6BCCCHErm74qqtWlqnkC1/4Atdccw3XXXcdjuM01x9yyCEtZW2N+dTVySefTKVSYffddyebzY7oDMALL7ww7s4IIYQQYtf0xBNPcPjhh2+1vlgs0t/fP+52x1zoXHnlleM+mBBCCCFSctXVSH19fTz11FPMnz9/xPp7772XhQsXjrvdMRc6p59++rgPJoQQQoiUocWrriasJzuGs846i/POO48bbrgBpRTPPvssK1eu5MILL+Qzn/nMuNtt6YaB1WqVMAxHrNvpbiIohBBCtEFiDEkLlU4r++6ILrroIgYGBli0aBG1Wo3DDz8cz/O48MILWbJkybjbHfNk5HK5zJIlS+jt7SWfz9PV1TViEUIIIYQYrf3335+rrrqKLVu28MUvfpFNmzbxm9/8hvvuu4/nn3+ez3/+8y21P+ZC56KLLuIXv/gF3/jGN/A8j3/7t3/j0ksvZdasWXzrW99qqTNCCCHErsJMwDIVvOlNb+JTn/oUs2bN4pRTTmHlypUcdNBBvPGNbySfz7fc/pgLnR/+8Id84xvf4D3veQ+2bXPYYYfxqU99issuu4zvfOc7LXdICCGE2BXIfXRS3/zmN9mwYQPXXnstGzZsYPHixcyfP5/Pfe5zrFmzpuX2xzxH54UXXmDBggVAOh9n+HLyt7zlLfy///f/Wu7Q9mIcDzAYJ4MyCSoKwfawOnpA6TTE0/Uxtg/VIXQmh7Fc0OkNi5TrNwI9HUxYR2n94uN6jaQyhOX5JOUhlJ9Nwztth2TwBayu6SS2g7JddK5APLAZE4aYoAZJkoZ/JgnJ0Jb0uPUaSXkQ7foEW/pxe7qx4wRsBxMnxLWAev8Qmeld5GdPp94/RFItY/kupXXPU1zQhwlD4mqFqFxDWTrtL6Adm7BcIzMdlNY4uTQotLTueXIzexha8xxKa7yuPG5nntK657GzGbQzRFiuEtXqhOUaUS1gaM1zlNY9j1vMoixNMFSh3l8iKpUIyzWU62NnXAb+OIST87B8FyuMiKpB+pnEpvmnidNA09qWGk7OIQ5iSuuep9Zfxc05ODmfofUlTCOAb3hfbWmcnEd9sI6Td0nCiPqWIeqDdYK/CD21HE1UrpKbkcNybCqbqgA8cNxRzHj9fOIwYv39T9O1sAulNaX1Q2loYhAz8w0LCQbLJGGEsjRJEFFc0Edp3fMEgxXys6dj+S7K0oSDFeIwIglDtOPg9xSxHJt6fwm/p0h1Yz8de8wmLFcZXL2eXF8P+TkzqG0ewHIdvN7pVP78LJnp3dRfGMCb1o0udBJt3oDdMxNlO2nobFB78bX1zCQZ6kdlcpDE6HwnyrJQfg6UJsl2oWpDGDeTBttqO/3OWw66PoSxXOLCDNAWsXYI4oTEQDUyRInB1mnMi2spYmOoR4ZqlBAmhryjea6cztOzlCJMEgZqEbGBShhTCiK6fIeCZ7OxVGegHrHXtByVMGHDUI2nN1eoBDF9nT4vlAIOmNPJxnL6by6IEl4oBXTnXQCqQUxfh8/GofR5104DL+PEkHEtqkFMnBj6KyE9eZdqEDf3jRND1rXoyDpEiSHjWLxQrtOd88i46Y9BSys2lwJc2yJODHnfof+FCnHjt4mlFRnXYnCoju1oBioh+U6f6lDQ7J+2NLVqSFAN8TI2tUqI69nYtiYKY2ISbMci79uULI1raxJjyGYcwnqMZWlsV1OvRuSKHvVqSBQqTGLQjsayNBnXYqAeke/wcW1NOU6Ik4RqEGNphe1YVIKYvG/TXwnIuBbrB6oUfJuCb7OmHjXDNzuz6e1BMq7NUK1GnBgK/ou/FoIooTvvknHt5vtdDWI6sg791fRzjxJDEMVUgrj5fQmThLxnU20Eg1bC9LPxLU1sG8phTNF3iOKEemLoyjisG6zhNL5rjtZ4lsbRGq1enMdSjxJ8RxNEBt/W2BYEjZ8FrqUIE7Aa/31PMLiWohIaXK2IDc2Az2GKNBC0FCSgDbZSzQBRMbl83+fUU0/l1FNPZfXq1dxwww1cf/31fO5zn+Ooo47iQx/6EO9973vH1faYR3QWLlzYvFnga17zGv7jP/4DSEd6Ojs7x9UJIYQQYpdjXsy7Gs8yZc5d/ZUFCxbw+c9/nqeffprvfe97PPDAA/zd3/3duNsb84jOmWeeyW9/+1uOOOIILr74Yo4//ni+9rWvEUURV1xxxbg7IoQQQuxKEgxJC9VKK/vu6O666y5uvPFGvv/972PbNh/+8IfH3daYC52Pfexjzb8vWrSIxx9/nAceeIDdd9+d173udePuiBBCCCF2XWvWrGH58uUsX76cp59+msMOO4xvfOMbnHTSSWQymXG3O6ZCJwxDFi9ezDe/+U323HNPAObOncvcuXPH3QEhhBBiV9Q8BdXC/lPBd7/7XW688UbuuusuZsyYwWmnncaHPvQh9thjjwlpf0yFjuM4PProoyilXnljIYQQQrykVq+cmipXXZ1xxhkcf/zx3H777Rx33HFoPebpwy9rzKeuTjvtNK6//nr+6Z/+aUI7IoQQQohdz5///Gd6e3u3W/tjLnSCIODf/u3fuPPOOznooIPI5XIjnpcJyUIIIcQrk1NXqe1Z5MA4Cp1HH32U17/+9QA8+eSTI56TU1pCCCHE6MhVV5NjzIXOXXfdtT36IYQQQuxSZERnckzsjB8hhBBCiDGK45i7776bLVu2THjbUugIIYQQbZAY0/IyVViWxdFHH01/f/+Ety2FjhBCCNEGcdL6MpXst99+/OlPf5rwdneZQkeF9TTQUKUvWcUBJBHYXnObpDyYPuf6GCeDsR2IApTtoJz070m1nG5sOdjTZmLqNZTjpoGbYZgGdga1NGTRsqAR/qk7eprHMfUaJqilAZ5RALZLsmUjOpNDZYtYM+aiXB/lOGjHRueKxLUAohA75+MUi9hZP+1rI8EurgW4xRwmSahu3EJUKhGVawRDZYLBMnEtoLJxC7bvYuKEqFIjGKpQ3rAZt6OA5bto1yZJEoKhCi889gwA5Q2bGfjTnylveAGTJITlGk4uPXZYrhIHMSZOMHFCef1molpEbfMAYTmgsm49SZzg5Dy0a1PbPEB14xYs105fD2D5LrXBOsFQBdv38IoefleOqBbRv3oL5efKlJ8rU9tSxvFtwnKVvU48EK/oEdUicr1Z4jACwM051DYPENdCLMeisnELQSmkumkIy7WwcxmU1ihLY7maqFyjsrlK1OhLVI0wcYKdcakP1kli0wxEVZZFZnoa+JnECZbvElWDRiBp+vorGzYTVqpE5SracYhrder9JbRroxvBnmGliokT6ltKQCNkdaiCtqz0Pd2yBb+ng7heR1maqFQiGdhMXAvSIE9tET+/DhOFJOVBkoHNKNuFJE4DPbNFlOM2v6emXkHVy6A0KolQcQQmwSiNikNMI+BzWJgYEpMGNQ6HI2qVhiGmAYnpT9b0h6yhGhkcralHCb05B0dralFCGCckxlAJYxJj0nWJIYgTNlVC6lFMLU5wbY3XCIusBDHdGYcXSgGWUgRRQkfWIefaZByLIEqoRwlBlDBQCXFtTZwYLJ1u251zyfs2QZT2MeNazde1uRwQJYZqEOPZaZjmUC3CszUdmTTY0taKvs4MPTkXSyvyXjqFMYiSZqDlcNtexiHjWpjEYLsWXsYhihI6GiGiqhEcaVka20n76Wccso1jVYMYkxjixJBECRnXQilFJu9SHQowiaEj62ASSBJDvRpi2Rq7EV5a7Mo0j+V6FptLQbN/SZwGnQ6/NwXfoRLEbC4FZFyb5C+DWhsBpsOBpfBiuOmMTp/uvItraTozDuteqBInCUO1xr83K31PCr5NxrWphvFW73vet3mhFJCYNHg1NtDpO5RqEb6tiQ0UfQetFJ6tsRtfOktDwbPQSqVhsXH6XQqThHIQ49oKpdI5KlbjIpg4SR8nBobqCRrFQC1GqfR7HZv0ux3+xc1nLK2oRUkzyFMzde5NszP64he/yIUXXsj//M//sH79egYHB0cs4zXmychCCCGEaF2rp5+m0qkrgGOOOQaAv/3bvx1xFbcxBqUUcRyPq10pdIQQQog2SIxpjiaNd/+pZHtd1S2FjhBCCCFG2LJlC+eeey4/+MEPgHSU5Wtf+xqdnZ0vuc8ZZ5zBTTfdNGLdm970Ju67775RHfOII44Yd39fzi4zR0cIIYTYkaRZV61cdbX9+nbKKaewatUqfvKTn/CTn/yEVatWceqpp77ifscccwzr169vLnfccceYjvvLX/6SD3zgAxxyyCGsW7cOgG9/+9vce++943odICM6QgghRFu0euXU8L5/PVHX8zw8z9vGHqPz2GOP8ZOf/IT77ruPN73pTQBcd911HHzwwTzxxBPstddeL7mv53nMnDlzXMe99dZbOfXUU3n/+9/PQw89RL1eB2BoaIjLLrtszEXTMBnREUIIIXZic+bMoaOjo7ksW7aspfZWrlxJR0dHs8gBePOb30xHRwe//vWvX3bfFStW0Nvby5577smHP/xhNm7cOOrjfuELX+Caa67huuuuw3Gc5vpDDjmEhx56aOwvpEFGdIQQQog2mKirrtauXUuxWGyub2U0B2DDhg3bDNrs7e1lw4YNL7nfsccey0knncS8efNYvXo1n/70p3nrW9/Kgw8+OKo+PfHEExx++OFbrS8Wiy3dSHCHH9FZt24dH/jAB+jp6SGbzbL//vvz4IMPtrtbQgghREvixlVXrSyQFgJ/ubxUUbF06VKUUi+7PPDAA8C2Q7qHL/N+KSeffDLHH388++67LyeccAI//vGPefLJJ/nRj340qvejr6+Pp556aqv19957LwsXLhxVG9uyQ4/obNmyhUMPPZRFixbx4x//mN7eXv74xz++7KxvIYQQYmeQ0NoNCsc6vWfJkiW8733ve9lt5s+fzyOPPMJzzz231XPPP/88M2bMGPXx+vr6mDdvHn/4wx9Gtf1ZZ53Feeedxw033IBSimeffZaVK1dy4YUX8pnPfGbUx/1rO3Shc/nllzNnzhxuvPHG5rr58+e3r0NCCCHETmratGlMmzbtFbc7+OCDGRgY4De/+Q1vfOMbAfjf//1fBgYGOOSQQ0Z9vM2bN7N27Vr6+vpGtf1FF13EwMAAixYtolarcfjhh+N5HhdeeCFLliwZ9XH/2g596uoHP/gBBx10ECeddBK9vb0ccMABXHfddS+7T71en7DbRgshhBDby3BURyvL9vDqV7+aY445hg9/+MPcd9993HfffXz4wx/m7W9/+4grrvbee29uu+02AEqlEhdeeCErV67k6aefZsWKFZxwwglMmzaNd73rXaM+9he/+EU2bdrEb37zG+677z6ef/55Pv/5z7f0enboQudPf/oTV199Na961av46U9/ytlnn825557Lt771rZfcZ9myZSNmn8+ZM2cSeyyEEEKMjmkxudxsxzsjf+c732G//fZj8eLFLF68mNe+9rV8+9vfHrHNE088wcDAAJCmj//ud7/jHe94B3vuuSenn346e+65JytXrqRQKIzqmB/84AcZGhoim81y0EEH8cY3vpF8Pk+5XOaDH/zguF/LDl3oJEnC61//ei677DIOOOAAzjrrLD784Q9z9dVXv+Q+F198MQMDA81l7dq16ROW1Qw2NJbzYpBhVMc0gj2Vk4bkoS3QVhqAqC2SahkTx5h6Le3X0JbmdiqTQxe70dn0g7R7ZmKisBnASJJAEqNsNw1hbIQtWl3TQWtMUMNUXgwTJYkxQQ2rowdTr1HbPIDyc5g4QXl+GuKZxCSNIEvt2MRBhLI0drEDy/dwizniWkASx80ASrtYxPbT1xeVa819AVQmh+XY1LcMUd24hdK659PXGUZYjk1UrqXH15rq81uIqgFaa7TrYDUC/ILBcrNP5Q0v4HdmiWsB4WAFO5fB7+4gLNfQjt1sKygHjbdR4+R8Ks9vwfIdyhuHMLFBWYpMl09QDqltqZHEhk2PbaCysR9lqWagaXVTBWUpTGyIagFhLcLv8sn19VAfrBPVIpxG4GdlY4moFmC5FmG5ShKnPyhW/+xxAAb/PISTzRDVIixX4xVdTJIQ1+qNPwNq/VVqmwcxSYLlO1i+S71/KH1vqwFhuY6J4zQ81LGbAZ6mcdOLYDD9DtT7S9T7S0S19F4R1c0D1PuHCIcq6XtXrlLbPEAShSit0fnO5vcufP45lONiGmGeJgobAbNOGhpbq7y4Loma/z6MZaOiAGUaZ/e1jdE2KqqhojpxYjCkExEdrZpXdVhKUY8SbJ2GKSak64d/znq2Rino9G0Knk0piHF0I5DxL/7X6VqawVpImKRhoHFi6M67rO+vEScGraAjm15WmvfT72eYJFTDmIxrMacjA8BQLaLg2mQaIZcAGwbSNrKuxcbB9LVUg5g4MWQci75On4xrkXFtPFvTk/eoBDG2VmRdi0pj23ojqDKIE6IoIYi2ztdxbU01iJnWlcF2NEliyPo2ln5xomZnwUNpCOoxrq3J+zZDQ3UsSze3y7gWyXA/44SMbzdCQm168h62q7HsdAGIowRLK2Z1Z4gTg9tYP9y+a2uiMKHUCN6ME0N/JWCgEmJphaUVtmOxcHq++XwaihoTRAnr+6t0ZFxcW+PaFl0Zhw4vbbcSxGRcm9gYSrWosU0ajtqZcbC0oifvNgNQS/WIjGOR922cRvBqV8Yh41i4tibrWGSdtP/D3zPf1tSjmE2VkE2VsLk+TEwzvNPRGkerdDJuAr6tMAaG58gaA7aVTvTNexrfSsNDIQ2oTb+HCmMMUWJo5LQSJ+lxfP3Sk213Jd3d3dx8883NMyM333zzVvNjjTGcccYZAGQyGX7605+yceNGgiDgmWeeYfny5WMabLjpppuoVqtbra9Wqy87wPFKdug5On19fbzmNa8Zse7Vr341t95660vu0+qNkoQQQojJEBuaRdh4958KBgcHMY0RqqGhIXzfbz4XxzF33HHHNi93H60dutA59NBDeeKJJ0ase/LJJ5k3b16beiSEEEJMDEkvT3V2djYvb99zzz23el4pxaWXXjru9nfoQudjH/sYhxxyCJdddhnvfe97+c1vfsO1117Ltdde2+6uCSGEEGIC3HXXXRhjeOtb38qtt95Kd3d38znXdZk3bx6zZs0ad/s7dKHzhje8gdtuu42LL76Yz33ucyxYsIArr7yS97///e3umhBCCNGSVq+c2l5XXU224dTy1atXM2fOHLSe2OnDO3ShA/D2t7+dt7/97e3uhhBCCDGh5NTVSMPTUiqVCmvWrCEIghHPv/a1rx1Xuzt8oSOEEEKIqe/555/nzDPP5Mc//vE2n4/jra+AHI0d+vJyIYQQYqoavuqqlWUqOf/889myZQv33XcfmUyGn/zkJ9x000286lWv4gc/+MG425URHSGEEKIN5NTVSL/4xS/47//+b97whjegtWbevHm87W1vo1gssmzZMo4//vhxtSsjOkIIIUQbJIlpeZlKyuVy83453d3dPP98evPa/fbbj4ceemjc7UqhI4QQQoi222uvvZr3ztt///355je/ybp167jmmmtGHQy6LXLqSgghhGiDpMV5NlNsQIfzzz+f9evXA/DZz36Wo48+mu985zu4rsvy5cvH3a4UOkIIIUQbyByd1FNPPcUee+wx4h55BxxwAE8//TSPP/44c+fOZdq0aeNuf5c5dWWUTsM7ozoYkz52MiTZzhc30haYRghnVMfYLiYMUF4GZVlgO5AkaWCn0iTlQbTrk5T6IQpRjoMudGJ19aILnSg/jwkDsF1MFKAyOUwUYnX0QJKQDPVjwhCVLWKGgxkbgaAqk0vXNY6nXRsTx2g3zQDRjk0SRsS1oBluie3iFrLYuXSb6vP95GdPT7fxMiRhROX5fqqbB5ohnEprBh//A9q1CRthn1E1xOvME9cCvM4CcRgR1+okYUQwWKGyYTNOMYvtu8RBTFiu4RZzADi5NOAyDiOSOCFJEpIwxM64WK6NtjRRLcDJ+di+jddZICgFaMchqqbb1bbUCGsRUTUiDmKUpahsrhKHMZkun7W//COZ3i7qg/V0fRATlMPmx+j4NkE5QGlNZVOV5/9vEwCDfx6ksqmKW8iitGq+XmVpstOyRLWI6pYaytIEpZDyc5Vmf8NyjfL6zYTlOqVnS1i+i5N7MY/FJAlRNb3nQ1BOty+tH8AtZvF7iulnFUbNYE87k+4f1dJ+OsVs83F18wBRrU51Yz9uMYe20+BQE9RQno+JAur9Q2kILLz43QlqmDB9H0y9inK8NOTTaWS/JQloG7RGBRWM0un3HVBRgNE2WSv9weloKIcJrqUJkzT8sBqlz0WJIedofFsTN37QJsZQjwxKQYdnk3U0Wik8W5N301BHgKxj4dlpEKyl0uDO3rxHZyPIsx6lxwzi5C8CJxNcW7NxsE4Yp6GWw9sHUULQSGUcDpnsyDp4jbDLfCNo09IK19ZkXIuenNu80Vpv0aMeJfRXQ0r1NAjTs9Ow0eEQyf5K2AzPzPs2jmcTJ4awHlHwHaIwIYkSSpUQWyuSxBCFMaVaRBIb/KyDa2s8W2M7Frar6cw6zXZ6Zxeb7dWDGNvR+BkH19LM6snieTZexkEpRRSmAaHdOY8gShiqpJ93ofE6XVsT1CPixvsSJ4YgSpr7/fmFCt1Fr/l+5b30/7oZNw3u7Mw69OTd5ns+IpDV1vTkXFxLN4NXLa2wtaISxOS9tA/DQasDlZBsI8CzFqftWQqixmcYxgnTsi7dGRvPtnC0an5PtBr+rqTfMa/xM87RGkunAZ4aRcZRJCYNnR3+LiqVPlYKgtgQxAbXUsQJqMb3bvgXX9IIA7W1wtZggPFdwCxaseeeezJnzhxOO+00li9fztNPPw1ANpvl9a9/fUtFDsiIjhBCCNEWsTHNAm28+08Fd999N3fffTcrVqzgIx/5CLVajblz5/LWt76VRYsWsWjRImbPnj3u9qXQEUIIIdqg1SunpspVV4cddhiHHXYYn/rUpwjDkJUrV7JixQpWrFjBv//7v1Ov19ljjz22CvkeLSl0hBBCCLFDcByHww8/nDe84Q0cfPDB/PSnP+W6667jqaeeGnebUugIIYQQbRDT2lVXU2k+Ua1W49e//jV33XUXK1as4P7772fBggUcccQRXH311c3gz/GQQkcIIYRoA7nqKnXEEUdw//33s/vuu3P44Yfz0Y9+lCOOOIIZM2ZMSPtS6AghhBCibX7961/T19fHokWLOPLIIzn88MNbvtLqL+0yl5cLIYQQO5Lhq65aWaaC/v5+rr32WrLZLJdffjmzZ89mv/32Y8mSJfzXf/1XMwpivGRERwghhGiDJDHNezqNd/+pIJfLccwxx3DMMccAMDQ0xL333stdd93Fl770Jd7//vfzqle9ikcffXRc7UuhI4QQQrRB3GKh08q+O7JcLkd3dzfd3d10dXVh2zaPPfbYuNuTQkcIIYQQbZMkCQ888AArVqzgrrvu4le/+hXlcpnZs2ezaNEivv71r7No0aJxty+FjhBCCNEGMqKT6uzspFwu09fXx5FHHskVV1zBokWL2H333SekfSl0hBBCiDaIk9aKlUZ03k7vn//5n1m0aBF77rnndmlfCh0hhBBCtM1ZZ521XdvftS4vNwZsD2M7qCRNKlZRiLFddL4T/AIqDtLE8LCOSiKUl0l3jeM0tXy4KaXRuSK6o+cvEqNrJOUhiAKUl4UkShPRkxiSBGU7KG2hPB+0Rhc60/2CGjqTpn+bahllN5KBu3rxOguQxITlKkTpcZIoxCQJlu+iLN1MxCaJMXGC0hrt2iitiWsBbjGHKQ9S31LCxAlOzkc1UrnjWpq4nQQRYaWGiQ1+Vy5N467VUZZGa914DxLcYpb6YJVwsEISRES1xlKuNlPUbT9NUa9s2ExUrqIdh/6n1mH5HlEtSFPHn+9HW5okjCjMygOgG6+l/FyZOIiJgxjLtahtqeF3+WkqeSnEK3qYOKG2Jf08ksRgORaW76SvOYxJgoRgqJK+j06alh1VI8JaRBJG2BmHzU9sIgniNPHdt7FcCxMnRLUAbSmCctrXoTXPM7S+RHVzGa8rR3ZaBsuxKc7vIwkjTJKQBBFxLSQs1zGxaaac17eUSMIIrzOfpqZbGieXfqfcQg7bd9PvW5y2YeIEbaWfWzBUTj9Pz0fZLsnAZpTtomyXsFzDRCE6VyRa/3T62UchaJ1+3wBMgqnXUGEdFZQxlo3RNiqopu93vZR+RwFju+m/B5NgDydIA8YYfCt9nJg0tRwgTNJU6EoYkxjDUD2mFifUI0MtSsi7aZL1tKxLJYzp8G0qYdxsJ0kMtTgh79lolSZeZ12LgXqEoxW+bVHwbEq1qJnA3ZN3WbVuoJloHjYSsTuyDh0Zhzgx+LbVTCsv1SJyjtVMN//LpHNI/yc9nEo+/HdLK/qrIRnXfvG7pRUDlZA4MWRdi568S8a1sB2LoVpIJu+iGu9ZPUro7cliOxa9RY8oiMk0ksXTf6IvHt80Lg3O+zYLe/Nk8i5xnOBnHDqzDi+U68zryeHamjhKqFVCckWPgj+cOG4xregxd0aeIErIuhalWkQ276IbCe9BlCaFm8RQ8J3mdvUooeA79HX66Wu30nT16QWfoVr6nbC0otr4zIZqEQXfphLELOxNf1YNJ6Z3591movxwgrpra/J++tm6jTR419LEBvJempReixIcS9GdcejwbAbqEbGBnqyLozWOViTGpH+3FFnHQiuFbqTK21b6PYwSg22B3/j5Uw0TYmOIYnC0wrUUllJ4tmL44w8aoyiupYgSg1agVZpwPpk34Rs+ddXKIl6ZjOgIIYQQbSBzdCbHrjWiI4QQQohdiozoCCGEEG0gNwycHFLoCCGEEG0QmxZPXU2RCIjtTU5dCSGEEGLKkhEdIYQQog1kMvLkkEJHCCGEaAMpdCaHFDpCCCFEG0SJwWqhWImk0BkVmaMjhBBCiBG++MUvcsghh5DNZuns7BzVPsYYli5dyqxZs8hkMhx55JH8/ve/374dHQUpdIQQQog22JHvjBwEASeddBL/7//9v1Hv86UvfYkrrriCq666ivvvv5+ZM2fytre9jaGhoe3Wz9GQU1dCCCFEG0zUfXQGBwdHrPc8D8/zWurbpZdeCsDy5ctHtb0xhiuvvJJLLrmEd7/73QDcdNNNzJgxg+9+97vbPc/q5ciIjhBCCLETmzNnDh0dHc1l2bJlk96H1atXs2HDBhYvXtxc53keRxxxBL/+9a8nvT9/adcpdJTG2A7G8VBxhLHcxnqFsdz0sWVhLBflpJWwCuuYclop60wuDfHMFVCuj4oD0BbGy6EzuTR4MVdEOQ4mjiEOMVHYCPC0mt3QuQImjtNwT9uFJE5DPG03Df38i3DPpHFsE4W4hRxhqQxAfcsQTi6DsjRhuYqJE6xMFlNPQy6HQyaVpYmDNAg0LJWxfBfbd1GWRViukQQhTjFLHETNx9q10I6NdhxK6zZh53wACnNnENUC3ELavziMSJIE27dxCz5+TwdKa6JqSFQLsH2P0voB4iDCyflYjZBE7diY2JA0+lXvH8LvylDvH6K0scyz9/8ZZSks1yI7LUtYiyj05XFzDk7OIQ5jirsVSMKQJDZorXBzDnbGJgkjgqEa9YE6fpePiWNyM7IoS1HbUsPNOYTl4RDTNDTU7/LT/Rrr64MBg2s2EYdxGs5Zi4iDNNhw1sF7E5Zr2BmbsFyj3l+iOL8PAMt3GyGgAUlsGm3ViWp1apsHcYu5NNAzm0G7NlE1QLs2Xmee2uZBLM8jDiNyfT0kcUISJ+RmTycOwzQ0NolBWyTVMmHjf2+mXkVnC8RD/SjbwdSrJKX+xhfNIhnYDLYDJgHbQwfVNMgTMG72xX8aUQ1MggorGKUJYkOYgGdrlFLEJg1P1Eox/J/POAGloODa+I6m4FnUwoQEg6XTQMgOL/3MS0FEGBvyje9AGCd4jaDH4eDGGQUPSysqYUzWsbAUdHg2Gdci41p0ZtKg2+HgTSANrsw4I46VdazmkP7MTp/YpH0p+HZz34xrsWB6GpY5HBo6HAoKsHB6jo2D6b8lq9HP4X5YWtORdZt9iBOThneGaXhnqRZha4WXcditK4vSinoQU/Ad6lGC49l4XhqO6Tb6FCeGjGPR05Vhz9kdBEFMd94j49rM7s6QdS28jE0279LV4aehpnHCvJ4c3XmPODHkfQfXTvvoeDZ2I1hzuI9RmNDX4dNbTNv1bE01iOjOueQ9m2oYk3HtZnBpZ9ahVAsJooQNpTq9RY8gSqiGMZ1++l7N6cowLeeS92126840v0/D77+lFZ6tyTppQGvWsejOOORdC9/SjcDXhCA2dPg2Xb6DoxVOI5wz61jN4M+CaxMbg9MI6IwT0AyHzUIUQxAblALf1s0QT4CMnb5fALZOgz49S5OQTuYdDv2MTbr/ZE7vjY1peQFYu3YtAwMDzeXiiy+exFeR2rBhAwAzZswYsX7GjBnN59pl1yl0hBBCiB3IRM3RKRaLI5aXOm21dOlSlFIvuzzwwAMtvSbVSJcfZozZat1kkzk6QgghxC5gyZIlvO9973vZbebPnz+utmfOnAmkIzt9fX3N9Rs3btxqlGeySaEjhBBCtMFk3zBw2rRpTJs2bdzHezkLFixg5syZ3HnnnRxwwAFAeuXW3XffzeWXX75djjlacupKCCGEaIMd+fLyNWvWsGrVKtasWUMcx6xatYpVq1ZRKpWa2+y9997cdtttQHrK6vzzz+eyyy7jtttu49FHH+WMM84gm81yyimnbLd+joaM6AghhBBihM985jPcdNNNzcfDozR33XUXRx55JABPPPEEAwMDzW0uuugiqtUq55xzDlu2bOFNb3oTP/vZzygUCpPa978mhY4QQgjRBrFJiJOkpf23l+XLl7/iPXSMGTmipJRi6dKlLF26dLv1azyk0BFCCCHaYKJuGChe3k41R2fZsmXN84BCCCHEzmxHnqMzlew0hc7999/Ptddey2tf+9p2d0UIIYQQO4mdotAplUq8//3v57rrrqOrq6vd3RFCCCFaFiXp3ZnHv7T7FewcdopC5yMf+QjHH388f/M3f/OK29brdQYHB0csQgghxI5GTl1Njh1+MvL3vvc9HnroIe6///5Rbb9s2bJm6qoQQgghdm079IjO2rVrOe+887j55pvxfX9U+1x88cUjws3Wrl0LgLE9sFyMtjHWi/WdisM0dFMpiEJUEqUBh3YaIqi8xnFtrxmsqDM5SGKSoS1Q7m+GcgIjAjyV7aC0BV4ahKlzRZSfQ3X3NQMaAXShs3GsDEprkvJgGu6ZJGkoZxRg+S7asYlKJZxchiSIMHGC0ho74xKVSqA1TiOEM4ljLDcNujRxwsBT69CujXZs8rOnEQ5WSMKIuBYQ1wLq/UMEQxWcnE9t8xDK0th++prCShWg2XZ5Y4W4Vm8+bxqXR9oZl8y0Ak7OJw4jtKXQlkY7NnEQNduwMza5vh6CckB54xBKa2pbqmiteOTxzdi+TRzEWK6mY24nHfO6sH2b2pZGaGlsyM+ejuPbxGEaLKotRVAOsRyLOEwwcYLtexT68ti+TXVLDWVpompEHEQoS5GfkcPEBhMnJEGC5VhE1YiwFGD7NsXdChR3K2L7NpZj4RZzJEFMbmb6eWnHbgaohuUa5ecqxGFMbkYOr5hBu+l3obJxC5WNWwgHK8Rh1HhPa0S1AGVpTJxgkhjbd6ltHiAJIizHJtPTQWZ6F1bX9PQ7kqThosFgmWxvF3G5BLaL9rNpKKzjomwXlcmhHJckqKEsC1NPwzqN0/gOKw1x8OL3NIlA2yR+B8okuJbCGEMQGxydBnoOhwfWowRFOtweJ4YEQxAZPKsRwKgVlTDBszRaKcI4wdGaShjTm3PJOBaxgbxrMz3r4tkW/bWQnqxLR9Yh79rEJg3sdCzNQCXkhVKAb2kyrkXet+nJuezemydJDL6lKfovBn5mHd0M77S0YlrWIetauLbGt9PAz6FaxAvlgIxjjQjndG1NxkmDMbOuRcG3CetRGqIZJfTkPXoLHj05l96i/xf7WfjZdJ2lFbO7snR3Z9I+2BqvcXxbK/buKzbDRLuLHp6t2bylit3o76tm5NFaUQ1iqkHUCBS18TMOnXm3+ZltHKw1+zUcMrq5VKfg283g0kojjNa1NTN7c+R9m+6cx25dGWZ3Z3BtTYdns7A3R8ZJv6vVME5DUrMu3bk0Lynn2nRkHVxb05lxGAoiOrIOjqUbAayK2UWfjGsRRAl9hfS9KdWiZjiro9PvA6RBsJ6dHs+zNEpBGBt8Ow2HtRR0ZxyyjkXWsVAq/fGcbfTR0mAMaYBso01Lg2spXEuRNGI5h7+zpTD9+WQpRcZJwzyrUUI1SoiTNKDWUunzWsFkpjLJiM7k2KFHdB588EE2btzIgQce2FwXxzH33HMPV111FfV6HcuyRuzjed5LBpoJIYQQO4o4MehJjIDYVe3Qhc5RRx3F7373uxHrzjzzTPbee28+/vGPb1XkCCGEEEL8pR260CkUCuy7774j1uVyOXp6erZaL4QQQuxM5IaBk2OHLnSEEEKIqSpODEpOXW13O12hs2LFinZ3QQghhBA7iZ2u0BFCCCGmAmMMpoVRmb8O1RTbJoWOEEII0QZJYlqaZyNzdEZHCh0hhBCiDYwxLY3KyIjO6OzQNwwUQgghhGiFjOgIIYQQbWCSFufoyKmrUZFCRwghhGgDmaMzOeTUlRBCCCGmrF2n0FEKTJIu0Pi7wTgeKiinKXHawmg7DT3UfxH82Qj4JN8DSYzKdjTWuyjHS0MUdeOtzHai853NoEtd6EQlEboj3dd4OVQ9DfNUltUMDbWnzwbbQfk5dCaHqdcwUYBbzKVBoLaLiRPiWoDT1UUchmjHJtM3AzvrY2czAES1gCSIiCppAKZ2bIKhMkmSYPsuSRihHRuvK4+JE9xClrBcRbsOSmuCwQrKUsS1eiPsMkI7DsFgBa+zkLYfJ0S1AO3Y+F25NFzU0mSmdwHgd6fvT1RNAyzjWoDXVUBZmnp/CbfgY/luM4wzCaM0ONO1eMMbZ+HmXTp2KxIHCU7Ox+/pQFsay7WIg5jKpgpRNSCspe3XttTI9KSvJ31fFX6XTzBUJiyHFOcU0/c4Y5OZlk3/7rto1yIoBwRDZfKz8tgZm455RZy8i+VaBOUQt5DFyXlkp2XS4NNygHYdTJLgFrOE5RpRrY62dLM/SSNM0Sum7/ew4XDUYLCM5djNUFavM4/SFsFgBe3YaNfGLeaIanWc+a8mqVUwQa0ZGGv7XhooGick/RsxQQ2lNcr1UX42/R6HQfp9C0PIFFFxAFGYdiSqo6IQjEHFEUbpNMg2Tp8PYkPBs9AKEsDRCo1qhiS6VhrSCWkQoqUhTBISYygHCVlH0+HbdPhpQGfW0c1AxsSYNAhSK2xLkxhDqRaRGEPet6lHCWGSpOGeiWFmp0/eT/8tzsx7dPoOYWzoK3hkGwGhiTG8UAvTMM5G23nfxrctPDsN1HRtnbbrpe3OKHhkXYuOrEOpHqUhnp7Nbt0ZfDttw7U1c2fk6S36BEFMnBi6G8GapVrInGk5Fk7Pp+GhPRmCKKa3mObsdWYd+qsh+aJHZ9bB0ooD5nXRk3fTcNBGoGdH1sV20gBOz9a8UAqwbd0M7Xx+sE5fh8/C3jybtlSpNr5btlZp/zMOQZSwuVSnM+uyW1eW3qLHwun5ZphpECV0Zl36Onx6ix4Z12qGhVbCmOk5D9fW7NaVoSPjECeG3oJHECfM7shQi2KyjsW8niz91ZBpWRdLKWpRQi1O0EpR9B168x6WVpSCqPkZaJWGvNajGMdKQ149W2Op9DvjWGmEZpgkdPh2Ggjb+KxiY0hMeufg7oyFZys8WxEnaYCnoxV+409bK+xG2KcmXTe83rUUUZJO3K1HaXtagavT726CIUwMjXxQ4kkcJBn+ldTKIl6ZnLoSQggh2kCuupocu86IjhBCCCF2OTKiI4QQQrSBTEaeHFLoCCGEEG0gl5dPDjl1JYQQQogpS0Z0hBBCiHZocUQHGdEZFSl0hBBCiDZIjEG1cOVUIlddjYoUOkIIIUQbGNPiHB0pdEZF5ugIIYQQYsqSER0hhBCiDeSqq8khhY4QQgjRBkkCqqX76ExgZ6YwOXUlhBBCiClr1yp0TIIyCcZJgw+xLIhCjJNFJY3wxUbAoVEaE1TBdjGWC0mUBiPaLqZWwiQJymmEfWqrGayIZaXHcbxmMKgJ62nTfg4VVEFpVGcvOltIgxi1hUnitC+1MmiLpNSPcn1MnKSBoICdz2P5LiYM8ToLKNttHL6xP2DihLCchkeG5RomSbCzaXBoVAtwi1niWkBUDVCWTsM5XQfLsQmGasRBjHZs6lvKaKfR/zgmGCpj4jQYND8jh+27ROUalu8R1SLys6cTNwJFnZyPiWOK87qxfJc4jHALWWzfxfbTPluOg1fMUJg7ncqmKmE5xM7YdC7oItebRbsWlqsxSYJ2bCzfwc7YdC3sIqxFmCTBK7p0zOvAci2UpVFW+nWOqhEmMWjHJg7i9D20NFE1wiu66MZ2ud4CUS3CyWbwih653iyFWXksRzP7zXOxXAuTJARDNaJGYKeyNHGtTr1/iOrG/vT9dx28zgJJEOP4jb7mMviNgMdMTweWa+MWcs1+xmGEsjTBUAVlaUwSk4QRbjFHbmZP+podB50tYOpVkmoZnStgamXsXBqKGteC9DuSJOn3WVsox8VUy83HaJ1+p1X6mlUjBdC4mfS7OvxPw3K3+udiNYIPgzgNPLSUotZIPMw6FlopgkaoI9AMaMw6FkqlwZOOVuRdG0vTDPbs8G08S9OdcdhcCejIOsQG9p6Wx7M1jtYM1kIsrej2HVxb05N1mVnw0EqRddLwTs/WZB3d3CfnWGyqhHRmHLpzLpZKX0N33iXjWvTmPByt8GxNV8Zhbk+WnqxLd85tBofGSRo6+qoZBSytqAQxC6fnyGcdMk4akpkGVjrkPZuevMvefQV68h5796XhsZ6t6ci49BY8FvbmmdeTY15Plr6ij2unn0MliKlHCXFieNWsItUwpjvnsX6gxuvndeHamnk9OTKuRXfepeDZFAtp+ObC6XleO6cT19YUfJtSLcSzNXv3FejOu/R1ZAiihCBKeNWMAgB79xWwlGoeP+dYZByL54bq9OZc4saoQmfWIdMIA8003uOcYzG74JN3bTKORYdn84fnSmQdizBO369SEJFxLP70fJkOz2ZmwcfSitVbKo3PyMLRig7fxlKKjGNhKUUpiHEb35s4gbxr4dsarRRKgaM1tShphnVGMdhWGupp63Q/S0Om8bpcS2FbaYZznNAID02/v7GB2Jg0sLXx3bSUwrfSz3S4jUZ3JsVw1lUri3hlcupKCCGEaINWE8glvXx0dq0RHSGEEELsUqTQEUIIIdpgONSzlWV7+eIXv8ghhxxCNpuls7NzVPucccYZKKVGLG9+85u3Wx9HS05dCSGEEG2wI19eHgQBJ510EgcffDDXX3/9qPc75phjuPHGG5uPXXfr+X+TTQodIYQQYic2ODg44rHneXie11Kbl156KQDLly8f036e5zFz5syWjj3R5NSVEEII0QbDIzqtLABz5syho6OjuSxbtqxtr2nFihX09vay55578uEPf5iNGze2rS/DZERHCCGEaIOJCvVcu3YtxWKxub7V0ZzxOvbYYznppJOYN28eq1ev5tOf/jRvfetbefDBB9vWJ5ARHSGEEKItJmpEp1gsjlheqqhYunTpVpOF/3p54IEHxv16Tj75ZI4//nj23XdfTjjhBH784x/z5JNP8qMf/WjcbU4EGdERQgghdgFLlizhfe9738tuM3/+/Ak7Xl9fH/PmzeMPf/jDhLU5HlLoCCGEEG1gTItXXY3xtNe0adOYNm3auI83Vps3b2bt2rX09fVN2jG3RU5dCSGEEG1gWryHzva8vHzNmjWsWrWKNWvWEMcxq1atYtWqVZRKpeY2e++9N7fddhsApVKJCy+8kJUrV/L000+zYsUKTjjhBKZNm8a73vWu7dbP0ZARHSGEEEKM8JnPfIabbrqp+fiAAw4A4K677uLII48E4IknnmBgYAAAy7L43e9+x7e+9S36+/vp6+tj0aJF3HLLLRQKhUnv/1+SQkcIIYRog1aDObdnqOfy5ctf8R46f3n8TCbDT3/60+3Wn1bsMqeudL2UppLbPiqqgdYYy0WZ5MXkcmMwtgPafnFdEqOSCFMrY2wPZTuQ60qfs900Vc3LQSE976nCOiaopWnQJiEpD6b7DKeLV4cw2kbFAUlQw+rqxUQhyVB/ur+fS1OobQeiME22Lg82k9LjWgBAMFhOX1euiHbtdH2SYGdcTJIQVQMs30XpNAHccmwsxyaqBji5DG4xi+V7zUTy4eRvgLBcp7qlhrI0fk8R2/dIggjt2rjFLKqRGpwkCdNeuztKq2bSeVQLiMP0vfO7O0jCiP6nNqR9dWycYg4Ay3exfBevM4+bd9CuRW5mJ9rS1LbUsBybTE8OpdOE77BcJ4kNpWeHqA+mKemWa2HiBK/ooXSaTp7p7SQ3I0emJ09YrgFpSnlxToHcjByWa1HZXCYOI6JagN/pU96wmSSIicOEoBxSHwzITO/C9m2U1mR7iySxISzXsByNdhyqm4aIwwjLsaltHqDeP4STS19HpqcDy7HJ9xWbieXDn4ftu42k8zD9PsQJTi6DLnRh5/z0PZo+g7gW4HV3ED+/jrhcIq4FxAObUX4Oy/MI+ktponySoG0Hq2cmyvVfTCyH9PvjpSnlJqyDtjDaxjgZVFCFJME4fvp9b6QLqqiOo6EeJSSkic+Qpj6Xw4TYGGJjyLsaSykcrUlMmmAdNwIGXUujUcTG0J1xminXvq0JY4NWCsdK06OLno1vaaI4Ie+mydhzO3yKvkNvzqXoO3R4Dr6tKQUxYZI0U9IrYcLcjgwdXvrdcxrfYUdrSvWIrkz6b2a3os+MfHoVSpgY8r7dTF8P44Ssa7H7tFwzmXw48TxODK+b00kQpS8s61pYWrFxqI5raXqLHnv25rG0ohpExImhO+fRkXVY2JtjZodPECV0ZJ1Gf2MsrditK8NuXVn2nFHgjxuG0uTsEcnoNvvO7iDjWmRci1ItYmanz6v7iiycnmdmh8+C7ix/3lJlZofPPrM7cG2LjoxDb95rHq+/EtKTd5nXeG1hnFD0nebyqpl54sTQ4dt0NvaZXvCY25WlI+vwmr4C1TCm3Oh3d8bBszWVMKZUj+greCTGkHetZjI9wO7dWfoKHkXPpujZzaR5rRQdnoOlwdKKrozDjLyLRpEYg6UhjA2OTr9bGkWYJFhKkfzF91CjqMVponmt8QWNjcEAQWzI2JooMbiWQqs0odyYNNHc1enfIU2Zdy2Fa6XbBLHBbiSaT5aJuupKvLxdptARQgghxK5HTl0JIYQQbZAkBloYldmeoZ5TiRQ6QgghRBuYJMY0pjWMd3/xyqTQEUIIIdpACp3JIXN0hBBCCDFlyYiOEEII0QYmSVoc0UkmsDdTlxQ6QgghRBuYOMbELRQ6Ley7K9mhT10tW7aMN7zhDRQKBXp7e3nnO9/JE0880e5uCSGEEGInsUMXOnfffTcf+chHuO+++7jzzjuJoojFixdTLpfb3TUhhBCiJcbEzQnJ41qMjOiMxg596uonP/nJiMc33ngjvb29PPjggxx++OHb3Kder1Ov15uPBwcHt2sfhRBCiPGQq64mxw49ovPXhsPDuru7X3KbZcuW0dHR0VzmzJkzWd0TQgghxA5mpyl0jDFccMEFvOUtb2Hfffd9ye0uvvhiBgYGmsvatWsnsZdCCCHE6LR02qrF0aBdyQ596uovLVmyhEceeYR77733ZbfzPA/P87Zab5RGmQQDoG2MSdJgTTcDQOIXUEEVXS+nYZ9xgHIzGKXT4M58T9pOrYzSdtpOFGCiAPJ+GtqprXR73Qi4i0NMFGKcDEQhKJ0GLyYRJgrR2UIaMuqmiy52E61/Ot3XdkFbWMOvRVuYqEwwVMafPQu3mGsGfdpZn3CoQlQqEVUDkjgN9wSwMx71LUPYOZ+wXEsDP2t1TJyQ7e1MuxlE1DYP4BZ8LNcmGKySnZbBxEkaGunaZHq7cHI+fk9H+j7ECUkQMrTmObK9aXhndmZ3MxzU6yxQ7x/CzmXI9ERYro3f04Hlpl+58obNZHrTcFSlFUk1wsllGFq3Bcu10K5NNFghCSPicg2vmKE+WMWZlqW6pYZTzFLoy5Pp7WJozfNUNg5guRoTx2hLEdUCvM4CXkcNy3fJ9tpUNg7i+DaVTRW8okdUDel5VXcz1FS7AWEpoHNhDyZO0JbCJAkdu8+msnGwGSTqdebJzeym8nw/Ua1OdnoX5Q2b6XlVN2EtDTRVlsbrLKBdmySIiOOATG8n5Q0voCyN7XvYOR9IA05JYtxClrgW4PrZ9D1OYpSXod4/hN/TgWp8r1QmR1TbiHbS0NGwUsUFdCZHMrAZtEZncpgowNSrKL/QCHdtBMv6BVRUw2gbhr/fYQ0yHZg4xLV0Gp4YGzK2ohKCpRSWBU4jFLHgWoRJRBSnIZphklDwLByd7utohYUiTAyzCi79tTTEtMO3mZFzG6GemjkdGQbqEY2cTuZ1+vTXImbk3EZoqKLDt5mec6mEMdOyLlnHIutoujIOjqWIDVgKMk4aCloJ09fpWJrYQN61qccJ07IOUZyglWq0YfFCNSCIEjxL051P/83kGyGhpVpEd86lVI9wbc2eM/LEBqpBhGtpMm4aVvrnF6p05zzyvs3MjvQzrYYxXRmHvg6fvG/zQinA0Yo4MQRRwrxp6Wc8o9OnM+OQcdPP1taKGQWPTeWAjGuxob/G3J4sA9WQ/XfrYEOpTtBIT3Utnb4/WScNFm0c889bqgxU0v2HA0MBtFaQGGID3RmHwVrInr156lFC3rebQZt516YexbyqJ0etEWi6fqjO7t0ZuvMulTChJ5e+V705l2oYM6cjQyWMOXBeF7oRijmnI0OHbzNQi+jLe5SCCNuCKIYu32FTJWBO0acWJzhak3UshoIIx1LUooS8p7EtjaUN9TgNlAXI2IpSmIZ2VqOErPPi/9ftvwjtVCr9n3ytEQSqoRFUmwZ/GmNGpC8YY9BM7v/+5dTV5NgpCp2PfvSj/OAHP+Cee+5ht912a3d3hBBCCLGT2KELHWMMH/3oR7nttttYsWIFCxYsaHeXhBBCiAkhNwycHDt0ofORj3yE7373u/z3f/83hUKBDRs2ANDR0UEmk2lz74QQQojxS5I4nfbQyv7iFe3Qhc7VV18NwJFHHjli/Y033sgZZ5wx+R0SQgghJojM0ZkcO3ShY4x55Y2EEEIIIV7CDl3oCCGEEFOVjOhMDil0hBBCiHaIY4xuoViRUM9R2WluGCiEEEIIMVYyoiOEEEK0gTGtXXUloZ6jI4WOEEII0QYmSVordOQ+OqMip66EEEIIMWXJiI4QQgjRBqbFGwbKVVejs8uM6Bg3S+LmMZaDsT1QOg3UjCOIgzTcUCkSL4dKosZOCSqJ0kDQJAJjUJkCJBFEAWgL5edQcZBu7mQwjodyM+k6bWF19ab72U56TC+fhoZqjfIyabtaY3VNRxWnoXNFdKGzERKqsefuicrkULaDSZI0AFJbBINl0BbJUH/zNca1ALeYJdvbhddZIA5eDJjM9nbhdeVRWhPVAuIwfS6JEyzXJq4FFBf04XUW6Nh9Fl5nHpMkhOUabiFLad3z2FkfO+vTsWAmHbvPRllWM7wyGCyTmd6d9g/I9fXgdRbITu+kMHdGI5RSU908SPfe84hrAdneLrSlsVyLfF8R7dgUZneR7c1TmDMDrzOP11kg09OBncvQuccsZrxxbzJdaXBizz4LKMzppTB3Ol4xQ3FuD35PB7ZvYzk2Ts7HLfhpG9O7CEohmWlZ+t4wn64956AtTWljmagW0LH7bLzOAk7eJT97OmGlRhIbnGwG2/ewnEbQaC3Cyflo18YtZDFJQm72NLpfPQ8n55Hv60hDRGd20/XqeYTlGrnZ09CujZPLUNs8gPaz2DmfTE8H2d4u7GIHplpGWxZ2zscEaRCpsl1MGBCWa2g/i/J8lOcTD/WThGkIqvJzWL6LzhXTz7NaxuqZlf7Z0UNSGQLLAtvDOB5JpgPVCK4FMNrGaBsV1ZvfIyusYCmFUoooMSR/cT8rpdLgxPiv1lk6DelMSAM9AfprEVknDZ70LAutFNOyaRBtGKf7z8i7zO3wmZZ1CeM0qHFLNaQ766Rhn1qhG+GeXRmHvryHZ2niJA0WrUUJBddCa0XBtejOOM1wyjgxbK6k/zbzrkXBswkTQ2/OJe/ahEmCpRVzp2XJOhbzOjPM60zvuG5bmoPndeFohWtrXt1XxLMtfFuzz+wOLK2Y15UlMYZXzcjT1+lT9B06PBvP1pRqEY5W7DWjQF/eo78SknUsMq7F3n0FevNpWO9BC7qZ3QjLHA7W9GyLODHkHAvX1pTqEb0Fj6LvNN4zrxlcOrvoEycGS6vme9XX4fPWvXuxtKK34OHZmhl5j96cx/yuLF2ZtJ2ujENvIyw141rMKvqNz8Ih79m8UA2Z0Qg69WxNGBv6ij6JMRwwp5O8a+FYmrxnY2kIE0PWSYNOh+oR07JpMGuHnwat9hU8NpZClEpDRQuuTdbRlIP0tVgaenMOvq3JexqNwrc0cWLIOhrXUmQdTZAY8o4mYys6PAvXSgM7rUaYqK0VivSXm20pLKWwNSilmr/wrMZ31BiDMYZGFjFKKezhhNlJkEZAtLaIV7bLFDpCCCGE2PXIqSshhBCiDeTU1eSQQkcIIYRoAyl0JocUOkIIIUQbJEmMkkJnu5M5OkIIIYSYsmRERwghhGgDEyegWhjRieWqq9GQQkcIIYRoA4mAmBxy6koIIYQQU5YUOkIIIUQbmCRuedkenn76aT70oQ+xYMECMpkMu+++O5/97GcJguDlX48xLF26lFmzZpHJZDjyyCP5/e9/v136OBZS6AghhBBtsKMWOo8//jhJkvDNb36T3//+93zlK1/hmmuu4ZOf/OTL7velL32JK664gquuuor777+fmTNn8ra3vY2hoaHt0s/Rkjk6QgghxE5scHBwxGPP8/A8b9ztHXPMMRxzzDHNxwsXLuSJJ57g6quv5stf/vI29zHGcOWVV3LJJZfw7ne/G4CbbrqJGTNm8N3vfpezzjpr3P1p1ZQvdEwjk2doqATGpME8SqOCCmgbFVQwlg2W2/y7DqpgXpzNbrSNMkn6ZxyAMZh6mjWlnBiUwmgbtDVyf2MwcQihSrOEtIWxnDT7KqxgkgTlxCSlMgBK+cTlCmhNUq6SVGrY5QokMUmlSlSpUa/ViStVqtU6UaWGqdcwUUBYrWPihLhex3FsTJxQrQXE1TphLV0X1erUawG6kY+iLU0SJ2nmUxBiagFRPUDHCfV6iFsPsAArjikFIX61TlCpMVQPCGp1yvWAsBaQBBGOpUgqNYZq6dBmWK1TqQU4liKqhcTVOkprhuoBdrXOUD3AVNP+lIIwzU+qBdTrIVEQYtfqlOohjm2lryuMcGxNVK1TCiOGagFWHGMZw1A9IApCtFKEf9FeVA+oNF6XsjSlMMIEIWE9IGpsV4oiVBDi1eqU6kGz7Wrj7349gGqdUhCi6gGlMGSoVkdZmqAWUK2HWNV6sz1lDGEt/Twcx2aoHqCqdar1gKTRzmDjfQqraTte43OsV+s4tsb2qgTVOra2sfwqQ7UAVamhLAurXCGo1KjUAurVOmE5/V6EQ2XicoWkWsEZKhGWK9h+us4aKqHCOokbY+wQXSth3BhMgrHD5nc9MT7EIQCxE1EJE2wNQ/WYRjQVrk6zgywNpSAmSr/+xMagUSOyrsq1iMRAJnYo1dP/eQZxgt14XjfaqUcJ9ciglWJIOVRKVUo6oFxO+1KPEkpuRLmafsb1yDT6a4hsRaUWUS3VqRBQih0q5SB9nLhU6xFlAhytyCQO1dIQdmhT0iHV0hDVKO1X2U2oNLLhHEtTixLKsUO1VKEWxdQrAdVSesxauU69UqNScqmFMdUoplYOqaoAK7Coxwm1co1KCaphAo6mXilRKVnUynWqsYOlFLVyHUsrYjsdWA+jpHEcRa1cpaoC6uUadmxRNS4VE1Arl6jokGo9IqiUqJSy1MolgkqJWllRUSG1comqFRJWy1RLQ9QrZSoljXZtYltTqYZ4sUOlFuJGDkGcUC1XqCQuZR2iFVRKNWJLU7JDqqUSxrEoJy7VUjX9mehYlHVApZJ+RuXYST+HakjJT6iUapR0SGLSrLRyPaZkHMr1BC+2MQYqYcyQcSkP1dFKoQILx1KEsUEp0CgcS1GqRQwlDpUoITGgFbhKkbiaWpRuG8WGmDRvK7I0QZLgNHKrSmGCpcDVGmMMgTHoeponFjS+2LaliGKDUopqeWjE747tyYS11kZlGv9e58yZM2L1Zz/7WZYuXdpCz7Y2MDBAd3f3Sz6/evVqNmzYwOLFi5vrPM/jiCOO4Ne//nVbCx3MFLd27VoDyCKLLLLIIsuol7Vr126330vVatXMnDlzQvo5c+ZM89xzz5mBgYHmUqvVJrS/Tz31lCkWi+a66657yW1+9atfGcCsW7duxPoPf/jDZvHixRPan7Ga8iM6s2bNYu3atRQKBZSavFTa8RgcHGTOnDmsXbuWYrHY7u60TF7Pjk1ez45NXk97GGMYGhpi1qxZ2+0Yvu+zevXqV5zcOxqu6+L7/qi2Xbp0KZdeeunLbnP//fdz0EEHNR8/++yzHHPMMZx00kn8/d///Sse469/zxpj2v67d8oXOlprdtttt3Z3Y0yKxeIO/YNgrOT17Njk9ezY5PVMvo6Oju1+DN/3R12gTJQlS5bwvve972W3mT9/fvPvzz77LIsWLeLggw/m2muvfdn9Zs6cCcCGDRvo6+trrt+4cSMzZswYf6cnwJQvdIQQQggB06ZNY9q0aaPadt26dSxatIgDDzyQG2+8Ea1f/iLtBQsWMHPmTO68804OOOAAAIIg4O677+byyy9vue+tkMvLhRBCCNH07LPPcuSRRzJnzhy+/OUv8/zzz7NhwwY2bNgwYru9996b2267DUhPWZ1//vlcdtll3HbbbTz66KOcccYZZLNZTjnllHa8jCYZ0dmBeJ7HZz/72ZYuC9yRyOvZscnr2bHJ6xHt8rOf/YynnnqKp556aqupH+YvrkZ74oknGBgYaD6+6KKLqFarnHPOOWzZsoU3velN/OxnP6NQKExa37dFGTMJ19AJIYQQQrSBnLoSQgghxJQlhY4QQgghpiwpdIQQQggxZUmhI4QQQogpSwqdSSTzvnd88hmJySDfMyEmjxQ6kySO47ZH1U+ker3O97///Qm5hfmOoFar8clPfvIV7/65s6jX6/z617/mmWeeaXdXWhaGIevWrWs+3tmLBPlZIMTkkkJnEnzlK1/h0EMP5Z3vfCfnn38+f/zjHwFIkuQV9twxlctl9t13X97znvdwzz33tLs7Lbv++uuZOXMmv/nNb3Ach2q12u4uteTKK69k/vz5nHXWWbzuda/jmmuuIY5bSEhuo3/5l3/hVa96Fccffzxvf/vbWblyZdtzc1ohPwuEmHxyH53t6A9/+ANnn302a9eu5ZJLLuHxxx9nxYoVFAoFfvazn7W7e+NijKFSqXDqqafyxz/+Ec/zuOuuu8jlcv9/e3cfV/P9/w/88S51uk6ldKGSoTSJ8kH5EItcZUwfxVrDx4wNybD5rK/JtShjxphhmI/oU5iL5TpJaWm1ojBbKZSYktDlef7+6Nd7na4ZndPxvN9u3W7O6/16v87zcc7p7dX7vC/kXdoL+f333zFlyhT4+vpi+vTp8i7nb1u0aBHCw8Oxbt06dO3aFbt378bGjRtx9+5daGpqyru857Ju3Tps3LgRISEhKCoqwuHDh3Hx4kWEh4dj0KBB8i7vufC2gDE5kss9018DlZWVFBoaSiNHjpS5bX14eDg5OjpSRkaGHKv7e3799Vfq1asXZWZmkra2Nm3atElcJpVK5VjZ8wsNDaVevXoREdGtW7do0aJF9N1339GFCxfkXNnze/DgAfXt25dCQkLEths3bpC9vT3dv3+fiFrH+1NZWUnl5eU0YsQI+uijj2SW/fOf/6Thw4dTcnKyfIp7AbwtYEy++KurV6SiogJdunTBzJkzYW5uLu6a1tHRQV5eHoyMjORc4fOhGjv+BEGApaUlOnbsiBkzZmDZsmXi8tLSUnmV+Fyq67158yaGDh2Kn376Cb1790ZiYiK2bNkCd3d3fPPNN63qayxtbW2kpqbKXGI/MDAQZmZmCA8Px927d+VYXfOpqKhAKpUiLS0NTk5OAKqOoQKqvpa7ceMGoqKiWtVnTZm2BTUpw7aAKT+e6Lwku3fvxty5c7F7927cu3cP6urqGD16NEaOHAkA4nEFRUVFMDc3V/ivEWrmyc/PlzkuIicnR/xPMyQkBOrq6njrrbfg4OCAqKgoeZXcqIbytG3bFgcOHMDx48exfPlyHD16FImJiZg9ezZ27dqF6Oho+RbegNp5AEBDQwOffPIJvvjiC4wdOxb6+vr47bff0KNHD3z11VcYN24cjh49KufK64qKipKZSEulUqirq8PV1RU//PADgKpsUqkUzs7O8PDwQEREBB48eCCvkhtVMw8RQVVVFaNGjWq124La709NrXFbwF5DctuXpCTy8vLI3d2dLCws6J133iErKyuys7OjS5cuiX2kUqm4G3fOnDnk5+dHRFW7tBVNc/KsXbuWAgMDiYjo4sWL1KFDBxIEgRYuXEjl5eXyKr1eDeWJi4sjIqKkpCQyNTUlFRUVunjxorjeo0ePqEuXLrRhwwZ5lV6vhvLEx8eLfTIzM2natGk0YcIEqqioIKKqz6CTkxN9/vnnCvO5S09PJzc3NxIEgZYtW0ZEsr8Tu3fvpg4dOtDx48eJiOjZs2dERJSTk0OCIMh8JhVBU3mqtZZtQXPyhIaGtpptAXt98R6dv+nChQvIzc3FL7/8gsjISNy4cQO6urpYsWIFfv75ZwBVf9VV/xV34sQJ8UBKFRUVZGVliX0UQWN54uLiAFTVffnyZXh7e2Pw4MEYN24cevfujevXr8u5+roayrNy5UokJyfDwcEB77zzDiQSCVRUqn4dpFIp9PT0YGhoiPT0dDknkNVYnkuXLgEADAwMkJiYiEmTJkFVVRUlJSUQBAGGhoZISUkRc8pTVlYWgoODYWxsDH9/f6xZswb5+flQUVERzxDr168f+vbti5UrVwKo2qtDRJBIJLC0tFSo96axPLV/t1vDtqCpPNXvkaqqaqvZFrDXl/y3eK0YEeHChQswNjaGrq4upFIpJBIJ1q9fj3v37mHv3r0oKysTjzlITU1FYWEhhg8fjocPH2Lq1Kno1KkTbty4oRCnzDaVZ//+/ZBKpSgtLUVsbCxKSkpw6dIlbNiwARs2bMChQ4dw5MgReccQNZVn165dUFFRwcyZM2FhYYFly5bht99+g4qKCjIyMiCVSjFx4kR5xxA1lWffvn0oLS2Fvr4+Hj16hKSkJABVE4QbN27gyZMn8PHxkXOKKiYmJujZsycWLFiAhQsXwsbGBnPnzgXw10SgS5cueO+993Dr1i3Mnz8f5eXlEAQBaWlpkEgkCnXmVWN56qPo24Km8qiqqgIACgsLERcXp/DbAvaak9eupNauevfzZ599Rt26dSMiEr8mICL6/PPPydXVlc6cOSO2hYWFUZ8+fWjVqlWkp6dHAwcOpPT09JYtvAHNydO3b19KTEyke/fu0cWLF6m0tFRmjPXr18ucVSJPzcnTr18/io6OJiKiuLg4srS0JCsrK/L29iYjIyOaMGECFRUVtXzx9Wju5+3s2bNERBQcHEyCIJCPjw/5+/uTiYkJeXl5UUFBQYvXXlt1lpKSErHtwIEDMl9HVX/tUVpaSvv37yctLS1ycnKiyZMnk56eHn344Yf07NkzhTizpzl5an/l0xq2BY3lKSsrIyKirKwsiouLU+htAWM80XlB1RuDpKQkUlNTo1OnThHRXxuHzMxMsrGxoc2bN4vrTJ48mQRBoC5dulBERETLF92I5uapefqoInue96e675UrV2jv3r306aef0k8//SSfwhvwIu/Pl19+SR9++CG988474nEuiqY6V1FREXl6elKfPn3q7Xf69GkKCQmhKVOm0NGjR1uyxOfS3DyTJk1S2G1BTc3Nw5gi44lOIwoLC2n16tV09erVBvs8ePCAxo0bRw4ODmJb9V/ao0aNIh8fHyKq+gt1586d9O23377aohvxMvMoAs5TpWYeb2/vV15nczQnS21xcXEkkUho9+7dRFSVq7Cw8FWV+FxeVp7qPYQ7duxQ+G1BbbXzVFZW0uPHj19ViYy9NHyMTgOWLFkCAwMDxMTEwMLCosF+RkZGmDlzJm7fvo0VK1YAqPr+uqysDCUlJbCysgIAtGnTBpMnT8a0adNapP7aXnYeeeM89eextrYGIN8DWpubpbbevXvjo48+QmBgIDIyMvD+++8jNDQUT548eYXVNu1l5gkODkZZWRmmTJmi8NuC2mrn8fPzw5o1a+T+/jDWJHnPtBTN8ePHydLSkt54441m7+4vLS2lzZs3kyAING/ePDp37hxt3LiRzM3NZY7RkQfOw3layotkqe3y5cskCAIJgkB2dnZyPW6F89SlSHkYay6e6NTi5eVFgiCIl8y/desWnT9/njIzM6m4uJiIZA8CrWnt2rX0z3/+k7p160ZWVlYUHh7eYnU3hPP8hfO8Wn8ni1QqpTNnzpCpqSlZWVkpxHE4nOcvipiHsebim3qiaje/VCqFqqoq7t+/DxsbGyxatAi3b9/G4cOHYWRkhNzcXAwePBj79u2rs75UKhWvTUJEuHbtGrp169bSMUScRxbneXX+bpZqFRUVCAkJQWlpKRYvXtyCCWRxnvopSh7GXohcplcK4vTp0zKPq/+aWbRoEQmCQGPGjKFTp05RSkoK7dy5k8zMzGjmzJlE1PgVT+WF83CelvIys1TnkOfVgTmPYudh7O94LSc6SUlJ9I9//IMEQaB9+/YRUdVZUTX/4wgICKDU1FSZ9Xbu3Elt2rShBw8etGi9TeE8VTjPq6dMWYg4TzVFzcPYy/DaTXRSUlJo1KhRNH78ePL29qauXbuKy6RSqfhXS/V31jUdO3aMjI2NKSYmpsXqbQrn+QvnebWUKQsR56lJEfMw9rK8dqeXd+jQAU5OTli8eDH8/f1RXl6OoKAgALLHPmhpadVZNykpCba2tujdu3dLltwozvMXzvNqKVMWgPPUpIh5GHtp5D3TaknVu2+r74L89OlTWrZsGRkYGFBubi4R1T3r4P79+3T37l1asmQJWVhYiBf5kvfxHjVr4Dyc51VTpiw1a+A8ipmHsZfptZro1FS9G/fq1avUp08fmjBhAhHJ/pJnZGTQokWLyNramrp16yb3a640hvNwnpaiTFmIOI+i52Hs71K6iU5paal4Q8DaqtulUqn4S19eXk47duwgXV1dunDhgjgGUdV9hI4fPy7Xe9FwHs7TUpQpS3UtnEdx8zDWUpRqorN48WJyd3encePG0eHDh8XduNV32q2t+i+fnJwcGjt2LPXv35+ys7PJy8tLvJ+LPHEeztNSlCkLEedR9DyMtSSlmOikpqaSo6Mj9ezZkzZv3kxubm7k7OxM0dHRMv32799PGhoatGfPnjpjhIWFkSAIpKKiQm+++SZlZWW1VPl1cB7O01KUKQsR51H0PIzJg1JMdJYsWUIeHh7i7tvCwkLS0dERL5pVUFBAPj4+ZGxsTCEhIVRSUiKuW15eTocPHyYjIyPq0qULnThxQi4ZauI8nKelKFMWIs6j6HkYk4c28j7r6+8gIhQXFyMuLg6WlpZi+8OHDzFgwAC0a9cOAKCjowMvLy98+eWXMDMzkxmjrKwMhw8fxty5cxEYGNii9dfGeThPS1GmLADnUfQ8jMlTq7vXVWxsLKysrGBlZSW2ffzxx4iJicHo0aOhoaGB4OBgWFlZ4c8//8TAgQPx8ccfw93dHUQEQRDE9aofV1ZWQlVVVR5xOA/n4SwviPModh7GFEYL7j36W86cOUM2NjZkbW1NZmZm5OfnR4mJiURElJ+fT1u2bKFZs2ZR+/bt6YcffqBHjx7RmTNnyMfHh4YNG9bg2Qrywnk4T0tRpixEnEfR8zCmaFrFRCcnJ4dcXFwoMDCQbt26RUeOHKGePXuSu7s7Xb9+Xey3YsUKGjt2rMz1IpYtW0bOzs6Uk5Mjj9LrxXk4T0tRpixEnEfR8zCmiFrFLSAyMjKQnJyMSZMmwcrKCp6enggODoZUKsUXX3wh9ouNjUWPHj1kduEWFxfDwMAAFhYW8ii9XpyH87QUZcoCcB5Fz8OYImoVE52HDx/Czs4OUqlUbBsyZAj+9a9/ISEhAcePHwcAuLi4YP369di4cSOSk5MRGBiIXbt2wc/PD4IggBTkcCTOw3laijJlATiPoudhTCHJcW9Ss6WlpZFEIqFDhw7JtF+7do3GjBlDkyZNEtu8vLyoa9euZGdnR87OzuIVQRUJ5+E8LUWZshBxHkXPw5giajVnXY0cORJPnz7F0aNHoaOjI7bPmTMHN27cwIEDB6Crq4uSkhI8fvwYd+/ehaOjoxwrbhzn4TwtRZmyAJxH0fMwpmhaxVdXALBq1SpcvHgRP/zwA0pLS8V2Y2NjpKenQ1NTEwAgkUhgbGys8BsCzsN5WooyZQE4j6LnYUzRtJoLBjo6OuKzzz7D0qVLoaqqiokTJ0IqleLnn3+Gr68v2rSpilLzYD1FxnkUmzLlUaYsAOdhjD2fVvPVVbWZM2ciIiICVlZWyM/Ph5aWFg4cOIDu3bvLu7QXwnkUmzLlUaYsAOdhjDVPq5volJaWIj09HSkpKVBXV4evr6+8S/pbOI9iU6Y8ypQF4DyMseZpdRMdxhhjjLHmajUHIzPGGGOMPS+e6DDGGGNMafFEhzHGGGNKiyc6jDHGGFNaPNFhjDHGmNLiiQ5jjDHGlBZPdBhjjDGmtHiiwxhjjDGlxRMdxhhjjCktnuiwVyYoKAg9e/Zs8eeNjo6GIAgQBAFjx45t8ed/maqzFBYWvvSxBw0ahICAgJc+LmOMKRKe6LAXUj2RaOhn8uTJmD9/Ps6cOSO3Gq9fv47vv/9ebs+v6CIjI7Fs2TK51nD16lV4eXmhY8eOEAQB69evr9Pn8ePHCAgIgLW1NTQ1NeHq6orExESZPg19DteuXSv2KS0txezZs9GuXTtoa2vj7bffxu3bt5usMTs7G6NHj4a2tjbatWsHf39/lJWVictLSkowefJkODg4oE2bNs81uY6IiIC9vT0kEgns7e1x8OBBmeUxMTEYPXo0zM3NIQgCDh061OyxGWNVeKLDXkhubq74s379eujp6cm0bdiwATo6OjAyMpJbjSYmJmjbtq3cnl/RGRoaQldXV641PH36FJ06dcLq1athampab58PPvgAp06dwp49e5CWlgYPDw8MGTIEd+7cEfvU/Ozl5uZix44dEAQBXl5eYp+AgAAcPHgQYWFhiI2NRXFxMTw9PVFZWdlgfZWVlRg1ahSePHmC2NhYhIWFISIiAvPmzZPpo6mpCX9/fwwZMqTZ2ePj4+Hj4wM/Pz/8+uuv8PPzg7e3NxISEsQ+T548gaOjI77++utmj8sYq4UY+5t27txJ+vr6ddoXL15Mjo6O4uNJkybRmDFjaMWKFWRiYkL6+voUFBRE5eXlNH/+fDIwMCALCwvavn27zDi3b98mb29vatu2LRkaGtLbb79NmZmZDdZz7tw5AkAFBQUy7eHh4dS9e3fS0NAgQ0NDcnd3p+LiYnH5jh07yM7OjiQSCdna2tKmTZtk1s/JySEfHx8yMDAgLS0tcnZ2pkuXLonLN2/eTJ06dSI1NTXq2rUr7d69W2Z9ALRt2zYaO3YsaWpqUufOnenw4cMyfY4dO0ZdunQhDQ0NGjRoEO3cuVMmS1ZWFnl6elLbtm1JS0uL7O3t6dixYw2+Fps2baLOnTuTRCIhExMT8vLyEpe5ubnRnDlzxMfW1ta0YsUKmjJlCuno6JClpSVt3br1uV6DH3/8kZycnEgikZCNjY34/jaHtbU1ffnllzJtT58+JVVVVTp69KhMu6OjIwUGBjY41pgxY+itt94SHxcWFpKamhqFhYWJbXfu3CEVFRWKiopqcJzjx4+TiooK3blzR2zbt28fSSQSevToUZ3+1Z/x5vD29qbhw4fLtA0bNowmTJhQb38AdPDgwWaNzRj7C+/RYS3q7NmzuHv3LmJiYrBu3ToEBQXB09MTBgYGSEhIwIwZMzBjxgzk5OQAqPqLf/DgwdDR0UFMTAxiY2Oho6OD4cOHy3x90JTc3FxMnDgR//73v5GRkYHo6GiMGzcORAQA2LZtGwIDA7FixQpkZGRg5cqVWLRoEXbt2gUAKC4uhpubG+7evYsff/wRv/76Kz799FNIpVIAwMGDBzFnzhzMmzcPV65cwfTp0zFlyhScO3dOpo4lS5bA29sbqampGDlyJHx9ffHw4UMAQE5ODsaNG4eRI0ciJSUFH3zwARYuXCiz/syZM1FaWoqYmBikpaUhODgYOjo69Wa+fPky/P39sXTpUly/fh1RUVEYOHBgo69TaGgoevfujeTkZHz88cf46KOPcO3atWa9BidOnMB7770Hf39/pKenY+vWrfj++++xYsWKZr9PtVVUVKCyshIaGhoy7ZqamoiNja13nXv37uHYsWOYOnWq2JaUlITy8nJ4eHiIbebm5ujevTvi4uIafP74+Hh0794d5ubmYtuwYcNQWlqKpKSkF40ljl2znuqxG6uHMfYC5D3TYq3f8+zRsba2psrKSrHN1taWBgwYID6uqKggbW1t2rdvHxERbd++nWxtbUkqlYp9SktLSVNTk06cOFFvPfXt0UlKSiIAlJWVVe86lpaW9N///lembdmyZeTi4kJERFu3biVdXV36888/613f1dWVpk2bJtM2fvx4GjlypPgYAP3f//2f+Li4uJgEQaCffvqJiIj+85//ULdu3WSyfvbZZzJZHBwcKCgoqN4aaouIiCA9PT0qKiqqd3l9e3Tee+898bFUKiUTExP65ptviKjp12DAgAG0cuVKmbY9e/aQmZlZs+qtb48OEZGLiwu5ubnRnTt3qKKigvbs2UOCIFDXrl3rHSc4OJgMDAzo2bNnYtvevXtJXV29Tt+hQ4fShx9+2GBN06ZNo6FDh9ZpV1dXr/N5IXq+PTpqamq0d+9embaG6iTiPTqMvSjeo8Na1JtvvgkVlb8+du3bt4eDg4P4WFVVFUZGRsjPzwdQ9Zf4zZs3oaurCx0dHejo6MDQ0BAlJSX4/fffm/28jo6OcHd3h4ODA8aPH49t27ahoKAAAHD//n3k5ORg6tSp4nPo6Ohg+fLl4nOkpKSgV69eMDQ0rHf8jIwM9O/fX6atf//+yMjIkGnr0aOH+G9tbW3o6uqKWTMyMtCvXz8IgiD2cXFxkVnf398fy5cvR//+/bF48WKkpqY2mHno0KGwtrZGp06d4Ofnh7179+Lp06eNvk416xMEAaampmJ9Tb0GSUlJWLp0qcxrOG3aNOTm5jb5vI3Zs2cPiAgWFhaQSCT46quv8O6770JVVbXe/jt27ICvr2+dvUD1ISLx9R4xYoRY95tvvin2qfl+1LdeU7Kzs2Vek5UrVzY49vOMyxhrnjbyLoC9XtTU1GQeC4JQb1v11yFSqRTOzs7Yu3dvnbGMjY2b/byqqqo4deoU4uLicPLkSWzcuBGBgYFISEiAlpYWgKqvr/r27VtnPaDqq5KmNOc/rcay0v//Gq0xH3zwAYYNG4Zjx47h5MmTWLVqFUJDQzF79uw6fXV1dfHLL78gOjoaJ0+exBdffIGgoCAkJiY2eJB2Y/U19RpIpVIsWbIE48aNq7OsOZOOhrzxxhs4f/48njx5gqKiIpiZmcHHxwc2NjZ1+l64cAHXr1/H/v37ZdpNTU1RVlaGgoICGBgYiO35+flwdXUFAHz33Xd49uwZgL9eB1NTU5mDgwGgoKAA5eXlaN++fbPqNzc3R0pKivi4eqJoamqKvLw8mb75+fnNHpcx1jy8R4cpNCcnJ/z2228wMTFB586dZX709fWfayxBENC/f38sWbIEycnJUFdXx8GDB9G+fXtYWFjgjz/+qPMc1f+Z9ujRAykpKeLxNLV169atzjEjcXFx6NatW7Prs7e3x6VLl2Taaj8GAEtLS8yYMQORkZGYN28etm3b1uCYbdq0wZAhQ7BmzRqkpqYiKysLZ8+ebXZNNTX1Gjg5OeH69et1XsPOnTvL7MV7Udra2jAzM0NBQQFOnDiBMWPG1Omzfft2ODs7w9HRUabd2dkZampqOHXqlNiWm5uLK1euiBMdCwsLsV5ra2sAVXvUrly5gtzcXHG9kydPQiKRwNnZuVl1t2nTRua1qJ7ouLi4yNRTPXZ1PYyxl4P36DCF5uvri7Vr12LMmDFYunQpOnTogOzsbERGRmLBggXo0KFDs8ZJSEjAmTNn4OHhARMTEyQkJOD+/fviRCQoKAj+/v7Q09PDiBEjUFpaisuXL6OgoACffPIJJk6ciJUrV2Ls2LFYtWoVzMzMkJycDHNzc7i4uGDBggXw9vaGk5MT3N3dceTIEURGRuL06dPNzjpjxgyEhobik08+wfTp05GUlFTnOkABAQEYMWIEunbtioKCApw9e7bBydTRo0fxxx9/YODAgTAwMMDx48chlUpha2vb7Jpqauo1+OKLL+Dp6QlLS0uMHz8eKioqSE1NRVpaGpYvX17vmGVlZUhPTxf/fefOHaSkpEBHRwedO3cGUHWQMxHB1tYWN2/exIIFC2Bra4spU6bIjFVUVITw8HCEhobWeR59fX1MnToV8+bNg5GREQwNDTF//nw4ODg0ekq4h4cH7O3t4efnh7Vr1+Lhw4eYP38+pk2bBj09PbFfeno6ysrK8PDhQzx+/Fjcg9PYBTPnzJmDgQMHIjg4GGPGjMHhw4dx+vRpmQlzcXExbt68KT7OzMxESkoKDA0NYWVl1eDYjLEa5Hh8EFMSz3t6eU21D4glqntQam5uLr3//vvUrl07kkgk1KlTJ5o2bVq9p/cS1X8wcnp6Og0bNoyMjY1JIpFQ165daePGjTLr7d27l3r27Enq6upkYGBAAwcOpMjISHF5VlYWeXl5kZ6eHmlpaVHv3r0pISFBXN6c08trH0yqr69PO3fuFB8fOXJEPB18wIABtGPHDpkss2bNojfeeIMkEgkZGxuTn58fPXjwoN7X4cKFC+Tm5kYGBgakqalJPXr0oP3794vL6zsYufbBwI6OjrR48eJmvwZRUVHk6upKmpqapKenR3369KFvv/223vqIiDIzMwlAnR83Nzexz/79+6lTp06krq5OpqamNHPmTCosLKwz1tatW0lTU7PeZUREz549o1mzZpGhoSFpamqSp6cnZWdnN1hbtVu3btGoUaNIU1OTDA0NadasWVRSUiLTx9raut4cTQkPDydbW1tSU1MjOzs7ioiIkFle/Vmu/TNp0qQmx2aMVRGImnFgAGOtSHR0NAYPHoyCggK+YCBjjL3m+BgdprQ6dOiAiRMnyrsMxhhjcsR7dJjSefbsmXh7AB0dnQZvLcAYY0z58USHMcYYY0qLv7pijDHGmNLiiQ5jrMVkZWVBEAQIgtDoqdeMMfay8ESHMTnavHkzbGxsoKGhAWdnZ1y4cEFcRkQICgqCubk5NDU1MWjQIFy9erXJMdPS0uDm5gZNTU1YWFhg6dKlda66fP78eTg7O0NDQwOdOnXCli1bmhy3tLQUs2fPRrt27aCtrY23334bt2/flulTUFAAPz8/6OvrQ19fH35+figsLBSXW1paIjc3F/PmzWvy+Rhj7GXgiQ5jcrJ//34EBAQgMDAQycnJGDBgAEaMGIHs7GwAwJo1a7Bu3Tp8/fXXSExMhKmpKYYOHYrHjx83OGZRURGGDh0Kc3NzJCYmYuPGjQgJCcG6devEPpmZmRg5ciQGDBiA5ORkfP755/D390dERESj9QYEBODgwYMICwtDbGwsiouL4enpicrKSrHPu+++i5SUFERFRSEqKgopKSnw8/MTl6uqqsLU1LTBO64zxthLJ79L+DD2euvTpw/NmDFDps3Ozo4WLlxIUqmUTE1NafXq1eKykpIS0tfXpy1btjQ45ubNm0lfX1/mgnarVq0ic3Nz8a7on376KdnZ2cmsN336dOrXr1+D4xYWFpKamhqFhYWJbXfu3CEVFRWKiooioqqLMgKgS5cuiX3i4+MJAF27dk1mvNoXk2SMsVeF9+gwJgdlZWVISkqCh4eHTLuHhwfi4uKQmZmJvLw8meUSiQRubm6Ii4sT2yZPnoxBgwaJj+Pj4+Hm5gaJRCK2DRs2DHfv3kVWVpbYp/bzDhs2DJcvX0Z5eTmAqosuCoIgrpOUlITy8nKZ9czNzdG9e3exnvj4eOjr68vcGLVfv37Q19eXqZkxxloST3QYk4MHDx6gsrKyzp2q27dvj7y8PPGu1g0tr2ZmZiZzz6O8vLx616le1lifiooKPHjwAACgpaUFW1tb8S7eeXl5UFdXl7nzd+168vLyYGJiUieriYlJnbt0M8ZYS+GbejImR4IgyDwmIpm2ppavWrWqWWPWbm+qT58+fXDt2rUm62+q3vr6MMZYS+I9OozJQbt27aCqqlpnT0d+fj7at28vXs25oeUNMTU1rXcd4K89Ow31adOmDYyMjBoct6ysDAUFBQ3WY2pqinv37tVZ9/79+43WzBhjrxJPdBiTA3V1dTg7O+PUqVMy7adOnYKrqytsbGxgamoqs7ysrAznz5+Hq6trg+O6uLggJiYGZWVlYtvJkydhbm6Ojh07in1qP+/JkyfRu3dv8auq2pydnaGmpiazXm5uLq5cuSLW4+LigkePHuHnn38W+yQkJODRo0eN1swYY6+UPI+EZux1FhYWRmpqarR9+3ZKT0+ngIAA0tbWpqysLCIiWr16Nenr61NkZCSlpaXRxIkTyczMjIqKisQxFi5cSH5+fuLjwsJCat++PU2cOJHS0tIoMjKS9PT0KCQkROzzxx9/kJaWFs2dO5fS09Np+/btpKamRv/73//EPgkJCWRra0u3b98W22bMmEEdOnSg06dP0y+//EJvvfUWOTo6UkVFhdhn+PDh1KNHD4qPj6f4+HhycHAgT0/POtn5rCvGWEvhiQ5jcrRp0yaytrYmdXV1cnJyovPnz4vLpFIpLV68mExNTUkikdDAgQMpLS1NZv1JkyaRm5ubTFtqaioNGDCAJBIJmZqaUlBQkHhqebXo6Gjq1asXqaurU8eOHembb76RWX7u3DkCQJmZmWLbs2fPaNasWWRoaEiamprk6elJ2dnZMuv9+eef5OvrS7q6uqSrq0u+vr5UUFBQJzdPdBhjLYVv6skYa3FBQUE4dOgQUlJS5F0KY0zJ8VlXjLEWk52dDXt7e5SVlcHe3l7e5TDGXgO8R4cx1mIqKirEixBKJBJYWlrKtyDGmNLjiQ5jjDHGlBafXs4YY4wxpcUTHcYYY4wpLZ7oMMYYY0xp8USHMcYYY0qLJzqMMcYYU1o80WGMMcaY0uKJDmOMMcaUFk90GGOMMaa0/h+7S2fJzCIQbAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "ds['vel'][1].plot()" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.3: Apply an Acoustic Signal Correlation Filter\n", - "\n", - "After removing data from bins at or above the water surface, we typically apply a filter based on acoustic signal correlation to the ADCP data. This helps to eliminate erroneous velocity data points, which can be caused by factors such as bubbles, kelp, fish, etc., moving through one or multiple beams.\n", - "\n", - "You can quickly inspect the data to determine an appropriate correlation value by using the built-in plotting feature of xarray. In the following example, we use xarray's slicing capabilities to display data from beam 1 within a range of 0 to 10 m from the ADCP.\n", - "\n", - "It's important to note that not all ADCPs provide acoustic signal correlation data, which serves as a quantitative measure of signal quality. Older ADCPs may not offer this feature, in which case you can skip this step when using such instruments." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjoAAAHyCAYAAADiG2SEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAACSpElEQVR4nOzdd3gU1d4H8O/M1iy7CUkoSTChBpAiIigCCigCChaECxZEQK+KoIJYkYugUuziK4rlKgKiCKLotYBIL1KlKF2lREioIdnNZuuc94/NDNkklGSX7Cb5fp5nHtiZM2d+50zhcObMjCSEECAiIiKqhORIB0BERER0sbChQ0RERJUWGzpERERUabGhQ0RERJUWGzpERERUabGhQ0RERJUWGzpERERUabGhQ0RERJUWGzpERERUabGhQ1Xa+PHjIUkSTpw4EelQotKOHTswbNgwtG/fHtWqVYMkSVi+fPkFry9Jkja9/vrrQcv+85//4Oabb0adOnUgSRIGDx5cYh4jR47U8rBarSGUhoiqIjZ0iOisNm3ahAULFiAhIQFdu3YtUx73338/fv31VwwYMCBo/ltvvYWTJ0/i1ltvhdFoPOv6jz/+OH799Vf07NmzTNsnoqpNH+kAiCh6DRw4EIMGDQIAfPXVV/jf//5X6jwuueQSXH311cXm2+12yHLg/1qzZs066/p169ZF3bp1UbNmzVJvm4iIPTpEADIyMtCnTx/ExsYiLi4O99xzD44fP14s3ZdffqndxrFarejRowe2bNkSlGbTpk248847Ua9ePcTExKBevXq46667cPDgwaB0n376KSRJwtKlS/HAAw8gMTERsbGxuPfee5GXl4esrCz0798f1atXR3JyMp588kl4vd6LWg9FqQ2RipY3EZGKVxoiALfffjsaNWqEr776CuPHj8eCBQvQo0ePoIbFpEmTcNddd6FZs2aYO3cuZs2aBbvdjmuvvRY7d+7U0h04cABNmjTBlClTsGjRIrzyyivIzMzElVdeWeJYoH//+9+Ii4vDnDlz8J///Aeff/45HnjgAfTq1QutWrXCV199hUGDBuGNN97AO++8c96yKIoCn8933snv94en8oiIopkgqsLGjRsnAIjHH388aP7s2bMFAPHZZ58JIYQ4dOiQ0Ov14tFHHw1KZ7fbRVJSkujfv/9Zt+Hz+YTD4RDVqlUTb7/9tjZ/+vTpAkCxPHv37i0AiDfffDNo/uWXXy6uuOKK85Zp0KBBAsB5p86dO583r8LmzZsnAIhly5Zd8DoAxLhx486brlq1amLQoEHnTDNo0CBRrVq1C942EZEQQnCMDhFQbKBs//79MWjQICxbtgwDBgzAokWL4PP5cO+998Ln82npzGYzOnfujGXLlmnzHA4HXnrpJcyfPx8HDhwI6jnZtWtXsW3ffPPNQb8vvfRSLFiwAL169So2/+effz5vWcaPH49HHnnkvOlsNtt50xARVXRs6BABSEpKCvqt1+uRmJiIkydPAgCOHj0KALjyyitLXL/weJO7774bS5YswdixY3HllVciNjYWkiShZ8+eyM/PL7ZuQkJC0G/1CaSS5rtcrvOWJS0tDZdccsl500mSdN40REQVHRs6RACysrJQp04d7bfP58PJkyeRmJgIAKhRowaAwJNHdevWPWs+OTk5+P777zFu3Dg8++yz2ny3241Tp05dpOiD3XfffZgxY8Z503Xu3LlU78QhIqqI2NAhAjB79my0adNG+z137lz4fD506dIFANCjRw/o9Xr89ddf6Nu371nzkSQJQgiYTKag+f/973/LbfAvb10REZ3Bhg4RgK+//hp6vR7dunXDjh07MHbsWLRq1Qr9+/cHANSrVw8vvvgixowZg7///hs33ngj4uPjcfToUWzYsAHVqlXDCy+8gNjYWHTq1AmvvfYaatSogXr16mHFihX4+OOPUb169XIpS7169VCvXr2w5OV0OvHjjz8CANatWwcAWLFiBU6cOIFq1arhpptuKnPeK1as0B7h9/v9OHjwIL766isAgd4mvjeHiMKBDR0iBBo648ePx7Rp0yBJEm655RZMmTIl6I29o0ePRrNmzfD222/jiy++gNvtRlJSEq688koMHTpUS/f5559jxIgRePrpp+Hz+dCxY0csXry42ODiiuDYsWPo169f0Lzx48cDCLzI78CBA2XOe9y4cVixYoX2e/ny5dqttGXLlmm9aUREoZCEECLSQRBR5SRJEsaOHYvnn38eOp2uTAOgFUWBoii4//77MX/+fDgcjosQKRFVVnxhIBFdVC+99BIMBgPeeOONMq0/atQoGAwGzJw5M8yREVFVwB4dIrpoNm3apP09NTUVtWvXLnUeGRkZ2uP9Op0OrVu3Dlt8RFT5saFDRERElRZvXRER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KQAiIqJKpwo2dPx+Pz799FMsWbIEx44dg6IoQcuXLl163jzat2+PjRs34uWXX0b79u3x2muvYf78+SHFVaYXBk6cOBFjxozBzp07oSgKmjVrBqu15HveREREVPmNGDECn376KXr16oUWLVqc92OfZ6PX6/Gf//wHd9xxB4YOHYoZM2Zg6tSpSEpKKlt+ZVoLgS6ptm3blnV1IiKiSqsqvhl5zpw5mDt3Lnr27Fmm9X///Xfcf//92LVrFy677DJ88sknWLJkCT755BN06NABTz31FB5++OFS51vqhs7tt99eYitNkiSYzWY0atQId999N5o0aVLqYIiIiCqFKnjrymg0olGjRmVef8iQIejUqRNmzpyJhQsXYujQoVi2bBnuu+8+3HLLLRg5ciRmzpyJX3/9tVT5lvo9OnFxcVi6dCl+++03rcGzZcsWLF26FD6fD19++SVatWqFNWvWlDZrIiIiqqCeeOIJvP322yjlW2s0e/bswbBhw9C0aVM8+uij2L9/v7asZs2amD17Nl544YVS51vqHp2kpCTcfffdmDp1KmQ50E5SFAUjRoyAzWbDnDlzMHToUDzzzDP8JAQREVVNVbBHZ/Xq1Vi2bBl++uknNG/ePOilwgDw9ddfn3P9Ll264MEHH8Sdd96JpUuXomPHjsXSdO/evdRxlbqh8/HHH2PNmjVaIwcAZFnGo48+ig4dOmDSpEl45JFHcO2115Y6GCIiosqgKo7RqV69Om6//fYyrz9z5kxMnDgR3377LVq1aoVnn302LHGVuqHj8/mwe/duNG7cOGj+7t27tU+wm83mMo+2JiIiqvCEFJhCWb+CmT59epnX3b59O1q0aIHXX3/9gtLv2LEDTZo0gV5//mZMqRs6AwcOxP3334/nnnsOV155JSRJwoYNGzBp0iTce++9AIAVK1agefPmpc2aiIiIqqDWrVsjKysLNWvWvKD07du3x9atWy/oiwylbui89dZbqF27Nl599VUcPXoUAFC7dm08/vjjeOaZZwAE7qHdeOONpc2aiIiocqiCY3Rat2593qeyBw8ejOuuu65YGiEExo4dC4ul5G8vFuXxeC44rlI3dHQ6HcaMGYMxY8YgNzcXAIp9cCwtLa202RIREVUaVXGMzo033ohp06ahZcuWuOqqqyCEwKZNm7B9+3YMHjwYO3fuxA033ICvv/4at912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1aoVnnnmGbz44ovQ6XS46667oCgKNmzYgAEDBkCvD4RZeLBeNGN5ohvLE90qU3kqU1mIKqqouHWlGj58OObPn4+0tDQcO3YMFosFc+fORYsWLSIdWpmwPNGN5Ylulak8laksRBVNVDV03G43du7cia1bt8JoNGLAgAGRDikkLE90Y3miW2UqT2UqC1FFE1UNHSIiIqJwiorByEREREQXAxs6REREVGmxoUNERESVFhs6REREVGmxoUNERESVFhs6REREVGmxoUNERESVFhs6REREVGmxoUNERESVFhs6VGbjx4/H5ZdfXu7bXb58OSRJgiRJ6N27d7lvP5zUspw+fTrseXfp0gUjR44Me75ERBUJGzpUIrUhcbZp8ODBePLJJ7FkyZKIxbhnzx58+umnEdt+tPv666/x0ksvRTSGHTt2oG/fvqhXrx4kScKUKVOKpbHb7Rg5ciTq1q2LmJgYdOjQARs3bgxKc7bj8LXXXtPSuN1uPProo6hRowaqVauGW2+9Ff/88895Yzx06BBuueUWVKtWDTVq1MBjjz0Gj8ejLXe5XBg8eDBatmwJvV5fqsb1/Pnz0axZM5hMJjRr1gzffPNN0PKVK1filltuQUpKCiRJwoIFCy44byK6MGzoUIkyMzO1acqUKYiNjQ2a9/bbb8NqtSIxMTFiMdaqVQvVq1eP2PajXUJCAmw2W0RjcDqdaNCgAV5++WUkJSWVmObf//43Fi9ejFmzZuH3339H9+7dccMNN+Dw4cNamsLHXmZmJj755BNIkoS+fftqaUaOHIlvvvkGc+bMwerVq+FwOHDzzTfD7/efNT6/349evXohLy8Pq1evxpw5czB//nw88cQTQWliYmLw2GOP4YYbbrjgsv/666+44447MHDgQGzbtg0DBw5E//79sX79ei1NXl4eWrVqhalTp15wvkRUSoLoPKZPny7i4uKKzR83bpxo1aqV9nvQoEHitttuExMnThS1atUScXFxYvz48cLr9Yonn3xSxMfHizp16oiPP/44KJ9//vlH9O/fX1SvXl0kJCSIW2+9Vezfv/+s8SxbtkwAENnZ2UHz582bJ1q0aCHMZrNISEgQXbt2FQ6HQ1v+ySefiKZNmwqTySSaNGki3n333aD1MzIyxB133CHi4+OFxWIRbdq0EevWrdOWv/fee6JBgwbCYDCIxo0bi5kzZwatD0B89NFHonfv3iImJkY0atRIfPvtt0FpfvjhB5Geni7MZrPo0qWLmD59elBZDhw4IG6++WZRvXp1YbFYRLNmzcQPP/xw1rp49913RaNGjYTJZBK1atUSffv21ZZ17txZjBgxQvtdt25dMXHiRDFkyBBhtVpFamqq+OCDD0pVB99995244oorhMlkEvXr19f274WoW7eueOutt4LmOZ1OodPpxPfffx80v1WrVmLMmDFnzeu2224T119/vfb79OnTwmAwiDlz5mjzDh8+LGRZFgsXLjxrPj/++KOQZVkcPnxYm/fFF18Ik8kkcnJyiqVXj/EL0b9/f3HjjTcGzevRo4e48847S0wPQHzzzTcXlDcRXTj26FBYLV26FEeOHMHKlSvx5ptvYvz48bj55psRHx+P9evXY+jQoRg6dCgyMjIABP7Hf91118FqtWLlypVYvXo1rFYrbrzxxqDbB+eTmZmJu+66C/fddx927dqF5cuXo0+fPhBCAAA++ugjjBkzBhMnTsSuXbswadIkjB07FjNmzAAAOBwOdO7cGUeOHMF3332Hbdu24emnn4aiKACAb775BiNGjMATTzyBP/74Aw899BCGDBmCZcuWBcXxwgsvoH///ti+fTt69uyJAQMG4NSpUwCAjIwM9OnTBz179sTWrVvx73//G88++2zQ+sOHD4fb7cbKlSvx+++/45VXXoHVai2xzJs2bcJjjz2GF198EXv27MHChQvRqVOnc9bTG2+8gbZt22LLli0YNmwYHn74YezevfuC6mDRokW455578Nhjj2Hnzp344IMP8Omnn2LixIkXvJ+K8vl88Pv9MJvNQfNjYmKwevXqEtc5evQofvjhB9x///3avM2bN8Pr9aJ79+7avJSUFLRo0QJr16496/Z//fVXtGjRAikpKdq8Hj16wO12Y/PmzWUtlpZ34XjUvM8VDxFdBJFuaVH0K02PTt26dYXf79fmNWnSRFx77bXab5/PJ6pVqya++OILIYQQH3/8sWjSpIlQFEVL43a7RUxMjFi0aFGJ8ZTUo7N582YBQBw4cKDEdVJTU8Xnn38eNO+ll14S7du3F0II8cEHHwibzSZOnjxZ4vodOnQQDzzwQNC8fv36iZ49e2q/AYj//Oc/2m+HwyEkSRI//fSTEEKI0aNHi0svvTSorM8880xQWVq2bCnGjx9fYgxFzZ8/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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "%matplotlib inline\n", - "ds['corr'].sel(beam=1, range=slice(0,10)).plot()" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It's beneficial to also review data from the other beams. A significant portion of this data is of high quality. To avoid discarding valuable data with lower correlations, which could be due to natural variations, we can use the `correlation_filter`. This function assigns a value of NaN (not a number) to velocity values corresponding to correlations below 50%.\n", - "\n", - "However, it's important to note that the correlation threshold is dependent on the specifics of the deployment environment and the instrument used. It's not unusual to set a threshold as low as 30%, or even to forgo the use of this function entirely." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "ds = api.clean.correlation_filter(ds, thresh=50)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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43W3i+OYww8/fMTtS6EjhBBCtIDSBko38WTkJvadKGbPns3+++9PZ2fnsLafN28elmWN6BhS6AghhBCiJZYuXTqi7f/yl7+M+BhS6AghhBCtoI1kaWZ/8bomxwCfEEII8UajdfPLFuDFF1/k/PPPH/X+W8anJIQQQkwwyjCaXrYEq1ev5rzzzhv1/jJ0JYQQQoiWeeKJJzb5+lNPPdVU+1LoCCGEEK0gc3QA2H333VFKEcfxBq8Nrh/Js3b+lRQ6QgghRCto3WShMzlmn3R2dnLRRRdx0EEHbfT1v/71rxx55JGjbl8KHSGEEEK0zB577MHKlSuZPXv2Rl/v7e3d6NWe4ZJCRwghhGgBeTJy4oQTTqBUKr3m67NmzeKaa64ZdftS6AghhBCtoJqco6Mmxxyd9773vZt8vb29nY9//OOjbn9ylINCCCGEmDR+//vfU6vVxqQtKXSEEEKIVhi866qZZZI67LDDWLFixZi0JUNXQgghRAvIHJ3X1szk4381eT8lIYQQQmzxWlro3HPPPRx55JHMmDEDpRS33nrrkNfjOGbhwoXMmDGDVCrFgQceyF//+tfWdFYIIYQYSzJ09Zq++93vMm3atDFpq6WFTqlUYrfdduOyyy7b6Otf/epXueSSS7jssst46KGHmD59Ou985zsZGBgY554KIYQQY2zwgYGjXibvoMxHPvIRwjDk1ltv5e9//3tTbbV0js5hhx3GYYcdttHX4jjm0ksv5ZxzzuF973sfANdeey3Tpk3jhz/8ISeccMJG96vVakNmavf39499x4UQQogmNRvMOdlCPT/0oQ+x//77c/LJJ1OpVNhzzz157rnniOOYH//4x7z//e8fVbsTthxcunQpq1ev5uCDD26scxyHAw44gPvvv/8191u0aBGFQqGx9PT0jEd3hRBCCNGEe+65h/322w+AW265hTiO6e3t5Zvf/CYXXHDBqNudsIXO6tWrATYYo5s2bVrjtY05++yz6evrayzLly/frP0UQgghRkXr5pdJpK+vj46ODgBuv/123v/+95NOpzniiCN45plnRt3uhP+U/jWx9PVSTB3HIZ/PD1mEEEKICadFk5G/853vMHfuXFzXZY899uDee+99zW2XLFmCUmqD5cknnxztu35NPT09PPDAA5RKJW6//fbGiM769etxXXfU7U7YQmf69OkAG1y9WbNmzZjNxBZCCCG2JDfeeCOnnnoq55xzDo899hj77bcfhx12GMuWLdvkfk899RSrVq1qLNtuu+2Y9+3UU0/lox/9KFtttRUzZszgwAMPBJIhrV122WXU7U7YQmfu3LlMnz6dO++8s7HO8zzuvvtu9tlnnxb2TAghhGie0kbTy0hdcsklfPKTn+Q///M/edOb3sSll15KT08Pl19++Sb36+rqYvr06Y3F2AwToU866SQefPBBrr76au677z50fWhu3rx5Tc3RaeldV8VikWeffbbx9dKlS3n88cfp6Ohg1qxZnHrqqVx44YVsu+22bLvttlx44YWk02k+8pGPtLDXQgghxBhQTc6zUcm+/3p3seM4OI6zweae5/HII49w1llnDVl/8MEHb/ImH4D58+dTrVbZcccdOffcc1mwYMHo+70Je+yxB3vssceQdUcccURTbba00Hn44YeHfFinn346AB//+MdZvHgxZ555JpVKhZNOOon169fztre9jd/85jfkcrlWdVkIIYSYUP717uIvfelLLFy4cIPt1q5dSxiGI7rJp7u7myuvvJI99tiDWq3GD37wAw466CCWLFnC/vvvP2bvYXNqaaFz4IEHbjLPQinFwoULN/oNE0IIId7IRjv89Or9AZYvXz7kxpuNXc0Zst8IbvLZfvvt2X777Rtf77333ixfvpyLL75YCh0hhBBCbMLgk5Gb2R+GfYfxlClTMAyj6Zt89tprL66//vqR9bWFJuxkZCGEEEKMHdu22WOPPYbc5ANw5513jugmn8cee4zu7u6x7t5mI1d0hBBCiFZo9qF/o9j39NNP5+ijj2bPPfdk77335sorr2TZsmWceOKJQPLQ3RUrVnDdddcBcOmllzJnzhx22mknPM/j+uuv56abbuKmm24afb83oVqt8sQTT7BmzRqiKBry2r//+7+Pqk0pdIQQQogWaEXW1VFHHcW6des4//zzWbVqFTvvvDO33XYbs2fPBmDVqlVDnqnjeR5nnHEGK1asIJVKsdNOO/HrX/+aww8/fNT9fi233347xxxzDGvXrt3gNaUUYRiOql0Vb2o28CTQ399PoVCgr69PnpIshBBik8bjd8bgMV7+w6/IZzOjb6dYouNt75o0v9+22WYbDjnkEL74xS+O6YOBZY6OEEIIIVpuzZo1nH766WOefiCFjhBCCNEKLcq6mqg+8IEP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9a1v8YUvfIGTTjqJNWvWMGPGDE444YQxv3IkhBBCTHa2bbPHHntw55138t73vrex/s477+Td7373RvfZe++9+eUvfzlk3W9+8xv23HPPMc+kGrTddtux7bbbAmNz1WjUTxtKp9PsueeevPWtb90sRQ5ALpfj0ksv5fnnn6dSqfCPf/yDCy64ANu2N8vxhBBCiPESj8EyUqeffjrf//73ufrqq/n73//OaaedxrJlyzjxxBOB5IaeY445prH9iSeeyPPPP8/pp5/O3//+d66++mquuuoqzjjjjFG+60277rrr2GWXXUilUqRSKXbddVd+8IMfNNXmiK/ovPe9791ohaWUwnVdttlmGz7ykY+w/fbbN9UxIYQQYjKL6neENbP/SB111FGsW7eO888/n1WrVrHzzjtz2223NYaHVq1aNeRW7rlz53Lbbbdx2mmn8e1vf5sZM2bwzW9+k/e///2j7/hruOSSS/jCF77AySefzL777kscx/z+97/nxBNPZO3atZx22mmjanfEhU6hUODWW2+lra2NPfbYgziOeeyxx+jt7eXggw/mxhtv5KKLLuK3v/0t++6776g6JYQQQojN46STTuKkk07a6GuLFy/eYN0BBxww5s/J25hvfetbXH755UOuKL373e9mp512YuHCheNX6EyfPp2PfOQjXHbZZY07oqIo4pRTTiGXy/HjH/+YE088kc997nNjHgkhhBBCTBZxHDfuYBrt/pPJqlWr2GeffTZYv88++7Bq1apRtzviOTpXXXUVp5566pDbvrXWfOYzn+HKK69EKcXJJ5/MX/7yl1F3SgghhJjsBoeumlkmk2222Yaf/OQnG6y/8cYbG5OTR2PEV3SCIODJJ59ku+22G7L+ySefJKw/Rdh13c0StS6EEEJMJpOsVmnKeeedx1FHHcU999zDvvvui1KK++67j9/+9rcbLYCGa8SFztFHH80nP/lJPv/5z/OWt7wFpRR//OMfufDCCxvjanfffTc77bTTqDslhBBCiC3L+9//fv7whz/wjW98g1tvvZU4jtlxxx354x//yPz580fd7ogLnW984xtMmzaNr371q7z44otA8jjo0047jc997nNAkptx6KGHjrpTQgghxGTXiruuJro99tiD66+/fkzbHHGhYxgG55xzDueccw79/f0AGzx6etasWWPTOyGEEGKSksnINOqI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p0/nj3/8I5ZlUalUWt2lplx66aXMmTOHE044gd12240rrriCMGwiIbmFvv71r7PttttyxBFH8K53vYsHHnhgwmfWbYr8LBBi/MlzdDajZ555hhNPPJHly5dzzjnn8OSTT7JkyRJyuRy/+c1vWt29UYnjmHK5zNFHH80//vEPHMfhrrvuIpPJtLpro/KPf/yD4447jo9+9KOccMIJre5O077whS/w05/+lEsuuYTtttuO6667jm9961usXLmSVCrV6u6NyCWXXMK3vvUtLr74Yvr7+/n5z3/O73//e376059y4IEHtrp7IyI/C4RooVhsFmEYxl//+tfjww8/PF6xYkVj/U9/+tN4t912i//+97+3sHfN+dOf/hTPnz8/Xrp0aZzJZOJvf/vbjdeiKGphz0bu61//ejx//vw4juP4+eefj7/whS/E3//+9+N77723xT0bubVr18Zve9vb4osvvrix7umnn4533HHH+KWXXorj+I3x/QnDMPZ9Pz7ssMPiT33qU0Nee/vb3x4feuih8WOPPdaazo2C/CwQorVk6GozCYKAbbfdlk9/+tPMmDGjcWk6m82yevVqOjs7W9zDkYlfdeFPKUVPTw9z5szhxBNP5Mtf/nLj9Vqt1qoujshgf5999lne+c538n//93/sueeePPTQQ1xxxRUcdNBBXH755W+oYaxMJsMTTzwx5BH755xzDt3d3fz0pz9l5cqVLezd8GmtiaKIP//5z7z5zW8GkjlUkAzLPf3009x+++1vqHNtMv0seLXJ8LNATH5S6IyR6667jtNOO43rrruOF198Edu2OfLIIzn88MMBGvMK+vv7mTFjxoQfRnj1+1mzZs2QeRHLly9v/NK8+OKLsW2bd7zjHeyyyy7cfvvtreryJr3W+2lra+MnP/kJt912GxdccAG/+tWveOihh/jMZz7Dtddey5IlS1rb8dfwr+8HwHVdTj/9dL74xS/ynve8h0KhwDPPPMOuu+7KN7/5Td73vvfxq1/9qsU939Dtt98+pJCOogjbttlnn324/vrrgeS9RVHEHnvswcEHH8xNN93E2rVrW9XlTXr1+4njGMMwOOKII96wPwv+//buPC6qcv8D+OewDYMsAYIDCISpLIkYeE30KhruUphcQTNCr1GWhpRa3rgGai64lF7LMq9aGVfIK2ouuYuIICFBoKDWDQQVRRNU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n/FETnQyMzPpL3/5CwmCQFu3biWi+rOiGv/HERkZSTk5OUrbbd68mQwMDOjGjRtqrbc9nKce53n8dCkLEedpoK15GHsUnriJTnZ2No0dO5YmTJhAwcHB1LNnT3GdQqEQP7U0fGfd2N69e8nGxoaSk5PVVm97OM99nOfx0qUsRJynMW3Mw9ij8sSdXt61a1d4e3sjOjoaERERqKmpQUxMDADlYx9MTEyabZuZmQlXV1f07dtXnSW3ifPcx3keL13KAnCexrQxD2OPjKZnWurUsPu24S7I9+7do0WLFpGlpSWVlJQQUfOzDq5fv05XrlyhBQsWkIODg3iRL00f79G4Bs7DeR43XcrSuAbOo515GHuUnqiJTmMNu3HPnj1L/fr1o4kTJxKR8h95fn4+zZ8/n5ydncnd3V3j11xpC+fhPOqiS1mIOI+252Hsz9K5iY5cLhdvCNhUQ7tCoRD/6GtqamjTpk1kZmZGJ06cEMcgqr+P0L59+zR6LxrOw3nURZeyNNTCebQ3D2PqolMTnejoaPL396fx48fTrl27xN24DXfabarhk09xcTGNGzeOBg4cSEVFRRQUFCTez0WTOA/nURddykLEebQ9D2PqpBMTnZycHPLy8qI+ffrQunXryM/Pj3x8fCgpKUmpX0JCAhkbG9OWLVuajREfH0+CIJCenh49++yzVFhYqK7ym+E8nEdddCkLEefR9jyMaYJOTHQWLFhAI0aMEHfflpeXk6mpqXjRrLKyMgoJCSEbGxtauXIlVVVVidvW1NTQrl27yNramnr06EEHDhzQSIbGOA/nURddykLEebQ9D2OaYKDps77+DCJCRUUFUlNT4ejoKLbfvHkTgwYNQufOnQEApqamCAoKwqeffgo7OzulMaqrq7Fr1y68++67iIqKUmv9TXEezqMuupQF4DzanocxTepw97pKSUmBk5MTnJycxLa3334bycnJePHFF2FsbIzY2Fg4OTnhjz/+wODBg/H222/D398fRARBEMTtGpbr6uqgr6+viTich/NwlofEebQ7D2NaQ417j/6UI0eOkIuLCzk7O5OdnR2FhoZSRkYGERGVlpbSl19+STNnzqQuXbrQd999R7du3aIjR45QSEgIjRw5stWzFTSF83AeddGlLEScR9vzMKZtOsREp7i4mHx9fSkqKoouXrxIu3fvpj59+pC/vz+dP39e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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "ds['vel'][1].plot()" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.4 Rotate Data Coordinate System\n", - "\n", - "After cleaning the data, the next step is to rotate the velocity data into accurate East, North, Up (ENU) coordinates.\n", - "\n", - "ADCPs utilize an internal compass or magnetometer to determine magnetic ENU directions. You can use the set_declination function to adjust the velocity data according to the magnetic declination specific to your geographical coordinates. This declination can be looked up online for specific coordinates.\n", - "\n", - "Instruments save vector data in the coordinate system defined in the deployment configuration file. To make this data meaningful, it must be transformed through various coordinate systems (\"beam\"<->\"inst\"<->\"earth\"<->\"principal\"). This transformation is accomplished using the `rotate2` function. If the \"earth\" (ENU) coordinate system is specified, DOLfYN will automatically rotate the dataset through the required coordinate systems to reach the \"earth\" coordinates. Setting `inplace` to true will modify the input dataset directly, meaning it will not create a new dataset.\n", - "\n", - "In this case, since the ADCP data is already in the \"earth\" coordinate system, the `rotate2` function will return the input dataset without modifications. The `set_declination` function will work no matter the coordinate system." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Data is already in the earth coordinate system\n" - ] - } - ], - "source": [ - "dolfyn.set_declination(ds, 15.8, inplace=True) # 15.8 deg East\n", - "dolfyn.rotate2(ds, 'earth', inplace=True)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To rotate into the principal frame of reference (streamwise, cross-stream, vertical), if desired, we must first calculate the depth-averaged principal flow heading and add it to the dataset attributes. Then the dataset can be rotated using the same `rotate2` function. We use `inplace=False` because we do not want to alter the input dataset here." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "ds.attrs['principal_heading'] = dolfyn.calc_principal_heading(ds['vel'].mean('range'))\n", - "ds_streamwise = dolfyn.rotate2(ds, 'principal', inplace=False)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3. Average the Data\n", - "\n", - "As this deployment was configured in \"burst mode\", a standard step in the analysis process is to average the velocity data into time bins. \n", - "\n", - "However, if the instrument was set up in an \"averaging mode\" (where a specific profile and/or average interval was set, for instance, averaging 5 minutes of data every 30 minutes), this step would have been performed within the ADCP during deployment and can thus be skipped.\n", - "\n", - "To average the data into time bins (also known as ensembles), you should first initialize the binning tool `ADPBinner`. The parameter \"n_bin\" represents the number of data points in each ensemble. In this case, we're dealing with 300 seconds' worth of data. The \"fs\" parameter stands for the sampling frequency, which for this deployment is 1 Hz. Once the binning tool is initialized, you can use the `bin_average` function to average the data into ensembles." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "avg_tool = api.ADPBinner(n_bin=ds.fs*300, fs=ds.fs)\n", - "ds_avg = avg_tool.bin_average(ds)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
<xarray.Dataset>\n",
-              "Dimensions:         (time: 183, dirIMU: 3, range: 28, dir: 4, beam: 4,\n",
-              "                     earth: 3, inst: 3, q: 4, time_b5: 183, range_b5: 28)\n",
-              "Coordinates:\n",
-              "  * time            (time) datetime64[ns] 2020-08-15T00:22:30.001030683 ... 2...\n",
-              "  * dirIMU          (dirIMU) <U1 'E' 'N' 'U'\n",
-              "  * range           (range) float64 1.2 1.7 2.2 2.7 3.2 ... 13.2 13.7 14.2 14.7\n",
-              "  * dir             (dir) <U2 'E' 'N' 'U1' 'U2'\n",
-              "  * beam            (beam) int32 1 2 3 4\n",
-              "  * earth           (earth) <U1 'E' 'N' 'U'\n",
-              "  * inst            (inst) <U1 'X' 'Y' 'Z'\n",
-              "  * q               (q) <U1 'w' 'x' 'y' 'z'\n",
-              "  * time_b5         (time_b5) datetime64[ns] 2020-08-15T00:22:29.938495159 .....\n",
-              "  * range_b5        (range_b5) float64 1.2 1.7 2.2 2.7 ... 13.2 13.7 14.2 14.7\n",
-              "Data variables: (12/38)\n",
-              "    c_sound         (time) float32 1.502e+03 1.502e+03 ... 1.499e+03 1.498e+03\n",
-              "    U_std           (range, time) float32 0.04232 0.04293 0.04402 ... nan nan\n",
-              "    temp            (time) float32 14.49 14.59 14.54 14.45 ... 13.62 13.56 13.5\n",
-              "    pressure        (time) float32 9.712 9.699 9.685 9.67 ... 9.58 9.584 9.591\n",
-              "    mag             (dirIMU, time) float32 72.37 72.4 72.38 ... -197.1 -197.1\n",
-              "    accel           (dirIMU, time) float32 -0.3584 -0.361 ... 9.714 9.712\n",
-              "    ...              ...\n",
-              "    boost_running   (time) float32 0.1267 0.1333 0.13 ... 0.2267 0.22 0.22\n",
-              "    heading         (time) float32 3.287 3.261 3.337 3.289 ... 3.331 3.352 3.352\n",
-              "    pitch           (time) float32 -0.05523 -0.07217 ... -0.04288 -0.0429\n",
-              "    roll            (time) float32 -7.414 -7.424 -7.404 ... -6.446 -6.433 -6.436\n",
-              "    water_density   (time) float32 1.023e+03 1.023e+03 ... 1.023e+03 1.023e+03\n",
-              "    depth           (time) float32 10.28 10.26 10.25 10.23 ... 10.14 10.15 10.15\n",
-              "Attributes: (12/41)\n",
-              "    fs:                        1\n",
-              "    n_bin:                     300\n",
-              "    n_fft:                     300\n",
-              "    description:               Binned averages calculated from ensembles of s...\n",
-              "    filehead_config:           {"CLOCKSTR": {"TIME": "\\"2020-08-13 13:56:21\\"...\n",
-              "    inst_model:                Signature1000\n",
-              "    ...                        ...\n",
-              "    has_imu:                   1\n",
-              "    beam_angle:                25\n",
-              "    h_deploy:                  0.6\n",
-              "    declination:               15.8\n",
-              "    declination_in_orientmat:  1\n",
-              "    principal_heading:         11.1898
" - ], - "text/plain": [ - "\n", - "Dimensions: (time: 183, dirIMU: 3, range: 28, dir: 4, beam: 4,\n", - " earth: 3, inst: 3, q: 4, time_b5: 183, range_b5: 28)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 2020-08-15T00:22:30.001030683 ... 2...\n", - " * dirIMU (dirIMU) " - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzQAAAIACAYAAABU7il4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB/PElEQVR4nO3deXwU9eH/8ffemxuSkISEcMh9yCF4gCetonhSW0Wtt7b607ZaWg++PQS/VrQHpWrRaj3arxZtvW+lLQLecgmCgkC4E8KZkxy7O78/AtmZSXZJ4sJm2deTxz7Ymc98PvOZz8x8Zj/5zHzGYRiGIQAAAABIQM54ZwAAAAAAOooGDQAAAICERYMGAAAAQMKiQQMAAAAgYdGgAQAAAJCwaNAAAAAASFg0aAAAAAAkLBo0AAAAABIWDRoAAAAACYsGDQAAAICEFdcGzYIFC3TeeeepsLBQDodDL7/8cnNYY2Oj7rjjDh199NFKS0tTYWGhrrzySm3bti1+GQYAAADQqcS1QVNTU6MRI0booYceahFWW1urJUuW6Fe/+pWWLFmiF198UWvWrNH5558fh5wCAAAA6IwchmEY8c6EJDkcDr300kuaNGlSxGU+++wzHXfccdq4caN69ux5+DIHAAAAoFNyxzsD7VFRUSGHw6EuXbpEXKa+vl719fXN06FQSLt371ZOTo4cDsdhyCUAAADiyTAMVVVVqbCwUE5n53xkvK6uTg0NDTFP1+v1yu/3xzzdzixhGjR1dXW68847ddlllykzMzPicjNmzND06dMPY84AAADQGW3evFk9evSIdzZaqKurU0pGjhSojXnaBQUFKikpSapGTULcctbY2KiLLrpImzZt0nvvvRe1QWPvoamoqFDPnj21efPmqPEAAABwZKisrFRxcbH27t2rrKyseGenhcrKSmVlZck39BrJ5Y1dwsEG1a98UhUVFUn1u7fT99A0Njbq4osvVklJif773/8edOf4fD75fL4W8zMzM5NqxwIAACS7Tv+4gcsrRwwbNJ2ilyIOOnWD5kBj5uuvv9a8efOUk5MT7ywBAAAAseGQFMtGVydvvx0qcW3QVFdXa+3atc3TJSUlWrZsmbKzs1VYWKjvfe97WrJkiV5//XUFg0GVlZVJkrKzs+X1xrB7DgAAAEBCimuDZtGiRRo/fnzz9JQpUyRJV111laZNm6ZXX31VkjRy5EhLvHnz5um00047XNkEAAAAYs/hbPrEMr0kFNcGzWmnnaZoYxJ0kvEKAAAAAHRSnfoZGgAAAOCI5XDE+Bma5HyIhgYNAAAAEA/cchYTybnVAAAAAI4I9NAAAAAA8cAtZzFBDw0AAACAhEUPDQAAABAXMX6GJkn7KpJzqwEAAAAcEeihAQAAAOKBZ2higgYNAAAAEA8M2xwTybnVAAAAAI4I9NAAAAAA8cAtZzFBDw0AAACAhEUPDQAAABAPPEMTE8m51QAAAACOCPTQAAAAAPHAMzQxQYMGAAAAiAduOYuJ5NxqAAAAAEcEemgAAACAeHA4YtxDk5y3nNFDAwAAACBh0UMDAAAAxIPT0fSJZXpJiAYNAAAAEA8MChATybnVAAAAAI4I9NAAAAAA8cB7aGKCHhoAAAAACYseGgAAACAeeIYmJpJzqwEAAAAcEeihAQAAAOKBZ2higgYNAAAAEA/cchYTybnVAAAAAI4I9NAAAAAA8cAtZzFBDw0AAACAhEUPDQAAABAPPEMTE8m51QAAAACOCDRoAAAAgHg48AxNLD/ttGDBAp133nkqLCyUw+HQyy+/HHX5F198UWeccYa6deumzMxMjR07Vu+8804HCyA2aNAAAAAAceEM33YWi08HftrX1NRoxIgReuihh9q0/IIFC3TGGWfozTff1OLFizV+/Hidd955Wrp0abvXHSs8QwMAAAAkqYkTJ2rixIltXn7WrFmW6XvvvVevvPKKXnvtNY0aNSrGuWsbGjQAAABAPByiYZsrKysts30+n3w+X+zWYxIKhVRVVaXs7OxDkn5bcMsZAAAAcAQpLi5WVlZW82fGjBmHbF1/+MMfVFNTo4svvviQreNg6KEBAAAA4sHhiPGwzU09NJs3b1ZmZmbz7EPVOzNnzhxNmzZNr7zyivLy8g7JOtqCBg0AAABwBMnMzLQ0aA6F5557Ttddd53+9a9/6fTTTz+k6zoYGjQAAABAPCToizXnzJmja6+9VnPmzNE555xzWNYZDQ0aAAAAIB4O0aAA7VFdXa21a9c2T5eUlGjZsmXKzs5Wz549NXXqVG3dulV///vfJTU1Zq688kr96U9/0gknnKCysjJJUkpKirKysmKzHe3EoAAAAABAklq0aJFGjRrVPOTylClTNGrUKP3617+WJJWWlmrTpk3Ny//lL39RIBDQzTffrO7duzd/brnllrjkX6KHBgAAAIiPTnDL2WmnnSbDMCKGP/XUU5bp9957r93rONTooQEAAACQsOihAQAAAOKhEzxDcySgQQMAAADEQye45exIkJxbDQAAAOCIQA8NAAAAEA/cchYT9NAAAAAASFj00AAAAABx4HA45KCH5hujhwYAAABAwqKHBgAAAIgDemhigwYNAAAAEA+O/Z9YppeEuOUMAAAAQMJKmh6a+9/+SoOK89QrJ029c9JU2MUvt4v2HAAAAOKDW85iI2kaNP/30UY5l+xonnY7HSrOTlWvnFT1zklT325p6peXof756cpJ88b24AIAAABwSCRNg+aKsb20fZ9DG3fVauPuWjUEQirZWaOSnTWSdliW7ZLqUf+89KYGTl66+uenq39ehvIzfTR0AAAAEBP00MRG0jRo7jhrkDIzMyVJoZChsso6bdhVo427arVhZ43W7ajW1+XV2rS7VntrG/XZhj36bMMeSxoZPrf65ac3NXLyMpq/F2alyOlMzgMIAAAAiKekadCYOZ0OFXZJUWGXFI3raw2rawxq3Y5qrS2v1tfbq/V1eZW+Lq/Wxl21qqoPaOmmvVq6aa8lTqrXpX556eq3v6FzoFenR9dUuWjoAAAAHDb1gaAag6F4Z6NN6KGJjaRs0ETj97g0tDBLQwuzLPPrA0Ft3FVraeSs3V6t9TurVdsQ1PItFVq+pcISx+d2qm+3A7esNd3C1i8vXb1yUuVhQAIAAICoGgIh7aiu1/bKOpVX1mtHVZ22V9ZrV02D6hqD2tcQVG1jUBW1Ddpd26A9NY2qrg9o9sWD4531NqFBExs0aNrI53ZpQH6GBuRnSOrePL8xGNKm3U0NnbX7Gzpfb6/Wuh3Vqg+EtKq0UqtKKy1peVwO9c/L0NDCTA0rytKwokwN7p6pVC+7AwAAHLkagyHtrmnQjqp67ayu187qhqb/90/v3deoiv2fPTUN2lPb2KH17Kmpj3HO0ZnxC/ob8riaemH6dkuXVNA8PxgytGXPgR6dpl6dteVNt7LVNgSbGzr/WrxFUlOD+qjctKYGTmGWhhZmamhhlrJSPXHaMgAAgLaprGvUjqp67aiqV3nz/3XN8w58dtc2yDDal7bH5VBehl95mT7lZfiUl+FXTrpXaV63/F6XUjwudUnxqGuaVzlpXnVN80oNtYdmQ2ONF2vGRFwbNAsWLNDvfvc7LV68WKWlpXrppZc0adKk5nDDMDR9+nQ9+uij2rNnj44//nj9+c9/1tChQ+OX6TZyOR3qlZOmXjlpOn1IfvP8UMjQ1r37tKq0Uiu3VuiLbZX6YmuFyqvqtW5HjdbtqNEry7Y1L98zO1Ujirto5P7P0MJM+T2ueGwSAABIQoFgSFv27NOWPfu0d1+D9tY2am9tgzbuqtX6nTVav6O6XT0pLqdD2Wle5ab7lJvuVbd0n3Izmr53TfUqM8WjrBSPuqR6lJ/hV5dUT7tvy6psTNJf9kkqrg2ampoajRgxQtdcc42++93vtgj/7W9/q5kzZ+qpp57SgAEDdM899+iMM87Q6tWrlZGREYccf3PO/e+/Kc5O1ZlDwz065VV1WrltfyNna6W+2FahLXv2adPuWm3aXavXPm9q5HhcDg3pnqmRxV00qmdXjendVUVdUhhOGgAAfCPV9QGt2V6l9TuaRn9dv6Na63c0jQjb0IaH7DN8bnXL9Klbuk/d9vekNP3fNH3gk53qZXTY/XiGJjbi2qCZOHGiJk6c2GqYYRiaNWuWfvGLX+jCCy+UJP3tb39Tfn6+/vGPf+iGG244nFk95PIy/Mob6Nf4gXnN8/bWNmjF1got27RXyzY3fXbVNOjzLRX6fEuF/vbRRklSQaZfY3p31di+OTqlfzcVZ6fGazMAAEAnV1HbqE27a7Vxd1Nj5cvSSq3aVqmSXTURbwfzuZ3qmZ2q7DSvuqQ29aAUdUnVUd3SdFS3NPXJTeNZYMRNpz3ySkpKVFZWpgkTJjTP8/l8OvXUU/Xhhx9GbNDU19ervj78IFhlZWWryyWCLqlendy/m07u301SUyNv8+59Wrp5j5Zt3qslG/do5bZKlVXW6fXlpXp9eakkqVdOqk7un6uT+nXT2L45ykrhORwAAJLR3tqG/SOx7tXyLRVasbVCpRV1EZfPz/SpX166jspN399YSVffbmm8c+8QcTgU4x6a2CWVSDptg6asrEySlJ+fb5mfn5+vjRs3Row3Y8YMTZ8+/ZDmLV4cDod65qSqZ06qLhhZJEna1xDUss179WnJbn2wdqeWbNqjjbtqtXHXJj398Sa5nA6N6JG1v2GUq5HFXeRmyGgAAI44tQ0BfbG1Up9v3qvP9zdgNu1u/eH4bhk+9cpOVc/sVPXLT28ekCgn3XeYc53cHIrxLWdJ2qLptA2aA+w72TCMqDt+6tSpmjJlSvN0ZWWliouLD1n+4i3F69LYvjka2zdHt5zeX9X1AX28bpcWfr1DC9fu1PodNVqyaa+WbNqrP/3na2X43BrbN0cn98/Vyf27qVdOKs/fAACQYALBpldDfL6lQss3NzVevi6vUqiVW8Z656Tq6B5dNKJHlo4uytLQoiyl+zr9T0CgzTrt0VxQ0PTAfFlZmbp3D7/3pby8vEWvjZnP55PPl7x/XUj3uXX6kPzmkdW27t2n97/eoQVf79QHa3dqb22j3l21Xe+u2i5J6tE1RWcMydekkUUa3iOLxg0AAJ1UZV2jFqzZof98Wa55q8u1t5WRxQoy/RreI0sjirtoeI8sDS/qwisgOjEGBYiNTtug6dOnjwoKCjR37lyNGjVKktTQ0KD58+fr/vvvj3PuEkdRlxRNPranJh/bU8GQoZXbKrTw651a+PUOLd64R1v27NOTH2zQkx9s0FG5aTpvRKFOH5yvoYWZ3CsLAEAclVXU6aP1O7V44x4t3rhXq8sqLT0wmX63RhR30YgeXZobMfmZ/vhlGIiTuDZoqqurtXbt2ubpkpISLVu2TNnZ2erZs6duvfVW3Xvvverfv7/69++ve++9V6mpqbrsssvimOvE5XI6NLxHFw3v0UU3j++nmvqAPly3S69+vk1zV5Vp/c4a/ek/X+tP//lauek+nTawm84cWqBTB3ST181zNwAAHEoNgZA+Wr9LC9bs0MKvd2jN9uoWyxzVLU1nDM7Xtwfn65iePBeb8HixZkzEtUGzaNEijR8/vnn6wLMvV111lZ566indfvvt2rdvn2666abmF2u+++67CfsOms4mzefWGUPydcaQfFXXB/TOF2V6d1WZ3v96p3ZW1+v5xVv0/OItykrx6OyjC3Te8EId2ydbHipPAABioro+oPmrd+idlWWa91W5quoDzWFOh3R0UZaO7Z2t0b266pheXemBAVrhMIxII44fGSorK5WVlaWKigplZmbGOzsJoT4Q1KINe/TvL7frjeWlKq8KD4Od4XPrpP65Gj8wT98anKdcRkMBAKBdSiv26d9fluvfq7bro3W7LC+t7Jbh07cG5umUAd10Yr8cdUn1xjGniauz//47kL+ulz4upzd27w8MNdRqz5zrOu12Hyqd9hkaxI/P7dKJ/XJ1Yr9c/fKcIfpk/S69smyb5n65XbtrGvTWF2V664syOR3S2L45OufoQp01rEDZaVS6AADYGYahldsqNXfVdv37y+1auc36jrxeOak6c2iBzhyar1HFXXmGNYnEelCAZB3ciQYNonI5HRrXL1fj+uVqRsjQ8q0Vem91uf7zZblWbK3QB2t36YO1u/SrV77QuL45Om94oSYMzecvSgCApFYfCOqjdbv07y+36z9fllteZulwSMf07KrTB+frjCF56tstPWl/iAKxQIMGbeZ0OjSyuItGFnfRracP0KZdtXpjRaleX75NK7dV7h89baf+5yWHTu6fq3OGF+qMIfnKSmG4SADAkW93TYP++1W5/vPldi1Ys0M1DcHmsBSPS6cMyNXpg/M1fhC3bKMJPTSxQYMGHdYzJ1X/77S++n+n9VXJzhq9sXybXl9eqq/KqjRv9Q7NW71DXpdTpwzI1TnDu+v0wfnK8NO4AQAcOXZW1+vtL8r0xvJSfVKyyzKscn6mT98enK8zBudrbN8c+T2u+GUUOILRoEFM9MlN04++1V8/+lZ/rS2v1hvLm3puvi6vbnrw8ctyed1OnTagW3PjJo23FAMAEtDumga9s7JMry/fpo/WWRsxQ7pn6vQhTY2YYUWZSfsXc7QRwzbHBL8oEXP98tJ1y+n9dcvp/bVme5Ve39+4Wb+jRu+u2q53V22Xz+3Utwbl6dzhhRo/qJtSvRyKAIDOa29tg95duV2vLd+mD9ftUtDUihneI0vnHN1dZx/dXcXZsRuxCkc+bjmLDX5F4pAakJ+hKWdk6Ken99dXZVXNPTcbdtU2j5aW4nHp24PzdO7w7jptYB5d8gCATqFiX6Pmrtqu15dv0/tf71TA1IgZWpipc4cX6pyju6tnDo0YIJ5o0OCwcDgcGtw9U4O7Z+pnEwZo5bZKvb68VG+s2KbNu/ft78UpVZrXpdOH5Ouco7vrlAHdaNwAAA6rqrqmRswby0u14OsdagyGGzGDu2fq3OFNPTF9ctPimEscKeihiQ0aNDjsHA6HhhVlaVhRlu44a6BWbK1oatwsL9XWvfv0yrJtemXZNmX63brwmB66/ISe6peXEe9sAwCOUNX1Af3ny+16fXmp5q/ZoYZA+EWXA/MzdM7+Rky/vPQ45hJAJDRoEFcOh0PDe3TR8B5dNHXiIC3dvFdv7G/clFXW6akPN+ipDzfohKOyNfnYYk0YUsBgAgCAb6y2IaD/fFmuN5aXat7qctWbGjF9u6U13U42vLsG5PMHNRw69NDEBr8M0Wk4HA4d07OrjunZVb84e7AWrt2ppz/eqP98uV0fr9+tj9fvVornC505NF+TRhXppH65cruc8c42ACBBGIahzzbs0ZxPN+mtL0pV1xhuxPTJTdO5w7vrnOHdNTA/I2l/GAKJiAYNOiWn06FTB3TTqQO6adveffrnos16eelWbdhVq5eXbdPLy7YpN92r80YU6sJRPRgaEwAQ0fod1Xp31Xb9a9FmrdtR0zy/V06qzjm6u84dXqjB3WnE4PCjhyY2aNCg0yvskqJbTx+gW77dX8s279XLS7fqteWl2lndoCc/2KAnP9igvt3S9J1RRbpgZBFDZgIA9MXWCr2ybKv+82W51u8MN2JSvS6dP6JQk48t1sjiLkn7AxCdBO+hiQkaNEgYDodDo3p21aieXfXLc4do4dc79NLSbXp3ZZnW7ajR799do9+/u0bH9c7W90/oqYnDusvr5pY0AEgWlXWNemXZNj376Sat3FbZPN/jcuiEo3I0cVh3nT+yUOk8iwkcUTijkZA8Lqe+NShf3xqUr6q6Rr39RZleXrZVH67bpU837NanG3brf9O/1GXHFeuiMcX02gDAEcowDC3a2PRczJsrws/FeF1OTRiar4nDuuuUAbnK8HvinFOgJW45iw0aNEh4GX6PLhrT1HAprdin5z7brH98sknlVfV64L9r9cB/1+rooixNPLpA5x5dyAvQAOAIsKu6Xi8u2apnP9tkeS6mf166Ljmupy4cVaSuad445hDA4UKDBkeU7llNz9vcPL6f3llZpjmfbtJH63ZpxdYKrdhaod++vVrH98nWxWOKdfbR3ZXi5cWdAJAoGoMhfbB2p/61aIveXVXW/NLLFI9L543orsnH9tQxPXkuBomDHprYoEGDI5LH5dS5wwt17vBC7ayu1zsry/TmilJ9uG6XPinZrU9Kdmvaqyt13shCTR5TrOE9spK2EgCAziwYMvTx+l16ffk2vf1FmfbUNjaHDe+RpUuO7anzRnTnljIgidGgwREvN92n7x/fS98/vpe27d2nFxZv0T8Xb9bm3fv0j0826R+fbNKgggxdNKZY548oVLcMX7yzDABJb+OuGv1r0RY9v3iLyirrmufnpHl1zvDumnxssYYWZsUxh8A3Rw9NbDgMwzDinYlDqbKyUllZWaqoqFBmZma8s4NOIrT/L37/XLRZb31R1vyGaKdDOql/N00aWaizhhUo1UubHwAOl7rGoN5ZWaZnP92sj9bvap7fJdWjicO669zh3XV8n2xeqoyD6uy//w7kr/AH/5DTG7tne0MNtdr22GWddrsPFX6tISk5nQ6N65ercf1yNX1fo15dtlUvLt2qpZv2asGaHVqwZod+/cpKXTCyUJce11PDivgrIAAcKmvLqzTn0816YckW7d1/S5nDIZ3cv5smjynW6UPy5HPzzCOA1tGgQdLLSvHoirG9dcXY3tqws0avLNumF5du0cZdtXrmk0165pNNGlaUqUuP66nzRxRynzYAxEBdY1BvrijVnE836bMNe5rnd8/y6+Ixxbr42GIVdUmJYw6BQ49bzmKDW86AVhy4JW3OZ5v1zhdlagg23ZJ2YCSdS4/ryRumAaADviqr1LOfbtaLS7aosi4gSXI5HfrWoDxdelyxTh2QJ5eTuhXfTGf//Xcgf0U/nBPzW862Pnppp93uQ4UeGqAV5lvSdtc06MUlWzTn06Z3Hfxz0Rb9c9EWDSrI0CXHFus7o3ooK5VeGwCIpLYhoNeXN/XGLN20t3l+UZcUXXJs03vECrL88csgECf00MQGDRrgILLTvLr+5KN03Ul9mt9G/cbyUn1VVqVpr63SjLe+0jlHd9clx/XUsb27Jm1lAgB2K7dVaM6nm/TK0m2qqm/qjXE7HTpjSL4uOa6nTu6XKye9MQC+IRo0QBs5HA4d2ztbx/bO1l3nDtXLy7Zqzqeb9FVZlV5c2jSoQN9uabpybG9dNKYHI6QBSErV9QG99vk2PfvpJn2+paJ5fq+cVE0+tljfG91DeRn0xgCS5FCMe2iUnH8g4BcX0AFZqR5dNa63rhzbS59vqdCcTzbpteXbtG5Hje56daVmzl2jy0/oqavG9lZeJhduAEc2wzC0YmtTb8yry7appiEoSfK4HDpzaIEuPa6nxh6VQ28MYMMtZ7FBgwb4BhwOh0YWd9HI4i765bmD9fLSrXr8/RJt2FWrP89bp7/MX69vD87T5GOLdUr/brw7AcARpbKuUa8sa+qNWbmtsnn+UblpuuS4Yn33mB7KSedlxQAOLRo0QIxk+JuGf77s+F6au2q7/rpwvRZt3KN3Vm7XOyu3qyDTr8tP6KkrTujNIAIAEpZhGFq6ea+e/XSTXvu8VPsam3pjvG6nzh5WoEuO66nj+2Qn7V+KgXZx7P/EMr0kRIMGiDGX06GzhhXorGEFWl1Wpec+26yXlm5RWWWdfv/uGj383jpdelxPXXdyH3XP4h0LABJDRW2jXlq6Rc9+tllflVU1z++fl65LjuupC0cVqWuaN445BJCsaNAAh9DAggz9+rwhumPiQL25olR/mb9eX5VV6a/vl+jJDzfolP65+t7oYn17cJ78Ht6CDaBzCYYMfbRul15YskVvrihVfaDpnVw+t1PnDi/UpccVa3QvRncEOopnaGKDBg1wGPjcLn1nVA9NGlmk99bs0CPvrdMnJbs1b/UOzVu9Q5l+ty4eU6xrTurDm7EBxN26HdX616ItennpVpVV1jXPH1SQoUuP66lJI4u4dRaIARo0sZE0DZqlGyuVntH0PWQYzfODQcOyXGMoPB0wQraw8LRhjaZAlHhmQdNy5vQkyWk6CC8aWRgxDSQuh8Oh8QPzNH5gntbtqNaLS7boxSVbVVpR19xrc/bR3XX9SX00vEdW0lZMAA6/usag3vqiVHM+2axPN+xunp+V4tF5I7rru8f00MjiLtRLiOrjdXst0+bfPV63dWActzM87fdYw7ym6RTbHQyW33G2n1y+/euoqmxse6aT3IIFC/S73/1OixcvVmlpqV566SVNmjQpapz58+drypQpWrlypQoLC3X77bfrxhtvPDwZbkXSNGiAzqZvt3TdduYgTTljoBas2aG/vr9eH6zdpdc+36bXPt+mgfkZ+t7oHrpgVCHvbABwyHxVVqlnP92sF5dsUWVd08svnQ7pW4Py9L3RPTR+UJ58bm6JBQ4Fh6PpE8v02qumpkYjRozQNddco+9+97sHXb6kpERnn322fvCDH+jpp5/WBx98oJtuukndunVrU/xDgQYNEGcup0PjB+Vp/KA8rdxWoccXluj1FaVavb1Kv3nzS9339lf69qA8XTG2l07sy1u1AXxztQ0Bvf55qeZ8tklLN+1tnl/UJUWXHFusi8YUqyCLP6QAyWDixImaOHFim5d/5JFH1LNnT82aNUuSNHjwYC1atEi///3vadAAkIYWZmnm5JG66/yhen35Nj2/eIuWbtqrd1dt17urtqt3TqouO76nJo0qotcGQLscePnls59t1qvLtqm6vqk3xu106Iwh+brkuJ46uR9/NAEOp6Yemlg+Q9P0f2VlpWW+z+eTzxebd0J99NFHmjBhgmXemWeeqccff1yNjY3yeA7/83U0aIBOKCvFo+8f30vfP76X1myv0jMfb9SLS7Zqw65a3fvmV7rvra90yoBu+s6oIk0YUqAUL7eDAGjd5t21emXZVr20dKvW7ahpnt87J1WTj+2p743uoW4ZvPwSOJIUFxdbpu+66y5NmzYtJmmXlZUpPz/fMi8/P1+BQEA7d+5U9+7dY7Ke9qBBA3RyA/IzNP2CYbr9rEF6Zdk2Pb94s5Zs2qv3Vu/Qe6t3KN3n1tlHF+jCY3rouN7Z/HUVgPbWNuiNFaV6eelWfbZhT/N8n9upCUMLdOmxxTrhqBzqCyDeYvwMzYEXa27evFmZmZnNs2PVO9O8Glumjf0DNcRr0BAaNECCSPO5ddnxPXXZ8T1VsrNGLy3ZoheXbtWWPfv0z0Vb9M9FW1TUJUXfGVWk7xxTpL7d0uOdZQCHUV1jUP/9qlwvLd2q91aXqzF44AeGNK5vjiaNLNJZwwqU4We4ZaCzOFTDNmdmZloaNLFUUFCgsrIyy7zy8nK53W7l5OQcknUeDA0aIAH1yU3TlAkDdevpA7Ro4x69uGSL3lheqq179+mheWv10Ly1GlHcRd89pkjnDS/k7d3AESoUMvRJyW69vHSr3vyiVFX7RymTpCHdMzVpVKHOH1HEA/4AYmbs2LF67bXXLPPeffddjRkzJi7Pz0g0aICE5nQ6dFyfbB3XJ1vTzh+qf3+5XS8u2ar5a3bo88179fnmvfrf11dp/MA8XXhMEcOvAkcAwzD0VVmVXlm2Ta8sa3qP1QGFWX5dMKpIk0YWaWBBRhxzCaAtOsOwzdXV1Vq7dm3zdElJiZYtW6bs7Gz17NlTU6dO1datW/X3v/9dknTjjTfqoYce0pQpU/SDH/xAH330kR5//HHNmTMnVpvRbjRogCOE3+PSucMLde7wQu2oqtern2/TS0u36Iutlc2jpB14Qd6Fx/TQKF6QByQMwzC0bPNevb2yTO98UaYNu2qbwzL8bp1zdHdNGlXEc3QA2m3RokUaP3588/SUKVMkSVdddZWeeuoplZaWatOmTc3hffr00Ztvvqmf/vSn+vOf/6zCwkI98MADcRuyWZIchmF/5/2RpbKyUllZWXpv+WalZzTdS2h5w2zQuvmNpjfaBoyQLSw8bS+1QJR4ZuY35prTkySn6cflRSMLI6YBtMfqsiq9uHSLXl66Vdsr65vn98lNa3reZlSRirNT45hDAJFs3FWjF5ds1YtLt2jz7n3N871up04b0E0XHlOk0wbmye+h5xWdw8fr9lqmzb97vG6nJcztDE/7PdYwr2k6xXZ8W37H2X5y+favo6qyUgN65qqiouKQPUvyTRz4fTpgyoty+dJilm6wvkZrZl7Yabf7UKGHBjjCDSzI0NSJg3X7mYP00bpdenHJFr31RZlKdtZo5tw1mjl3jU44KltXj+ujM4bky8Vfd4G4qtjXqDeWl+rFJVu0aGN4hLI0r0vfGpyvs4YW6LSB3ZTm4xIOABINGiBpuJwOndQ/Vyf1z9X/Tgro7S/K9OLSLfpw3S59vH63Pl6/Wz26pujqcb110ehiZaUyEhJwuNQ1BvXe6h167fNtmvvldjUEmv7s7HRIJ/XvpgtHFWnC0HylerlsA0eSzvAMzZGAmhFIQmk+t747uoe+O7qHtu3dp2c+2ahnPtmkLXv26Z43vtRv316tM4bk67uji3RK/25yu5wHTxRAuxxoxLy5olT/+XK7ahqCzWED8zP03dFFumBkkfIzGaEMOFIdqmGbkw0NGiDJFXZJ0W1nDtKPxvfXy8u26m8fbtBXZVV6Y0Wp3lhRqm4ZPk0aWajvjS5m1CTgG4rWiCnqkqKJwwo0aVSRhhZmJu0PEwBoLxo0ACRJKV6XLj2upy45tlgrt1XqhSVb9MqybdpRVa/HFpbosYUlOrooS989pkjnjyxSNu+2Adqkuj6geV+V6+0vyjRvdblqbY2Ys48u0NlHd9dIRh4Ekg63nMUGDRoAFg6HQ8OKsjSsKEtTJw7We6vL9cKSLfrPl+VasbVCK7ZW6DdvfqlvDcrTRaOLddpAbkkD7CpqG/XvL7frrS/KtODrHc3PxEg0YgAg1mjQAIjI63ZqwtACTRhaoN01DXp12VY9v6Tp3TbvrNyud1ZuV/csvy49rqcmH1vMvf5Iaruq6/XuqqZGzIdrd1qG8++Tm6azhhVo4rACHV2URSMGgCSeoYmVpGnQOPZ/JEmGLSAC+7tmHKaFQ4fg9T0BU5p/X7TZEmZ+P06jbdD1mobwdFV90BJWFzAihjU0hqfNF15Jqq0PNH/fZ/ouSTWm6draRus2mP4K6fdbD6+crPCP3ap91njmdBoarPn0+cLjz394+ylCfGSneXX1iX109Yl99FVZpZ5ftEUvLNmi0oo6zZy7Rn/6z9c64ahsnT44X6cPzufdNkgK2yvr9PYXZXrri1J9WrJb5qp0YH5GUyPm6AINzM9I2h8anV3KhY9bp9NSmr/bX9XnTw1fxxy2Ie7NYV6v9b0pjY3ha6PH9r6VlJTwiJJu23tazC9Jzcr0WeOZRrzLtI1Kac52V9vtwRmma6r93S9FWeFl023vfvG5wtMpbmtYmsdtWs7WY28upnb8dDJvg+0nii3MGmjsX4nRnpUh4SVNgwZA7AwqyNQvzx2in585UG9/UaZnPtmozzbs0Qdrd+mDtbs0/bVVGpCfrtMH5+vbg/M1srgL77fBEaExGNLnm/fqw3W79N7qci3ZtNcSfnRRVnNPzFHd0uOTSQAJgx6a2KBBA6DD/B6XJo0q0qRRRSrZWaP/fLldc1dt16KNe7Rme7XWbK/W7PfWKSfNq28NytO3B+fr5P65vBAQCSMUMvRlWaU+XLtLH67bqU9LdltGJpOk0b26auKwAp05tICeSQDtwqAAscGvCgAx0Sc3TdeffJSuP/ko7a1t0Hurd+jfX27X/NU7tKumQf9avEX/WrxFXrdT4/rm6NuD83X64Dx1z0o5eOLAYWIYhjbsqtUHa3fqw3U79dG6Xdpju7W2a6pH4/rmaly/HH17UL4Ksnh2DADiiQYNgJjrkupt7rlpCIT02Ybd+veX2/XvL7dr8+59em/1Dr23eod+9bI0tDBTpw7oppP65eqYXl3lt923DRxqZRV1+nDdTn2wdpc+WrdT2yrqLOFpXpeO65OtE/vlamzfHA0uyLQ82wAAHeVQjG85i/Zw+BGMBg2AQ8rrdurEfrk6sV+ufn3uEH1dXt3UuFm1XUs379XKbZVaua1Ss99bJ7/HqeP65OiMwU23pxV2ofcGsbe3tkEfr2963uuDdTu1fkeNJdzrcmpUzy46sV+uxvXN0YjiLvIwNDkAdFo0aAAcNg6HQwPyMzQgP0M3ndZPO6vrNX/1Dn2wdqfeX7tT5VX1WrBmhxas2aFfvbJSQwszdcr+3pvR9N6gg3ZU1evTkt36tGSXPinZra/KqizhDkfTw/zj+ubqxH45GtMrWylejjUAhx7P0MQGDRoAcZOb7tN3R/fQd0f3kGEYWrO9WvNWl+vfq7Zr8aY9zb03D7+3Tl63U8f27qpxfXN1Ur9cDSvKYuQ0tGpPTYMWfL1DH69vasDYe2AkqV9euk7sm6Nx/XJ1Qp8cZdmGvQWAw4FRzmKDBg2ATsHhcGhgQYYGFmToxlP7ald1vd5bvUMfrNupD9bu1PbK+uZhoX/3zmpl+t0a2zdn/21BuerbLS1pK/JkV1XXqC+2Vmrxxt2at3qHlm7aY3lvhcPRNNT48X2ydXyfbB3bJ1u56b7ICQIAEgoNGgCdUo6t92bdjur9DZqd+mj9LlXWBfTOyu16Z+V2SVJuuldDCrM0pHumBnfP0NDCTPXJTacX5whT1xjUym2VWr5lr1ZsqdDnW/Zq/c6aFi9CHlSQoZP75+qEo5puIaMHBkBnxC1nsUGDBkCn53A41C8vQ/3yMnTVuN4KBEP6YlulPljb1HuzaMMe7axuaH7+5gC/x6mB+RkaUpil4T2ydHRRlgbkZ8jr5gHvRFHXGNSSTXv00bpd+nDdLn2+ea8C9teGSyrqkqLhPbJ0cv9uOm1gNwaUAIAkQoMGQMJxu5waWdxFI4u76Obx/VTXGNSXpZVaVVqpVdua/v+qtEr7GoP6fEuFPt9SoTmfNsX1upwa3D1Dw4qaGjnD9jdyGMUq/uoag/qqrEortuzViq0VWrG1Umu2Vyloa8Dkpns1vEcXDe+RpRE9uujoHlncQgYgIfEMTWzQoAGQ8Pwel0b17KpRPbs2zwuGDG3cVaNVpZX6YmulvthaoeVb9qqyLtDcyHnmk6ZlvW6nhnTP1NFFWTp6f09O/7x0uWnkxFwwZKissk6bd9c2ffbs05bdtfqyrEpfb69qtfclP9OnsUflaFzfpvfA9OiakrQXbQBAS526QRMIBDRt2jQ988wzKisrU/fu3XX11Vfrl7/8pZxOfmgAiMzldOiobuk6qlu6zh1eKKnpLfCbdtc2/fV/S4WWb6nQF9sqVFUX0LLNe7Vs897m+AduV+vbLV1HdUvTUd3SVdQlRd2z/MpN9/FixYOoawxqy559+qos3GtWsrNG2/buU2OwZaPlgOw0b1PD0tS47J7lpwED4IjEMzSx0akbNPfff78eeeQR/e1vf9PQoUO1aNEiXXPNNcrKytItt9wS7+wBSDAOh0O9ctLUKyetuZETChna2NzI2avlWyq0clulquvDPTl2bqdDPbqmaHD3zP2DEGSqR3aKumemKDPFnTQ/vhuDIZXsrNHqsqqmz/Yqbd5dq7LKOu2tbYwYz+10qKhrioq7pqo4O0U9uqaqb7c0Hd2jiwppvABIItxyFhudukHz0Ucf6YILLtA555wjSerdu7fmzJmjRYsWxTlnAI4UTqdDfXLT1Cc3TeePCDdySnbVaE1ZldbvrNG68mqV7KpR6d46lVfVKRAytGFXrTbsqtVbX5RZ0vN7nOqelaL8TN/+//0qyPSpICtFBVn+5h6ezj76WihkqKYhoOr6gCr3BbS9sk5lFXXaVrGvuRGzbkd11N6WVK9LA/Izmhp+hZnqn5eu4uxUFWT6O/32AwASR6du0Jx00kl65JFHtGbNGg0YMECff/653n//fc2aNStinPr6etXX1zdPV1ZWHoacAjiSOJ0O9e2Wrr7d0luEBYIhlVfVa/2OGq0qrdCXpVX6qqxKpRX7tLe2UXWNTb0WJTtbvszxAJfTobwMn/Iy/fK5nHI4muZ53U5l+D1K97mV6Xcr3edWht+tdL9HPnfTcg459v9/4NYC87RDToeU6m2Kl+Zzy+VwaF9jUPsag6o78H9DUHWBoHZVN2jb3jpt27tPZZV1qqprVHV9QNV1AdU0BNtUVuk+twbkp2tgQaYG5qerT7d0dc/yKz/Tr0x/8vRWAUCHxPiWMyVpldupGzR33HGHKioqNGjQILlcLgWDQf3mN7/RpZdeGjHOjBkzNH369MOYSwDJxO1yqrBLigq7pOik/rmWsLrGoMoq6lRWWaftlXUqrWjq1TjwfXtlncqr6hUMGSqtaJrX2bmdDmX43U09Tft7mHp0TdWg/S9BLerCA/oAgPjq1A2a5557Tk8//bT+8Y9/aOjQoVq2bJluvfVWFRYW6qqrrmo1ztSpUzVlypTm6crKShUXFx+uLANIYn6PS71z09Q7Ny3iMsGQoZ3V9SqraGrcBIIhBQ1DIaOpQVRV19RDcqC3pKouoKr6gOobgzIkyZAMGTIMyVDTQAdN/zdNh0KGahsCqqkPqro+oJBhKMXjkt/jkt/jlN/jUorHpRSvS5kpHvXY3zgryPIrK8XT3CuU5mvqIWrqGaLBAgCHAs/QxEanbtDcdtttuvPOO3XJJZdIko4++mht3LhRM2bMiNig8fl88vlaeR+BQ612w9nfLm0JU+TAoC1itGXNi5oPtBYHnWnBKNlSK6OaRmR+f0O0ceFidfibN8m+fQHTvfaBQMgSFgyGWv0uSZWVgebvA+94xxLW0BAOCzQGLGGGadtDIWua9mWtEc35st52EzLlLRS0b0N42WBDQ8TkPX6/Zbry2Ssj5wVHHJfTofzMpluygESUcsId4QmfrfG+z3Sbty/VGuY0/eQI2epgr+l8aLD1XJrTabTVrSmm20LdXmuYx5Rm0DpIhcsffvGqfdRUS71vu96aryVO21XVes2x/UYwIocFAuH1uVzW66b50hWwPa8WjLI+8yiM1itVdCFTPu3XcOv1vR2JOiJ8t7H/tDH/djJsv7lCRuvLmaej/b7DkadTN2hqa2tbVDQul6vFj1MAAAAg0TBsc2x06gbNeeedp9/85jfq2bOnhg4dqqVLl2rmzJm69tpr4501AAAA4BvhlrPY6NQNmgcffFC/+tWvdNNNN6m8vFyFhYW64YYb9Otf/zreWQMAAADQCXTqBk1GRoZmzZoVdZhmAAAAIBFxy1lsRHtOHAAAAAA6tU7dQwMAAAAcqXiGJjbooQEAAACQsOihAQAAAOKAHprYoEEDAAAAxAGDAsQGt5wBAAAASFj00AAAAABxwC1nsUEPDQAAAICERQ8NAAAAEAc8QxMbNGgAAACAOOCWs9jgljMAAAAACYseGgAAACAOHIrxLWexSyqh0EMDAAAAIGElTQ+NY/+/pgmjTXGChnU5RxvbvU7bckG1bX3RmFvvtmwpZLT+XZKCphmhKOl3NIdOp71Mwm1k+18cgqFwDoJBa26CQSNiWENDsPl7yLaBwUCw1e9NeWtbe92wpWmYCtiepnnZQCBgSyjKSoLhZRurKy1BKWf+PjzhdFnjhUzrb6y3hpkL2J4Xlykde5rBxshhZg111mmvv03r2/ffX0ROEzgCjbjrPxHDDFuFba7P7Or2NUYMC5nqz5qKGktYbXWtKZFqW6Km6YAtfXP9EowSFmiwhrk8keMZpvrbHs9jqpNDtnIw1yn2i1yjKZ2Qvd4Ntf7dvn5bWCgY5YpoXr3tOmaOZ39WwbyPQiHr9cd8HNg3zzxtv8aZL2P2Y8kwZTRoi2fOmz1N85aH7GmaJlte3R2msCi/h2xBDsP8AyZyNHterGHWafO2G7KXy0FX1ak4HQ45Y9hFE8u0Egk9NAAAAAASVtL00AAAAACdCcM2xwYNGgAAACAOGLY5NrjlDAAAAEDCoocGAAAAiAOno+kTy/SSET00AAAAABIWPTQAAABAPDhi/NwLPTQAAAAAkFjooQEAAADigGGbY4MGDQAAABAHjv3/YpleMuKWMwAAAAAJix4aAAAAIA4Ytjk26KEBAAAAkLDa1ENTWVnZ7oQzMzPbHQcAAABIFg6HI6bDNsd0COgE0qYGTZcuXdpVQA6HQ2vWrNFRRx3V4YwBAAAASHzZ2dntWt7hcGjJkiXq1atXm5Zv8zM0zz//fJsyYxiGzj777LYmCwAAACSlZBm2ee/evZo1a5aysrIOuqxhGLrpppsUDAbbnH6bGjS9evXSKaecopycnDYletRRR8nj8bQ5EwAAAECycToccsawFRLLtGLtkksuUV5eXpuW/fGPf9yutNs0KEBJSUmbGzOS9MUXX6i4uLhdGQEAAABw+M2ePVt9+vSR3+/X6NGjtXDhwqjLP/PMMxoxYoRSU1PVvXt3XXPNNdq1a1fE5UOhUJsbM5JUVVXVrkdXkmbY5rYOixetYWvIiEk+IoaZ82ELc0XJmMsUMRiy5jEQCn8P2cKMKJsTMgXaorVIx5IXV+R8BoLheMGgPS+m9dm3wbQRoWDIEmZEyUsoFDmeeVeal7On2SJehDRapGMv3GCjeQW2iFG6VBvrTWnYljOnGfXAta/PlLdgQ+RlgwFrWEOdabnI25dyyjRrmNvUW+uyVTkuU5jHb4vnNS1mjWd+ps/r97Y5LCUtJZy82/r3HLc7HM/jcVnCUlPD+UxLtabp9YTT8dvipfnD8dL91m3INE3npVvDslPC0zl+nyWsIC1cTuZ129fvs2+f6dzMTrduw76G8LEVsJ2b5rrAvn1bdu9r/t4QsB5nu/eFj63y2jpL2Po94Wl73VZWFT6W9tZaj0+3qQLdW2MNq6kPH6/Z6dYy29cQDrMfugHTeVvXYD3HzPWUYYvYYFrWfiyZ6yz786fmZIK2+sVeF1njRc6L5Vy1n++WFdjqEPOyDvvfN03LRr1Y2NM0IoeFoqRpqXsaFZE9TfO22+uQkCnMtn2GqawdzrYP+Gq+Jrg9kX9CtXju2LS59v3XYn+2NS9Rrn/RLglt3Vr7uWn+y7/9t4zD8t2+cqP1BWX9XeWw5ayjv7kOlEu08ulMOsMtZ88995xuvfVWzZ49WyeeeKL+8pe/aOLEiVq1apV69uzZYvn3339fV155pf74xz/qvPPO09atW3XjjTfq+uuv10svvRSDrWi/DjVoPv30U7333nsqLy9vUQHPnDkzJhkDAAAAcGjNnDlT1113na6//npJ0qxZs/TOO+/o4Ycf1owZM1os//HHH6t37976yU9+Iknq06ePbrjhBv32t79t0/r+9re/KTc3V+ecc44k6fbbb9ejjz6qIUOGaM6cOW0eCMCs3e+huffee3XCCSfoySef1KJFi7R06dLmz7Jly9qdAQAAACAZHRi2OZYfqemVK+ZPfX19q+tvaGjQ4sWLNWHCBMv8CRMm6MMPP2w1zrhx47Rlyxa9+eabMgxD27dv1/PPP9/cQDmYe++9VykpTXdMfPTRR3rooYf029/+Vrm5ufrpT3/a1qKzaHcPzZ/+9Cc98cQTuvrqqzu0QgAAAACHjv1Z9rvuukvTpk1rsdzOnTsVDAaVn59vmZ+fn6+ysrJW0x43bpyeeeYZTZ48WXV1dQoEAjr//PP14IMPtilvmzdvVr9+/SRJL7/8sr73ve/phz/8oU488USddtppbUrDrt09NE6nUyeeeGKHVgYAAACgyYFnaGL5kZoaDRUVFc2fqVOnHiQf9uf9jIjvoFy1apV+8pOf6Ne//rUWL16st99+WyUlJbrxxhvbtM3p6enNAwi8++67Ov300yVJfr9f+/btixY1onb30Pz0pz/Vn//8Z82aNatDKwQAAABw6IZtzszMVGZm5kGXz83NlcvlatEbU15e3qLX5oAZM2boxBNP1G233SZJGj58uNLS0nTyySfrnnvuUffu3aOu84wzztD111+vUaNGac2aNc23qq1cuVK9e/c+aJ5b0+4Gzc9//nOdc8456tu3r4YMGdLifTMvvvhihzICAAAA4PDxer0aPXq05s6dq+985zvN8+fOnasLLrig1Ti1tbVyu61NCJeraRTMtoza9+c//1m//OUvtXnzZr3wwgvNr4ZZvHixLr300g5tR7sbND/+8Y81b948jR8/Xjk5ORG7owAAAABE5lDLV3V80/Taa8qUKbriiis0ZswYjR07Vo8++qg2bdrUfAvZ1KlTtXXrVv3973+XJJ133nn6wQ9+oIcfflhnnnmmSktLdeutt+q4445TYWFhxPU8+uijOv/881VQUKCHHnqoRfj06dM7kPsm7W7Q/P3vf9cLL7zQ5pEMAAAAAHROkydP1q5du3T33XertLRUw4YN05tvvtk8fHJpaak2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9tlnN88bPny4iouL9atf/UqTJk1qd/rtbtCkpqZq9uzZ+t3vfqd169bJMAz169dPaWlp7V75wRx77LF66aWXNHXqVN19993q06ePZs2ape9///sxXxcAAABwOB3oWYllep3dihUr1KdPnxbz+/Tpo1WrVnUozQ6/WDMtLa1DD+2017nnnqtzzz33kK8HAAAAwKE1ePBg3XPPPXr88cfl9/slNb125Z577tHgwYM7lGa7GzTjx4+P+jDPf//73w5lBAAAAEgmyTLKmdkjjzyi8847T8XFxRoxYoQk6fPPP5fD4dDrr7/eoTTb3aAZOXKkZbqxsVHLli3TF198oauuuqpDmQAAAACSTTLecnbccceppKRETz/9tL766isZhqHJkyfrsssu6/AjLO1u0Pzxj39sdf60adNUXV3doUwAAAAASA6pqan64Q9/GLP0YvZC0csvv1xPPPFErJIDAAAAjmgOR+w/ieD//u//dNJJJ6mwsFAbN26U1NRp8sorr3QovZg1aD766KPmB3sAAAAAwO7hhx/WlClTNHHiRO3Zs6f5RZpdu3bVrFmzOpRmu285s7880zAMlZaWatGiRfrVr37VoUwAAAAAycbpcMgZw26VWKZ1qDz44IN67LHHNGnSJN13333N88eMGaOf//znHUqz3Q2azMxMywgKTqdTAwcO1N13360JEyZ0KBMAAAAAjnwlJSUaNWpUi/k+n081NTUdSrPdDZqnnnqqQysCAAAAEOZUDJ//iHFah0qfPn20bNky9erVyzL/rbfe0pAhQzqUZrsbNEcddZQ+++wz5eTkWObv3btXxxxzjNavX9+hjAAAAADJJNYP8ifAHWe67bbbdPPNN6uurk6GYejTTz/VnDlzNGPGDP31r3/tUJrtbtBs2LCh+eEds/r6em3durVDmQAAAABw5LvmmmsUCAR0++23q7a2VpdddpmKior0pz/9SZdcckmH0mxzg+bVV19t/v7OO+8oKyureToYDOo///mPevfu3aFMAAAAAMnGqRgPCqAE6KKR9IMf/EA/+MEPtHPnToVCIeXl5X2j9NrcoJk0aZIkyeFw6KqrrrKEeTwe9e7dW3/4wx++UWYAAAAAHNkCgYDee+89rVu3Tpdddpkkadu2bcrMzFR6enq702tzgyYUCklqepDns88+U25ubrtXBgAAAKBJMj5Ds3HjRp11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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "%matplotlib inline \n", - "from matplotlib import pyplot as plt\n", - "import matplotlib.dates as dt\n", - "\n", - "ax = plt.figure(figsize=(10,6)).add_axes([.14, .14, .8, .74])\n", - "# Plot flow speed\n", - "t = dolfyn.time.dt642date(ds_avg['time'])\n", - "plt.pcolormesh(t, ds_avg['range'], ds_avg['U_mag'], cmap='Blues', shading='nearest')\n", - "# Plot the water surface\n", - "ax.plot(t, ds_avg['depth'])\n", - "\n", - "# Set up time on x-axis\n", - "ax.set_xlabel('Time')\n", - "ax.xaxis.set_major_formatter(dt.DateFormatter('%H:%M'))\n", - "\n", - "ax.set_ylabel('Altitude [m]')\n", - "ax.set_ylim([0, 12])\n", - "plt.colorbar(label='Speed [m/s]')" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "data": { - "image/png": "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CiBJEmw2G3755RfMmjULN998s8cFISIiIiJqS4QX/vmaTZs24Y477nAan5ycjIKCAo/jNjnJefrpp5GWlobk5GSUl5eje/fuGDp0KIYMGYLHH3/c44IQEREREbUlvCfH/pyc0tJSp/F79+5FbGysx3GbnOT4+/vjgw8+wL59+/DJJ5/g/fffxx9//IH33nsPZrPZ44K4cuzYMdx4442Ijo5GSEgI+vbti6ysLN3XQ0RERER0Pgk03Jejy2D0Bnng6quvxj//+U/U1dUBACRJwtGjR/Hwww/j2muv9Tiuxw8D7dixIzp27Ojxit1x+vRpXHzxxRgxYgT+97//IS4uDgcPHkRkZKRX10tERERERN7373//G1deeSXi4uJQVVWFYcOGoaCgAIMHD8bTTz/tcVy3kpyZM2e6HXD+/PkeF0btueeeQ2pqKpYsWeIY1759e93iExEREREZRffe1XSMdb5ERETg559/xk8//YQtW7bAZrOhf//+GDVqVLPiupXkbN26VfE+KysLVqsVXbp0AQDs27cPZrMZAwYMaFZh1L788kuMGTMGf/7zn7FmzRokJyfjzjvvxO233+5ymZqaGtTU1DjeN3aNHxERERGR0ez30eh3kZkvXq521mWXXYbLLrtMt3huJTmrVq1yvJ4/fz7Cw8PxzjvvoF27dgDsl5XdcsstuPTSS3UrGAAcOnQIr7zyCmbOnIlHH30Uv/32G+69914EBga67Mlt3rx5mDt3rq7lICIiIiLSmwRAgn7NL77SkPPSSy+5Pe+9997r0TokIUSTkr7k5GSsWLECPXr0UIzfuXMnRo8ejby8PI8K0piAgABccMEFWL9+vWPcvffei02bNmHDhg2NLtNYS05qaip2bt6O8LDwRpawKd5J8r4YJOWuIoRNMacr6inC1TthU01pmKbe4SWpoVMHm6hzuW6nFF4WxiT5K2eVxVQvplUWd3ursGlMU9eR8r16SdlUVZ0pP6OmfLXlW6y1nEaFkpfJ67ophymt5Tyd5mo+79A60qiOSsp3su+HVVJ+U82yJU/vXaGYlv32N47X6zcrv2Nby4sdr4tV1RKEesfrClO9YlqECHC89lcdNYJNDX9fqxVWxbRQU8NxqsamnObup2JVzak8Sqhr0HVU+bz1qmOPWXK9HwjFa9fx1b++JllMm2qifH3e+DY05STLpvh9cG8+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1WsUGt94xf6pWrXG7qMZU4t8HU7HSMn1vuQpeTnV31PlMUS5Rvl+rlXX6u+D/J1Z4zIk9afs7jFLvT45k6T+bBtYm3DcdZe6XuTHIvV5iPz8TH3MCjxzvmTylXtT2vDlagCQkpKCJ554Ak888QRWrVqFt956C3feeSfuueceXHfddbj11lsxaNAgj2K3mSSHiIiIiKglkSTJ+Y/JzYznq0aMGIERI0agrKwMH374IR599FG8+eabqK+v9ygekxwiIiIiIiO08ZYctUOHDuHtt9/G22+/jZKSEowaNcrjWExyiIiIiIiMwCQHVVVV+O9//4slS5Zg7dq1SEtLw1//+lfccsstSE1N9TgukxwiIiIiIiNIJuf7sJsbz0esX78eS5YswSeffILa2lpMnDgR33//fbNab+SY5BARERERGcFsgmTWMzHxnSTnkksuQZ8+ffD000/jL3/5C9q1a6drfCY5RERERERGaMOXq23evBn9+/f3WnwmOUREREREhtA5ydGtw3Tv82aCAzDJISIiIiIyRhtuyfE2JjlERERERAaQTBIkk47PydExlq9jkkNEREREZAS25HgNkxwiIiIiIiOYTPZBz3gEgEkOEREREZExJOjbV4CPNOT069cPkputTlu2bPFoHT6V5MybNw+PPvoo7rvvPixcuNDo4hARERERec4k2Qc94/mAiRMnen0dPpPkbNq0Ca+99hp69+5tdFGIiIiIiJqvjd6TM3v2bK+vwycu3CsvL8df/vIXvP7667o/DZWIiIiIyBASGhIdXQajN6jl8Ikk56677sJVV12FUaNGnXPempoalJaWKgYiIiIiopZGkiTdB19jtVrx73//GxdeeCESEhIQFRWlGDzV4pOcpUuXYsuWLZg3b55b88+bNw8Wi8UxpKamermEREREREQeOHtPjp6Dj5k7dy7mz5+PyZMno6SkBDNnzsSkSZNgMpkwZ84cj+O26CQnJycH9913H95//30EBQW5tcwjjzyCkpISx5CTk+PlUhIREREReYBJDj744AO8/vrrmDVrFvz8/HD99dfjjTfewD/+8Q9s3LjR47gtuuOBrKwsFBYWYsCAAY5xVqsVa9euxcsvv4yamhqYzWbFMoGBgQgMDHSKJWxWCJsVACCZZMtIQjmjrJlP8vDCRvVyQv5eMUmZY0qSWfZaOU0eQ1ItJzSKKd88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REREREQtUIu+J6e2thZZWVl4+OGHFeNHjx6N9evXN7pMTU0NampqHO9LSkoAAKWlpd4rKBERERG1GGfP+4QQBpdEW0V5ua6tLxXl5TpG820tOsk5efIkrFYr4uPjFePj4+NRUFDQ6DLz5s3D3LlzncanpqZ6pYxERERE1DKVlZXBYrEYXQwnAQEBSEhIwKBhg3SPnZCQgICAAN3j+poWneScJUnKHFcI4TTurEceeQQzZ850vLfZbDh16hSio6NdLtMWlZaWIjU1FTk5OYiIiDC6OD6P9akv1qe+WJ/6Yn3qi/WpL9annRACZWVlSEpKMroojQoKCkJ2djZqa2t1jx0QEICgoCDd4/qaFp3kxMTEwGw2O7XaFBYWOrXunBUYGIjAwEDFuMjISG8V0edFRES06YOg3lif+mJ96ov1qS/Wp75Yn/pifaJFtuDIBQUFMRnxohbd8UBAQAAGDBiAlStXKsavXLkSQ4YMMahURERERETUkrXolhwAmDlzJm666SZccMEFGDx4MF577TUcPXoU06dPN7poRERERETUArX4JGfKlCkoKirCP//5T+Tn56Nnz5749ttvkZ6ebnTRfFpgYCBmz57tdGkfeYb1qS/Wp75Yn/pifeqL9akv1ieRnSRaet96RERERERETdCi78khIiIiIiJqKiY5RERERETUqjDJISIiIiKiVoVJDhERERERtSpMcnzU4sWLkZGRgaCgIAwYMADr1q0DANTV1eGhhx5Cr169EBoaiqSkJNx8883Iy8s7Z8wdO3Zg2LBhCA4ORnJyMv75z39C3S/FmjVrMGDAAAQFBaFDhw549dVXvbJ955ur+lS74447IEkSFi5ceM6YrE/X9blnzx5MmDABFosF4eHhuOiii3D06FHNmKzPxuuzvLwcd999N1JSUhAcHIxu3brhlVdeOWfMtlifa9euxfjx45GUlARJkvD5558rpgshMGfOHCQlJSE4OBjDhw/Hrl27zhm3LdYloF2f/C1qunPtn3L8LSJygyCfs3TpUuHv7y9ef/11sXv3bnHfffeJ0NBQceTIEVFcXCxGjRolPv74Y/HHH3+IDRs2iEGDBokBAwZoxiwpKRHx8fHiuuuuEzt27BCfffaZCA8PF//+978d8xw6dEiEhISI++67T+zevVu8/vrrwt/fX3z66afe3mSv0qpPueXLl4s+ffqIpKQksWDBAs2YrE/X9XngwAERFRUlHnjgAbFlyxZx8OBB8fXXX4vjx4+7jMn6dF2ff/3rX0XHjh3FqlWrRHZ2tvi///s/YTabxeeff+4yZlutz2+//VY89thj4rPPPhMAxPLlyxXTn332WREeHi4+++wzsWPHDjFlyhSRmJgoSktLXcZsq3UphHZ98reo6c61f57F3yIi9zDJ8UEXXnihmD59umJc165dxcMPP9zo/L/99psA4HTSLrd48WJhsVhEdXW1Y9y8efNEUlKSsNlsQgghHnzwQdG1a1fFcnfccYe46KKLPN2UFsGd+szNzRXJycli586dIj09/Zw/LKxP1/U5ZcoUceONNzYpJuvTdX326NFD/POf/1RM79+/v3j88cddxmzL9XmW+iTSZrOJhIQE8eyzzzrGVVdXC4vFIl599VWXcViXdlon5Wfxt8h9ruqTv0VE7uPlaj6mtrYWWVlZGD16tGL86NGjsX79+kaXKSkpgSRJiIyMdIybNm0ahg8f7ni/YcMGDBs2TPHwsDFjxiAvLw+HDx92zKNe75gxY7B582bU1dU1b8MM4k592mw23HTTTXjggQfQo0ePRuOwPu3OVZ82mw3ffPMNOnfujDFjxiAuLg6DBg1yuiyD9Wnnzv55ySWX4Msvv8SxY8cghMCqVauwb98+jBkzxjE/6/PcsrOzUVBQoNjmwMBADBs2THFsZV16jr9FzcPfIqKmYZLjY06ePAmr1Yr4+HjF+Pj4eBQUFDjNX11djYcffhg33HADIiIiHOMTExORlpbmeF9QUNBozLPTtOapr6/HyZMnm7dhBnGnPp977jn4+fnh3nvvdRmH9Wl3rvosLCxEeXk5nn32WVxxxRVYsWIFrrnmGkyaNAlr1qxxzM/6tHNn/3zppZfQvXt3pKSkICAgAFdccQUWL16MSy65xDE/6/Pczm73uY6trEvP8Leo+fhbRNQ0fkYXgDwjSZLivRDCaVxdXR2uu+462Gw2LF68WDFt3rx5bsVUj3dnHl/kqj6zsrLw4osvYsuWLZrbyPpUclWfNpsNAHD11Vfj73//OwCgb9++WL9+PV599VUMGzYMAOtTTev7/tJLL2Hjxo348ssvkZ6ejrVr1+LOO+9EYmIiRo0aBYD12RTnOrayLpuOv0XNx98ioqZjS46PiYmJgdlsdmq1KSwsVPwlpq6uDpMnT0Z2djZWrlyp+MtZYxISEhqNCTT81cfVPH5+foiOjvZ4m4x0rvpct24dCgsLkZaWBj8/P/j5+eHIkSO4//770b59e5dxWZ+N12dMTAz8/PzQvXt3xfRu3bpp9q7G+my8PquqqvDoo49i/vz5GD9+PHr37o27774bU6ZMwb///W+XcdtqfWpJSEgAgHMeWxtbjnXpGn+L9MHfIqKmY5LjYwICAjBgwACsXLlSMX7lypUYMmQIgIYflf379+OHH35w6yA1ePBgrF27FrW1tY5xK1asQFJSkuMAOnjwYKf1rlixAhdccAH8/f2buWXGOFd93nTTTdi+fTu2bdvmGJKSkvDAAw/g+++/dxmX9dl4fQYEBGDgwIHYu3evYvq+ffuQnp7uMi7rs/H6rKurQ11dHUwm5aHcbDY7Ws0a01brU0tGRgYSEhIU21xbW4s1a9Y4jq2NYV26xt8i/fC3iMgD57efA9LD2S5l33zzTbF7924xY8YMERoaKg4fPizq6urEhAkTREpKiti2bZvIz893DDU1NY4YDz/8sLjpppsc74uLi0V8fLy4/vrrxY4dO8SyZctEREREo91M/v3vfxe7d+8Wb775ZqvoZlKrPhvTWI82rM8G56rPZcuWCX9/f/Haa6+J/fv3i0WLFgmz2SzWrVvniMH6bHCu+hw2bJjo0aOHWLVqlTh06JBYsmSJCAoKEosXL3bEYH3alZWVia1bt4qtW7cKAGL+/Pli69atjt6+nn32WWGxWMSyZcvEjh07xPXXX+/UhTTrsoFWffK3qOnOtX+q8beISBuTHB/1n//8R6Snp4uAgADRv39/sWbNGiGEENnZ2QJAo8OqVascy0+dOlUMGzZMEXP79u3i0ksvFYGBgSIhIUHMmTPH0cXkWatXrxb9+vUTAQEBon379uKVV17x9qaeF67qszGN/bCwPpXOVZ9vvvmm6NSpkwgKChJ9+vRxeqYL61NJqz7z8/PFtGnTRFJSkggKChJdunQRL7zwgqJuWJ92q1atavTYOHXqVCGEvRvp2bNni4SEBBEYGCiGDh0qduzYoYjBumygVZ/8LWq6c+2favwtItImCaF67C0REREREZEP4z05RERERETUqjDJISIiIiKiVoVJDhERERERtSpMcoiIiIiIqFVhkkNERERERK0KkxwiIiIiImpVmOQQEREREVGrwiSHiIiIiIhaFSY5REQ+bM6cOejbt6/RxSAiImpRJCGEMLoQRETkTJIkzelTp07Fyy+/jJqaGkRHR5+nUhEREbV8THKIiFqogoICx+uPP/4Y//jHP7B3717HuODgYFgsFiOKRkRE1KLxcjUiohYqISHBMVgsFkiS5DROfbnatGnTMHHiRDzzzDOIj49HZGQk5s6di/r6ejzwwAOIiopCSkoK3nrrLcW6jh07hilTpqBdu3aIjo7G1VdfjcOHD5/fDSYiItIJkxwiolbmp59+Ql5eHtauXYv58+djzpw5GDduHNq1a4dff/0V06dPx/Tp05GTkwMAqKysxIgRIxAWFoa1a9fi559/RlhYGK644grU1tYavDVERERNxySHiKiViYqKwksvvYQuXbrg1ltvRZcuXVBZWYlHH30UmZmZeOSRRxAQEIBffvkFALB06VKYTCa88cYb6NWrF7p164YlS5bg6NGjWL16tbEbQ0RE5AE/owtARET66tGjB0ymhr9hxcfHo2fPno73ZrMZ0dHRKCwsBABkZWXhwIEDCA8PV8Sprq7GwYMHz0+hiYiIdMQkh4iolfH391e8lySp0XE2mw0AYLPZMGDAAHzwwQdOsWJjY71XUCIiIi9hkkNE1Mb1798fH3/8MeLi4hAREWF0cYiIiJqN9+QQEbVxf/nLXxATE4Orr74a69atQ3Z2NtasWYP77rsPubm5RhePiIioyZjkENH/b++OqQAIgRgKbo0IeuwgAamY2hYdl5tx8V+K8HNjjLr31pyz9t611qpzTnW3ZQeAT3IGCgAARLHkAAAAUUQOAAAQReQAAABRRA4AABBF5AAAAFFEDgAAEEXkAAAAUUQOAAAQReQAAABRRA4AABBF5AAAAFEe+Jq5bCkVzucAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "ax = plt.figure(figsize=(10,6)).add_axes([.14, .14, .8, .74])\n", - "# Plot flow direction\n", - "plt.pcolormesh(t, ds_avg['range'], ds_avg['U_dir'], cmap='twilight', shading='nearest')\n", - "# Plot the water surface\n", - "ax.plot(t, ds_avg['depth'])\n", - "\n", - "# set up time on x-axis\n", - "ax.set_xlabel('Time')\n", - "ax.xaxis.set_major_formatter(dt.DateFormatter('%H:%M'))\n", - "\n", - "ax.set_ylabel('Altitude [m]')\n", - "ax.set_ylim([0, 12]);\n", - "plt.colorbar(label='Horizontal Vel Dir [deg CW from true N]');" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Saving and Loading DOLfYN datasets\n", - "Datasets can be saved and reloaded using the `save` and `load` functions. Xarray is saved natively in netCDF format, hence the \".nc\" extension.\n", - "\n", - "Note: DOLfYN datasets cannot be saved using xarray's native `ds.to_netcdf`; however, DOLfYN datasets can be opened using `xarray.open_dataset`." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [], - "source": [ - "# Uncomment these lines to save and load to your current working directory\n", - "#dolfyn.save(ds, 'your_data.nc')\n", - "#ds_saved = dolfyn.load('your_data.nc')" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 7. Turbulence Statistics\n", - "\n", - "The next section of this jupyter notebook will run through the turbulence analysis of the data presented here. There was no intention of measuring turbulence in the deployment that collected this data, so results depicted here are not the highest quality. The quality of turbulence measurements from an ADCP depend heavily on the quality of the deployment setup and data collection, particularly instrument frequency, samping frequency and depth bin size.\n", - "\n", - "Read more on proper ADCP setup for turbulence measurements in: Thomson, Jim, et al. \"Measurements of turbulence at two tidal energy sites in Puget Sound, WA.\" IEEE Journal of Oceanic Engineering 37.3 (2012): 363-374.\n", - "\n", - "Most functions related to turbulence statistics in MHKiT-DOLfYN have the papers they originate from referenced in their docstrings.\n", - "\n", - "### 7.1 Turbulence Intensity\n", - "For most users, turbulence intensity (TI), the ratio of the ensemble standard deviation to ensemble flow speed given as a percent, is all most will need. In MHKiT, this is simply calculated as `.velds.I`\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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nackSXjnnXdw5ZVX1joPOzdERETUaLKysvDggw+idevWl00rhMDTTz9d45vOa8LODRERkQFa8mmphx9+uNZ3S61bt67O5bNzQ0REZICW2rk5deoUOqoPUayFY8eOoXPnznVaBjs3RERE1GjUVz3UVnR0dJ2X0VRvkyciImrSJOWCYl8+zVVpaSkOHDjgdX6O3BARERnAJMkfX/I3Vz/++CPGjBkDu91++cQe+PXITVVVFR5//HHExsYiJCQE3bt3x8qVK+FwOIwOjYiIyCeSSfL5Q5759cjNmjVr8Pzzz+PVV1/F1VdfjaNHj+Kee+5BREQE5s+fb3R4RERE5IV27dpdcr63IzYqv+7cHDlyBBMnTsSNN94IAOjWrRt27dqFo0ePGhwZERGRb1ryizOtVivuu+8+9OvXz+P8n3/+GStWrPC6fL/u3Fx77bV4/vnncfz4cfTs2RNfffUVDh06hNTUVKNDIyIi8klL7twMGDAA0dHRmD59usf5X331VfPt3Dz66KMoLCxEr169YDabYbfb8dRTT+H222+vMY/VatU9ybCoqKgxQiUiIqJauvHGG1FQUFDj/Hbt2mHatGlel+/XnZu0tDT89a9/xWuvvYarr74aWVlZWLBgATp37lxjb2/16tU+9faIiIgag6+3czflW8Efe+yxS86Pjo6u89vDXfl15+bhhx/G4sWLcdtttwEA+vXrh59//hmrV6+usXOTkpKCRYsWab+LiooQHR0NKTAIEMpdVmazM4O1XP9taSV/C7c7smwVzr+VBiXUaRVl+jxBwdXLcNj13yoh5K/yUrnogCDnPJOyeexV8nelTZkuxy/U6a4N3H05WhrlxrgqZVSrdRtnCHkn9WkcVfq8gUp97JWoRl22ltetfoEW59+VVn0e5bfUtW/1comao5IL8rf7vqseK9z3ecC5T6nHrSoP+yGgHRd0XMvxlMb1t7bvSkpoynHOpOzbyrHK43Nx1XmS8Lwcl+OCdtyC0KdRyw1rK3+7HqfdLy51/5+6tnwPNwAr61YKly9gFVXK8kOV9xq5HttDwwCp8f632JJPSzU0v+7clJWVwWTSN1az2XzJW8EtFgssFkuN84mIiMj/HThwAP3790dERESd8/r1c25uvvlmPPXUU/jXv/6F06dP4+2338b69esxefJko0MjIiLyCZ9QfGnXX389unfv3vxenLl582YsXboUc+bMQX5+Pjp37oxZs2bhiSeeMDo0IiIin/C01KWdOnUKp06dwt69e+uc1687N2FhYUhNTeWt30RERC1MTEwMYmJicP3119c5r193boiIiJorkyTB5MPwiy95/cnPP/+MvLw8SJKEyMjIOr813BO/vuaGiIiouVJPS/nyaco2bNiA6OhodO/eHQkJCRg+fDi6d++O6Ohon8/YcOSGiIjIABJ8fM6Np9vym4gnn3wSa9euxWOPPYbx48cjMjISQgjk5+dj7969WL58OUpKSvD44497VT47N0RERNSotm3bhldffRWTJk3STe/cuTMGDBiAnj174v7772fnhoiIqCmRTJ6fO1jr/O7PQWxCzp8/j6uuuqrG+T179sTFixe9Lp/X3BARERnB12fcNOGLboYOHYqnnnoKVVVV1eZVVVVh1apVGDp0qNflc+SGiIiIGtXmzZuRmJiITp064brrrkNkZCQkSUJeXh4OHDgAi8WC9PR0r8vnyA0REZEBjLpbasuWLYiNjUVwcDDi4+Nx8ODBGtMeOnQII0eORPv27RESEoJevXphw4YNujQ7duzwOLJUUVFRQ6nyuyKPHz+Op556CuHh4Th16hR++uknhIeH46mnnsL333+Pq6++2rsKgiM3REREhpA7KL68FbzuedLS0rBgwQJs2bIFI0eOxAsvvIAJEybg2LFj6Nq1a7X0oaGhuP/++3HNNdcgNDQUhw4dwqxZsxAaGop7771XSxceHo4ffvhBlzc4OPiSsYSFheG+++7DfffdV/eKXAZHboiIiFqI9evXY8aMGZg5cyZ69+6N1NRUREdHY+vWrR7TDxw4ELfffjuuvvpqdOvWDXfddRfGjx9fbbRHkiRERUXpPjUpKiqqU8zFxcV1Sg+wc0NERGSI+jotVVRUpPtYrVaPy7PZbMjIyEBiYqJuemJiIg4fPlyrmDMzM3H48GFcd911uuklJSWIiYlBly5dcNNNNyEzM7PGMtq2bYv8/PxaLQ8ArrzySvz000+1Tg/wtBQREZEh6uv1C9HR0brpy5Ytw/Lly6ulP3fuHOx2OyIjI3XTIyMjkZeXd8lldenSBWfPnkVVVRWWL1+OmTNnavN69eqFHTt2oF+/figqKsLGjRsxcuRIfPXVV4iLi6tWlhACL730Elq3bl2relZWVtYqnasW1bkRZSUAAMkc6Jwm5AcFSHbldjS7shLNyqqxKT1gTw1QySts+oumJLf5AACTWSnfrsxzKOXLeaXAoOrLqVJiqbLp5gk1VrUMh6N6bOrtdQFB+jLUesGlsTiUOE3qsiV9Hk+0hzMIfQwOu74edpflaOtD+a6Uyxe5J5TlKWkDLR4WKPRluG8PyewhixyTpJQnbOX6vOYgZ/aO1c81UxNXVih/Vyr7sLa/Ku2gyvmvWyk4TJ9XTau0Z8kSoiR0GexW27rK5KENunNvt+rxwKSU63Dbt11i0X4q+5qkLk9N65pOjdN9ecJR42/JPQaVUk+hHdlclqPmr+F/0OqxVghPedTl6Y8ZUnCoMt0lVu04ohwb1GOgmlfNE+A8tkM9pqrLVtO2ay9/q+svNNyZp7gQqHLbrk1ATk4OwsOd9bBYPB1Dndyv8xFCXPban4MHD6KkpASfffYZFi9ejN/85je4/fbbAQDDhw/H8OHDtbQjR47EoEGDsHnzZmzatKlaWV27dsWLL7542XqpoqKiEBgYePmELlpU54aIiMhf+PqoGjVveHi4rnNTkw4dOsBsNlcbpcnPz682muMuNjYWgHyX06+//orly5drnRt3JpMJQ4YMwYkTJzzOP3369GVj9RWvuSEiIjKALw/w0x7kVwdBQUGIj4+v9vyY9PR0jBgxotblCCFqvK5HnZ+VlYUrrriiTvHVJ47cEBERGaC+Rm7qYtGiRUhOTsbgwYORkJCAbdu2ITs7G7NnzwYApKSk4MyZM9i5cycA4LnnnkPXrl3Rq1cvAPJzb9auXYt58+ZpZa5YsQLDhw9HXFwcioqKsGnTJmRlZeG5557zvnI+YueGiIiohUhKSsL58+excuVK5Obmom/fvtizZw9iYmIAALm5ucjOztbSOxwOpKSk4NSpUwgICECPHj3w9NNPY9asWVqagoIC3HvvvcjLy0NERAQGDhyIAwcO+PT6BF+xc0NERGQAI0ZuAGDOnDmYM2eOx3k7duzQ/Z43b55ulMaTDRs2VHtqsdHYuSEiIjKAZJIgmbzv3Uii6b44s6Gxc0NERESGqqqqwgsvvID9+/fDbrdj5MiRmDt37mVf4VATdm6IiIgMYNRpKX/0wAMP4Pjx47jllltQWVmJnTt34ujRo9i1a5dX5bFzQ0REZID6ekJxU/T2229j8uTJ2u99+/bhhx9+gNksP1xx/PjxugcD1hWfc0NERESN6uWXX8akSZNw5swZAMCgQYMwe/ZsfPDBB3j33XfxyCOPYMiQIV6Xz84NERGRAerrxZlN0XvvvYfbbrsN119/PTZv3oxt27YhPDwcS5YswdKlSxEdHY3XXnvN6/J5WoqIiMgA3jxl2D1/U3bbbbfhhhtuwMMPP4zx48fjhRdewLp16+qlbI7cEBERkSHatGmDF198Ec888wySk5Px8MMPo7y83Ody2bkhIiIygAQfT0sZXQEf5OTkICkpCf369cOdd96JuLg4ZGRkICQkBAMGDMD777/vU/ns3BARERmgsV+c6U+mTZsGSZLwzDPPoFOnTpg1axaCgoKwcuVK/POf/8Tq1asxdepUr8vnNTdERERG8PWi4Kbbt8HRo0eRlZWFHj16YPz48YiNjdXm9e7dGwcOHMC2bdu8Lr/FdG5EVSWktu3kv20VzhkOuzzN5AAASEL+Rkhr+dteWb0wyW3Ay6qcHwyyyN8BQfJ3RakzjSVE/i4vkb8Dg7W4AECyBCrxOFyWo7Rck3zfv9DmCeVL+W23V48xSHmqY5VN/q606evlEC6Jlb/V4tXHgat5AizVy9fWi5LW7NaUhFJmVVX1+qj1MJn08avrMTDImUdNq5anbC91nWjLdd1O6jx126rrQF1f2ip25hF5P+pjCVC2h12NX1m+OdC5HPd5KjWNurwql9jUeqgxqmnUeqhpXdenll/Ja7MqMVbffUXhOV354ki6/LuH/EZfZP8kf+f94sxTVgYA+HbHQQBA3zvlZ0tIbdrIiz92AgBQcfqsS0hy3G0ef0BeXPxYeUbxBfk7OFSJ0bm+xIU8pdxO8gT1wFxSKH+rbdOV8swLBMr7j6S0GW2/UcoXdmc7k9R1p7UDfXuT1OlBrZzLUbeDEpRQ2o72L2N1uwmX9lyNkkZtQ2pe3f+9JH1a97zafilVn6eW61BiUOuhtSWXMoVdP005Zmn1cm9/cD2+KNR9rS7/B3Uvo1o9Uf34qcYgKdutldwOhOvxU2nzktqulGOTsz4mt5gBKSRMTlNWpF9e2/byt3qMdN2Pqqr0xyxqMIMGDcITTzyB6dOn48MPP0S/fv2qpbn33nu9Lp+npYiIiAzQkk9L7dy5E1arFQsXLsSZM2fwwgsv1Gv5LWbkhoiIyJ9IpuoDWXXN31TFxMTg73//e4OV34RXDRERETU1RUVFl0/kori4uM7LYOeGiIjIAC31tFTbtm2Rn59f6/RXXnklfvrppzotg6eliIiIjGCSnDdweJu/CRJC4KWXXkLr1h5uIvCgstLDjT2Xwc4NERERNZquXbvixRdfrHX6qKgoBAYGXj6hC3ZuiIiIjODr2y+b6Gmp06dPN/gy2LkhIiIyQEt/cWZD4gXFRERE1Kxw5IaIiMgILfSC4sbAzg0REZERWug1N42BnRsiIiIDSCYJkg+jL77kbe54zQ0REREZolu3bli5ciWys7PrtVx2boiIiIygnpby5dPEPfjgg9i9eze6d++OcePG4fXXX4fVavW5XHZuiIiIDCBJknZqyqtPM+jczJs3DxkZGcjIyECfPn3wwAMP4IorrsD999+PL7/80uty2bkhIiIiQ/Xv3x8bN27EmTNnsGzZMrz00ksYMmQI+vfvj1deeQVCiDqV16IuKBYOu/qHc6Jbz1fY5TTqVFGlvNPC7LKq7PI0UXxR/h1kkfOEhMnTK0qVsl36jiaTftkh4fK3rUI/3VrmzGMJkb/VuFUOhz6Po8oZf6VVicXtnR0Bbo+u9rQO1GlCclu+Ur7J7FIfZX1UKvFr9XNrgMIldjV/lU3+VtY1AoU+jiqX94jYq9xiVNIq2wCmVkqMLstxXz/qctXlqdvS7lxvWrnaOgjQl6tuS9fluOZ3TYNKt3q4tDE17oAg/fKqzXfZXmqaSnm9iXL5DblScKg+dpcYRNEF+XdpiTy5TSd5+nnlZXVX9XHm+eIzAEBQkJzXcU5u1+Z27eRQevWQp590vujOpFzIKLXtKE8oPCuXX6YsT43JtR26ry9lvWhtNlBZJ67bX82vrHdtH1b3k4A2qMatDap5JHU9muV1K6pchr6VNi+57adCaUtSoEWZ7lKwGovavtTlqu1bbQ8BrscOt7auTVePTR7ma23TrluuVi+1Pev2aaUdKNOq/wtfLdOlQmp+9+OBNl+qFpu2PdRpDv02Fg5T9fq4U4+BFnlfVtu1UKcDgNnsFptQfrqvR5flq7GVKm+gbqW0JXV7KfsTWkc48/h6a3Zd8W4pTWVlJd5++21s374d6enpGD58OGbMmIFffvkFS5YswYcffojXXnut1uW1qM4NERGR3zDBx+fc1Fskhvnyyy+xfft27Nq1C2azGcnJydiwYQN69eqlpUlMTMTo0aPrVG4zWDVERERUW1u2bEFsbCyCg4MRHx+PgwcP1pj20KFDGDlyJNq3b4+QkBD06tULGzZsqJburbfeQp8+fWCxWNCnTx+8/fbbtYplyJAhOHHiBLZu3Yr//e9/WLt2ra5jAwB9+vTBbbfdVqc6cuSGiIjIAEa8WyotLQ0LFizAli1bMHLkSLzwwguYMGECjh07hq5du1ZLHxoaivvvvx/XXHMNQkNDcejQIcyaNQuhoaG49957AQBHjhxBUlISnnzySUyePBlvv/02pk6dikOHDmHYsGGXjOenn35CTEzMJdOEhoZi+/btdaonR26IiIiMoF7j48unjtavX48ZM2Zg5syZ6N27N1JTUxEdHY2tW7d6TD9w4EDcfvvtuPrqq9GtWzfcddddGD9+vG60JzU1FePGjUNKSgp69eqFlJQUjB07FqmpqZeNZ8yYMTh//ny16QUFBejevXud66di54aIiKgFsNlsyMjIQGJiom56YmIiDh8+XKsyMjMzcfjwYVx33XXatCNHjlQrc/z48bUq8/Tp07Db7dWmW61WnDlzplYxecLTUkREREaop7ulioqKdJMtFgssFku15OfOnYPdbkdkZKRuemRkJPLy8i65qC5duuDs2bOoqqrC8uXLMXPmTG1eXl5enct85513tL/37t2LiAjnXWt2ux0fffQRunXrdsmYLoWdGyIiIgNIJv0TQ7zJDwDR0dG66cuWLcPy5ctrzuf+CBQhLnv9zsGDB1FSUoLPPvsMixcvxm9+8xvcfvvtXpc5adIkLd/06dN18wIDA9GtWzesW7fukjFdCjs3RERERqinkZucnByEh4drkz2N2gBAhw4dYDabq42o5OfnVxt5cRcbGwsA6NevH3799VcsX75c69xERUXVuUyH8gyp2NhYfPHFF+jQocMll19XvOaGiIioCQsPD9d9aurcBAUFIT4+Hunp6brp6enpGDFiRK2XJ4TQvf8pISGhWpn79u2rVZmnTp2q944NwJEbIiIiQ6jviPIlf10tWrQIycnJGDx4MBISErBt2zZkZ2dj9uzZAICUlBScOXMGO3fuBAA899xz6Nq1q/bsmUOHDmHt2rWYN2+eVub8+fMxevRorFmzBhMnTsTu3bvx4Ycf4tChQx5j2LRpE+69914EBwdj06ZNl4z3gQceqHMdgSbQuTlz5gweffRRvP/++ygvL0fPnj3x8ssvIz4+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Momrr75anD59urHCr4b1YX0aE+vD+hA1N82ic7NixQqRmJioDcsWFBSI1q1baw+xunjxokhKShIdO3YUa9euFRUVFVreyspKsXv3btG+fXsRFxcn9u7da0gdXLE+rE9jYn1YH6LmJsDou7V8IYRASUkJDh8+jOjoaG36hQsXMGrUKHTo0AEA0Lp1a9x6663YsGEDrrjiCl0ZNpsNu3fvxsKFC7FkyZJGjd8d68P6NCbWh/Uhaq6a3LulDh06hK5du6Jr167atDlz5uDAgQO4+eabERwcjDVr1qBr1644f/48Ro8ejTlz5mDs2LEQQkCSJC2f+ttut8NsNhtRHdaH9WlUrA/rQ9QiNOIokU8++ugjERsbK2JiYsQVV1whkpOTxRdffCGEECI/P188//zz4v777xeRkZHir3/9qygsLBQfffSRSEpKEuPHj6/xDgOjsD6sT2NifVgfopakSXRucnJyREJCgliyZIn4+eefxbvvvisGDBggxo4dK3744Qct3VNPPSUmTZqke5bDk08+KeLj40VOTo4RoXvE+rA+jYn1YX2IWpom8fqF//73v8jMzMT06dPRtWtX3HTTTVizZg0cDgeeeOIJLd2hQ4dwzTXX6IZmS0pK0LZtW1x55ZVGhO4R68P6NCbWh/UhammaROfmwoUL6NWrFxwOhzbtd7/7HaZMmYLPP/8ce/bsAQAkJCQgNTUVmzdvRmZmJpYsWYJXX30VycnJkCQJwk8uL2J9WJ/GxPqwPkQtjoGjRrX2zTffCIvFIv75z3/qpn///fdi4sSJYvr06dq0W2+9VfTs2VP06tVLxMfHa0/l9CesD+vTmFgf1oeopWkyd0v9/ve/R1lZGd577z20bt1amz5//nwcP34cb7zxBsLCwlBRUYHi4mL88ssv6N+/v4ERXxrrw/o0JtaH9SFqSZrEaSkAWL16NT799FP89a9/hdVq1aZ37NgRx44dQ0hICADAYrGgY8eOfr/jsz6sT2NifVgfopakyTzEr3///nj00UexcuVKmM1m3H777XA4HPjPf/6DO++8EwEBclVcL7bzZ6yPf2N9/BvrQ0SX0mROS6nmzp2Lt956C127dkV+fj5atWqFN954A3379jU6NK+wPv6N9fFvrA8RedLkOjdWqxXHjh1DVlYWgoKCcOeddxodkk9YH//G+vg31oeIPGlynRsiIiKiS2kyFxQTERER1QY7N0RERNSssHNDREREzQo7N0RERNSssHNDREREzQo7N0RERNSssHNDREREzQo7N0RERNSssHND1Mzs378fkiShoKDA6FCIiAzBJxQTNXHXX389BgwYgNTUVACAzWbDhQsXEBkZyRctElGL1GTeCk5EtRMUFISoqCijwyAiMgxPSxE1YXfffTc++eQTbNy4EZIkQZIk7NixQ3daaseOHWjTpg3ee+89XHXVVWjVqhWmTJmC0tJSvPrqq+jWrRvatm2LefPmwW63a2XbbDY88sgjuPLKKxEaGophw4Zh//79xlSUiKgOOHJD1IRt3LgRx48fR9++fbFy5UoAwHfffVctXVlZGTZt2oTXX38dxcXFuOWWW3DLLbegTZs22LNnD3766SfceuutuPbaa5GUlAQAuOeee3D69Gm8/vrr6Ny5M95++23ccMMN+OabbxAXF9eo9SQiqgt2boiasIiICAQFBaFVq1baqajvv/++WrrKykps3boVPXr0AABMmTIFf/nLX/Drr7+idevW6NOnD8aMGYOPP/4YSUlJOHnyJHbt2oX//e9/6Ny5MwDgoYcewgcffIDt27dj1apVjVdJIqI6YueGqAVo1aqV1rEBgMjISHTr1g2tW7fWTcvPzwcAfPnllxBCoGfPnrpyrFYr2rdv3zhBExF5iZ0bohYgMDBQ91uSJI/THA4HAMDhcMBsNiMjIwNms1mXzrVDRETkj9i5IWrigoKCdBcC14eBAwfCbrcjPz8fo0aNqteyiYgaGu+WImriunXrhs8//xynT5/GuXPntNEXX/Ts2RN33nknpk2bhn/84x84deoUvvjiC6xZswZ79uyph6iJiBoOOzdETdxDDz0Es9mMPn36oGPHjsjOzq6Xcrdv345p06bhwQcfxFVXXYU//OEP+PzzzxEdHV0v5RMRNRQ+oZiIiIiaFY7cEBERUbPCzg0RERE1K+zcEBERUbPCzg0RERE1K+zcEBERUbPCzg0RERE1K+zcEBERUbPCzg0RERE1K+zcEBERUbPCzg0RERE1K+zcEBERUbPCzg0RERE1K/8fHjIq1Mp2PlcAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Turbulence Intensity\n", - "ds_avg['TI'] = ds_avg.velds.I\n", - "ds_avg['TI'].plot(cmap='Reds', ylim=(0,11))" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 7.2 Power Spectral Densities (Auto-Spectra)\n", - "\n", - "Other turbulence parameters include the TKE power- and cross-spectral densities (i.e the power spectra), turbulent kinetic energy (TKE, i.e. the variances of velocity vector components), Reynolds stress vector (i.e. the co-variances of velocity vector components), TKE dissipation rate, and TKE production rate. These quantities are primarily used to inform and verify hydrodynamic and coastal models, which take some or all of these quantities as input.\n", - "\n", - "The TKE production rate is the rate at which kinetic energy (KE) transitions from a useful state (able to do \"work\" in the physics sense) to turbulent; TKE is the actual amount of turbulent KE in the water; and TKE dissipation rate is the rate at which turbulent KE is lost to non-motion forms of energy (heat, sound, etc) due to viscosity. The power spectra are used to depict and quantify this energy in the frequency domain, and creating them are the first step in turbulence analysis.\n", - "\n", - "We'll start by looking at the power spectra, specifically the auto-spectra from the vertical beam (\"auto\" meaning the variance of a single vector direction, e.g. $\\overline{u'^2}$, vs \"cross\", meaning the covariance of two directions, e.g. $\\overline{u'w'}$). This can be done using the `power_spectral_density` function from the `ADPBinner` we created (\"avg_tool\"). We'll create spectra at the middle water column, at a depth of 5 m, and use a number of FFT's equal to 1/3 the bin size." - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [], - "source": [ - "rng = 5 # m\n", - "vel_up = ds['vel_b5'].sel(range_b5=rng, method='nearest') # vertical velocity\n", - "U = ds_avg['U_mag'].sel(range=5, method='nearest') # flow speed, for plotting in the next block\n", - "\n", - "ds_avg['auto_spectra_5m'] = avg_tool.power_spectral_density(vel_up, freq_units='Hz', n_fft=ds_avg.n_bin//3)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In the auto-spectra, we're primarly looking for three components: the energy-producing region, the isotropic turbulence region (so-called \"red noise\"), and the instrument noise floor (termed \"white noise\"). \n", - "\n", - "The block below organizes and plots the power spectra by the corresponding ensemble speed, averaging them by 0.1 m/s velocity bins. Note that if an ensemble is missing data that wasn't filled in, a power spectrum will not be calculated for that ensemble timestamp." - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[Text(0.5, 0, 'Frequency [Hz]'),\n", - " Text(0, 0.5, 'PSD [m2 s-2 Hz-1]'),\n", - " (0.01, 1),\n", - " (0.0005, 0.1)]" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeoAAAIPCAYAAAC8DJ2WAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3hURRfA4d/dkt30kIQESEJCh9C7IAKiYqGICgLSQRCl22ifAiqK0qUrAlKkqXQUkKrSewm9JSGU9Lp97/fHkkBMAimbBvM+zz6Q3VvOJpucO3NnzkiyLMsIgiAIglAkKQo7AEEQBEEQsiYStSAIgiAUYSJRC4IgCEIRJhK1IAiCIBRhIlELgiAIQhEmErUgCIIgFGEiUeeBLMusW7eO2rVrc+PGjcIORxAEQXgCqQo7gOLst99+Y+nSpZw+fbqwQxEEQRCeUCJR50HHjh1xcXFh06ZNhR2KIAiC8IQSXd95pNVqCzsEQRAE4QkmErUgCIIgFGEiUQuCIAhCESbuUT9k5MiR/Pvvv4/cpm/fvvTt27eAIhIEQRCediJRP+Tbb78t7BAEQRAEIR3R9S0IgiAUWVu2bKFp06YsWbIkV/svWbKExo0bU65cOXx8fOjUqRMXL160b5D5TCRqQRAEochZs2YNjRs3pm3bthw4cCDH+8uyTO/evRk/fjzz5s3j+vXrnD17lri4OBo2bMj+/fvzIer8UawTdXavtIxGI5MmTaJKlSpUqFCBFi1asG/fPrvEYDKZADCbzXY5niAIggANGjRg3759VKpUKVf7z507l59//pl58+ZRr149AHx8fPj1119xcHCgc+fOxMXF2THi/FMsE3VOrrQMBgOvvPIKy5YtY8eOHVy9epXBgwfz4osvsnbt2jzFsXv3bubOnQvA5MmTOXbsWJ6OJwiCINiUL18ejUZD3bp1c7yvLMt8/fXXqFQqWrdune41d3d3+vTpQ3h4OLNnz7ZXuPmqWCbqnFxpjRw5kt27d7N48WLKli0LQKdOnejYsSO9e/fm+vXruY7j+eefZ926dciyzIIFC6hfv36ujyUIgiBklJuiUhcuXCAiIgIfHx+USmWG11988UUAVq1alef4CkKxTNTZvdK6ceMGc+bMITg4mEaNGqV7rUePHqSkpDB69Oj8DFUQBEHIA0mScrxPTEwMAAkJCZm+HhgYCEBISAgpKSm5D66AFOvpWY+70lq9ejVms5mmTZtmeK1x48YArFu3jujoaLy8vPIlxlQGgwGDwZD2tdVqJSYmBi8vr1x9EAVBEMDWzZuYmEiZMmVQKPKv7aXX6zEajbnaV5blDH/nNBoNGo3GHqFl4OfnB0BSUhLnz5+nWrVqGeJJ/Tc6OhonJ6d8icNeinWiflyC27JlC2Brgf+Xp6cnfn5+3Lp1i3///Zf27dvnS4ypvvnmGyZMmJCv5xAE4ekVFhaGv79/vhxbr9fj7ehIci73d3FxISkpKd1z48aNY/z48XmOLTNBQUHUrVuXEydOMHv2bObMmZPu9Vu3bqX938HBIV9isKdinagf58SJEwBZfng9PDy4desWJ0+ezPdEPXr0aD788MO0r+Pj4ylbtiyXLl3C09MzX88tFE8mk4ndu3fz/PPPo1arCzscoYiKiYmhcuXKuLq65ts5jEYjycBgpYKctoENwOykJMLCwnBzc0t7Pr9a06kWLlzI888/z/z58wkMDGTIkCEA7Nq1i88++wwAJycnvL298zUOe3hiE7Ver0+7gvPw8Mh0G3d3dwCioqLyPZ6sunk8PT3zvdtdKJ5MJhNOTk54eXmJRC08VkHcQtMAmpye5343s5ubW7pEnd/q1avH0aNH+eKLL5g7dy5Lly6latWqdOzYMe2iplGjRpkONitqnthEHR0dnfb/rO4/pN7P0ev1BRKTIAiCUHAqVarEsmXL0j0XFRVFjx49AOjcuXNhhJVjxXLUd3Y8fN8hdeDAf6UOjBBdz4IgCE+HGTNmYDab8fX1pVevXoUdTrY8sYna09MzLVknJ2c+BCK1Kk1xuEchCIIg5M2NGzeYOnUqADNnzsTR0bGQI8qeJzZRK5VKgoODAYiIiMh0m7t37wJQp06dggpLEARBKARGo5Hu3buj1+sZPHhwsen2hic4UQO8/PLLAJw7dy7Da1FRUcTHx+Ps7Mxzzz1X0KEJgiAI2ZC6joLFYsn09d27d9O4cWO+//77LI+h0+no3Lkz//77L++//z4zZ87Ml1jzyxOdqPv164dCoch0AY7UGuFvvfVWvk8TeFhqpbSGDRsW2DkFQRCKI51Ox+nTpwE4ePBgpttMnTqVw4cPM3bs2AyvJSYmsmTJEurWrZtWSnru3Ln5WhgmPxSvaP/jcVdalSpVYsCAAZw5c4aTJ0+me+3nn3/G0dGRcePG5XeY6QwaNIiQkBCOHDlSoOcVBEEoTrp06YK3tzdnzpwBbPOivby8mD9/frrtunbtiqura4aBYcHBwfj7+zN37ly6d+/OlStX6N27d0GFb1fFdnrWf6+0+vXrl+l2U6ZM4ciRIwwcOJCtW7dSokQJZs+ezaZNm1ixYkWmVcsEQRCEwpXdBTO6detGt27dMjwfEhJi75AKTbFM1F26dGHTpk1pxdQXLlzI77//zsSJExk4cGC6bZ2dndm9ezefffYZDRo0QKFQUKNGDY4cOUKtWrUKI3zhKSLLMiaTCavVmuN9TSYTKpUKvV6fZa+RUPwpFArUarWo+S9kSZKzmmQs5KuEhATc3d2JiooSlcmeQBaLhaioKBITEzGZTLk6hizL6HQ6HB0dxR/xJ5xarcbV1RVvb+8cV8qKjo7G29ub+Pj4fKv8lfr36iOlIseVyQyyzFSLNV/je9IVyxa1IBRlFouFsLAwDAYD7u7uuLi4oFQqc5xsrVYrSUlJuLi4FLvBL0L2yLKMxWIhKSmJuLg4dDodAQEBxaKspVBwRKIWBDuLiorCYDBQtmzZPBVUsFqtGI1GtFqtSNRPOBcXF9zd3QkNDSUqKgpfX9/CDkkoQsRvvyDYUerawO7u7sWm6pFQNDg6OuLm5kZiYmKWZY+Fp5NI1IJgRyaTCZPJhIuLS2GHIhRDrq6uaZ8hQUglEnUBEwVPnmypo7vFPUYhN1I/N7mZJSA8uUSiLmCi4MnTQYzSFnJDfG6EzIhELQiCIAhFmEjUgiA8tW7cuIEkSZk+HlVu8pVXXuHFF18EIDQ0lO7du1O1alXc3NxwcXGhRo0afPHFFyQmJhbQOxGeZGJ6liAIT722bdtmWPawQoUKmW6blJTEnj17+O677wDbcrnh4eG88cYbaXOgjx49yldffcXGjRs5cOAAarU639+D8OQSiVoQhKde9erV6d69e7a2/fPPPzEYDLRv3x6Ahg0bsmfPnnTbvPfee1SuXJlPP/2UHTt28Nprr9k7ZOEpIrq+BUEQAL1ej06ne+x2GzZsoFatWgQFBT1yu9TXY2Nj7RCd8DQTiVoQhGJj27ZttGvXjtKlS6ctZFGpUqU8H3fOnDk4OTnh5OREhQoVmD59eqZFRywWC1u3bk1rTT9Mr9cTFRVFWFgYmzZtYvTo0Wi1Wpo3b57n+J5mW7ZsoWnTpixZsiRX+y9evJhGjRpRunRpSpcuTePGjVm6dKl9g8xnoutbEIRiYenSpWlrDisUCry8vFAoFHlKhAqFghdeeIEOHToQGBjI7du3+fHHH/nwww+5fPkyc+fOTbf9P//8Q0xMDK+//nqGYy1cuJAhQ4akfV2tWjU2bNhAQEBAruN7mq1Zs4apU6dy+PBhAAYMGJDjYwwdOpRFixaxYsWKtJ/ZmjVr6NatG6dPn2bKlCl2jTm/iEQtCEKRp9Pp+PDDDwEYOHAgU6ZMwdnZGQCj0cjRo0ezdRxHR0eqV6+e9nXZsmX566+/0m3Tr18/WrVqxbx58xg0aFC67Tds2ECZMmWoX79+hmN36NCBqlWrEh8fz/79+9m1axcJCQk5fq+CTYMGDdi3bx81a9bk8uXLOd7/2LFjzJo1i6+//jrdhdXbb7/Ntm3bmDp1Kn379iU4ONieYecLkagFQSjytm/fTnR0NM7OzkydOhUnJ6e01yIiIrJd6a969eqcPXv2kdsolUpGjhzJvn37+Ouvv9Il6k2bNtGuXbtMC5P4+/vj7+8PwFtvvcXatWvp1KkTO3bsSJvKJWRf+fLlAahbt26uEvWuXbsAqFOnTobX6tWrx6JFizh79qxI1EJGc+bMYc6cOVgslsIORRCKjb///huA5557Ll2SBihVqhS7d+/O1nFSW+GPkzoQLDo6Ou25kJAQrly5wvfff5+tY7z55ptotVoWL14sEnUeaLXaXO2X+rM+ePAgr776arrXEhMTkSSJ2rVr5zm+giASdQEbNGgQgwYNSluIXRCErAUEBBAeHp729Z9//pmuNXv48GEaNmxIy5Yt7XreK1euAKRbbnLDhg24uLjQqlWrbB3DbDZjNpvFqO88ym1Z1TZt2jB06FC+++47OnXqRI0aNdJeW7duHe+++y5VqlSxV5j5Soz6FgShSEpOTsZsNqdLliVKlMDX1xdfX19KlSqV527LmJiYDM/p9Xq+/PJLlEolr7zyStrzGzdupHXr1mg0mnTb3717N9NjL1iwALPZTOPGjfMU45MiISEh3cNgMOTr+QIDA/niiy/Q6/W8/PLLnDp1CoDJkyfTsGFD5s2bl6/ntyfRohYEoUhydnbm9u3bREZG4uPjA9hGXdvznuK7775LcnIyTZo0wd/fn9u3b7N06VKuXLnCuHHj0qqT3b17l8OHD7N48eIMxxg5ciQhISG89NJLBAYGkpSUxL59+9i4cSNVqlRh2LBhdou3sDUpJeOcw+ZdslWGW2QY/T5u3DjGjx9vv+AyMWbMmLQLr+bNm9OvXz9q167NJ598kq/ntTeRqAVBKNKOHz8OgJOTk927Ktu0acPPP//MvHnziImJwdnZmXr16jFp0iTeeuuttO02bdqEJEm0adMmwzHefPNNoqOj+fnnn4mMjESlUlGxYkX+97//8fHHH+Pm5mbXmIursLCwdN+L//ZM5JcJEyaQlJREWFgY06dPJzAwkLp161KrVq0COb89iEQtCIUkOTk5y9eUSiUODg7Z2lahUODo6JirbVNSUjIt7AG2e4MPD9zKatvsDtDKrRMnTgBQq1Ytu6/z3a9fP/r16/fY7TZu3EjTpk3x8vLK8Fr79u0zLYAipOfm5lbgFy16vZ6BAwcyYcIEypYty4cffsiMGTN47rnn+PPPP2nSpEmBxpNbIlELQiFxcXHJ8rXXXnuNTZs2pX3t4+NDSkpKptu2aNEiXa3poKAgoqKiMt22QYMG6dZCDw4O5ubNm5luGxwczLlz59K+btiwISEhIRm2yyrR20tqoq5bt26+nudRmjVrluncaaHokmWZt99+m+DgYAIDAwGYPn06SqWSqVOn8vrrr3P58uViMahXDCYTBKFIS+36LsxE/emnn/LCCy8U2vmFnFu9ejWbNm3KcLti8uTJtGvXjsjISObMmVNI0eWMaFELQiFJSkrK8rX/dvHeu3cvy20VivTX2zdu3Mj2tiEhIY/s+n7YkSNH8r31/F+JiYlcvXoVsBWpEITs+v333wHSBiKmkiSJL7/8kk2bNqWVJy3qRKIWhELyuHu7Vqs129vm5LgP+2/xEHttay8nT55ElmVUKlW6ebCC8DhGoxGA8PDwDIMQUxdyeXgcSFEmur4FQSiyUu9PBwcHF9goYaFoMZvNAFlWc9y9ezeNGzfOUDGuQ4cOAKxcuTLDPgcPHgRIN7K/KBOJWhCEIqso3J8WCo9Op+P06dPAg+T6X6krbI0dOzbd8z179uSNN95gyZIlzJgxA5PJBNg+UwMGDKBbt268/fbb+fsG7EQkakEQiqzUFrW4P/306dKlC97e3pw5cwawLSPq5eXF/Pnz023XtWtXXF1d05ZATaVQKFi7di3Tpk3j559/xsfHh7JlyzJw4EBGjhzJsmXLcl2etKCJe9QFTCzKIQjZYzAYOH/+PCBa1E+jVatWZWu7bt260a1bt0xfUyqVDB06lKFDh9oztAInWtQFbNCgQYSEhKSbyyoIQkZnz57FZDIVq1WOBCE/iBa1IAhFUv369Qt8OpggFEWiRS0IgiAIRZhI1IIgCIJQhIlELQiCIAhFmEjUgiAIglCEiUQtCIIgCEWYSNSCIAiCUISJRC0IgiAIRZhI1IIgCIJQhIlELQiCIAhFmEjUgiAIglCEiUQtCPlAlL4UckN8boTMiERdwObMmUNwcDANGzYs7FCEfKBQ2H6lxOpoQm6kfm5SP0cCbNmyhaZNm7JkyZIc7Wc0GilZsiSSJD3yERkZmT+B25H4NBQwsXrWk02tVqNWq0lKSirsUIRiKDExMe0z9LRbs2YNjRs3pm3bthw4cCDH+69bt46oqKhHbtO4cWNKliyZ2xALjEjUgmBHkiTh6upKfHw8Op2usMMRihGdTkdCQgKurq5IklTY4RS6Bg0asG/fPipVqpSr/RcuXMiwYcM4deoUd+7cITIyMu0RERGBq6srnTp1snPU+UMscykIdubt7Y1OpyM0NBQ3NzdcXV1RKpU5/uNrtVoxGo3o9XrRFfqEkmUZi8VCYmIiCQkJaDQavL29CzusIqF8+fIA1K1bl8uXL+do3+vXr9OqVStGjx6d6et//PEHiYmJIlELwtNKqVQSEBBAVFQUiYmJxMXF5eo4siyj0+lwdHQULawnnFqtxsPDA29vb5RKZWGHU6Rotdoc71OmTBlGjhyZ5etr166lcePGlC1bNi+hFRiRqAUhHyiVSnx9ffHx8cFkMmG1WnN8DJPJxB9//MELL7yAs7NzPkQpFAUKhQK1Wi0uxrKQm++LRqPJ8jWTycSGDRsYO3ZsXsIqUCJRC0I+kiQJBweHXO373Xff8fXXXzNz5kzee+89O0cmCAUrISEh3dcajeaRCTW/7Ny5k9jYWDp27Fjg584tkagFoYhydHTEYDAwY8YM+vfvL+5TC4WuankNrqqctXATzTLc0hMQEJDu+XHjxjF+/Hg7Rpc9xa3bG8Sob0Eosvr06YOjoyMXLlxg27ZthR2OIORJWFgY8fHxaY+sBnrlJ7PZzPr164vNILJUIlELQhHl7u7OSy+9BMC0adMKORpByBs3N7d0j8Ls9haJWhAEu2nbti0KhYK//vqLU6dOFXY4glCspXZ7/7cbvqgTiVoQijAfHx/efPNNAKZPn17I0QhC8ZXa7f32228Xdig5JhK1IBRxI0aMAODXX3/NMHJWEITs2bVrFzExMcVqtHcqkagFoYhr2LAhs2fP5uLFi7i5uRV2OIJQLK1du5Znnnmm2HV7g0jUglAsDBo0CD8/v8IOQxAKnNlsBrJekW737t00btyY77///pHHKI6jvVOJRC0IxYxYmUt4Wuh0Ok6fPg3AwYMHM91m6tSpHD58+JGVxnbv3k10dHSx7PYGkagFodi4efMmr776KvXr189VSVJBKE66dOmCt7c3Z86cAWyrYXl5eTF//vx023Xt2hVXV1d69eqV5bGKc7c3iMpkglBseHl5cfDgQeLi4ti8eTPt27cv7JAEId+sWrUqW9t169aNbt26PXKbH374wR4hFRrRoi5gc+bMITg4mIYNGxZ2KEIx4+Liklbze+rUqYUcjSAIBUUk6gI2aNAgQkJCOHLkSGGHIhRDgwcPRqVSsW/fPo4ePVrY4QiCUABEohaEYsTf358uXboAogCKIDwtRKIWhGImtQDK6tWrCQsLK+RoBEHIbyJRC0IxU69ePVq2bInFYmHBggWFHY4gCPlMjPoWhGJo/PjxXL58+bGjXQVBKP5EohaEYqhFixa0aNGisMMQBKEAiK5vQSjmrFarKIAiCE8wkagFoRhbvnw51apVY926dYUdiiAI+UQkakEoxi5evMilS5dEARRBeIKJRC0IxdigQYNwcHDgwIEDHDhwoLDDEQQhH4hELQjFWKlSpdJGfk+bNq2QoxEEIT+IRC0IxVxqAZTff/+d69evF3I0giDYm0jUglDM1axZk9atW2O1Wvn+++8LOxxBEOxMJGpBeAJ8+OGHgG3N3oSEhEKORhDsZ8uWLTRt2pQlS5bk+VixsbFMmzaNDh06MGDAAMaPH4/JZMp7kPlMJGpBeAK0bt2aQYMGsWnTJlxdXQs7HEHIszVr1tC4cWPatm1rl4GSv/zyC1WqVCEmJobly5fzww8/MH78eNRqtR2izV+iMpkgPAEkSWL27NmFHYYg2E2DBg3Yt28fNWvW5PLly3k61pgxY5g+fTrr16/n5ZdftlOEBUe0qAXhCSTLcmGHIAh5Ur58eTQaDXXr1s3TcSZNmsQ333zDsmXLimWSBpGoBeGJEhUVxccff8xLL70kkrXwRNBqtbned9u2bYwZM4bOnTvTsWNHO0ZVsESiFoQniCzLzJkzh507d/LPP/8UdjiCkGeSJOVqP5PJxLBhw5BlmXHjxtk5qoIlErUgPEFKlixJz549AURZUaFISUhISPcwGAz5er41a9Zw8eJFGjVqxOXLl+natSv16tUjMDCQbt26ce3atXw9vz2JwWSC8IQZMWIEP/zwAxs3buTy5ctUqlSpsEMSnhA+tTxx0+SsfedosMLfEQQEBKR7fty4cYwfP96O0aW3du1aACIjI0lKSmLRokUolUpmzpzJp59+yrZt29i3bx/BwcH5FoO9iBa1IDxhqlatSps2bZBlmRkzZhR2OIIAQFhYGPHx8WmP0aNH5+v59u7dC9hK677zzjs4Ojri4ODAJ598Qrdu3YiOjqZ37975GoO9iERdwObMmUNwcDANGzYs7FCEJ1hqAZTFixcTExNTyNEIAri5uaV7aDSafDtXcnIycXFxAPj5+WV4/YMPPgDgyJEjnDt3Lt/isBeRqAvYoEGDCAkJ4ciRI4UdivAEe/7556lTpw46nY4FCxYUdjiCUKAers7n5uaW4fWmTZvi4eEBwPnz5wsqrFwT96gF4QkkSRJjxozhwIEDdO3atbDDEYQC5e3tjSRJyLKcZUldf39/4uLisFqtBRxdzokWtSA8oTp16sS0adMICgoq7FAEoUCp1Wpq1aoFkGXXdur87MqVKxdYXLklErUgCILwxOnSpQsAW7duzfT1GzduUKFCBWrXrl2QYeWKSNSC8IT7999/6dChA7t27SrsUAQhx8xmMwAWiyXT13fv3k3jxo0zLPE6ZMgQ/P39WbduHVeuXEn32ubNm4mKimLixIm5LqhSkESiFoQn3MqVK9mwYYMogCIUOzqdjtOnTwNw8ODBTLeZOnUqhw8fZuzYsemed3Z2ZtOmTTg6OvLWW28RGhoK2LrChwwZwscff0znzp3z9w3YiUjUgvCEGz58OJIksXXr1mIxwlUQwNZ17e3tzZkzZwDbWuteXl7Mnz8/3XZdu3bF1dWVXr16ZThGnTp1OHjwIOXKlaN27dpUqVKFAQMGMGnSJCZPnlwg78MexKhvQXjCVaxYkddff53169czffp0fvjhh8IOSRAea9WqVdnarlu3bnTr1i3L14ODg1m/fr2doiocokUtCE+B1AIoS5cuJTIyspCjEQQhJ0SiFoSnQLNmzWjYsCEGg4F58+YVdjiCIOSASNSC8BSQJCmtVT1nzhz0en0hRyQIQnaJe9SC8JR46623aNWqFW+99VZhhyIIQg6IRC0ITwm1Ws3OnTsLOwxBEHJIdH0LgiAIQhEmErUgPGX0ej2LFi1i8ODBhR2KIAjZILq+BeEpc/v2bfr374/VauW9996jZs2ahR2SIAiPIFrUgvCUKVeuXNqAsunTpxdyNIIgPI5I1ILwFEqdqrVixQru3LlTyNEIgvAoIlELwlPomWeeoWnTphiNRmbPnl3Y4QiC8AgiUQvCUyq1VT1//nxSUlIKORpBELIiErUgPKU6dOhAuXLliI6OZunSpYUdjiAIWRCJWhCeUkqlkhEjRvDyyy9To0aNwg5HEDK1ZcsWmjZtypIlS3J9jGHDhiFJUoZHcal7n+3pWV988UW+BfH555/n27EFQcja4MGDGTJkSGGHIQgZrFmzhqlTp3L48GEABgwYkKvjREVFsXDhwgzPe3l5ZbqGdVGU7UQ9fvx4JElClmW7BiBJkkjUglBIJEkq7BAEIVMNGjRg37591KxZk8uXL+f6ODNmzGDgwIH0798/3fMuLi44OTnlNcwCke1E7ePjw7fffmvXk8uyzOjRo+16TEEQci4iIoLZs2fz9ttvU6dOncIORxAoX748AHXr1s11ok5MTGTJkiWcOnUKLy8ve4ZXoLKdqN3c3PKlm+Drr7+2+zEFQciZkSNHsnz5csLCwli2bFlhhyMIabRaba73nTt3Lm5ubmzfvp1WrVrh6+trx8gKjhhMJggCw4cPB2DVqlWEh4cXbjCC8JDc3p7R6/XMmDGD8+fP88477+Dn58cbb7zBxYsX7Rxh/st2ovb29s6XAPLruIIgZF/9+vVp0aIFZrNZFEAR8kVCQkK6h8FgyNfz7d+/n4CAAAIDAwGwWCysX7+eOnXqsHLlynw9t71lO1Hv378/XwLIr+MKgpAzqQVQFixYQFJSUiFHIxRF6sa+qJuWytmjsa27OSAgAHd397THN998k6+xtmrVisOHD3Pjxg1CQ0P57LPP0Gq16PV6evTowY4dO/L1/PYkur4FQQCgbdu2VKpUibi4OBYtWlTY4QhPmLCwMOLj49MeBTmQOCAggC+++ILjx4/j6+uLxWJh0KBBdp/FlF9EohYEAQCFQsGIESMAmDlzJhaLpZAjEp4kbm5u6R4ajabAY6hWrRpbt25FoVBw+fJljh07VuAx5EaBJeqYmJiCOpUgCLnUq1cvAgICeOWVV0hOTi7scATB7urVq0fXrl0BuHr1aiFHkz0Flqjr1q1bUKcq0ubMmUNwcDANGzYs7FAEIQMnJyeuXr3KnDlzcHNzK+xwBCFfvPjii4Ct6ElxkO151LklyzIHDhwgIiIiv09VLAwaNIhBgwaRkJCAu7t7YYeTgcFq5awhmeP6ZE7qkwhQaxjqWQYnhdLu57LKMonocUMrKmQVIWq1urBDEIR8Vbp0aZRKZbFpMGU7Ufv6+hIVFZWfsQgFTJZlbpoMHNcnpT3OGVIw/meAxebEGOaUrkhtrbPdzn3cEs63hl2EynE4oaasogQBkgeBihKUVZSgrORBgMIDJ8nBbucUcubQoUMcPHiQYcOGFXYogmBXZ8+epXPnzvj4+BR2KNmS7UQ9fPhwxo4dm+sTiRZT4UuwmDmhT06XmGMs5gzbeSpV1NO6UF3jxJqESK6a9LQLPccob38GliiNIg8/y3hZxyzjv2wxh6Q9l4KJC9Z7XOAe/Gf8krfkTKBkS94BCg8CJdu/pSU3VJIYC5lfLl26xDPPPINCoeD1118nKCiosEMSnlJms+1vVFaDG3fv3s2oUaPo1q0bQ4cOTXs+JSUFSZJwdHRMt318fDzr169n7dq1+Re0nWU7UQ8ePJipU6fy22+/0bhx42yXdbNYLBw4cIDnn38+10EKOWeWZS4YUjiuT+KEPplj+kSuGPX8dzKCGokaWifqaV2op3WhvtaFsmpN2oXVgBKl+OTudbYmxfJlVBh7UuL5vlQFSqly1tKVZZntlovMNPxNLDoA3lTV5F2HxsTLem5aYwmzxnFTtv0bao0lFh1RcjJRcjLHrOmrZalQ4C+5U1ZRgkoKb95W18FNyn2pQSG9ypUr8+KLL/LXX38xa9Yspk6dWtghCU8hnU7H6dOnATh48CD9+vXLsE3qClshISFpidpiseDv74/VauWbb77h3XffRa1Wc+7cOaZPn87PP/9MqVKlCvS95IUk52Ai2YQJE/joo49ydQO+bNmyhIaG5ni/J1XqPeqoqCi7FIu/YzZyTJfECX0Sx/RJnNIno5OtGbYrq9akJeV6Wmeqa5zRKh7dMpVlmRXxkXweeROdbKWEQsW0UuV4xcUzW7HdssYz2bibQxbbz7+85MlIzQvUUpZ+5H4Jst6WvK2xhMkP/g21xmL8T9O7vOTJdO3r+ChcsxVTcWAymdi6dSuvvfZaodw3/uOPP3jttddwdXUlLCysSI6pECA6Ohpvb2/i4+PzbQBg6t+r2KV1cXPK2XiVhBQLJXqeyHF8Xbp0YdOmTaSkpKQ95+npycSJExk4cGDacytWrOD999+nZ8+e6arqzZkzhxkzZhAWFoaPjw/NmzenVatW9OzZE5Uq34dn2VWOEnVsbCyyLOPpmb0/0A+LiIigTJkyOd7vSZWXRJ1itXDGkMJx3YMu7AizMcN2LgoFddOSsu3hrcr9H/wrRh3v377CWYPtF6enuw/jSpbNcqCZWbawynSShaZDGDDjgJI+6kZ0U9dDLeV+cJpVlrkrJ6Yl76Wmo0TJyfhKLszQdiBIkfPPZ1FU2IlalmVq1KhBSEgIU6dOTatcJhQtT2qiFh7I0WVFiRIlcn0ikaRzxyrLXDPp0yXlEEPKf2/logCqOjhR19GZ+veTckUHR5R2HBtQ0cGRzQHV+TY6nHmxt1kaf48DugTmlqpIjf8MNDtnucMk4y6uWG0DEOsr/BmpaUWAwiPPcSgkidKSG6Vxo5GyLM2U5Riu30CoHMt7ul+Zom1Hzce01rMrkVj2spYGtKYUQXY5ZnEhSRIjRoygf//+zJw5k6FDhxa7loggPAnEb10RE2Mx2QZ83U/MJ/RJxFszDqLwUapt95QdbUm5ttYZ53yYQvVfGoWCz0uWpYWTO8PuXOWyUU+bsHOM8Q6gv0cpdJj4wXiAteZTyIAbWoY6PMdrqqr5NqCwtMKNBY4d+Vi/kXPWuwzRr2Oi5lWeVZXL87H/YCHnOUQ89+jG/+wQbfHSvXt3xowZQ2hoKL/99hudO3cu7JAE4akjEnUhO2NI5lqsKW3Q1zWTPsM2WkmipsaZeo62wV51tS74qRwKdSR9C2d3dgbV5KM719iWHMf4yFC2GC9jdblMNLaKVq+oqjLUoRklJKd8j8dDcmSW9k3+Z/iD/ZYbjDRsZpT8Am3Vwbk+ZhgXOM8hAG5yHgsmlDxdc4y1Wi2DBg1i8eLFYuaGIBQSuyfqYcOGkZSUxE8//WTvQz+ROt+5gsIlfbdxBbWWuvdby3W1LgRrHFEXwalIXko1i8tUZm78DRaa/yXS0VYmtoTswnjHF2mkLFug8ThKar7VtOEb4y62ms8z0fgXMXIKPdT1c5xkZGR2sCztaxMGwrlMILlP/MXVJ598wtixY0W3tyAUErv/5v3yyy/ExMSIRJ1NbpKChk7utsFe9xNzCWXx+INolWXWmc+wTr0frdoIskRcUiluJvqxwd1KTW8rjo8ZUW5vKknJ/xxexEtyYpnpGPNM+4mWkxnm0DxH878vcJgwLqJGgx8VucE5rnHmqUzUTk753yMiCELWil4z7SlzIKAGv/hX5WNvf1o5exSbJH3VGs17+rVMMe4hGSPVFb4s1Hamk6IRsqxkUdxdXgs9y3lDyuMPZmeSJPGBw7MMc3gOgDXmU4w3bMMoZyzukhkLZnayAoAmtKMmtuNc50z+BFxMmEwmVqxYwfXr1ws7FEF4qohEXciK230/vWxmvnE/vXQrOWu9gxNqPnRowQJtJ6qrfPjCJ5AVflUoqVRzwajj1dCz/BR7p1DWfe2irssEzcuoULDDcomP9ZtIljNOY/uv4+wkmgiccKMpr1OOmgDc4jKG+8VankZ9+/ale/fuTJ8+vbBDEYSnikjUQrYdtYTRQ7eCn01HsWClhbICKx2700ldG+VD99BbOXuwK7AmLzh7YJBl/hd5kx4Rl4gymwo85taqKkzVtscJNUesYQzS/0aMnHUr34COvawBoAWd0OBICXzxwAcrFm4SkuW+T7pevXoBsGjRImJjYws5GkF4eohELTxWnKzjS8MOhujXES7HU1JyZpKmDZO0bbKsBOatUrOsTGW+KhmIRpLYmRxHq5tn2JUcV7DBA42UZZmjfYsSOHLRGskA3VrCrZnHcYCNJBOPJ6Wpz0tpz5enFvB0d3+/8MIL1KpVi+TkZH744YfCDkcQnhp2T9RdunShZ8+e9j6sUAhkWeYP03m6pCxjq/k8EtBRVYuVjt1poarw2P0lSaJfiVL8UbYGVRwcibSY6HbrIp/fu4nemrG8aX6qqvRhgWMnykhu3JLjGaBby0XLvXTbJBLLfjYB8ALdUD401jK1+/sapwsu6CJGkqS06mTff/89RuPjbyMIgpB3dk/Us2bNYvHixfY+rFDAIq1JjDBs4AvjDuLRU0Hy4gdtJz7StMRZ0uToWNU0TvxRtgZ9PXwB+DHuDm1Cz3GxgAeaBSg8+EHbiUoKb2LRMUK/gTvWxLTX97IGE3r8qUw1Gqc9n2S9QqBcGYB7hJJMfIHGXZR06dKFUqVKERERwZo1awo7HEF4KuQpUdeqVYujR49m+frOnTv53//+R9++fTNd9UQomv4xX6en7hcOWUJxQMn76qYscexCjTyU5XRUKJjoE8TSMpXxVKoIMabwSuhZfo67W6ADzbwUzszTvpWWrD81bCJFNhJJOMfZCcBL9EDCNsgvzLSGQ/quhOiH42e1rbbzNHd/azQaBg8eDNhWLSqMQYKC8LTJU6I+e/YsTZs25csvv8SaSVfmCy+8wFdffUXLli1ZsmRJXk4lFACDbGa6YS+fGDYRh55KCm+WOr5DT4cGqPKwiMbDXnIpwe7AmrRwckcvy4y6d4NZsRF2OXZ2OUsavtO0w1Ny4rI1igmG7fwlr0DGSlUaUZZqAJjlJK6ZbPdik+RLBOnP4GoxcO0pTtQAAwcOxMnJCQ8PD+Li4go7HEF44uUpUSuVSsxmM+PHj+e5557Lcn5lz54987Sgh5D/blhj6K9fwxrzKQC6qOqwUPs2gQr7/9x8VA784leFT738AfgmKpylcXftfp5HKaVwZZKmDWoUnJFPcEk6goSCF+iWts1N03LMxOMolcVFqoRECjUNd4gx7ynQWIsaLy8vLl26xO7du8XvtSAUgDwl6qCgIDZs2IC3tzcHDhygdu3aLFq0KNNtxS900STLMhtMZ+mtW8VlaxQlcGSapj3DNM1xkPKv+IpCkhjh5ccwT9uqaqPu3WBDYnS+nS8zNZWlGa15gSoO1wAoaa2PN34AGOUYwsy/AFBRPYj62oV4KZuhAAKM1zhrnIycyXrfTws/P7/CDkF4SmzZsoWmTZvarVf2448/RpIkbty4YZfjFYQ8JWpJkmjXrh1nz57l9ddfJykpif79+/Pmm28SHR2dYVuhaEmQ9Yw1/MEk4y4MmGmkCGCZ4zs0UQUVWAwjvfzp5e6DDAy+fbXAp28FquLwUCZilhX8pldxxnIbgBumxVjQ4aqoRknl86gkJ2o7TCX+/opcd81rOGMcifkRc7KfBpGRkWzevLmwwxCeQGvWrKFx48a0bduWAwcO2OWYf//9d7Es2GOXJlPJkiVZt24dixYtYsSIEWzYsIFDhw7x008/8corr9jjFIKdnbJEMN6wjTtyIkoUvO/QlK6qujmqh20PkiTxtU8Q8VYL6xOj6RdxmdX+VWnkmPn8bHuyYEorFSpbapIsqxmp38w8bUvCzb8BttZ06kWmJCnwdHiLEMViKhtjibTs4Zi+P7U1U9EqSuV7vEXNlStXqFGjBpIkERYWhre3d2GHJDxBGjRowL59+6hZsyaXL1/O8/GSkpLo27cvGo0GnS57FQa/+OKLPJ83K59//nm2t81Tov7viM++ffvSqlUrevXqxd9//02bNm344IMPmDx5cl5OI9iRRbayxHSERabDWJHxk9z5QvMKwUrfdNulWG9y07QMMymUVLbEW9kMVT4tV6mQJGaWKk+CxcyulHh63LrI7wHVqK5xfvzOeXCMv4jhDs548K5yKKGKLVy2RvGH4SsqYaKEogGeysbp9ilPLfaqXEByp4YhliT5Ekf0vailmYK7sma+xlvUVKhQgRo1anDs2DHmzZvHZ599VtghCU+Q8uXLA1C3bl27JOoRI0bQuXNnli9fzs2bN7O1z/jx45Ekye6zGyRJKrhEHR+fcT5pUFAQe/bsYcqUKXz++efMnTuXnTt3ipKDRcBdayLjDds4abWNsn5VVZWPHFriLDmkbWOQo7huWkiEeT0yFgDuWXagQIOXsim+yhfxyoek7SAp+LFMJbqEX+CIPomu4RfZEBBMOQetXc+TykAKe1kLQEs64SG5852mHZ/o51NBPg8SlFN/kGE/PyqiRkukUk+Q9ituG2aQJF/muGEgwQ4T8FW9mC/xFkWpBVC6devG7Nmz+eSTT9Bq8+fnJTy97PGZ2rp1K8ePH+fgwYMsX7482/v5+Pjw7bff5vn8D5NlmdGjR+donzwl6qioKCZNmkS/fv0oWbJk2vOSJPHJJ5/wyiuv0L17d86cOSPuUReyPeYrfG3YSSIGnFDzqeZ5XlZVTXvdLCdx07SMUPMvWNED4K1ohrOiIvcsO9HJYURadhNp2X0/aT+Lr/JFvJXNUEqOdonRSaFkmV8V3go/zzlDCp3DL7AhIJjSaofH75xD/7KBFBLwogx1eQGwjQR/TxGGwSoTIgdwyZLI+/+ZlaZETRDBXOY44Yo7NNIu5Jzxc6IsewkxTsBdUeOp6gbv1KkTI0eOJDw8nJUrV9KnT5/CDkl4wuQ1d8TExDB48GA2b96MWq3O0b5ubm5pNe7t6euvv87R9nkaTDZu3DgMBgPz5s3jypUrGV6vWbMmR48e5ZNPPhGJupDoZRPfGnYx2rCVRAwEK3z52bFrWpK2ykbCTKvYr3uDG+ZFWNHjpqhJPc0CamunU9FhEE20v9FIu5xAVW8cpQCsGIi07OKscQz7dC9xxjCKu+YdWOS8ryzlrlSx0q8q5dQawswGut66QKwle8tTZlcsdzmQSanQeMs5DNYDyEj8RR2Wmo7yh+l8hv1Ty4le5wwqyYlaDt/hoaiLFT0XTVPsGmtmLnCYixxBT3K+n+tx1Go1Q4cOBWDatGmiAIqQpYSEhHQPg8FQIOd9//33GTp0KMHBxXct+Ty1qMeNG/fYbdRqNd9++6240i4EV6xRfK7/k+tyDBLQTV2X7uoamKRkQuUIoi17iDNtwCrHAGCV3ElR1+SW0p3j0kp0/IATblSWGlBVakgFhw+oIH9AknyJu+Yd91va4dyz7OSeZScKNHgrn8NH+QLeymdz3dIuqVKz2r8a7UPPcdGoo/utC6zxr4azIu9FVxKIZhlfYMZIAFWpSqO0166a5gBQRvkar0ov8rPpKN8Yd+Kv8KDmQ1XZUhP1TUKwYEIpqaniMIrD+neIsuwl0ryXkqoWeY41M9c4zWq+A0BCgR8VKU8tylMLfyqnq09eUPr378+ECRM4e/YsO3bsoHXr1gUeg1AwIqup0Lvk7DOWmGRrpAUEBKR7fty4cYwfP95eoWVq5cqVREZGMmzYsFztn18DJHN63Gx/x3v06MGyZctyHFCqiRMn5ml/4QEZK3pS0JGIjiRS7v+rI5EUktDJiVySw7hmvU0pjZFAyYKLJBMl7WMG4GHREWSMxUW2LTtpkJSEqt25q3QBKQwISztXPFHc5hp7WYM7JakiNaSq1JByDgOpIA8iUb7IPfNf3LP8hU6+xT2L7f8KtHgrm+GjfPF+0s7ZfaYAtYZV/lV5I+w8x/XJ9I24xNIyVdAoct8JlEQcS5lALHcpgS8dGZFWKjTGcphY6xEkVJRTD6CqVJob1lj2Wq4yUr+ZmdoOVFLabu/4UhYn3EghgXAuE0gwLorylFX14KZ5CRdNkymhbJgvg+/O8DcAarSY0BPOJcK5xD5+pSQBDGQKCuxTRS67PDw86NevHwsWLODixYsiUQuZCgsLw83NLe1rjSZnawbkVEREBGPHjmXPnj257tHdv3+/naPK3XGznag3bNiAyWTKcR8/gF6vZ8OGDTne72lgIIU4LOmS7X+Tr+3fB8/pSUbmEcU2JNvD66GcZgacrQbKGePwsNruQVtRkqSujFVVi7JSCargghMuOOKKIy444kIkYVzkCFc5TTyRHGYrh9mKFhcqSXWpKjWigkO/+0n7AvfMf3HX8hd6OSLPSbuKxokVflXoGH6efSkJDLpzhQWlK6HMxS9dCoks4wuiicANb3oyHje8ANvgjtTWtJ/qLRwVtiIsn2teYqA+nsvWKHrqVxKs8KWNKpiXVJUpJ9XgHPu5zhkCsXWplVP3465lO3o5guumhVRyGJrjOB/FgonzHAKgG2NwpyTXOM11TnOBI0QSxg3OpS3JWZDGjBnDmDFj8PX1ffzGwlPJzc0tXaLOb++++y4TJkygbNmyBXbOlJQUQkJC8PPzo3Tp3K+N8F/ZTtRJSUm0b9+eN954I0ej8PR6PevXryc5ufDvpxVFs9SD0ZLzix+wtaqc7idUR1zRWxWcssSQKINFdqCFMpjmymDUcgpxpvXEWf4BQEKNv6oTQeo+OEgejzyHP5WpywuYMHCVU1zkCJc4RgoJnOFvzvA3SlSUk2pSRWpIFYfuVJAHk2g9zz3LziyS9nP3R483fWzSruvowuIylekRcZEtSbF8evc6U3zL5egKWU8yy/mSe4TiQgl6MQ4PHgx+jLTsJsEaghJHgtQPbtE4SQ5M0bRnmnEv/1iuE2K9S4jxLjON+2jpoEChhmvyaVpKnQFQSlqqOHzCKcMIwsy/UFr1Gi6KitmO83GucgoDKbhQgrJURUJBPV6gHi+wiQUcZwfnOFAoiVokaKEomT9/Pk5OTvTo0cPux/7+++/T/i9JEkOGDAFg/fr19OvXL63+/cCBA5kzZ45dzpmjmw3bt29n+/btOT6JLMtiMNkjKFHj9FAr1glXtPf/TU3CD/8/dTvV/QRvli0sNB1iqekoMu4ESiX4QvMKQQol100/cdP82/2pVhKllK9QXj0wrdWYXWo0VKURVWmEFQthXOQiR7jIEWK4wxVOcIUTbOEH/KRKVFE2pKqyA+XlQSRZL3DX8hf3LDvvJ+0d3LPsQIkj3srmBKg6P3IOcnNnd+aWqsiA25f5JSESd6WKz7wDsvWZMqBjBRO5zTWccKMn4/DkwZWuLFu4apoPQICqKxrJK93+PgoXJmnbECOnsM18gc2m81yTo/nbZKCFGkK5xHzjPtqpauOncMdb2YySyueJtOzmgvEb6mt+RJLss5rsOWzdZcE0QfrPONDqNOE4OzjPQdrwboF3fz/sxIkT+Pv7p5sJIggFafLkyVy7du2RfyPKlbNVGVy8eDG9e/fO9rGHDx+Ok5MTo0aNom/fvgCEhITQuXNnTCYTDRs25LnnnmP9+vX8+OOP9O/fP0/vBXKYqGVZxsPDA2fnjIUo7t69m+lVtU6nIyYmJvcRPuGGmeZRipwlzYdFWOP53PAn56y2RS1eV1VnsLo+9yxr2W9YjgVbiUsvRRMqOAzCVVElzzErUBJIMIEE8xI9iSI8bSTyLa5wi8vc4jK7+AVPqRRVlI2oqnyJZ+QPSLZefChp3+auZRt3LdtwV9QkQNWNksoWKDKpMd7G1ZMp1nJ8ePc682JvU0KpYojno79vJgys5BvCuYQWF3rwOSXxT7fNbctWUuTrqHAnUJ311ben5ERXdT26qOpywXqPzeYQYqxn0Sp0bLHu4mfdSZ5RBtJX3YjK6o+IsRwi3nqaCMtG/FQdcvV9fpgZIxc4AkANmmZ4PYjqaffNr3OWCtTO8zlzY/jw4cycOZPPP/+cCRMmFEoMghAUFJTlbdqrV69iNpspX748arUad3f3HB9/xYoVvP7662lff/TRR5hMJlq3bs3WrVtRKBQMHz6c9u3bF3yi3r59Oy++mHlBh2rVqnH+fMapLAB//fUXL7/8cs6jewqoyf2Aiu3mi3xn2E0yRlzRMNKhOVU4y3F9Z0zYLo5cFdWoqB6Cp7KhvUJOR0KiJAGUJIDneItEYrjIUS5yhOucIYY7HGAjB9iIk+RGZWV9qiib0FB+D531CrfMv3PH8ifx1jPEG0ehlcoQoOpMGdXrqKT0F4Rd3X2It1iYEBXK11FheChU9PDwyTQuM0ZW8S03CUGDE935H6UISreNVTZy/f4ylkHqXqgkl8e/X0mimtKXakpf1svnOcUuaqgs7LXAQctNDlpu0kgRQFdlF5Iti7hinEVJZQscpLwtSnOFkxjR4YYX/lTO8LoCJdVozDF2cI79hZaomzVrxsyZM5k7dy6jRo3C0dE+c+wFISd27tyZ5WtBQUHcvHmTnTt3EhQUlONje3h4pEvShw4dYtu2bWg0GubPn4/i/oBXf39/uxX6ynafnJ+fX5ZJGh49Kf3FF1+kVKmnpwhEfkuRjXxl2ME4wzaSMVJLKsX3DqVxNI/louk7TMTgKPlTw+FrGmqW5FuSzowrnjSgNd0YyycspiMfUpPn0OJMCgmcZDer+Y7JUl/+UG7BoGlGPcdfCFL1RY07ejmCy6bp/KNrw2XjTPTWO+mOP9CzNEPvt6RH3rvOxkxW3LJgYi3TuMZp1Gh5hzH4kfFe8S3z7+jlO2ikkvirOuX4vVaUbMkwUJXCGseetFUFo0TBYWsYH5kNxOODmQSuGL9/zJEe70G3d9MM3d6pqt9vaV/gEBbsO/c8uzp06EBQUBBRUVFilodgF2az7bNssVgyfX337t00btw43b3j/FSqVKl09QJGjRqFJEm8++676RJ/VFQUYWFhmRwh57KdqPO6xNjSpUvztL9gc9Fyj966VWwxn0eBxAdKd/pJm7ll+hKdHIYaT6qoP+UZ7Vp8VS/l6v6o2SrzZ5iFXrsNvP6ngeH7jcw6a2JrqIULcVb0luwVtdDgSHWa8ibD+Jif6Mk4GvEa7pTEjJGLHGEjc/meT/nH4S4axyEEqofgJAViIZlQ83L26ztw1jCWBMu5tOOO8vKnx0Mrbu1+aMUtKxZ+ZyaXOIoKB7oykrJUzRCbWU7musm2JGs59bs5nj4GUI4aANzlJiUUEmM1L7LGsQftVdWRULFSrodVhtuWzRwy/Znj46cyYeAiRwHbveisBBKMM+7oSOI6Z3N9vrxQqVRpc1anT5+O1fr0LgUq5J1Op+P06dMAHDx4MNNtpk6dyuHDhxk7dmyBxNSoUSNGjRpFSEgIgwYNYu/evbi7u2eo3f3xxx/brQCQJNvpSMHBwYSEhNjjUE+FhIQE3N3diYqKwsvL67HbW2WZVeYTzDPux4yVYElPL+kKJvkEAEqcKKvuTllVt1zP3zVaZDaHWlh6yUJ4ctYfCwXg7yJRwc32KO+moIKbRKCLhErx+AFeMjLLNy5mS8hqSr+mxaNW+ntJfnIFKlm90ZoukGQ9nfa8u6IOZVXvUFLZHCsKBt25wobEGBwkiQCVBrUEwd4b8HE5jVVWEhbVDZOxCmpJwkGSUKOw/StJVHL4jSDNahylAJ7Rrsn0vnh2zOcj7nKTtxhBDZ5Ne/62NYGfTUfB/BMNpUvck92JVX3GB5rsF0IxmUxs3bqV8m28+F01Aw98GMqctLnfmdnCjxxlG3VoxetkrFVeEBISEggICCAhIYHNmzfTpk2bQonjaREdHY23tzfx8fH5Nv0p9e/VpSMNcc1xwRMzlRseyXF8Xbp0YdOmTaSkPFhK1tPTk4kTJzJw4MC051asWMH7779Pz549mT179mOPm9r1ff369Vx1fUdFRfHaa69x7NgxZFlGq9WyatUq2rdvD8COHTuYOnUq27dvR5KkLHsCcqLgyxgJORYjp/CFYTuHLKF4kMQ70lXKcAaTLCOhxE/1FkHqvhlGLGdXilnm9+sWVlw2E2mbYo27A3StoKKOt8T1BJmrCTLXEq1cTZCJN0JokkxokszuCOD+4h0qCcq63k/grrbkXcFdws9ZSjf3+fK5q8weuByjwcjFyck4BSoZsuZtUireJoyL3JKuckt5FZTgb61NkMkElovEW09yxngSR8mPAFVXpvu2IclqZWdyHFdNOpr7bL+fpCW2R7TjRrIvEIdW0uOtjMFbFY23MoaSqhh81f8C8FfS6wSoLASoc/erUI5a3OUm1zidLlGXVrgxStOKW6qqnDF0w0eKJ9I8h3tKJZ7Kejm6mApR2NbitY32fvSFUHWacJRtXOAwbemPMpdT//LCzc2N/v37M3XqVKZNmyYStZArq1atytZ23bp1o1u3btk+7o0bN3IZkY23tzcHDhzgwIED3Lt3jyZNmqSbM52QkED//v3tMogsVbZb1AMHDmT+/PlZvv64FvXj9n/aZLdFfdB8ky8M2zEQSyvO0Vi6hHT//qOvsjXl1QNxUgRkuf+jxBlkVl81s+aahXij7TkfLfSorKJDkBJHVcakIMsy0Qa4mmBL2tcSZK4mWLmWIJOcxW1RjQKCXG1JO0Bj5revv+fusSM0q18RvwBfVv/0O+UqBbJ63xIMDklc4AgXOMx1zmC9fxHgYDUTZLZQ0hyLhK1GsApXyqjeINHyIiHK34hV7EcrW/AxVUUrA9xFwT0UUmKmcd0w+vPZvU/RSEoGe5bhgxJlcMxh5bPLHOcXvsYDH4YxN9Ntbpv+IMT0oFtMQombosb9ZTQb4qiohEZyzZCETSYTm7Zt4Hyb3zFLRvrzLWWo8Mh4rFiYxnskE8c7jKES9XL0fuwlNDSU8uXLU6pUKU6fPo2np2ehxPE0eFJb1IXt8OHDNGrU6PEbFoBsJ+oSJUoQHR2dNqLtvx6VqC0WC97e3mKpy4c8LlGbZAvzjPv51XyYplyghRSCA7ZsWkLRkIoOQ3BTVMvVue/pZFZcNvP7dQu6+70yZV0kelVW8lpZJepsdF//lyzL3NXBlftJOzV5X0uUMWTR8+OolKniKnNx3kyS9v7J8M/eo9eQd9Je15PMJY5xgUNc4SQmDChkKz7mZPzNSWhlY7bjU+GGViqFo6IMWqkUWqk0CZZnGReZzH6dLZH7qxwYVzKQNi4lsj3v34iOb+mNFQtDmUMJMi/8MUP3PQbrAWpLMahJP13RikS02p8W6imUpnza8yaTiRUn53Kz4d+UoBRDmPXYFjXAVhZyhD+pw/O8zqBsvY/8sG/fPp555hkcHOy/+pnwgEjU+aN58+aEh4fz5ptv8vbbbxdq0s72dzw+Pp6ePXvSpUsXnJwydtulpKSwe/fuDDfPdTodGzZsICEhIe/RFhHJycmMGTOGtWvXYjabad26NVOnTrVbdaZQayzj9FtxkQ8wgtO4SbZVqVykylR0GIKnonGuCsiEJVlZesnC5lALpvtjfCq7S/StouJ5P0WuSnOmkiSJUk5QyklJs4cG+FtkmYhkW9f5ln8usvPYDSS/IFT+5dBZJE7GSdB1BIrW3Zj7z2aeC42kfFlboQwtztSiObVonlYZ7YJ0iIvqo9xRJeFp0eFnTsDdasCEAq2iNJ5SFRyl0milMukSc6ZTr9Twq7/M5qQYxkeGEm420v/2ZZ5zcuPLkoFU0Ty+e9oBR/ypRCgXuMZp6vNSptuVV73AN0a4KpVmpqYpsdajRFkOcduyBxUmSprC+FUxnPrKd2lC27SR3XF+tgXuq2ej2ztVdZpyhD85zyHaMqBQur/B9odOEIqrffv2cfv2bX799Vc+/vjjQk3a2W5RKxSKPFcXs8dN9aKgT58+uLi40KxZM/bv38/s2bOpXbs2hw4dynYt9Mxa1LIss9UUwmbTUlpwlJKS7eJGK5Whgvp9fJWtczWK+3K8lcUXzfwVbk2rEF7XS6JPFRVNfPP+c82O65du8s4L/dCn6Plg9Lv0+bAXoUkyf92y8us1MzH3V7xTmo10rOJI1wpK/F0yf68WzNzgHBc4zAUOkSTH8bLUm2dom+v4UqwWZsfcZm5sBAZZRgn08SjFx15+uCsffT27h9XsZS3VaMzbfJLpNretCbypW4ISiW1OA3CWNGxjCQflTVQxpVDSHIVBUnJcW4ZAqQ4dGIJkUjJN0R9ZaeE9pmSYB54VKxamM5AkYunKaCpTP4ffDfsym81cuHCBGjVqFGocTyrRoi4YqUl77dq1BZ60c5So83QiO41+K2yRkZEsXbqUjz76KO25//3vf0ycOJHdu3fTsmXLbB3nv4k6STawQL8YL+sGAqQoAJS4UV79Lv6qt1BIOe8+PBltZclFM//ceTBF5llfBX2qqKjjbZ+yltmh1xno2XoAl0Ou0qh5feb+Og2l8kGJS4NFZtG/t1h4KhHJz1bWTwKal1bQrZKKul5SlhcTtpXEknHE1S6xhpr0jI8M5Y8k220aL6WKMd4BdHLzRp3FRdItLrOQ0QC8SHeepUOm23VK+ZlwOZ7vNG3xV6WwlPEAdJY/IkY/GZ0cxj2lG5c0JWzLi1oaclK5E0+5NIOl77Pdogb4g584zB/UojlvYN/FQXLi+vXrtGrViri4OMLCwnBxeXxRGSFnRKIueAWdtHP013rRokWkpKRgtVqz/UhJSXmi5lArFAoGDx6c7rmOHTsCtmH7uXHSdJDVuu7UkX8iQIrCigOBqj40c9xAWXXXHCVpWZY5cNfCgH0G3t1r5J87VhTAS/4KVrRyYOazDgWapAGm/m8Wl0Ou4lmyBBPnf54uSQNolBLvN/fnjRtbsEz7FMfrZ5CBvbetDNhnpMduI1tDLZisGa8pJRR2S9IAZdVaFpWpzCq/qlRy0BJtMfPR3etUuXKMzuHnmRF9i8O6RIzyg4sfPyrRAlvBlL9Yzj5+y/TYDZW2VXyOWK6yAds0knq8SFWpCdUcPgMkfCwJlLfYSoGeVNqqK1WzZr/bO1X1+yPQL3AYI/oc7WtPZcuWRaVSERcXl+daDIJQVJQuXZohQ4awb98+/v33XwIDA/n4448pX748H3/8MYcPH7br+bLdoi5TpgwRERG5PlHp0qW5fft2rvcvyo4ePUrjxo0JDQ3Fz88vW/ukXqH+crs/3q4nUEi2QUXOipeprxmGRsrZwuIWWWb3LVsX98V4249UJUHbQCU9Kyspm0U3cn7bvn4nI/uNQ5Ik5q6dxjPPZ10lLT42gQ6NuhIXE0+fSWNIrP8SW0MtGO7nxJJaeLuCijfLKXF3yP/uepNsZXHcXWbFRBBlST+kXSspaKB1oYmTG00cXamndeGQYh27WQlAczrRkrfTJdjd5iuMMWylieYG7qpQPPBhIFPRYCuzeck4lTDzKjSSDyna1zkgbQdZor/5O8qoy+UodhmZWQwhlju8zmDq0DJv34w8mDNnDoMHD6ZChQpcvHgxw4WakDeiRV10ZNbSnjJlSp6Pm+2/3nmdWrVgwYI87V+U/fHHH/Tt2zfbSfphzhxFIUEkwdTRrKCp9sscJWmTVWbDDTOddhgZddjExXgZrRLeqahkw8sa/ldPXWhJOuz6Lb4c/h0AfYd3f2SSBnAv4cbg/w0AYO3Embznl8CWVzW8H6zCSwORephzzsxrfxj45oSJG4n5W/VKLSkYUKI0p8rXY3dgTb72CaStiydeShV62co/ugQmR4fzZvh5qlw9yro7dXnWahu1vo+17OIXZB5cB9dT+uOjjMJdFQqyRAcGpyVpgArqD3CU/DHI9wgwRtLH/BUV/30pw0Ii2SEhpSXnk+zK2zcij3r37k2JEiW4evUqmzZtKtRYBCE/PdzS/ueff9JW6Moru1UmK+5GjhzJv//++8ht+vbtm7asWarY2Fief/55duzYkaNl/VKvUGdHtKac5yBedWiXszWWzTLrb1hYdtnMXdugcNzU0LmCks4VVHhoCndZUaPBSO9X3+f8qYvUaVyTHzfOQqVKfyV+K9pKXLJM9bIPWlgWi4Werd8j5OQF2rz9Ml/N+8x2PIvM9nArv1wxcyn+wUe2WSkFHcsp8dZKqBSglECpsPUmKKUHz6lSn7v/b14G0MmyzGWjngO6BA7oEtifkkikxQSAr1LNCP+r3NCsBqAJ7XmJHkhIJBPPt/IHKCUDpSzNeE85PMOxYy0nOG54D5CpoZzOwT+jee2117I9SPFh8UQxg/cB+ZFTxwrCmDFj+Oabb3juuefYt29focXxJBIt6qJJp9NRqlQp4uPj83wskajzqFevXrz//vs888wzOdov9YN/4t4V6pR8dBGLdPsZZdZcs7Dqipm4+9OIvTTQvZKtS9hZXTTW/Z4y9ntWzF+Dewk3Vu1dTCk/W5LQG2X+Pmfmz+Nmzt60tYhfra/igzYOONwvsHL2WAg9Wtta1ou2zKHuMw9WgpJlmWNRVlZctvDPHSu5/fAqJSjlJFHeVaKcm0R5VwXl7v/fKZNCL48iyzKH9Ul8dOcaV022+8HdS13CxW0DAI14jVfowxomc4HDJFqdcDV1YZzmtUyPd9E4hXDzajT4Er2rJ6+9/EauEjXAMr7gGqdpTieep3OujmEPERERBAUFYTKZOHz4MA0bFtxCMU86kagL3s2bN1m9ejWhoaHodLoM05JNJhPHjx/nwoULooRoYfvuu+9o3759jpP0wwIUHtnaLkov88sVM79ds6RVAPNzkuhZWUnbQCUaZdFI0AB7/viHFfPXADBh9hh8y/hwIczCn8fN7D1rJuX+VCyFBDLwxzEzV+9Y+ayLBh93BTXqB9Ohe1vWL9/MpJHTWbFzYVprXJIkGpRU0qCkkpuJVlZdtbD/rhWjRcYig0UGsxXM9//Nav0Qiwy3kmVuJcv8fQdSy6AClHaCcq4KyrtJlHOVqOimILhE1iPPJUmisaMrOwJrMjk6nPmxt1l+pzKN9a9S1+cPDrOV21wjjAtIspLThqpo5NtEmozsSInj75QEnndy5213W49MRfUgoi3/opPD0VT+C3gj1z+LOjzPNU5zij20pFOWK2/ltzJlytClSxeWLVvGxo0bRaIWiq3NmzfTqVMnjEbjYxfdsNfUV9GizqWFCxciSRL9+vVLey4yMhIvL69sTWXLbgnRW8lWll2ysPGmBeP9W7IV3GxzoF/0U2RrEYyCdDv8Dl1a9CEhLpFO7/eiyqu92XbCxM17Dz5mpT0lXq6r4sU6Km7eszLpVwOJOnB3gjFva6lTXklMVCwdGnUlMT6JkZNG0KX/W7mKR5ZlrDxI2pb7SdxgsSXq64m2CmrXE2WuJViJNmR+nPaBSj6rp8rWL95RXSLD77euq7idoaXvNiTJ9v5rmN9iuj4ai2Ql4m5NjGZbURWNJHGkXF1Kqmwt51jL8ftd4FBBMZwgbfZrGT/MhIGp9MdACj34nPLUytVx7OHSpUtER0fTpEnWK4AJOSda1AWratWqXLp0idq1a/POO+/g7e2d4W++LMvs27ePn3/+2S4t6mKbqLds2cLEiRMZMGAAvXv3znI7o9HItGnTWLx4MWazGX9/f7788ss8VU366aef2Lp1a1rRdVmWiYyMZNu2baxYsSJbx3hcor6aYJsDvT3cmtYqrOlpS9DNSilQFECRkpwymcy8234oF+5q8HmmI1afOpjvX1w4qOC56kperqemZqACxUMXGHdirXy5ysCV21YUEvR5UU2nZmrWLlrHN59Ow9XdhfWHVuJZskS+v4c4g8yNRNsCJNfvl0A9cs9WKObzeiraB2Xvj5TOauW76DAWxN6hous5ni/1J3H6sqwNewsfr4s4ahOIjgukvLkCCVYz100GhnqWYbT3g7rtV/QLuGldCEAV9Wj81W9meb4LlnsAVFX6ZHhtMws4xo5Cn1Mt5A+RqAuWq6srFouFu3fv4uqa9dRQWZbx9fXl3r17eT5n4fSD5cGaNWto3Lgxbdu25cCBA4/c1mAw8Morr7Bs2TJ27NjB1atXGTx4MC+++CJr167N1fkXL15M//79+f3333n11Vd59dVXee211+jVqxf16+e9AtTZGCsfHTDS+S8jf4TZknRjHwXzn1OzqIUDzUsri2SSjoixMnziUW5V+xSPtl9h9LYl6cplFAxp58CqT5349C0ttcsp0yVpgFIlFEx7V8tLdVVYZfhph4mvVht4tWt7qtSsRGJ8Et9/WTALunhoJOp4K3iznIqPaquZ08yB94Jtf5i+PWXmakL2Rpo7KhSMKxnI+oBgLPr6LLk6iLVhb6FESWmr7X79yyXgz8AafFbSNr96SdxdEh+aBlZW0QfjdVvr86LpGyLMGzM9V4ycwkD9agboV7LffCPD63V4HoAQDqInOXvfiHwWExNDcnLRiEUo2rZs2ULTpk1zNQ/fYrHw/fffU716dRwdHQkMDGT06NEYDFl0nWVD06ZN8fHxeWSSBlu3t70GTha7RN2gQQP27dtHpUqVHrvtyJEj2b17N4sXL6ZsWdsfw06dOtGxY0d69+7N9evXc3z+Pn36YLVakWU5w+PDDz/M8fHg/mCkexbe/9tI7z1G9t62IgHPl1Gw9HkH5jRzoEFJZYGU+swJvVFm5ykznyzS0WeGjivWmihdSqJVmujwjIp5Hzgya6AjbRuqcdY+OnaNWuKjDg4MaeeASgn/hFgYsdBI389HArBhxRZOHzlbEG8rgz5VlDT2UWCwwOhDJvTm7HdCNXJ0ZUdgDSaVrMacUpU4W6EeMzxtF3QhcgRm2cLLziWo6KAlwWphWfyDq29JkjBeaYWf4m0Azhu/4o75j3THN8kJ7DdM5SNWMYT1TDGs4qwlfb0CPyrhjR9mjJxjf26/DXbz3XffERAQwI8//ljYoQhFWE4aZVnp378/H374IYmJiVgsFkJDQ5k0adIje2Ef57vvviMmJoYLFy48dlt7zKGGfB5MduPGDT7++GPatGnDW2+9ZZduj/LlbasL1a1bl8uXLz/y3HPmzCE4ODhDWbcePXqwcuVKRo8ene01T/PKYDCku4pLXaRk7y0T604ZOB9ne14pwct+Ej0qSgS5SoAFk6nolF6VZZnLt2V2nLSy96w1bWCYLFsxhh6nZskoJox9FVvcJm5FWDGZrJjM9/81WTGbU/+V8fBwoEolj7Tjv1wHAr1VfPOrmbAombn7A2jSfRAHls/hm0+nsfiPuYVSMOPzOtBzL1xLlJl0wsjYOtm/xlUDHZ3ud9tbZYJkD9zQkICB08Zb1FSUZqCbLx9H3WRB7B16unihkRSYTCZAIsD6AVaFidvWdZwzjsdqUeAh1SPcuooI6284kgwSOGGku/wHX+qVTFT3IlB6cKugpqI5u5UrOWHdRS1LS3t+a3LM1dWVlJQUZs6cyXvvvZdh2p6QM7bPyZMntVFWs2bNR/6tz8rq1atJSkoiPDycUqVKkZyczNChQ1m0aBGrVq1i9OjR1KqV8zEbtWvXZvv27WkLM2X19+j69essW7aMhQsX5vgc/5Wj3xCDwcCXX37J8uXLiYyMJDAwkA4dOjB48GDKlCmTYfugoCD69u1L27ZtGTx4sF27urRa7SNfX716NWazmaZNm2Z4rXHjxgCsW7eO6OjoRw7mspdvvvmGCRMmZHj+y9MKlE6gwkJdKZxnpBt43NYTchuyXt07/+l0cPw0RMeAxQImWU2KYyn0zmWwOjzU5WPUYYkMxxp5C6XJTEikmk7d/srRudq0lqnwn7oA7co5sP1aTSKSSnDVvT1uzxm58M9PTBz9LQ1a1sn7G8yFV2VPltOAzWGgDD9BLUXuK+2VqakkwRdWXtxN2HUPtIBHxZLcAyYc2EuzOF3atn/t+AsIRhN8HbXfSdva1lYlksr2B/qO7MF+uRrt9Bdxd4rhbXkzYxIttD9SCVeD7VfcpDFCa4lbisusPrAI16hSGYMqIF5eXri5uXHjxg3GjRvHs88+W2ixPAlSUlIKO4R8kd1GWVZCQ0NZtWpV2kAvZ2dnFixYwJ49e7h27RoXL17MVaIGCA8P59atWwQEBGSaiywWC/fu3cNsNmeyd85lO1EbjUZat27NP//8kzYk/cKFC0yaNImZM2fy2WefMXLkyAzds6nFGvR6+9Ybflw38JYtW4AHP+yHeXp64ufnx61bt/j3339p3769XWPLzOjRo9N1jSckJBAQEICTSqZzRYnO5dV4asoDGeMtSEaThY2bb7Lyt6skJ5uR3DyRvMsgeZREuv+Bl60W5NhI5KgI5ETb4hUSQCY/E7VaYXuoJNRqBSqVIu05g8HKrYhk/jnoQLd3nsOzhCbdvm9YZRbvtLD+oBVtrY4oSlRg3/bZDB01CA9P91y/xzvhd1m7eD0tXm1GrQbVc7Sv5qKVny7JbFfUomvzOgS65O52hNkSwgXLXhIqOvJaNdt86nvxd/ki5hb/BvjwZZNgrGYzO3bs4KWXXkKtViPLr3DRMpF7ij9BYcWFytyQWjBH1lFH4cdzbmM4YR6EhxRKZ+0fbG/uyjeqXrhKtu+rgkjOsI9bTffTwzyOkgQ8KsR8dfr0aSZOnMi+ffuYOHFiocXxJIiOji7sEPLV4xplWfnkk4wr2alUKurXr8+1a9dynaS//fZbxowZA1Bg07OynainTJnC33//DdjWmf3oo4+oVKkSUVFR7Nixg1mzZvHnn3/y22+/ZWihuri4EBcXZ5eAs+vEiRMA+PtnXn7Rw8ODW7ducfLkyQJJ1BqNBo1Gk+H5X1oqCSyV8fmCJssye/+OYOGS89y+k4Lk5om2blXMygclLku5WWgYZKZekBV35xJcCYnmqxFLsJpNfPTlB7zyxvOo0hKzAqUy67nHACaTlUEj9nH1WgIzZp/l6wnp19lWA++/BtUCzExfb4CAulg8vmHKlC18O7lXjt+jxWJh9cLfmD3xR3TJOras2cbGI6txdn38utOpBlSXORVr4miklc+OyyxuqUabiznsTZRBoNvLOfkeRpWMs+RAT8/SfB93h+tmA38ZEnlZa7tVpFar7xc8UVNdHoenpS4ayRcvRVPm6Fcio6e1uirO6lI0VC/gsH4AHoTRWl7LELOBpqrGtFFVo53iPeK4R5h0gdXq7+jHRNzI/96kzAwZMoQpU6Zw6NAhjhw5kmnPl5A9uS2GU1zYe2zOnTt3eOedd6hSpUqu9p8xYwYAHTp04MMPP6RMmTIZpmdZrVZ2796dNjMor7J9o2358uVIkkTPnj3Zs2cP7dq1o2rVqjRr1owJEyZw/fp1nn/+eZo3b87Vq1fTnySPS2TmlF6vJykpCbAl5My4u9taZLld8cpeXIpAJbFz52MY+vE/fDnpGLdjrGir1UFZuS5mpSMuWmjfWMWc97X8/LEbgzt60rSBN6VLSsz5/GvMyfdo88YzvNPvVTw9tbi5OuCoVaFSPX6da7VawZhP6qFWKzh89B6bt97MdLuWNVXMfM8RLycjSlcfTji056d1YTl6j5fOXaH3KwOZPOZ7dMk6lEolMZGxLJmVvel0qZSSxFcN1JTQwOV4mWmnc9e1VUbhjp/khgUrJy23AHBWKOnjYeuSnh1zO9OrdYWkwk/1Jt7KZ7kpx3LZGoUSBc+rbNXtNJI3jbQ/oJL88ZCSeV7exXLTMbrqlvOBbgOepg54yWVIIIpf+LrQRoH7+vrSvXt3AKZNm1YoMQgFKyEhId0jLyOvc+v48eOYTCbmzZuX62OYzWZcXV1Zs2YNzz77LOXKlSMwMDDdo1y5cvTt25eqVavaJe5sZ9Br164BtnutmXFwcGDcuHEsWbKELl26cOrUKbsEmBsPdwU5OWXeWkq9eLB3l3xxcvtOMl9+c5ShH/1DyIV4HPzLo6ndBLOzFwoFvNlUxdIPnRjURkPF0g8GTFitVj4fNJHIO1GUqxTIqG9H5DqGoEA3+vepBsD8hecIC0/KfDsfBT8O98BdfxlJ6cCaE55MX6/HaHp015NeZ2DWlwvo1qofZ4+fx8XVmbFTP2bSQtt4geVzV3H3Vs7mOXo7SnzZQI0E/H7dwvbw3A32a5C27OWDi46+Hr5oJQWnDMn8q0985P7bzZcAaKwsi7v0oOdDI3nTUDMDgHJSJC0UfiiROGu9w7fG/RzRV0cju3KXm6xhChYKZzDSiBG2z83mzZuf+O7bJ8V5fzPnyppy9Djvb7uYDQgIwN3dPe2RVS7JL3/++Sdt2rShcuXKeRov1aNHD7RabbYGtZ47dy7X53lYthO1m5sbKpWK0qVLP3K7hg0bsmnTJoYPH/7YRS7yi4PDg/Wbs7qHYDTaCmV7enoWSExFSVKSiQU/naPPgN3s+TsCyd0L14bPYi1VDousoFaQgnnvO/LeK5pMp1Utn7uKf/86iEbrwKSfJuDkkv2u48y80b489ep4ozdY+GbKcczmzOcqO2slvh/uj+HYcmTZyp/HLXz0k557cZlvf+Tv47zdvBeLZizDbLbQqm0Lfjuwgo69O/BCuxbUfaYWep2BOV/nfJrQM75Kelex/aJOPG4iLCnnK3k1VNruER+xhKY9561S8879UqJz4+5mua8sy+wwXwSgtapyhtedFIFopdKAlU8c/Njg2JdB6mdxR8slq4Hd+orIsorrnGE7y3Icuz1Ur16dH3/8katXrxbIgE6hcIWFhREfH5/2GD16dIGcNyQkhK5du9KuXTvu3LnD0qVLqVevHufPn8/V8b7++muCg4P5448/Hrttbu+D/1e2E/VLL72E2Wzm4sWLj922VKlSbNy4ka+++oq//srZCGB78PT0TEvWWV05pd4z9/bO2brPxZnZbGX9puv0eHcna367iknhgGe9Bigr1UFndcDTVWJURw3f9dES5Jv5R+P0kbPM+tK2ZOknXw+jcvWKeY5LoZD49MO6uLiouXgpjhWrLmW5baky3vR9zY34TWORDYlcirAyeL6OI5cfdEEnxCUwYdgkBnQYSti1cEqW8mba0q+Z+vNEfErbft6SJDFiwiAANq/+kwunsz5nVt6rpqKul0SyGUYfNmHMqrB4Fuor/ZGAa3IMUdYHn9OBJUqjBP7RJ3JTm/kwkvPWe4TL8WhQ8Zwy8wGIHoq6AMRZjuOlcKa7Q31WO/Wkk6o2yVY3jhts9+gOs5UQDuYodnt59913c7U8rFD8uLm5pXtkNmYnPwQHB7Ny5Uru3bvHV199hVar5c6dO7z77ru5Ot69e/eYP38+q1at4ty5c4SGhmZ4XLt2jVWrVhESYp+5O9lO1F9++SUeHh6MGzcuW9u7urry22+/MW3aNBITH92FZ29KpZLg4GDAtmpPZu7etbVW6tSpU1BhFRpZltl/8A7vfrCHWfPOkJBopkTVymjrNCVB4Y5CAW81VbFwiCPP18q6nnVCXAKj+o/HbLbQukMr3uxpv0F4Jb0dGTbIdvW5fNVlzl+IzXLbrgM64ecYQ/TqQbhYI4lPgf8tM/DDnwb++H0XbzbpzvrlmwHo1KcDvx1YzvNtMpaMrdmgOi+/+QKyLDP98zmPHcH5XyqFxFcNHXB3gAtxMt+fzdn9ag/JkcoKW+v5qPVB93eAWkMHV1sLc5uXc6b7pramn1OWw0lyyHSbEsp6AMRaT6Q95y5p+VDTgqWO7+AhV+Ga0TbYciNzieFOjuK3N3ssBygIWSlRogRjx45Nq0q5f/9+QkNDH7NXRs888wzVqlVj+fLl1KpVi3LlymV4VKpUiW7duuX4b0pWsp2oy5cvz759+7hx4wZdu3bN1ht0cnLi119/pV69enkKMjdefvllIPN7BFFRUcTHx+Ps7Mxzzz1X0KEVqMtX4/l49AE+++IwYeFJuJT2xatpcxJdAjBbJVs39weODMiimzuVLMtMGPYtt8Pu4B9Uhv9N/9TuozFbtfDjhZZ+WK0y30w5jk6feeJTq1WM+nYE1sS73FjYj+cq2Fqjv+03M3mbB3F6DeUqBbJoyxzGTPkYVzeXLM855H/voXZQc/jvY/zzV85blb5OEhMa2Ebdrr5q4WxMzrrAG2ZynxpgkKetLsEJVy23zMZ0r1lkK39ZbPNKX8qk2zuVh8L2e5dgPYdFTj8Wo7zCi3aq6lw2BWG2lsRACr8yDTPGzA6Vr27dusUrr7xCjRo1ntjiHULR0bZt27QiWFk15B5l1KhRyLKMSqXC19eXsmXLZniULl3arn8fczQcu3r16hw8eJDRo0dn+ya5k5MTW7duLfBl7fr164dCoci01mpqObq33nqrwLpfUqVWS8vv70dklI5vp53g/aF7OXk6CpWTE2WbN0HvV4N4gxJPV4nRne53c/s8/mOw5qff2bV5Lyq1ikkLv3hk8suLIe/XpKS3llsRycz/MevPWKPm9WndoRVWk4Ejc4ai2/UNVn0iat8q+Pb4kffn/pRuHeus+AWW4Z33OgEwY9ycXBUoaFZKyWtlFcjApJMmLDm4ik69T73PfJV4+UGRk2oaJxprXZAliT+S0/cunLJGECUn44qGZ5SBWR7bUfJHI5VExkS8NWP51eqKUsgoOKmvhqPsym2usY2fsx27vXh7e3Pq1CnCw8NzXYNfEHKiWbNmAI8dc5WZgQMHUqtWLSIjI4mIiOD69esZHuHh4Zw/f95uU+dyNW+qVq1avPrqq9ne3sPDg4MH7XsPLPUPalZLiFWqVIkBAwZw5swZTp48me61n3/+GUdHx2x349vToEGDCAkJ4ciRI/lyfJ3OzOJlF+jVfxfb/wpDRkHFprVQ12xCRIoTSgV0fFbNT0MdaVkze8s2Xjh9iamfzQZgxIQPqF7XPlMOMuPq6sDID233Vjf/cZMDh7Lujh3xxSC0TlpCr4aTeH4PpS7OoEJJI2bUTFlvYeo6A3rj45NmvxE9cC/hxrWLN9iwYkuu4h5WQ42r2tYF/uu17I8Cr6/wp4LkRRJGfjYeTffaa04eAGxJjkv3fOpo7xaqCjhIWZdCkCTpwX3qh7q/U1VSeOOAkigZmsl9UckWzlo3c5cb2Y7fHjQaDYMG2cYLTJ061W7dhYKQlfj4eGrXrk1gYNYXullJneH0uEIslSpVYtSoUbkNMR27T3CeMmUKX3zxhb0Pm45Op+P06dMAj7wAmDJlCvXr12fgwIHExMQgyzKzZs1i06ZNLF26NNOqZcWVxSKzddtNer67k+UrL2EwWAiqEUSpFi25YSyJyQK1y9m6ufu/7ICTJnvdMsmJKYx893NMRhMtXmlG1wGd8vmdQN06JXmrg+1nM2XmSeLiM59vWcrPlzGTP6J8lSBGT/6In9d9zawPPOjWUo0kwfYTZgbN13H19qMTp6u7KwM+6QPAvEk/kZyY85KMXlqJQdVtSXPuOTNR+uwlG6WkYJCDrYTmr+ZT3LYmpL1mjrYVPDlmSOa2ydYlbZIt7DZfAR7d7Z0qtfs7znI8w2tqSZl2jzze7EV9fSL19RFctKx75DHXm87yWvKPnLLkvNswKwMHDsTR0ZHjx4/bbcUh4cnwuEbZ7t27ady4Md9//322jhcTE8PWrVuZOnXqY7fNavruG2+8kW52UVbGjx+fo+Nmxe6J+ttvv820prW9dOnSBW9vb86cOQPAwoUL8fLyYv78jMsgOjs7s3v3bp555hkaNGhApUqV2LlzJ0eOHKFjx475FmNBO3r8HgOH7mXqzFPExBrw9S9B8KvNCddWICpJwut+N/e3vbUEZqObO5Usy0z8eDKhV8Mp5efDhNljCmwFr3d7V6NcoCtxcUamzjyVZSurXZdX+W3/ct7u+wYKha0aWs9WDnzbW4uXq0R4lMywH/RsOGR6ZEutU58OBJT3J/peDD/P/iVXMb9RTkmwh20U+Iwz2b/X+owykPoKf0xY+cFouy1zLsbKonNqHJJtU9+2JsUAsM58hgT0eEpO1FdkXnXvYakDyuKtZ7DKGe8/11DYCqxcs55ELccjAXrj75jkzAd2XbdGM824h1h07DLnvP5yVry9venVy1ZtThRAEVJlp1E2depUDh8+zNixY9Oei4qKokKFCtSsWZPFixenFVe5evUqb7/9NlOnTuWFF1547PntNb0qr8ctdstcrlq1iuTk5HTLS0ZHRzNw4MBMt3d1dWXGjBlcu3aNK1eusH79+nz75he0GzcTGP35QUb+7yDXrifg4upA43aNSPSvx6VIdVo398IcdHM/bMMvW/jj1x0olUq++XE87iUKbtF3Bwcloz+ph0olsf/gHf7ckbNKZLXLKZn3gSONKysxWWDuFiMTVhpISMk8Wasd1Az7/H0Als1ZmeMiKGCrWjaqrq0Qyp9hVo7cy14XuCRJDHaw3TPbZrnIRcs9Zp61JXrHBA8ANifFEGaNY67RtkxlP3UjlNLjf32dpCDUlMCKgQRrxnmj1ZW2RG2yPlj+UinrOW/8OsOFjVm28pXhL0zYBsxdtdq3SMnw4cMB2LRpE5cu5Xy6nPBkyW6jrGvXrri6uqZd6IHtdmuLFi24ffs27777LgEBAbz88svMnz+fxYsX07Vr12zFkF+3YXJ63GKXqAWIidUzfdYp+g/aw+Gj91CpJJ59uTrujZ/j2G1XjObcdXOnkmWZZXNXMfHDyQB8MOZd6jQu+IubCuXd6dPDdj98zoIzRNzOWTUhd2eJCd00vP+aA2olHLhg4f25Os7cyDyBtmrbPK0Iytxvcrc0XXAJBR3L2wqhTDppxmTN3i9kVaUPLykrIwNfJ/3L8SjbftoEW6nbQ7oExut3YMBMfYU/HVQ1s3VcSZLwUKbep87Y/V1DURqQKSPb5nveVXljBSItu7hjSV/QYZXpBCHWuyhtS7Bwzc6JukqVKrRr1w5ZljPtIROeLtltlHXr1o2EhARmz56d9pxKpWLRokVERUWlrWS1bds2Jk+eTEBA9hejya8exJweVywEW4wYDBZ+XX+VVWuukKKz3bdp2KQssl9FDt2w/eC9XCUGvOJAixrKXH3I4mMT+HzwRPb9aasq92rHl+g9tJv93kQOdXqzIoeO3OP02WgmTTnO9O+eRanM/vWlJEl0eEZNjUAFX68xcCta5tPFet5poeadFmqUDy2okVoEpefL77Fp1R+8814nqtSslOOYPwhWseuWhZtJMssuWehbNXu/Zu85NGG37gqXVGFIXuG84RLAhptK1ClOaEteI0S+jRNqxmpeRJGDn20JRT0iLbuItRwnSN0n3Wu+kgvVJD1eJAIOOKhbEir9RZApjovG7/BQ1MFRUYYb1hh+NNm6Hoc7NGeacS+x6IiRU/CU8laZ7mFjx47l9ddfp1u3wvvMCUKq6OhovvzyS7u3rGNiYnK0vUjUxYDVKrNzTziLfr7AvUjbFJ5KlUpQqWlN9lxUY7wBSgW82UTNOy3VOW5Bpzp5+Ayj3x3HnVv3cNA48NFXQ+jUp0OB3ZfOjFIpMfKjuvT/YA/nzsey6tcrdOv8+EFU/1WxtJI5Ax2Zs8XIjpNmlu8xcT7Myv+6aNJ9v1KLoGz7fSfTPp/N/N9n5Pj9uzpIDK+p5rOjJn66YOblAAV+zo+/uPBTuFM7pQbHnE6jrnKI/q4BnL4ZQ4JBiZubret/sEMzSiuydwtie1IsVTWOtvvUJoi3nsIqm1E8NFJckiSa3i90opeqU06qx2bVYUpbQGON45JpCrU105hu2IsRC02UgbylqsVq00nC5XiuWqPxVNovUTdu3DhtvXhBKGyxsbGMHz/e7om60FvUTZs2JSEh4fEbCtly+mw08388x8XLcQD4lHSkZdua7A93Y/s524enTjkFH7TR5Gig2MOsVis/z/qFORN/xGKxULaCP9/99GWuWpP5oZSvE0M+qMm3U0/w8/KLNKznQ+VKHjk+jqNG4uM3NdSroGTGRgPHrlr4ZJGer3poKfHQutJD/vceuzbv4/C+Y/y78yDNXmyS43O9EqBg/Q0Fx6KsTDllZnrTx48Q1ZllLp+og9zoPLhGc1h5hUqSjmv+V1AorOj0bjRzyN7SfDuT4+gVcYnqGid2lK2OCjfMJJBovYi78sEa3LIsE4CtytllKtCEmiBJXHBwobY+jljLUZKsOo5ZwwEY4dACSZKooPAm3BLPVWtU2lxwe7NarVitVlQq0Z4QCsfixYsLOwQgHxL1hg0b7H3IJ8qcOXOYM2dOllMNUoXfSuLHxSH8s9/W2nFyVNG2Q1XCKc3vZ6yAnOduboCYqFg+HzSRf+9X5Xq140uMnfJJjtZoLggvtfLnwKE77PvnNt9MOc7871ug0Tx+9ZrMtKqtooyXxOfL9Vy5bWXEjzom9tTi52W70PELLEPXAR1ZOnsl0z+fwzMtG+Y4WUiSxKg6KrruNPL3HSt7Iiy0LPPoeH+5YiE6SYv7rTqkBB1hoeUwgeU0KD2isFqVRMWVZ5syju4ePhn23XzTglKCV8vazvFrgm351nOGFK6YDHgo6xBl2Uec9Xi6RJ0oX0RFJEZZyd+4Mwxf3PEmXopEQo0FHcctx7EgEyB5EKDwAGyVzfZartr9PnWqlStXMm7cOEaPHk2fPn0ev4Mg5IOHB6gVpnwbTBYaGsqvv/6aVgVMsHlcwZOERCNzfzhLv/d388/+OygU8NqrQbTr15JN1305fNmKUgGd8jCaO9Wx/Sfp0qJP2kpYn80YycT5nxe5JA22xDd8cG28PDWEhtkuYvKiqr+S6f0dKVVC4naszIiFOi7eenDx9HARlI2/bM3VOcq5KehRyZY4p5wyoTNn3X0Wa5BZesk27mC4W128JWfukMihSraEqwurgcWiYXNSxntbF+KsjD9m4rOjJkKTrKRYLWxLelDNbEtiDCWymE99z7wDgEv4EyEbibQmUe5+q9qqsK0sd8VyDIAGD7WcKyhstcjtPfI7VVhYGJcvX2b69OmiAIrw1MtTov7www/THg9X+Zo9ezaVKlWic+fONGvWjLZt24oavo9hMln5dd1VevbbyW/rr2E2yzRq4MOQkS05ba7IbwdlTGZbN/f8QY68m4vR3KksFgs/TlnCgNeHpq0pvWzHj7zZo12h3o9+HHc3Bz4ZYRvBvG7jdY4ez/kUqof5eSmY0d+RiqUVxCfDJ4v0aatwuXm4MeCT3gDM/WYhKUk5L4IC0K+qitJOcEcH/zti4lS0NdPEs/CCmWQzVPWQaOOvob/6mbTXyuj8ka7ZyqH+kxJPjCX979KKh1YOW3/DlqR18oOa41uSYvC4P586znoSWbZdkMiyzF2LbXW7KMnWyj5nvWtL1EDi/elfsdYLAOm6uFMT9XVrDNZ8SKT9+/fH2dmZM2fOFMoKfIJQlOQpUc+YMYNffvmFevXqpU02P3DgAMOGDcNkMvHGG28wc+ZMoqOjs1UF5mkkyzL7/omg78BdzPvxHIlJJsoFuTJydBPUleswZ4eSO7Ey3m4SY97WMKm3lrIlc/9ji74Xw6BOHzH3m4VYrVbadXmVFTsXUim4gh3fVf5pWN+HDu3KAfDdtBPEJ+RtEYkSLhKT+2qpV0GBwQTjVhjYccKWCDv1eSOtCMqyeatzdXytSuLT2rZ6v3tvW+m318gb240sCHmwhnVYkjWt7OiwGioUksRrqmpUl3xxMSgZLrVEbdTioNdiAbYnxaUd/26KzPbwB0l5000LvyfYWrm93H1QAmcNKcSYyqLEGTNJHNR35rppIfcsu9DLESjQ4K5oCsBZ6x3KUQOAewpbkQhHOQIJqKd8UGDFX/JAjQIdJm7L9h+TUqJECfr27QuIAiiCkOeu799++43u3bunlVMbMWIEYJvb9uuvvzJ48GC2bt3KypUr83qqJ9L/JhxlwtdHibidgmcJDcMG1+a5t5ry/W4nDl2y2Lq5m6lZOMSRFjVy380NcHjfMbq07MOhvUfROmmZMHssX8wZi6Ozox3fUf7r36caZQNciI4xMHP26Tx3jTppJL7opqVVLSUWK0xZZ2T1PiMqtYr3R/UD4PefN+ZqwQ6A50or+bG5A6+VVeCohPBkmR8vWHhju5E+ewx8ftSERYamvgoa+ti6ylWSgjmqN3j/Hz8au7rg6wiaeNuc6oe7v1ddNWORoY6XhLcWos1mdqfYqor18fCliaNthPgfyQkEqfugQEOKfJNrpgWcNdrqEHsrn6Pa/VW8zlnu4Ion3viTrLBdYJQmhioKH9ylB7WNVZKCoPtd4/l1n3r48OFIksSff/6Z7UWABOFJlKdE7e3tzbPPPpv29bZt2zh8+DAuLi7proJLlCiR43ljT4vzF+LQaJR071qZwSNb8tvFkvyy12zr5i5/v5u7tQOOuezmBltX97xJPzHwzeFE3Y2mQtVyLN/xI+27Zn9hlaJEq1Ux6qN6KJUSe/+J4K9d4Xk+plol8cmbGjo9a0tOi/4yMXerkZavNcfD0517tyM5sOtwro9f11vBFw0c2N5Gw5cN1DTxUaAAzsTInImRkYChNdIPWFNIEkpZQpIkmpdWplUp25ccT7zFTLJJZt394i09K6toH6hE5xaPBZlgByeqaJxo42pLpluSYghS9+I5xz8JdhiPp+IZUn/9S6vaUl3pC8B5613MsoVy1CBF4YAMuEk6nrk/iOxhFaT8vU9dvnx53njjDQCmT5+eL+cQhOIgT4m6ZMmSafeeLRYLo0aNQpIkhg0bRsmSJdO2u3nzZq7W/XwatGxRmslTnue6FMTXv5rTurnHvq1hUq+8dXMD3LsdxcA3h/PD5MXIsswbPdqxbMePVKhazk7voHBUqexBz3dsU5VmzTvDiVNReT6mQiHx7ssODHzVAUmCjYfMTN0o80rnNgCsX745z+dwVEm8WlbJrGYObH1Vw/CaKup52xb0qOie9c+6RWkFaoMWjVGDCZntybFsuGkhyQSBLhLNSil4PUiJzj0OgOe1tgT9qksJJOCYPokIkwGV5EJpVRvqamfRzHErjbQr8FY+S1mpBK5oMGJht+Uq5aiBRVKQItl6ymoqMo4xKX//PvU1yz3umXdzQj+EfSmtibVkXKkrtz766CMAli9fTlRU3n/GglAc5SkLtG7dmt69e7N161befPNNTp06RZkyZfj000/TtjEajbz//vt5DvRJVapmVUaukNO6ud++383dPI/d3AAHdh+mS8veHP3nBE7Ojny94HM+nzESR6dHL89WXHR9uyLVq5UgOcXMx6P38/Ho/Zw9l/fW3RtN1IzqqEGthL/PWQgr1RVJ686+bf8Sfc9+PUPejhLdK6n4obmG3lUePf2rnrcCZxU4xHkA8EtcJL9csSXPdyoqba1vjRmDcxIAUpStm9xX5UADrW3t8D8eGgkOoJG8cFXYiscoJIm31LYysVMMe1BbbVPAkhW2uHzkjN/XCgpvAoikgTyZM8ZPibEexEQsV0yz7DZSu0mTJnzyySds27YNLy8vuxxTEPJi7969BX7OPCXqr776ipSUFNq2bcumTZvw9fVl9erVuLjY/jD8+OOPNGzYkD///NMuwT6Jft1vxWSGuve7ufvlsZsbbMvCzf5qAYM6fURsVByVa1Tkl10/8WrH1naKumhQKhV8Oa4x7dsEoVJJnDgVxbBP/mXUZwe4cDH28Qd4hJY1VXzVQ4uTBi7fc6Bkn+U4PjeE5b/8m+NjxUTG0uOl/kwZ+/1j589nxUEp8YyvAsc4DxSyxEF9IiGeobg7yLQJtN3X3pgYDRI4pDix76YK8/064w93fz9KX3Ujqip8SEDPLMMJkBWkKGwtar18JcP25RVeNOYiziSjpgRlVd1QoCHBeibTuuK5IUkS3333HS1atCjSMxKEp8cLL7zA4cO5vw2WG3lK1M7Ozqxbt47Q0FCOHj3K9evXadq0adrr9erVY9GiRRw5cqTA31hx4eUKY9/W8I0durkB7t66x4DXh/LT9GXIskzH3h1Yum0BgRXL2iHaosfdzYFhg2qx9McXaPNKIEqlxJFjkQwa8Tf/m3CIK1czX64xO+qUVzK1nyOVyihA4YBj8KtsjWnFp4t17D9vxpLNBTdW/vgrZ4+fZ8X8NYwZMAGTMXdTFZuXVqI2aqkWFYgkg84jDlXFcNT3PzbrE22tXu8kD6IN8Pdt22jw11xsifqQLpEoc9bnVktKxmlao0HFYestUmRHku8n6iRrxtWsfCUXymI7Zwn1h1RyGE5pVTsAbpiW5Oo9Po6YUy0UNqvVSrNmzejQoQMbN27M9cV3Ttil4Im/vz/16tVDq03fpVq/fv10DyGjaf3UdunmBvh7xwG6tOzDiYOncXZx4tufJjB26sdotBo7RFq0+fo68eHQ2iz5oRWtXwxAoYADh+7y3pC9jP/qCNdv5G4KUflSCma9p2ViVzBd/xfZauHUdSsTVhroO1PHb/+aSNZnnTwMegO//fygWt/29bv4sOcY9DpDjmN51tc2AC3urjslwgJBhtOKGEbcvcY1o54T+mQUQCcPWxdx6kCzALWG2hpnrGTs/v6vIIUngx1sA0QTrVqSJdvgumT5JhY5/WL3ZuLxlGzf19uU5CS72aY6AyiIsR7MdFnN3IqJieGjjz6iSZMmWK3Wx+8gCPnE0dGRdevW0aJFCyZMmIC/vz8jR47k4sWL+XZOscxlAZszZw7BwcE0bNgQAEeHvCdok8nMjPFzGdrlE+Ji4qlWuzIr9yymdYfHL4z+pClT2pmRH9Zl0fxWvNDSD0mCv/ffpv+gPXz17TFCwxJzfExJkmhQzZnmHkeJXtaLMrojuDrCnViZH7YZeWdKCrM3G4hOyJhAtq3bRWxUHKX8fJj5y7doHTX8s+MAQ7p8THJizoqoeGgk6njbPi+OCR68rC+HElibEEWncFtSbObkRvcg2wXzgbtWIpJtMWW3+xvgLVUtnlEGkmx1xCgpkdECVpKtV9NtF2+1TZmKkl25Ius5xFbiFHpQ2u573zT9nKP39ygqlYqFCxdy6NAhtm3bZrfjCkXfli1baNq0KUuWLMnxvklJSXz66aeUK1cOBwcH/P39GThwILdv3851PGvWrKFNmzaMGDGCY8eOsXXrVlJSUnj22Wdp1qwZixYtIjk5Z0vyPo5I1AXscSVEcyoi7A792g7i51m/ANClf0eW/DGfgHJ+djl+cRXg78KYT+uzcG5LmjcrjSzD7r236Pf+biZNOc6tiKQcH7ND97ZYkyK5sOorFgyAYe0dCPSR0Bth02EzY5cZ0nXNyrLMqh/XAvB2vzdp/vKzzFk7DWcXJ47+c4KBbw4jPjZnLf3mpR/UCx9Xzpt5pSuiBCLMtsIvHVy98HdR0KikAhlbpTKANve7v/9NSSDWYpsPHmeQ+feOJe1edipJkvifw4v4Sn4gSRgVrgAkyum7vxMstkQdjjcXLKHc4brteXV5AO5ZdqGz2me2h5ubG/379wcQxZOeEmvWrKFx48a0bds2V6Wok5KSaN68OZMnTyYsLAyz2cytW7dYsGAB9erV4/Lly7mKq02bNum+rlu3LrNmzSIiIoLBgwezcuVKSpcuzbvvvmu3EtoiURdju7f+TdeWfThz9Bwubi5MWTKRkZOG46B5/EpNT4ugQDfGjWnID7Nb0PSZUlitsGNXOL0H7KZX/518MGwfH43az2dfHGbSlOPMnHOahYtDWLH6Eus3XWf7zjD2H7qDTmemdqOaBFUsiz5Fz94tO3mtgZoFgxyZ1EuLRg3X71o5H/agVX3qyFnOn7qERuvAGz1s927rNanNgvXf4+Hpztnj5+nffghRd7M/Uv1lfyWlHOGNICXl3BS0c/Vi7v1k7SQp0u5Hv1HOltCXXbZw6J6F8g5aKjloMSNzWJdIjF6mzx4jw/ab6LTDyF/hlnQXGV4KZwapbX+QEhW2YyX+5z51gvUsAGF4c0968Fq0woCrohogk3i//Kg9DBkyBKVSyc6dOzl16pTdjisUTQ0aNGDfvn1UqpS7VfxS15HetWsXKSkpJCQk8N1336FSqbhz547dF9xQqVTIskxUVBRJSUksWrSIli1bUq1aNSZPnsy9e7kveSwSdTFkMpqYPGYmH/YYTUJcIjXqVWPVnkW80K5FYYdWZFUo786Xnzdi3szmNG7og9UqE34rmYuX4zh5Oor9B++wY1c4G7fcYOXaKyz6+QKz5p3h26kn+GzCYXoP2MXevyPo0L0t8GBOtSRJ1K2g5LnqtmlM2088qF628odfAXi1Y2s8PN3Tnq9etyoLN83C29eLyyFX6dduELfD72TrfZR0lNj8qpax9dRpz7V39eKPsjXYXLY67kpbHK38FLQqo8BkhY8PmDgbY6W2xjYb42RKMsP2GwlLtiXmsGSZUYdN9N5j5ETUgwsNL0oDEK2wtcofHlAmy3Ja1/ddSuGijEx7LZZ7OEu2efop8s1sva/sCAwMpGPHjoAogPI0KF++PBqNhrp16+Z4X4vFwr59+9i9ezfPP/88Dg4OuLi48MknnzB69GjAVu762rVrOT72f6dn6XQ6Zs2aRcWKFenevTunTp0iMDCQ6dOnExMTw48//sj58+epUqUKI0aMIDEx57ffRKIuZsJv3KL3q+/zywJbl2r3DzqzaMtc/ALLFHJkxUPlSh58PeEZlv30AtO/e5aJ4xsz9tN6jBhSi/f6BdPjncq81aE8r7QuS4tmZWhYvyQlvbVERev5ctIxToT64+BckjPHQrhy/sEveeu6tgS596wZvVHmXkQkOzfuAaBL/7cyxFGhankWbZlLmbKl/8/eeYdHVaV//HPvtEwmk14gjRo60osUWRWxoGvFhhUbVlxcdZHdxbKuFcGCfX9YWQQVFUHXhqBYQJSOQEhCQgrpdTL13t8fd0qG9ErxfJ5nHpJ7zz33TEjud973vIXsA4eYf8vD7XpfQ0MsDDQFup7pJIl/jTEwNl6m1gN3bXSSoGqlYlcUVLOnXCXKBO+cauSmATrMOthVpnLLBieHvDXILURixEy1N5e6WtmP6m32Uatm46YSGSMRUj9idOX+e9uoxChrIm9TOk6oQWsEBLBs2bJ27TMKjh+ODFJuCQUFBdx///1ERkbWO+crogNQVFRU73xznH/++VRXV5Obm8s///lPUlJSuPvuu8nKymL48OG8++67pKenM2fOHCwWi3/feufOnXz//feccsopra7UKTqyH0d89cm3PHTXY1RX1RAeaeXhJfOZctako72s45LE7hYSu1taNNbp9LB8ZTrLVuxnx65yrEOuxZa3ifffXMPfHr8TgKE9ZLpFSRSUqXy/283etR/h8XgYNXE4/Yc07LpL6ZXEi+8/wwVjr2Dbpp3U1tR2aN11o07i6fEGbvvOyc4ylc/2GiAJDku19NbDsxOMDIiSGRAlc3FvPTet16zs9EqV5DCQkIihO/mSDby9qWvULMKk3n5r2ir3p59koUq2gypjkkJwYEORtH1tm5rdYe8HYOzYsUycOJGNGzfywgsv8Oijj3bo/IJjj7ZkxCQlJZGU1HCcTkREBPHx8RQWFpKa2vq01crKSmJjY/1VOVVVZdq0adx7772cfnrjAbxJSUncdNNNzJ49m7/+9a/83//9X4vv2akWdXV1NbW1tZ15iz8EDruDx+97hnuv/zvVVTUMGzuU5euXCpHuIoxGHdfM7M//vXwq48YkoCJjThzPF1ui+ebbbFRVRZYlzhiufe79fIvLn5J1+Y2XNDl3jz4pxHePQ1EUdm/r+PSOUL3EsxON9AmXsFVqHwI8JicPjpUZFBX4848NkegXqT0Q82119qpJBElClrXOWZmu14HA/nS4PIQ4fTkAdiWaWLSHo0PWUgJtSscKNcC8efOYO3euP7hMcHxQWVkZ9HI4Wp+i2BG43W7Ky8sZO3Ys3bt3b9McTqcTnU7HlVdeydatW/n888+bFGkfn36qbZl9/PHHzYwMpk0WdVZWFkVFRaSmppKQkNDoOKfTyYUXXkiPHj246qqrmDbtxKqM1RUcPJDD325cwO/btf3B6+6ayW0P3ITBIJwhXU1idwuPPjiWjT/ms+DBdUgGK48+uZUvvs7ljtlDOWNEKO9862LHQZUKh4luSfH86ZzmP0wNGTWIbz5dz84tuxk1YXiHrzvCKPHCRCM3boAipwGP0YUlwgEEBx0mhmpCnVdTV6i1B1mNcShm+0EKPV9S6rmAijpCrcpaFbI8Txgj5Xhypf1USdocLipwqeUYpMgOez/Tp0+vF3kr6Bp+DE0hJNTQ/MA62N0u4DdSUlKCji9YsIAHH3yw4xbXQr777jucTif33ntvm+eYNGkSr732Gv3792/VddXVWrbJkCFDWnVdqyzqAwcOMGnSJPr06cP48eNJTExkwoQJrFq1qsHx0dHRvPDCC7zzzjucc845rVqYAD7/8CtmnnYDv2/fR2RMJM+/9xRzFtwqRPooIkkSkyYk8udJNdQe+gEJhc1birjx1m/539r9nNRT+5MyDziDS2+4CL2++f+rISMHArDz192dtu44s8R7U41MDNfc/bvs9fM8/UIdZFFrFnKR7CRZr3kH9jqfoFrRUlvC5UEUoHkCCj0RoGou73KpHJOk1QvvDKtacPyRk5NDRUWF/+UL6upqnn/+eaZOneoPTGwtsbGxrF27ttUiDbB8+XJWrlzJmjVrWnVdi4W6oKCAyZMn8+OPP6KqKqqqEhcXx6+//soll1zCWWedRUFB/cjVoUOHYjabRem/VmCvdfCvuU8y76YHqam2MeLkYbz37VImTT35aC9N4OXia6ZTm/s95dv+w9BBEbjcCm++s5ecrVrhEfPAaZx/1XktmmvoqEEA7NzSeUINEKKTGBmqBZztctQvttLd0pDr2xv5TT69DbMxEo1NzUbFjYEoyiUHtVIVqqqnQrFSoWjWVhmHCZW0/b+O3qf2sXHjRs4//3xWr17dKfMLOpbw8PCgl8nU9RUTv/32W77//vs2FU/xcdNNN/n7WTTFv//9b2y24L+z+Ph4Lr744hZdX5cWC/VDDz1EQUEBOp2Of/zjH5SXl1NQUEBNTQ1fffUVoaGhDB8+vMEEb7O54wJkTnQy9x3kmmk388GbnyBJEjfecy2vfvQs8YlxzV8s6DKSeyYxdvIoPPYyBsQdYN69Iwk16yk8kIfqdiFbE8iuaNkf46DhA5BlmYLcQooKOreV42CTZlHvbECok7wWdW6N6v9g7Xd9U45HkulrnOMfH6EbQqa0A4AQNRUVGW95ccooIFTuAQQsapfqYbfncId9aF+9ejWffPKJKIAiaBFlZWXcdtttfPjhh40GmrWElStXtmjcX/7yF/75z3+2+T51abFQf/rpp0iSxGOPPcZDDz1EeHg4ADqdjlNPPZUPP/yQ5cuXc+ONN/LRRx8FXSu63rSMT9/7nJlTb2T/7gNEx0Xx4spnuP2Bm1rkPhV0PRdcpe2TfrxsDaee0p1//3Monqpc1DKtsMHi/xZit7ubmgKA0LBQf3/wzraqh3hTuPY6bbjU4JKn3b1CXeOGKm/vDhOhhBEJQCn5dNOdTaQ8EoBIeQR70Srs9VCHApDu0QKEyinCLGl7kj6LeoHjc26wv8dXnrZVhDqSO+64A71ez/r169myZUuHzCk4MfF4PFxzzTU88sgjTJrU+UG4TqeTH3/8kXfeeadD5muxUBcWFiJJUpO9pf/0pz/x/fff83//93+tCj3/I3FkrW+A2ppaHrzz3/zjtn9RW1PLmEkjWf7tUsafOqaJmQRHm1OnT8EaEUbBocNs2rCFDWs+p2LXu4SW/AJAns3CLXdv5EBm8x28Bvv3qTuukUVDpBpMhMkyDlXlgDO4yUaIXiLG640MDijTcvRLyEeSJE4yPcVA4z+I1E8jx7s/PUH6EwD7lVp0qh4FD8hRgGZRb/Jks86j1Qr/2t0xQp2cnMzll18OwDPPPNMhcwpOTG699VbOP/98Lr64fk2D5vjuu+846aST0Ol06HQ6Dhw44P+6sZfZbOaMM85oMI+7LbRYqJOSkpBlGaOx6fKUUVFRfPTRR/z888/ij6cBjqz1nbnvIFedcRMfL1uLLMvM/tsNvPThIuK6xR7llQqaI8Rs4hxvj+8V/1mlpWSpCnfMTCTOqiDpdOTaLNx+93d8tDqzSZdvV+1Ty5LEIK/7u8F96gYCyqL9+9Ra3W6DFE6i/s/sk7YCkEQaPeQUuklWVCRC0ATaIXlTtNRsFjvWE6srZXTIdnYpu3GpHdMa8C9/+Qug1YXOycnpkDkFJxb33HMPaWlp3HjjjfXOlZSUUFnZdL39yZMns23bNh5+OFCUyBen1dgrJCSEUaNG8fbbb3fIe2ixUF9yySV4PB5++OGH5ieVZV555RXy8vJEQYJmmH3xX8jYm0VsQgyvrFrMLfdej06na/5CwTGBr4b3t5995++Sder0Sfx5vCZS4T174HIpPP/SDp5evLVRsR7iFepdv+3p9P62Pvd3UwFleUfmUqNZ1HX5nZ8BGMh4AAbJWqpmrbcCWpXkQUKPgoNS9RB99AXE6soZELKdX5WsDnkvI0eO5E9/+hNut5vnn3++Q+YUHFu43dr2UWN/F+vWrWPcuHE899xz9c7de++9REZGNpiKtWPHDi688MIWPW8lSWL+/Pm89tpr9O3bF0VRmnzV1NSwadOmIM9pe2ixUC9YsIBhw4a1qlbp008/TUVFRavLpf2RcNodnHzqWN5b/wajJ4082ssRtJL+Q9MYOKyf//sZsy5Er9dz+nA9sgw1hDLz2mHIssTnX+bw2RcNR0D3GdALs8VMTbWNrP0dW3bzSAb7hbp+ilZSE7nUPosaoJYqMtFyqQcyFoCLDScBkOXrziUVY5Q0kY+lkkSdFhEeJtfyDR2zdweBkpCvvvpqm+ooC45damtr2b59OwA//fRTg2MWLlzIpk2bmD9/vv+YqqrcfvvtLFy4kGeffZbY2Fj/KyYmhtDQUE466SRSU1OxWFpWoRBg1qxZDVrmnU2LhdpisfDdd98xdepUzjrrLD755JMWXffkk08ye/bsNi/wROfGe67lhRVPEx0XdbSXImgjF8zUGnXU7ZIVY5UZ01f7pK5GdWfWNQMAeOHlnRzMri8mOp2OgcO0vMydWzp3n3qQV6h3Omz1LHyf67tedTI0i1pFO76XLagoJNDD7xofqUtmqi4Nm6LVZi5W89mvaoGQgyQFHYEqhU7dDn5nU4e8n3POOYfp06fz73//WwRenkBcfvnlxMbGsmOHllnw+uuvExMTw8svvxw07oorrsBqtQZ1w/rb3/7Giy++iKqqlJSUBL1KS0v9FTNnzpzZ6nW1plBKR6UOtuq32mKx8MQTT6AoSoM5042xZMkSrFZrqxf3R2Dm7EuRZdEb5XjmvCvOYceW3Yw4eRhRMZH+49NG6vl5n4evtrl56+4+/Lq1iF+3FvOvJ7bwwjOTMZmCXW5DRw3i1x+2suPX3Zw/s/Mqb/U3hqIDSj1uCtwuuhsCcSdJXtd3bh2hjiIBCRkntVRThpVofkezbgYwLmjuO42TuN2pCfBvyh5C1BBSJThLF86nktavOs8dT6K+kC/UdxkgjW33+5Fl2V+aUXDisHz58haNmzlzZj3BfeKJJ3jiiSc6Y1ktpra2lquvvpry8vJ2z9Wmj5+yLJOY2LpuTWVlZW25lUBwzGMODeGRF/9e7/i4fjoiQqG0SuW3TIV5fx3JTXd8S0ZmJS+/vos5t58UNH7IyK4JKDPLMn2NZvY6a9nlqAkSar9F7c2lliQJPQai6UYJebzFQ0zlatLR+kEPPEKo42UrZ+hGk88OdHI15Wj71op6CBUFCRmDewzo11BOASoqEiJ9U3Ds8a9//YsVK1Zw//33B30QuOGGG5qtBeByudi8eXOHbcV0up/I1xf0//7v/3jllVc6+3YCwTGDQS9x6kl6PvrJzRe/uRl7WQh/u2ckf/vHT3yyJotRI+KYNCHQFMAX+Z2+O4Namx29ofOCCgebQtnrrGWnw8bUsMC2i0+oaz1Q7oQob7rWOdzIhzxLMbks53EAoulGPPW7D12hP4VnWIpRcjPJMAncP3hzqc2EEUlPeRAZ6hqQPNRQ4c/Tbi92u51ly5bx3XffsXTp0g6ZU/DH5ZlnnqG8vJwXX3wxSKgPHDjAd99916LCPR1VQ6RdQq0oCk888QRvv/022dnZolOWQHAE00ZqQv3T7x4qbSpjRsVz6cV9WPHBAZ5evJW0vhEkxGt7xvGJccQmxFB8uITft+/1R4J3BkNMFj6sKqkX+W3UScSFQJFdCyiLMmkPmt6cxB08x9cs4xe+AFQGMr5Ba9gqWTGrVmqlKoYY+rDPDS61CElNwSpFMUnflz2qkRDJSYGaR98jGnYoqhtZav2jqby8nFtvvRWn08nNN9/MySeLkruCtrN8+XI++eSTesFjs2fPZseOHcydO5eEhAQMhvpNSpxOJ+vWreO9997rkLW0S6jvuecennvuuS79ZCEQHE/06aajb3eZ9HyFddvdnD/ewKxrBrJtRwl795Xz7yd/5ZknJqDTyUiSxNBRg1i39jt2bNmNodsA9hR3Z3S5SlIHV5D1RX7vbiSXusiukm9TGRwdOB6ChencxAhOJYMdjOWsRuePkbpziCoqsaPDgocaQlQXVimKXlI0imIBnPzs2U1ffeADSannF7Y67qK34SZ6Gq5v1Xvq1q0bM2fOZOnSpSxatEgItaBdTJs2rcGOjxdffDH/+9//gqLMG+Kmm27im2++6ZC1tCuK6c033wTgwQcf5PDhw3g8ngZzytatWycCpgR/WKaN0D4Pf/STC4dLxWCQ+fv9o7CE6tm5u5S3lu3zj/VZ0b9uzeGBt92sOziYWc+7uOl5G6987uDXAx6c7vbXyvZFfme67FQrwfmpDQWU1SWRvkziQow0XsM/mm4AlEoFhMqaezxUcRNGNJIkEePdu96ppgddV+T5FhUXB1wvU+nZ1er35SuA8sEHH5CZmdnq6wWC5jAYDDz++OMtGrtrV+t/hxuiXeppNBqJjY3ln//8J3FxcY1azVOmTOGMM85oz60EguOWqcP1RFsl8kpV3l6nFdFO7G7h7juHAfDu8n38tk1rxjF01GAA9nhG4nCBSedCliC7SOXDH9zMe9POJY/ZeG+Ds11ritUb6KYzoAILSw6xy1Hj94zVDShrK76UrVLysUhacw6z6sLqrVrW2yveheRTpTr811UrPuFW2O18GEVt3fscOnQo06ZNQ1GUBgtgCAQdQUJCQoPHjwyajomJ6ZD7tUuor7rqKtxud4tc3//973/bcyuB4LjFEiIx5zwtsvqDjS5+P6RZsKdNSeKsaamoKvzj4Z/5bmMeA4f1x5g4BJJPRkLlz/1+Zdk9Bh641MS0EZrgO1zwf1+52JLeeAUzu1Plja+c/Hag8TFjzVrK5MtlBUw9uJNRmb/xSFE2CZqxHVSdrLUEhDrQRcusuLCi+dJTvQ07jJKdDW6tBriqqtR4hVrGSI2awUH3W62+99y5cwEt77aiovk66wJBa3n77bcZPnx4vQ+D3333Heeee26HBzO2S6gfeeQRBg8ezLJly5odO3DgwPbcSiA4rhk/QM9pJ+lQVFi4yuF3X98xewjDT4qlttbDg4/+wn8/zCZ6qtZKcmhcEXGhVYSZJaYM0XPPhSaW/dXMeWM1V/ozHzmosTcspi+tdfLfDS6e/MCBx9PwmKcTevF4fE/OsEQSIsnku128WJbPjzqtRkJLhHpdrofzP3fwc2HwB4IYn+ubfH9farPq9lvUEWib7mbJwdfeblpOSnBRAcj0NdwJQImnftvc5pg2bRqDBw+murqa1157rdXXCwRN8eWXX3Lttdeyfft2Pv/886Bzf/7zn1m2bFm9SPH20q5gMrPZzBdffMENN9xAeHg4ERER9cb46oMfPny4PbcSCI57bj3HxG8ZtWQXqSz71sV1U42YQ/Q8+eh4XvnPbj74KIP3vqlB13MgiqOauNJ1kBrsOpMkiRunGdmS7iGvVOWlz5z89UJT0Jhvtrn5/FetjGdptcqvGR7GpNX/U7fq9FwbmcC1kQnYFYW3Kwr5Z9FBVtjziTJZya8J8edSb66t4ovqMiJ0euJ0BlIMJnoTxkO/uqh2wfJ0D+PiA+lkPou6mnL0sibamkXtE2qt6UyI7GCDJ4dCtZRcRaviFColEy5rWwAOtbDVP2dJkpg7dy4rVqxg7Nj2F1QRCOryr3/9i5SUFM455xxuv/32eufDw8NZtGgRp5xyCuPHj+fOO+9s9z3bJdSFhYXMmjWLzz//vMVVZP7oLFmyhCVLlnR64wXBsUd4qMQd5xp5ZLmD9753MXGQjrREHTqdzG03D6FHzyie+1bzOyu56eyuOkD/4ZpQV1e72Lq9mC2/FbH79zJGju1JQVksX/7mZuJAHScP0P6UDxUrPLda2/ONsUqUVKl8vc3doFDXJUSWuTEygfW2Cr6uKac8KQd9Rl9KHLDFXcaNeftxE2xhj6lKpdqlCe+mIgW7RyVEp+1vh2AhlHBsVGKTNMedAQWzqgcJIr0WdSgOwqjgU/UNFOVzegEWuS8mSdsDdKhFqKoHSWpdTvn111/PrFmzWnWNQNAS9u3bx65du4iOjm50jO8D4ksvvXT0hfqmm25i7dq1APTp04fExMR60d2KorBnzx5KSkrac6sThttvv53bb7+dysrKBj0QghObSYP0TB7s5rtdHhaucvL8LSEY9Jq45XhiQe9GdtZAWSnZnpGs+w6+WPcD+9IrUJTAPIcP7+biG05j5UY3iz92MChFh9kI/17hoNYJJ/WUmXWGkbtfs/PDHg81dhVLSNMpkpIk8UR8T6Zkbacm1EZNdDEfl1t4qDIdNyqTQ8Pppjey1V7NfqedXa5q4uUoQvVQ4YQtRQoTu9W1qrtho5JDUiYOSYdJ9aAqpaBLwUQoRjWEQfYMRkur2a2m0U3RAsfC5L6YpBgkdKh4cKqlmKTW5aeJdFBBZ2G1WpsUaYBDhw4BdFjmQbv2qL/55hskSeL9999n//79rF+/nnXr1gW91q9fz44dO5rtYy0Q/FG4Y7qJiFDIPKzw3ndaFHh2kcInP2vu6vsvt+CpzEKSDezYLfH7Pk2kU1PCuPDPvTAaZaqqXZzW30WPeInyGnj+Uwev/s/JgQKFCAv87RITA5JlUmK14LPvd7tbtLYkg4l/xGl7ypXdCniwMh0XKueFRbMsaQDPdevDdWFa+WC3ycEtA/WclqiJ8/cFStBcvhStbPZQK2lFIWpVrWe0hESyRyVMdWHAQ5wnF4ui/SzCpD5Ikg6jpHkT7Grbt83y8vJ44IEHWtSeVyBoCb1792bLli2NnldVlfvvvx+Anj17dsg92yXUPXr0oHv37lx00UVNjktISOCBBx5oz60EghOGyDCJ26Zr+8rL1rvIKFB4ea0TjwLjB+j403ALvcJ/p+bgNyREljL3rqEsf+sMlr5yGnfMHkrfPpon5sCBMu69yIROhu92eVi9SRPj+y4yEROuFVA5fZjmNPt6W8uEGuDqiHi6u8NQZQU3KmdZoljSvQ96r5W6M89biSnEwVVpOiZ10x4j3xd4gjJAfPvUB9lNrayto0bRWniqqod4V6BtZry7GrOqCXWo3Eub3u/+bv0+tY+HH36Yxx57jCeffLLNcwgEdbn33nu58MILWblyZb1zn332GZMnT+bDDz9EkiRuueWWDrlnu4T64YcfpqysDJutfnWjI5kwYUJ7biUQnFBMGaJjwkAdHgXmv21nywEPBh3ccpbmeRo6aiCOgl+wOH9h2unJxMUGiosM7K/tC+/ZW0Zaoo4rpwRKGF422cDoOvvRPqHelqlwuDzY4m0MWZK4hFT0DhP9XdG8ktgXgxR4VOQWa2t06tzUqh7GxssYZci3QUZVfaGupdpvUWs1v+Gw5wv0ajUuZOySDj2q19EtYfeWD/XtU9vVlnfqO5K7774bgE8++YT9+/e3eR7B0WPNmjVMmDCBN954o81z2O12XnzxRXr27ElWVla71nP66adz6623ctlllxEZGcmoUaMYPnw4ERERnHvuufz444+oqsoll1zCnDlz2nUvH+0S6osuuohnnnmGp59+utmxl19+eXtuJRCcUEiSxJ3nGgkza921AC6aYCAxWvuT9DXoyM3Ir3ftAK9Q/763HIDLTzHwp6E6Th+m45rTgusOx0fKnNRTm/ObVljVQy1m4vf3Z3BZD4x1RNruUcmqkJFdmpgecNkx6yVGxfqs6sCHAV+KFkCt7BVq5SCK6ibT9br2/gzh5OsDLXBtsoEiKReAECkeaJ9FPWDAAKZPn46qqixevLjN8wi6nhUrVjBu3Di/+LUFm83GwoUL6devH7fffjsHDx7skLXNmzeP1atX07dvX3777Te2b99OVVUVqqrSu3dvlixZwnvvvXdsNOV4+OGHAfj666+pqqpqsOe02+3ml19+obS0tD23EghOOKKtMreebeSpD51EWyUuPyUgsr5SoocPFWGvdQQV/h/YPxKAA5kVOJ0ejEYd82aENHqfqcP1bM9y8vU2N5efYmjRwyPZIiMhkV6h+FO0APaVq3hUMLtM1BjcHHDaGR4SxqTuMj8WKmws8HBtP+2x4rOoAWxeK7lWzSHD9RI2NRuJUPL1ViRUerjKkQGbZOAw2QxkfB2Lun2pnXPnzmXNmjUsXbqURx55pNlAIMGxwejRo9mwYQNDhw5tszfE4/FwzTXXcMEFF9CvXz8UpWVepZYwffp0pk+fTlFREVlZWSiKQnJyMklJSR12Dx/tEup169axYcMGQKvI0hCSJAX9oQsEggBThxuIsEgkRsuEmgJ/I92SEoiOi6K0qIz0PQcYMW5Y4FxCKJERRsornKRnVDBoQNPCM2mQniVrnOQUq+zLU+if1Hyq06AoCZMMJQ7Nnd0nXFvbrjLtQZcgh5BBDQecdu0e3WSe2gbbSlQqnSrhRikoRcsh6QEdCk5/tbF447V4JC1rJF8XTpKnkgpdCAY097ipA/aoAU499VSGDx/O1q1beeWVV5g3b1675hN0Db179wZgxIgRbRZqq9WK1WolLi6O2NhYCgvb97vUEHFxccTFdXDXnCNot0U9ZcoUZsyYQZ8+fTCZTPXGuFwuNm7c6Bd0gUAQTEM5zpIkkTa4Dz9/+wv7dwULtSRJDOgfxU+bDrPn9/JmhdoSInHyAB3f7vDw9VZ3i4TapJMYHivzc6HCpkKFPuGaa3u3V6j7Gc1kAAecWmvbJItML6tEZpXKz4UKZyRr9/ClaCFJGKR4XKrmyk/VX0W8/jxAE+qf5T6Mpx+Fuh/xeIXa5/pur0XtK4ByzTXX8Pzzz3PPPfeILJTjiJCQxr1FR2MeH4cOHeKpp55izZo1ZGdnEx4eztChQ7nsssuYNWtWh/6OtUuoJ0+ezMyZM3n77bebHKcoCvHx8e25lUDwhyNtUECoj2SgV6h/31vWwJX1mTpcz7c7PHy7w81NZxr9udtNMS5eE+qfCxWu6Ksd21Wm7aePDAvhc5u2R+1jZKxMZpWHfeXBQn0IrTuYWe6Jy5NPlDyGPobb0ZK0ZFQUSpRIskkD6SdKKcCN029RO9ViPKqdHPdy4nRTsHijwlvDZZddxiOPPMK0adOoqakRQn0c0VHe2I706q5du5YrrriC6upqf6ZDaWkp69evZ/369TzzzDO89957jBgxokPu1y6hBq2cmsvlarB5tg9Zllm/fn17byUQ/KHoN7gPAPt31xfqAd596j0tFOqRvXVEWqC8Bn4/pDC0Z/NW9dh4zYreUqTgVlRsbsiu1h5Kk6PMYIMDTjuKqiJLEilh2oPwkK1+5DdAb8MtVMrDSdZfguzds44liSJyKFUiOYSTXoRRSzVFHKKb1MNf9CTD9RLZ7mWUejYxMuTFFr3nuhiNRnbv3o1e3+5HnqCNVFZWBn1vMpka9MIe6+zevZuLLroIp9PJ2LFjmT59OgMHDiQqKgq3201OTg5r167lnHPOYfPmzSQnJ7f7ni3+rV22bBlXXnllveM9evRo0fWDBw9u1bwCwR+dtEGaGZu+OwNFUYKq/g3op0V+5xfYKK9wEBnR9ANPp5NIS9Sxeb+H7KKWCXW/CIlII5Q7YUepisPb3CPZIjE4NAQ9EnZVIc/tJNlgItnXx7o6INQxXqGW0RMtDyJGDn4OXMpf2ek5wOfKVrKlCsaRykF2U0gO3aXeGKVYHOphct0fA1ChbEdR3X6hbw1CpNvPVzUT0eta50J219iBT0hJSQk6vmDBAh588MGOW1wX8cgjjxAXF8dbb73Fqaee2uCYG2+8kWeffZYnn3yyQ9qttjg9q7N+oMfjf5RA0BX06JuCTq+jptpGXnZwmlZYmIGU5DAgkKbVHCmxXou3uOX51GO8VvWmQg+7vW7vwVESBkmmh0H7cOALKPMJ9aE6fawT0D7Ix9Adifqux1iSGCOPA6BUtRGlahGzhUfsU3uoAUDBQZWyt0Xrb4yffvqJxx9/vF1zCFpPTk4OFRUV/tfxGtT37bff8sknnzQq0j7uvPPODovNarFQt6TndFvorHkFguMdvUFPfJLWZWrvjvR651vr/k725jofKm7539w4r1D/XKj4I74HRWnH+ho1y8oXUJboFepKF1Q6tXvEkcIV/I0ZzG30HhbJRIykNSMxqNq+dBa7gEDkd10qlG0tXv+R5OTkMGHCBObNm8eePXvaPI+g9YSHhwe9jke3N0BYWFiL9p4lSeqwKPMWC3VnpVeJtC2BoHESUrS0j3276gv1QH/hk9YJdU5Jy3NJfa0rd5WpbPVeN9hblKWPUauWluENKAvVS8R4n711rep+jCaOYLfnkaRIkQB4FM2iziOdasr8FjWAWdLmKFe2tnj99e6TksL5558PwKJFi9o8j+CPS2RkJFVVVc2Oe/755zvsw0iLN22ysrL8eW0dSW5ubofPKRCcKHRL0YRq384mhHpfOYqiIstNf+hN9rq+D5epON0qxhZEfncPlUgNk8iuVqlwgk6CARHadX28FnW6MxD5nWSRKHGo5NaoDIpqwRv0kihHsFXJo1SBRPqQxwH28Suxfotapq/hDnY476fCs61dtRnuuecePvroI9566y0effTRTs+BFZxYXHLJJcyaNYulS5cSFhZW7/zevXt59tlnefXVVzukxSW0Qqjdbne7a6Q2hLCoBYLGacqi7t0rHKNRprraRW5ejX/PujGiwyRCTWBzQF6pSs/4lv3tjY2Tya7W+qf3CZcI0fuEWrOofa5vgOQwie2lapBF3RLC0SyPKhwMZTR5HGA/W+glnw5AjHwyMbqJSBhwUkqteohQqWkrvTEmTpzImDFj2Lx5My+99BL//Oc/2zSP4I/JnDlzmDx5MikpKZx22mn07NkTSZLIzc1l7969bNumbc0kJyd32O9Wi13fiqJ0ysvj8XTIGxEITkR8FnVedj5VldVB5/R6mTRvJ62WuL8lSaqzT90a93fgMeHbnwboY9As6ly3k1pvacZki3f+6tYJtVXS5qpSHfRjFAAH2I5VN5RRptcZbHoEnWQiXB4ItG+f2lcABWDJkiXY7fZmrhAIAoSEhPDFF19w9tlns2rVKhYtWsSiRYtYsWIFW7duRVVVxo8fz8aNG4mKaoVbqQna1ZRD0HqWLFnCoEGDGDNmzNFeiuA4wGwJISFJE+uGCp8MqNNJqyW0NvIbYHSc7H9QDI4KWOExOj0Rsg4VyHQ1HvndEqyS16JW7XSjF1aicWEni11E6oZhkLQ+AhGyVqGtQtnZqvmP5JJLLiE1NZXCwkLeeeedds0l6Fzcbq2ZTGNG3bp16xg3blyzaVDNzdMaoqKiWLZsGbt27WL+/PlccMEFTJs2jdtuu43PPvuMjRs3dkj+tA8h1F3M7bffzu7du9m8efPRXorgOCFtkFb4pMl96hamaCXHtD7y22qUmJIoE6qH8QmB/GtJkvz71IFSot5c6prWNT8I9wu1EwmJNK9VvYsfgsaFyqkA2JW2t74ELaf6rrvuokePHoSGhrZrLkHnUVtby/bt2wEtra4hFi5cyKZNm5g/f36j82RmZvojsBubpy0MHDiQRx55hA8++IDPPvuMF154gTPPPLPD5vchhFogOMZJ81Yoa2ifesARnbSaIyXOG/ndCosa4N9jDXx2tonuocH72r596n1eofZZ1IdrwelpxYcBvK5vNMt8CFr/+q2sYxvf+sd1ROtLH7fffjvp6emi4NIxyuWXX05sbCw7duwA4PXXXycmJoaXX345aNwVV1yB1Wrl2muvbXCeHj160K9fP1wuFwBXXXUViYmJbN26tVPXD1qHrY5AlOoRCI5x+g3WKpQ1ZFHX7aS1/0AFgwc23aCj7h51ayKnDbKEoYGP9aNCwlhZWcxX1eXcE5NMtAnMOqj1QJ5Npae1ZfMHXN8OAHoxlIlcyEZW8QkvE0k8PRhUp/Vl+4W6o5s0CDqW5cuXt2jczJkzmTlzZqPnO6oHdWvweDx88803fPHFFx0yn7CoBYJjHJ9Fnb7ngH+fzYevkxa0LKAsMVpCkqDaDhU17V/bOWHRyMBWRw0HnXYtYC1MwqN38U1F87mmPo4UaoDTuYJBnIyCm/WsACDEK9RuKvCoHRME5nQ6eeedd9i9e3eHzCc4MbBareh0uja9jEYjZ511Vof1vxZCLRAc4yT3TMRsMeOwO8k+cKje+YH+gLJyQKv2V1bu4EBGBXZ7sLCbDBLx3jzo1rq/GyJOb2BiaDgAq6tLAUi0QFGvdP5u+52t9uqmLvdj9aZnVeNA8VYrlJA5mfMAKCYPAL0Uhg4LAI52tr/0ceedd3L11Vfz1FNPdch8ghODK6+8ElVV2/XqKIRQCwTHOLIs03egVmyoqX3qH38u4Jobv+acC9dwyZX/4+Y71nP/339CUYIfGCk+93crKpQ1xXlhMQB8XFUCQIW1DI/JiQp85D3WHD6LWgVqcPqPR9MNgCpKcaFZ26YO6lPtY9asWQC8++675OfnNzNa8EfhjjvuYNy4ceTn5+NyuVqVdux0Ovnqq686rBGMEGqB4Dig35DG96kH9I/CZNJht3vIzavB6dQEWJZh5+5SPv8yO2i8r0JZTlHHCPU51ih0wE6HjXRnLVsMAQH9tKq0RZaFUdJj8obMVNVxaZuxYkKLyi5H25f2ub87IqAMYNy4cUyYMAGXy8WLL7a+habgxGTo0KFceeWVJCQkoNM1322uLnq9ntNOO43bb7+9Q9bSZrl3Op18/vnnrF+/noyMDGw2G1FRUfTr14/TTz+dKVOmdMgCBQJBnYCyBizqMIuBRU9MJDunivh4M3GxZmJjQ/h4dRYvv76L15fuYdKE7oRbjUDbmnM0RYzOwKTQCNbbKphbkEEBdiSPjCRpxVC22msYYW66ahpoVrVDdQftU0tIRBFPAVmUcpg4UjrcogaYO3cuP/zwAy+99BLz5s0TKVsCgHaXAH3mmWc6ZB1tEurXXnuNBQsWcPhww38ojz76KIMHD2bx4sWcdtpp7VqgQCBo2qIG6N8vkv79IoOOXfjnXnz+ZTZZB6tY+tbvzLn9JKDjXd8A51ujWW+rYLN3T9pSEotqclITUc6n1aUtE2pMFFNDJY6g41F0o4AsytCeNx2ZouXjggsuoFevXmRmZvLWW28xe/bsDptbcGKSkZHBqlWrKCws5IknngBg/fr15Ofn8+c//7lDP+y1yvWtKApXXXUVs2fPpqCgoMlN9J07dzJt2rQO+0QhEPyRSRuoRX4XFRRTVlLeomv0epm7bhsKwOq1WexL167zVSfLL1NxuTvGqj47LBqDt990iCQTURqLqUIrb/ppdcvc37596mr1SKHWXN1laEVOTLI3RUvpOItap9MxZ84cQOuq1VHRuoITk0ceeYT+/ftz3333sXTpUv/xKVOm4HA4GDVqFD/88EMTM7SOVgn13//+d5YtW4aqqvTs2ZPHH3+cn3/+maKiIpxOJyUlJfz6668sXryYQYMGoSgK9957L++//36HLVgg+CNisYaS0lsrSdiYVd0Qw4bGctqUJFQVnntxB4qiEm2VMBtBUTSxbgn7dx/g8w+/avR8pE7PFIsmzDMj4kgyGjFVhWNCJtvlYIfD1uw96pYRrYsvoKwzLWrQgsoiIiJISkqiuLi4Q+cWnDgsXbqUBQsW4PF4GvwAeu2113L99dczdepUtmzZ0iH3bLFQZ2dns3DhQmRZZv78+ezfv5/77ruPMWPGEBMTg16vJyoqiuHDh3PXXXexc+dOFi5ciF6vZ+7cuTidzuZvIhAIGqWpfeqmuOXGwZjNOvb8Xsb/vsppU3OO+67/B/NuepDtmxuvsf3v+J7Mj01hXmwKCaEgqzJDZU28l1UUUux2YVM8/GCr5OXSfLbZgxO5fY05Khu1qDWh7siiJ0H3t1rZu3cv33zzDfHx8c1fIPhDsnjxYoYPH87mzZupra0lJiam3pgLL7wQu93O3//+9w65Z4uFevny5bhcLh577DEeeeSRFkXB/eUvf2Hp0qUcOnSI9957r10LFQj+6Pj2qffu2N+q62JjQrhmZn8AXvu/3dTYXIHI7xYIdVFBMVnpWuT43ias+RSDiTuiE7HIOrp5S432cGhC/WZFIUMzfqVP+i9cfGgPDxVnc1t+8Fx1W13WJSDUhagonVL0xEdCQkLzgwR/aDIyMvj0008ZNWoUJpOpwep+BoMBgI0bN3bIPVss1N9//z0TJ07k3nvvbdUNrrzySi6//PIOK6UmEPxRaatFDXDRn3vTvVsoFZVOtm0vCQSUtSDye+umHf6vD6ZnNzEyQIJZe3gp+eFEZEVgqPHtYEOCTnuIZbjsVHgCBVkaqk4GEEEsMjo8uKiktFOKnhxJYWEhH3zwQafMLTi+6dmzJ4mJiU2O+d///gdoNRA6ghbPsn//fn+wRWu5++67+eWXX9p0rUAg0PBZ1Jn7DuJyulp1rV4vM2SQVgc8M6uyVa7vbT8HhDqrlUKdXyXR4/sUBq7qz2chI9nWewS/9R5Bkl5LFdtdZ+86rIFgssNKFZfZ3kFStTaXAfd3x6do+Th06BCpqalcfvnlHDpUvxKc4I/N0KFD+fHHHxs9n5mZyYIFC5AkiQkTJnTIPVss1IcPH+ZPf/pTm24yduxYamo6oLCwQPAHpntyAtaIMNwuNxn7slp9fe9eWqnPjMzKVrm+t/7ceou6m1eoS5wBiz0rH+L1RiRJYrBJS12pK9S+DlqVBNzZP3kOckit4LBHm88X+R1yhFB3ZLnG5ORkxo8fj9vt5oUXXuiweQUnBn//+9+ZOXMm77//flDsVWVlJa+//jrjx4+nsLAQvV7PggULOuSeLRZqh8NBbGxsm2/k89kLBIK2IUkSaU100moOv1BnVZIUrf3pV9VCRY2Kw6WSUaBQWB4s3LU2O3t37PN/n5ddgNPRfGBognePurbO9t3+vMDcgxoQ6vAGXN+FqpaXbVM1Ec9StU5IZlmLgK9RDuBWa/jRfhFb7Xc1u66WMnfuXABeeeUVqqtbVq9c0DmsWbOGCRMm8MYbb7Tp+oKCAm655RZ69+5Nr169uOyyy8jObtkHztdee63esUGDBvHSSy8xe/ZswsPDOXDgAN27dyc6OppbbrmFoqIiLBYL77zzDuPGjWvTmo+kxUJtt9v9/TzbQlVVyzvpCASChmnPPnXvnppQH8qtRlIVf3OO2S/Wcv6/bNz6Yi1XP1PLhz8E/s53/bobt9tDfPc4wqwWFEUhJ7N5d7DP9a3qJVSvWO/PDfTL9lnUu+pa1EcItaqqfqG2K1rf663K7wCEyQMBKFe2Ueb5hVr1ECXKj7jVjhHVc889l7S0NMrLy4PyZAVdx4oVKxg3bhznnntuk67mpsjMzGT06NGUlZWxa9cu0tPTSUxMZPTo0ezdu7fZ6x988EEKCgrqHT/zzDPZt28fjzzyCKeffjoxMTH07duXU045hX/84x/8/vvvzJgxo01rbogWC7Wqquzbt6/5gQ1QVlZGSUnLivMLBILG6T9UE+r3l37EeaMu5ZKJV3PlaTdw/Tm38p9n3mrSBRwVZSIywoiiwMHsKtKStD//0ioVVYVQTSd55XMnL3/mQFFUfvtpOwDDx59Ej76pAGTtz2l2nVYDGLwC3StFu092kYrd6wofZNKCwfY6bbhVlQ01FfzzcC6g5VHvsNcw+MCv/OLUnhvJUk8APJL2/Q45E4BKZQ8lSuAhXqNkNbu2liDLMn/5y18ALR3H4/E0c4Wgoxk9ejQbNmwgLS2tTdd7PB5mzJiB0+lk6dKlmM1mdDodTz/9NCEhIVx66aXNGp/5+fmMGDGCF198kdra2qBz0dHR3Hvvvaxdu5adO3fy+++/s27dOh566CGSkpLatObGaFUJ0csuu4zo6KYb0zeEzdZ8sQOBQNA8YyaNxGA0YK91cCgrL+jc1p93EBkTwcXXnt/gtZIk0btXOL9uLSYjs5I7poczcaBmWafEykRY4P2NLl7/wsWqH90UV6rkbt4DwPCxQzHo9ez6bU+LAsokScKkgEuCvr1lKstUSqtUDuQrDO6ho6fBRKgkY1MVMpx2HirKZq/bTkoEVOHkxbI8yhQ3hUo1yJBCb0r4Br1UiRsXB6UceqDDiId896f++9aomUQwpB0/4QDXXnstf//738nIyODjjz/moosu6pB5BS2jd2+tY9yIESPYv791KYkA//3vf9myZQu33XYbFovFf1yn03HFFVfw5JNP8p///KfZcrEjR47klVdeYf78+VxzzTXMnj2bgQMHtno97aFVQt2exuoN5ZoJBILWkdQjkf/tXMXh3EIcDieOWgcOh5PN323h7SXLefrvzzNm8ihSvVXMjqRXT69QZ1Vy1jSZ04cFO9VmTDISEy6zcJWD73Z5cJvPBDYyfNxQqis1t3JLAspUVUWpVSFUIixCpl+iyk97Pez3CrUsSQw0hbLFXs3KyiJ2O21IkvY48qDwWU0xIOOR7UhAmtyTAlWPQXJzmCyKpENE6UzEemwodfKubR1kUQOEhoZy66238vTTT5OZmdlh8wpaR0hISJuue/fddwEajLweP348oO1BNyXUZ599NmvWrAFg586dvPrqq0ycOJGTTjqJ2267jYsuuqjDWlk2RYvvIEkSM2bMoG/fvq0KDHO73aSnp7NixYo2LVAgEAQTFRNJVExk0LGJp49jz7a9/PL9b/zjtn/xn09faPAB4gsoO5BR2ej8p52kJzpM4oG3aiF1HGFpJ5M2uA+HsjTXdNb+g82usahCxeMVaskEaYkyP+31sC83OKBsi72aV8u0PUBVlVFVCUlScUsuJEmHJGsu575yHGsVC9G6CnbwPQoeKmVNqOtSo2Q0u7bWMHfuXO666y5Rqewo0hYjz2az8e233wIBy7wuQ4dqNfB/++03ysvLiYyMbHCexx57zP/1kCFDeO6553jiiSf473//y8KFC7nrrruYNWsWN998Mz179mz1OltKi4X68ssv939CaQtms7nN155ILFmyhCVLlog9L0GHIssyD70wn8smX8v2zTt549l3ufGea+uNqxv5rapqow/B4b11DAzLZmdlDyIm34Ik6wJ71OnZTV4LsOeQguwNDi92wohEzXLfn+fB41H5apubuBjNUnKi7VuHlkWjdNOh07mRJQ+yTvsbsWAkXgqjyuMVavU7kKBSNvnvFyr1xKZmUaNmteKn1jxt2eoTNExlZfCHQ5PJhMlkamR0+9izZw92u5bml5xc37vkE2ZVVdm+fTunnHJKg/OcdNJJ9Y6ZzWZmzZrFrFmz+O2333j55ZcZPnw4EydO5NZbb2X69Okd7kFucTDZpEmT2nWj9l5/onD77beze/duNm/efLSXIjjBSEzpxv1PaAFQrzz5f+zZVj+qtWeqFVmGykonJaWOeufrYjiwBsVehcvcna+2ukntnYIkSVRVVFNWXN7ktb/neJC9cTqHbSppXqHOKVaZ95adZz5ysnFdwE6Q3Xoi85JRFM1bF6LzEGPQrO9wQrFgpErR9hltkvbAr5GNeLz1zpL02v5xrZpXr6yoqnrY43iUDNdrqGrbu2L9+uuv5Obmtvn6E4Hs/NFk5Y5r1Ss7fzQAKSkpRERE+F91rdWOpqioyP91Q9ZyRESE/+v2NGAZMWIEr7zyCjk5OUyfPp2///3v9OrVi3//+9+NtoFuCy0W6ltvvbVdN5o1a1a7rhcIBM0z/dIzmfrnP+F2e5g/+xHstcFibDTqSE7SekP/8N1+3lry30arnO38eRM1W/4LwJtfu0BnpHuK1smqsYCyihqVld+7+Hq7G9kb4X24ViXaKhMbLqGqsC1TE8vq7IA1lWKPQlJlJIdmZU+0hBJv1MaZ1VBkScKjRAXdS5UkcgwRWOThJOrPR48VULCpwWsrV7aS5/mITNer7HU92Saxvv/++xk1ahQLFy5s9bUCjZycHCoqKvyvefPmddq96mYZNdQXum5pT5/l3R6sVitnnHEGkydPJj8/n3/84x+kpqZy2WWXtXtuaGWby5by448/smLFCjZt2tQZ0wsEgkaQJIn5C+8lNiGGzH1ZvPzEf+qN8bm/ly39ikX/XMJXq7+tN6aooJjcg/k4dn5KfDiUVKl88IOLnn1TgIaF+oc9bmY+beP1L5xU1ECEt2/P4VpNsAd607S6RUlEWyVkt44QWygoEn/tHk+MCeRazWr+c3gEFr1WB1xWNEHXqTHUzT4zY+WQIYKwkOvQS6FY5F5A/RStMuVX/9e57g8o9mxo6kfYIL6qjK+//joVFRWtvl4A4eHhQa/OcnsDGI1G/9cNpSzWrSjW3u2NL774gunTpzNw4EBefPFFXC4XBoOByy+/nPvvv79dc/tosVCvXbu2wVdddu7cyZAhQ5g0aRJXXHEFJ598MqNHjyYjo2MDPAQCQeNERkdw32NaXf4vP15X77xPqEsqNLfxgT31/z59bvPeaUnccKb2QF3xvYvuffsBDUd+v/utC5cHeneTmfNnI0tv1eJSatxQ7VK54QwjN04z8vwtZob1klGMEHmwF8kZ/bkgwUJPqwxu7V52yYlBrz1MPR7toRsmWbCp2px6jPRhGBCo/22RNKG2KcER2uWeX4O+r1JaXw/irLPOYtCgQVRVVfH666+3+npB19KtWzf/1w2Vry4vL/d/3ZaKmzabjZdeeolBgwZx9tln8/nnn6MoCvHx8SxYsICDBw/y5ptvMnLkyDat/0haLNQ7duzgvPPO47zzzuOhhx5i//79QX7+nJwcTjvtNPbs2YOqqlitVkaOHMmePXs49dRTKS0t7ZAFCwSC5hkxXhOxgkOH65X89FUoc6E1ushKr1/A5OAB7Vivfj2YMkRHj3gJuxP03Yd6rwkW6sIKhfR8BUmCx64J4ZzRBqJCZSK8hk2BTaV7tMyMSQbCQyX6Jepwh0roPHoGm0PQyxI9rBKqK1CdTJU1t73dre1bWzH596njSSWG7kBAqEPlHgB+13eJ5weqlQwqFK1WeYLuTG0+NR+PaqfA/Tn7nYuwKc0XcJEkyV8A5dlnn21XlUZB5zNkyBB/QFdeXl698779Y6PR2GRO9IMPPhj0fVZWFn/9619JTk7mjjvu4Pfff0dVVUaMGMGbb75JdnY2CxYs6PB2qS0Wal84+4svvsjPP//MnDlzmDhxov/8rbfe6t+Uv/DCC8nJyWHz5s1kZGSQkJDAk08+2aELFwgEjRMTH02oxYyiKPUKo/gsajkkGiS5Qes4+4BWJjS1dzKSJDGkh+bHdoZqru+D+4Ov+el3LUJ7UIpMZFgg4tVXSrSgVuX7fA+3fe8kr0YhLVHG7d06HBSlPYZ6WiXwC7Udh6TtHVa4tHtbJRNlHm3tKfT396kupxAAk7dPtUMtolo5wFbHHH62X4aCAwORxOhOBsCuFrDdcS+7nP8g272M/a7FLfmRctVVVxEfH09OTg4ffvhhi64RHB2ioqIYO3YsALt27ap3Pj1dK8F7yimnBBVDOZLly5ezc+dOPvzwQ84//3zS0tJYtGgR5eXlyLLMJZdcwnfffccvv/zC1Vdf3Wk9LVos1KtXr2bu3Lnccsst9c599tlnrF27FkmSGDRoEMuXL8dq1T6tJyQk8Nprr/HRRx912KIFAkHTSJJED+9+ss869hEfZybEJCHJOnQhMWRnHEJRggOssr3XpPbRUrL6eaO2y9yRAOQezMPlCvSS9gn1yQN0wffy1qpY+/1eHtziYlOhwrJ0D327y7i9jTt6eDM3e4ZJ4NAemls8h6iStBzpEqdPqEPIdicS7T6PU7nML9Q+i9olaeOq1UP19qkjdSMIkTQL3K7mU65s9Z8r9fxcL1K8IUJCQrjtttsAWLhwYYd27BJ0PDfffDMAGzbUj0nw1Q6/8sorm5xj3759DBs2jBkzZvDpp5/i8XiIjIzkvvvuIyMjgxUrVgQZrJ1Fi4X622+/bXBjXFEU7rvvPv/3zz33XL1PFcOGDQvaExAIBJ1PSm9NqHMygoVakiSirJow60LjcDqcFBwKTiXJzvAJtZaD6kuvOliqw2wx43Z7OJSppSrV2FW2ZWlCPX5AcGkGY005AF84Eij3euC/yfVgMIDitahDvIHpPawSSn4fcBnJVEupRbugyCXjVBXCJRMqMh5PL0yE+oW6gmI8uNkpaS5up1qC44g+1dHyGL9Q16q5KNiR0GOS4lBwUOppWeDrrbfeislkIjc3t0PTbwSN43ZrHwgbqz2xbt06xo0bx3PPPRd0/Oqrr2bo0KGsWLEiKLLb6XSyfPlyhgwZwlVXXdXs/VVVRVVVBg4cyMsvv8yhQ4d4/PHHSUlJace7ah0tFmqXy9Xgpvvrr7/Orl27kCSJc889l1NPPbXB68PCwtq+SoFA0Gp69GnYogYwyVqAjS40Dgjec6612SnILQyao0e8jEEPNXZIGTIi6Jpf0j24PZAcq9UMr0uIw9vNyqxZyjoJCu3wabYHRZbAo1Lh7YndLVTCpJjwHBzqv15RdCiqjsNuF1a8bnFvydAwItFjREWhgmIypQMAyCiUevel43VT6W+4n0T9BZikOCQCFn+olEKc7k8AFHu+a8mPlPj4eL799lsyMzODApYEnUNtbS3bt2uNYX766acGxyxcuJBNmzYxf/78oOMGg4Fly5bhdruZO3cubrcbm83GrFmzUBSF999/v0Wu6okTJ/LFF1+wc+dObr755qNSvKvFQl1dXV3vE01xcTEPPPAAAHq9vtF96IKCggZz2QQCQefhq/ednVG/LaWnVisI4RfqOnvOvlKh4ZFWIqO1gFG9TqJ3gva4iOyrRbJm7M0C4KffNYvn5P71Cx2aagOpTANMNk7zdux6bY92jb4W0vM0F7JOkki1SigHh2JWNVH2pWbluhxYJc2PXuV1U0vIxKG9x1/5iiIpH5f3kVaq/AZAhDyUZMMlyJIBWdIsaB+hck9idVpFqhJlY/0fYCOMHz8+KP1H0DlcfvnlxMbGsmOH9qHr9ddfJyYmhpdffjlo3BVXXIHVauXaa+tX4hsyZAg//vgjhw8fJi0tjeHDhxMZGcm2bdvo379/s2sYMmQI33zzDVOnTu2YN9VGWlxCdOTIkTz77LP+huqqqnLddddRWlqKJEnceeedjb7x559/ntNOO61jViwQCFqEzxr2BYbVpbooG0J6YQrvTjVwMD2HbTuKcbtVynK8bm9vIJmPfkkye3MVzIlalOzOLbtxe1Q27Wt4fxpALS2BeEBVmVy5kz7DJ/LlIYXD3o6BepvK/krVX5K0Z5jE/gojJ1UN5+fwnwnxRnnnuZ1EGIP7VQMM40/kk8EPfAKAU9JhUBVUVSt44ZJM/ML/GM6p6DESInXHrmq1xS1SLyJkrdOWQy3CrdrQSy03KNxuNzt27GDEiBEtvkbQcpYvX96icTNnzmTmzJmNnk9LS+ODDz5o0xpmz57daQFiraHFQv3Xv/6VadOmsWfPHkaMGMHKlSvZsGEDkiTRt29fHn744Qav++CDD3jqqadElKRA0MWkeoW6ML+I2ppazBbNZaeqKocz92IcOAVVNmNOmsj63Yl8df8PAJw5VnNX9/AGkgG88p9dfL9TAWtvnGat1+72X3ay86CHajtEWGBASn0HXW16HobyPOSiUuzhu5g4YzImHTi8zjlDLZRWqxRXqsRFaClaADH5w3kgNoxPqjz8Ti35bifJkibUlUFCPYWvWYYLzcoOkRJADXww+VR6l3KvlT2aM7XzXixyT/RSGHrCcFONQz2M3puL3Ry5ublMnDiRoqIiDh06RFRUVPMXCY47fMGDR5sWu75PO+00Fi5cyNKlS7nzzjtZv349qqrSu3dv1q5dG+TazsvLY+XKlVxwwQXMmDEDj8cjmlAIBF1MRFS433WdnRkQr4qySqory/HYywAwJ0/EpQb+fnfv16KtU7yBZLV2N6s+zqQoW3OX51eb0RsMlBaV8dlPWt3tsf306OT6jQhKSlyEbthJyJ48MvblYtZLTEgIPHZ6erf70vO1fepki3Yuv0biPMNgeuk1AcxzOwnH6/omEBi0yrWPGnfgA0WU1Dfo/jZJmzeb3wH8AWWgub61Y9pes8/SbgmJiYlERERgs9l49dVXW3ydQNAWWlVCdM6cOWzdupV58+Yxe/ZsXnrpJbZt20afPn2Cxr399ttkZGRw8skn89hjj/Hvf/+bvXvrNwgQCASdS4pvn7pOQFmuN69a79T2ol1VuVQfWMutNw4A4HCZZrn6XOfbtpfgcitQW4OMgs0BaWNPRjKE8MM+zd09dVjDzrmKqkAKU9bBcgBOT9KuiTDCoHjtEZSe5xNqTexza7TrEvXaXnCuy4lVqu/6XuHayianFVSJUMKJkgLPIhWJAdKftOvZD0CIHAgAs0g9ATB5hbrqiBrhTSFJkn8b8LnnngsqSSkQdDSt7ng9ZMgQ/vWvfzU5pqPqmwoEgvbRo08KO37ZFbRPfeigJtQp4Yd4fuW9nDvsfJxllfTornm9nEQgGSx+od68pdB7pYrBbcOhD6P7SRPJLLPgVPQkxUgM69XwZ/7q2sAjprCoFrfbzelJOraV6BgWI+PIVfhqq4f9XqFOsgQKpLgVlQS9tj9Y7HH5hdqOG5fqwSDpqFId1GAhzn05lxjG4pIDXelCpHgmSjewne8ppYBaqgiRkrznuqOTNHPeKetBgfXKf7Byir/iWXNcfvnl/O1vfyMvL48VK1a0KNVHIGgLndKUQyAQHBv4Ir/rpmj5KpUl90wkzGLw95kuO5xH395aoSJDRC9SvXnYm34J5AvbSzV3ualbf8xDpgNwzmhDo/137Z5A4wVVZyEvuwCDLHH/cANnpejo291rUXtd3zEhYJTBo2piHSVrQl/mcROGCd9dqnCgqCo2b671QY+JeFIwSfH++4VICZixEu0V3lzSiZJHkaS/hBrDMJZwNyXks0vaqb1n1Uk6v7XwJ6v1U77zzjsBeOaZZ0QBFEGn0WqhfvHFFxkyZAgWi4W+ffvy4IMP4nA03ddWIBAcHXzVyeqmaOUeDAg1BFzcWek59O2hWbBh3QZgsYaSm1dNXr4NvV4iMtKIUlMFQHp1Aoa4NFS3k8n9Gq577XIpKHWiqHWmiHrlSvt0l5EkrTtXaZWCLEkkeq3qvBqVKF1AqGVJIgxfQJkdG0580rhP0fbP66Zf+UQ7mTQADrEfWdKTZpzLZv0BijnEFr6k1qv+JtVNLq1r2HHLLbdgNpv57bff+Pbbb1t1rUDQUlol1Lfccgt33nkne/bsoba2loyMDB555BGmT59erwShQCA4+vis4uyM+nvUST28Qu21qLPTc4i2aBHfkiUFt1th8xZNAIcMimHYkFhUmxY8VmHTHh2OA9+Rs/f3Bu9dcNgGUuARI5vC6zXzCDFKpMRqSumzqpNCA/vUPqEuV9x4VDVon7pGDewLF6hVVKj2Iyxq7eskr1D79qnzOIDbZ4mzG4e39KhJ9XDIO6alxMTEcP311wNaKWWBoDNosVB/9dVXvPbaa6iqitFoZNSoUfTu3RvQSrgtXbq00xYpEAjahs/1XVZcTlWFZg0fOsKi7ukV6qz0bJyVuSguGyoGdu8pY9Mv2v70mFFxDBoYBbU2ZAIfymt3rWHbpp0N3jsrqzzoe7kBixoC5Ul9+9SJdQLKIr1CrQKVioewOkJdTXAA1z6lCAORSGheAV+TjiS0SPBc0lFROcge/zX5ZOCQtHuYVDdlagFPcC1f826D76kh7rvvPn788UfReEjQabRYqN944w1AC6DIzc1l8+bNpKens2HDBhISElixYkVnrVEgELSR0LBQYhNiAK3wicvl9tf19lnUPdO8pUbTs8nOyMFVofVz/u6HfLZt1zrijR2dwMABUYAKtZrVHamvwpW/i+2/NCzU6elaa1tPrVZ8RDbWt6gB+nbXLFq/Re0TapuKUZIJk70NQTzuOmVE7VSrwVtu+5QiJEnyu799Qp1AT2T01FJFOYUcZLf/GhXFa1FLyIABD3Zq+J5VKLQspbRHjx6MHz++RWMFgrbQYqHetGkT/fv35+233yY6Otp/fOLEibz00kvs29f6ZuwCgaDzSa1T8zs/pwBFUTCFGP0CntwzCUmSqK6qYetP23GVZwCwem0WdoeHmJgQevW0ktY3AoNexlWiWdlnDtHymbf/srvBQKrsHK18qOzI1/41hJKZXr83sC+gbH8jKVpRsmYhl3lchNcpelLX9Q2wz6O56WV5Im5iCJe1ntx6DHRD61V9iH3+nGo/koQkae0zQ5SAOBfRfJ/qIyktLaWioqL5gQJBK2ixUBcVFXHRRReh09UvE3jOOec0e71wjQsERwd/KdGMHH8gWVKPRH+ktinERGKqlktckFuIqyITSdKCwQDGjIpHkiSMBh19+0SgFhzklpMruPrcJIwmI+Ul5Q3WE8/L1wqnmPXVWCyae7mi0kNVZXXQuD5eoS6qUCmvUUkMDRbqSO8zp8zjrlPv20GN1/Wt88aC71MK2eWoYaEngQfVc9it1vrvkeh1f2/hS5zUAsFR6iGS9jOK8Vhwq9r9smld7YdFixaRkpJSr4uTQNBeWizUVVVVxMfHN3jOYDA02/LL17xDIBB0LXVTtPypWb2Sgsb4AsoA8DgY0C/S/+3YUYG/+0EDtUphuVklGIwGBg7T6vs3tE9dWKwJabhFpVuCFv0tGyM4uD/Y/W0JkUiK8QaU5Xn8e9QVTqh21Yn8Vtx1gskCru9B3iImWWoZ0/N/JFfVLNoS1ea/h2+f2uf27seooDVE6yYAkODRkenSfl4H1IZd+o2RkJCAzWbjhRdeCGqrKBC0lxYLtaIo5OXloShKvVdJSQkpKSmoqlrvXGVlJS+99BKFhYXN30QgEHQ4dZtz+FOzvPvTR44B6JacwPixmvjJssSoEYGUp4H9NaHe87uWTz18nNaScvN3W4Lmczg8VFZrFnF0pExCvFeoG4j8hoD7O6NAIcwgEeltTpVXoxKt87m+3UR4y4jucVXyQpnmmk6WIxgsa/vR0REH/XNWqgGx9FnUPkYzjTAi/d8n66YBoFfTqXVr96jnIm+GGTNmkJycTGFhIcuWLWvVtQJBU7QqPevpp5/GYDDUe8XHx7N8+XL0en29c1FRUdxxxx2dtX6BQNAMqX0CZURzMrWyoUlHCHXPOhZ1jz4pTJmcSIhJx8STuxEWFuge5LOo0zMqcDg8TJqqBVF9/+WPuN1u/7i8fK3fteK2Ex0VSkK8VgVMNkWQl1O/pnZitPYoKijXxD2pzj513aInUd687J2ucvIUzWI2qAZGe+t2m4w1/jkr6gh1LIkYvCJvIZIIpS8WNcb/fZjcA4vUBwmFeLWaEI8TST1MJSWN/FTrYzAYuOuuuwBRAEXQsbRKqFVVbfNLIBAcHeoGi+3cstt77AiLuo5Qp/ZOJiU5jPfensb8+4JdxPFxZmKiTXg8KvvSyxk+/iTCI62Ul1awffMu/7jcPK9Q28uIjAkPsqh9Ued1KT2oBaPuy9Dc1ol1Ir8j6xQ9ifYKtQ07sqQFfv1QU4Nij6k3Z90uWzI6EtHSSQtdCZxf+wbbPFq6WgSxAMToTgagF4cZ5jjMSfYCclrp/r7pppsICwtj165dfPnll626VhCM0+nk8ccfp3///vTp04cpU6awYcOGVs/zxhtvMG7cOHr16kV8fDwzZsw47npPtKrW980338z5558f1CmrOaqrq1m5ciVvv/12qxcnEAjajynERLfkBPJzCijM1yKjm7SovdXM6lrSPiRJYtCAaL77IZ/f95YzdHAMk8+YwJqV/+Pbz75j5MlapPWhXC1gzGMvIzIqkW4JmkWtM0VQcKh+hkj6Lz9BXC/2Z1VSXWkhOdTbjKNGJTo2UPQkyhudrdO5CNdpBsA+h4s9paVExpsw6APiXEnwPvGpXM5nykf816nNXaNo+92RXqG2yFqLy77kY/DmiucpPzNYN6XhH2wDREZGcsMNN/Dss8+ycOFCpk2b1uJrBQEcDgdnn302hw8f5ssvvyQ1NZWVK1cydepU3n33XWbMmNHsHKqqcv311/Ptt9/y4YcfMnLkSAoLC5k5cyZjxozh888/Z8KECV3wbtpPi4U6IiKCl19+uU03Ofvss1m1alWbrhUIBO2nR58U8uu4nBNTgxtPxHWPJSQ0BLvNTkrvpgNDk5MsABwu1FzPU86e6BXq7/nLQ7cjSVKQRR0RPSBgURvDKcitH6/iLMuDOFDNMSx+6CWG3HE3AJlVKn109V3fOtlNikmvJVApempUFWNtFBHWAlQVJCl4jxqgB4Mwu2tw8iMABZ44hqhOTpL+BIDZ27AjQgoEoVUou6F+okuTzJkzh+eff55169aRl5dHYmJi8xcJgrj//vtZt24dP//8M6mp2ofIGTNmsGrVKq677jpGjx5Nr15N9w5/8cUXefPNN1m7di0jR44EID4+nvfff58+ffpw2WWXsWPHDiIjIzv77bSbFru+29NAW5ZlsU8tEBxFfJHfALEJMZhDQ4LOy7LMny8/m9Q+yf4AscaIi9Os48IiLf1pwmnjMRgN5GQcIssb0e0Tao+9jIiocBL8Ud9hFOQV19sOsxUdQlU8SHojq1ZsQH9QC+TaWqxg9qZLlXrcKB5NtCVJRdZp1vOtUcmEyTLdnX3w2LpRXqUJ7pFCDVpkuI8qJYwk9w30ZzQAZim53niXcqjFhU989OrVi7feeovMzEwh0m0gKyuLJUuWMGjQIMaOHRt07uqrr8ZmszFv3rwm51BVlX//+9/o9fp6Xo2IiAiuv/56Dh06xAsvvNDh6+8MWizUjz76aLtu1N7rBQJB2/G5s6H+/rSPeU/dw8eblmMND2tyrrhYTaiLizUhtFhDGTNpBADffvYd4K3zDSiOciKiIgi3GggJ0QTX4Tb4y5n6qK6oQKnW3PK68G58985KeoRJuFXIKQ9UJltvq0JRtHkKVa3u+DhTFL/1Hsna5BHE1Q7C7tDc4w0KtaJVS+smaV3CKurkWpukONxHmM9mtZYi6ueIN8fMmTNJSkpqfqCgHu+99x5ut7tBt/S4ceMAWLVqFSUljQf6/f777+Tl5REfH99g7Y+pU6cCsHz58g5adeci2lwKBH8A6rqzj9yfbi1+i7o4IHJTzpoEwPrPNwJQVaV11FJcNiKiw5EkKcj9nX9EQFlleRWeSu2YHN6NzL1ZnOJN2dpdrP1b7nHzq70Gj6Ltndei3cMimQiTdZhkmXidEUXRrO4jhVpRVb9QD5MT642RJJkK1Rp0jUVxUq7Wj1JvDaWlpe26/o/GmjVrAPy9JOoSHR1NUlISTqeTjRs3NjqH72deWVnZ4PkePbRKdbt378ZmszU45lhCCHUX43PpjBkz5mgvRfAHom6edGMWdUuJj9Xc5mVlDpwuzS3sE+rtm3dyOK8YW62WqqW67URGRQAEBZQdrrNPraoqVRXVeKo0QdSFdyMrPZtJ3jorWwu0CPAaVWGHvQaPJzi0xiIZ/V930xsCQu3tWe3jsFqFHTd6ZAbptLzr8jpCraoqxViC5paBRDWqVT8fH4WFhZx11ln079+f2tra5i84wamsrAx6NdYe+bfftJ7gycn1tyIA/57y1q1bG72Xz5tRXV3Nnj176p33bb2oqtqkZX6sIIS6i7n99tvZvXs3mzdvPtpLEfyBSEzthl6vuQDba1GHhxsxGrVHR0mJJnQJSfEMHNYPVVX5+jMtWEtVVVSPg4hoTaijIrUoa8lgDkrRqqmyoSgKnkpNqI1RSbicLqKqCogyQY1D539Q7XAELGofYQSEOl4fsKgVVH+ZUQi4vVOlSH+aV13Xtw0nJQQs6hLVilPVY1PaZlFHR0ezd+9eiouLT5isl8TdQ0jaOaxVr8TdQwBISUkhIiLC/3rsscfqzW+326mu9jZ9aSTIKyJC+30qLi5udJ09e/ZkxAhtO6ahfejc3Fz/10ajsd75Yw0h1ALBHwC9Xk/vAd70o4H1XYqtQZIk/z51UVHAIp04VctD3vS9lnuseuyYQgyEmDWBtlq1B6KkMwe5viu9+9WSt8tWaLwW5XtwXxaTu+mQkDCpPvEF1XOEUB9hUavISKr2aKvr2s5UNaHuKUcTIZnrna9UHZSi7c9LGHmX83iEyyiXBrTmx+NHr9czZ84cQCuAoihKM1ec2OTk5FBRUeF/NRQQVte6bSwNWPZ2U2uuTOvrr79OeHg4L7/8Mk8++SS1tbXU1tayZs0a7rvvPv89YmNj2/qWugwh1ALBH4THXn2Qp5b+y1+fuz34hLruPvW4U7TiKDt+OwBobu8Ir9sbINwr1LI+hMN5Add3Vbkm1GZV+1e2am7pjL1ZnJakPaLczkBAkE9kQWutYT7CogbAa3XXFWKfRd1LjvaXIi2vk2tdpTooRluvRUqlj643SVIUFTQtCE1xww03EB4ezt69e/nss8/aPM+JQHh4eNDLZDLVG1PXum2sUJbTqXlJ6nZxbIiRI0fyyy+/cOWVV/Liiy8yZswYrr76aqqqqrBaNc/J2LFjGww2O9ZoVcETgUBw/NK7f0969+/ZIXPFefepi+oI9UljhmAKMVJV5cKKV6ijw/3nrVZNPCV9CAWHMvzHK71CbZFrqAVcOitIMpn7spiVIDM6TuYzT+Bh2l0O88dhh2JElgKdsLrptXu4FR06XbBQFyjafZKkCCK9XbgqVDuqqiJJElXYOUA3fmE8Nxtn8bg8FKPUvkek1Wrl5ptv5umnn+aZZ55h+vTp7ZrvRCc6Ohqj0YjT6aSmpqbBMeXl5QAtsoTT0tLqbTsUFxdz9dVXA3DZZZe1b8FdhLCoBQJBq/FFfhcVBYTaaDIyfNxJSHpNBBV3rT+QDAIWtaQ3BxU98Ql1uFnBoAcVGTksjoy9WUiSxN+G69HVCSDroQ+kj9V1ewMk6LTvnd4UrrrWcImqPfhjZAvhXqvcg4LNu49dqTpQkTkgnUKUbkS7RdrHnXfeiU6n45tvvmkyAEoAOp2OQYMGAZCXV793OcDhw9q2yfDhw9t0j8WLF+N2u0lISODaa69t0xxdjRBqgUDQagIWdbBbeOwpo/xC3ZRFXZhXhMejRYxXVXprbkeGkRChWce68G5k7j+Ioij0tMr0swRE014RCPiyEOw+jdbp0SM1mKLla3sZI1kIkfSYvA5FX+R3lfdfXyvNjiI1NZVLL70UgFdffbVD5z4ROfPMMwHYtWtXvXPFxcVUVFRgsViYPHlyq+fOyspi4cKFADz77LOYzeZmrjg2EEItEAhajT+YrDg47WjcKaORddo5bY+6rlD79qjNeDweSg57c119FnWElYRI7ZFkiErEbrP7Le8xUYEAso3pdYT6CItaliTi66ZoeRtzuFSP37qO8UZ813V/1x0bLgVXbesI/va3v/Gf//yHZ555psPnPtG44YYbkGW5wQYcP/6oZRRcfPHFDe5xN4XT6eSqq67Cbrdzxx13HDdubxBCLRAI2kB8A65vgAHD+mEM1YS0XjCZt8mHbNCuzc/VXJi+YDJrpJWEKM2ijk5NAyBjbyYAMd69Z6MqI9cEhPpI1zdAqsFUz6Iu81rTOmTCvYFk4X6h1t5DFV6hpmMtaoCTTjqJWbNmERLS8R8CTjTS0tK4+eab2bFjR72tgjfffBOz2cyCBQv8x9atW8e4ceN47rnnGp2ztraWyy67jI0bN3Lrrbfy7LPPdtbyOwUh1AKBoNXEei3q8gonTmegFrZOpyO6m9bwQ/HUHuH69oqqpANZ78+l9lvUkVYSozWhNidoKWQZe7MAzaUNkGYwI7lNoGiPrrAGRHV0SBger1B/7dnPPPsa9ilazm20ZPYHn0WgvQefpe2zrDvDoq6Loii4XK5OvcfxztNPP82oUaOYPXs2paWlqKrK888/z+rVq3nrrbeCqpYtXLiQTZs2MX/+/HrzVFVV8cYbbzBixAjWrVvH0qVLefHFF/0pXscLx9dqBQLBMUG41YDJpAVsFZcE71OHRWppM3WrkgGYzTp0Ok0kJX0Ih70WtS+P2hoRRlqiNqfTouVSZ+47CMBUSySTzOHcFdsdoyyhOjWRDW3Aoh5jtvot6mK1hm89B3jN9ROg7U/7qO/61izrzhTq9957j/79+4u96mawWCysW7eO8ePHM3r0aNLS0vj666/ZvHkzl1xySdDYK664AqvVWi8wbNCgQSQnJ/Piiy9y1VVXkZ6eznXXXdeF76LjEOlZAoGg1WhFT0I4lFtDYVEtid0DAqg3WYBaVHct4XX2qCVJwmo1UF7uRNaZyT+k7T/X3aPunyQjS1CrWpAtsRw8kANAosHEypSBAHwQ4WCvwwwhNQ26vkeZw1BKgx9t+xWt4YevIhnUdX0HW9QRnSjUJSUlpKens2jRImbPnn1c5PAeLaxWK4sXL2bx4sVNjps5cyYzZ86sd3z37t2dtLKuR1jUAoGgTQSqkwXvUztdmtWsuu3Edw/OdQ2kaAUs6qoKrWRkeKQVs0midzdvQFm3gUE1wX0MipL9FnVDru8YnYFucnBVK1/pjJg6Qh3pTdHy7VH7hZrOE+prr72WqKgoDhw4wOrVqzvtPoITCyHUAoGgTTTURQugqlrbf51116X1qqAF51LXDyYDGJgSEOrC/KJ6pTcHRUmoVZp7vafccMOMMfokqmti6ekOLpca7PrW1l/mE2p8FnXnpexYLBZmz54NICLABS1GCLVAIGgT8Uf0pQbweFSqvUJ9xY3nIdWpGgaBXGpZH0JOZh6qqvr3qMP9Qq25gw3dBuF2uSkpDG4TOTBSRkkfg/6nGUySNSHeWaqQVRUQ9LHmcIrL+1Bb2ROZwBrqur59X5eqNm0dXeD6BrjjjjswGAx89913ojmPoEUIoRYIBG0i1lv0pLCO67u6JhDNbA0z1LvG35jDYKa6spqSwtKgqG+oY1HH9QXZUM/93StcIkSWqa2IIqcaimtVblzv5KpvnOwr18R6ZIhWvWy3w06SFAhoi2lEqJ8qzcaJFr3e2VHfiYmJXHHFFYCwqgUtQwi1QCBoE/5c6jqu76oqrRynJVSPTlf/8eIT7/CoGAB+37EPt0vrXW0N14S6e5REhAXQGdDH9Q0qNwqgkyT6eyuY7SpT2Vuh4FbB7oG5Pzoptav0NoagA6oUD92oK9QB13ddof5vpdb2UFZlQqn/AaOj+ctf/gLAypUrg1ouCgQNIYRaIBC0iUB1sjodqKo0i9qfM30Evj1qS6Qm1Dt+0SJzdTodoWHafJIkMcDbNcuUOjao05YPT6UWHrb2dzeZVYEuSwW1sHSvG6Mk08uoWcZmNVAbvK5F7fu6Bidlkrcgimqo567vDIYPH84///lPvvnmGxIT29cfXHDiI9KzBAJBm/DV+66sdGK3uwkJ0VPptah9e9FH4jseYtHStnb8otVztkZagwXSVgmEETr4XHbs/bzePFVFCkTJbC1UiPZa13EhUGSHnBpNuPsbzaQ77SjuUP+Tru4etQUjRnQ48WDQa14Bt9J1j8SHHnqoy+4lOL4RFrVAIGgTYWEGQkK0wC+fVe0X6gb2pyFgaeuMmmDu/FWzqMMjw4LGVeXkoLpdSJZwftWfzS/bK/znah0qlYWaGLtM8GOOtrfcN1QT7FKHis2tsjtPu1eFQ0vhCsUQVCBFkiS/cBsMmlDXemRsSqDSWldxZGS7QFAXIdQCgaBNSJLk36cu9u5T+1zf4Y26vjUBV9DO+3OoIwL1u202N3u2FeD5fQuqw4ZktvLICicejybO6fkKkh1QVVS9RIXXED/wuyawZQ6Vnw8rlFdoAp1da+RC/VBmGycErWWPw0ah9rkCo9ei9ih6Xi4roMTTNSU+y8vLmTt3LiNGjMDtdnfJPQXHH0KoBQJBm4mN8UZ++4W6ade3T8Cd7uB9YF/EN8CvW4twuRViQ52UrboP1e3CLofy/vda04y9uQqSCuGqdw5ZAlXFUaIJeakDatxgsGtr2+ewc6/xT8wwDAu657+Lc6h2e1PBvEKtKHqeKjnEedm7qPR0vnCaTCbefvtttm/fzocfftjp9xMcnwihFggEbSbQRcvb07m66WAyn4DX2NyEWgKFRax1hPrHTVohlDEjY3GX7MeduQOAd751U1iusC9Xs5xT6tQlkZ2g8xrBDg/k1ijonSZQoRYPBe76FnKJx4VH0daj12sfMBRFjwxkuhzcmp9OgdvZ8h9GGzCbzdx2220ALFq0qFPvJTh+EUItEAjaTGKilu6Ula3lQjcfTKYJuMOhkNq3Z+C4NzVLUVR+3qwJ9Z/+lIreoMex/1vUqnKcHolnP3GyN1fbzy37bZP/+hA3SAqYvE+0/RUqkiprYg1sq7UFrUNVVQ66HHg8weu8N6onn6YMxoDEN7YKTs7cyidVJa37obSS2267DZPJxE8//cQPP/zQqfcSHJ8IoRYIBG0mrU8kAPv2lwN19qjDGraoLaF6ZFlzWSf37uU/7nN979tfTlmZg1CznmFD44jvHoe74iCeg3tAVfgl3UNBmebiPvTFx/7rw7wZWmHeoO39FdoBvdf9/WFxIBhNVVUKPS5KPW6/Re0jVg5lhDmMD1IGMiYkDI8KI0KCA906moSEBK666ipAFEARNIwQaoFA0Gb6pWnFRHLzaqiucQWEOrxhoZYkyR8RHpec4j/uE+pft2p9o0eNiMNgkElIisdVmQ12G55D6f7xsu0wauYu//dR3ieZN/CbXJsm1JaKSADWu0twqyrlDpXzPnfwyO+VAESqgQIoECgfOsZs5eOUQXzZYwgphvqNPzoaXwGUVatWkZGR0en3Ox5wOp08/vjj9O/fnz59+jBlyhQ2bNjQ6nmWLl3K2LFj6d69O927d2fcuHG89dZbnbDizkMItUAgaDORESb/PnX6gYpmXd91z8UkJASOeYX6QKZm+fbvHwlAt6R4VLeNKKsH9XAOKZFagJfr8O9gq0bNz9bGGTSFPrL4Z5oSgezWU4mLr2rK2FqiUFALP1VprvBYJWAtqx493Vzx/u8lSaK/KZSuYPDgwZx55pkoisKzzz7bJfc8lnE4HJx11lm8/fbbfPnllxw4cIA77riDqVOnsnLlyhbPc9ddd3HnnXcyf/588vPzyc/P55577uGGG27gr3/9aye+g45FCLVAIGgXaX01q3pfenmzwWR1z4VFBVpg+tKzMrO0ve7ePbWCKAmJmnCGm7TjPcnmkpOh7Pv/A0B55REuc+0g1awJtSFQpAyAHmE6Qsu0DlvvVBSR77W0K7xR3jHuQHlRz67JZBYHhPndl1ew5NFXycnsmhKf999/P3PnzmXu3Lldcr9jmfvvv59169axdOlSUlNTAZgxYwaXXHIJ1113HZmZmc3OsWXLFp5//nnmz5/P+eef7z9+6aWXcs0117Bw4cLjpme1EGqBQNAu+vWNBGDf/gqqqzWLOryRgicQyKUOsYT7q5GFR1pxujzkHNLyqnt5hbpbkibUeqcmlj9vzGFS0mGUygJtstxMyr/5jAivz1t3RK2SlDCJ0HJNqDfaKsizaYFodpMm1LGOWDwHRuDZczJqfhr7KwKFRz548xNef+YtCg4dbuVPpG2ceuqpLFy4kB49enTJ/Y5VsrKyWLJkCYMGDWLs2LFB566++mpsNhvz5s1rdp5vvvkG0Mq1HsnIkSMB2LlzZ/sX3AUIoRYIBO3CZ1Fv3V6Mr8BWWFOub2+gmd0BfQZoAWWJqd3IyalGUVQsFr2/PGl89zgAakszSUkOw1br5n9fae5uvV7Lgf5p/WasvlStOllYRhkSzBJ6RwiSCnZVJaPWhUfvwh3iQAIiHGEo6WOwFgwFYF9FwCSviUuFxB4YQxr3Dgg6nvfeew+3282ECRPqnRs3bhyg7eWXlDQdjW+xaPEHP/30U71zVVVVSJLEsGHD6p07FhFCLRAI2kW/tEgAysq0giQhITqMBl2j432BZlVVTha/+zivr36B5J5JZGRpAV69ewYs7ahYbe7yknL+PL0nAN9v0saNmjgCs8VMaVEZjkotCE1xBIQ2JgQsepCQCFW0ex502XFYNKs9TR+K3aGtc1y89iisa1FXnH4Fuof+wyZHZOt/KO3ghx9+4Pzzz+e///1vl973WGHNmjUA9O7du9656OhokpKScDqdbNy4scl5pk+fjk6n48knn6xnOa9atYobb7yR/v37d9zCOxEh1AKBoF1ERZr8FjA0Xj7Uhy+YrLLaRVKPREZNGA4E9qd9bm+AqJhIAMqKy5k2NYWQEB1llaC3ppDSK5luSd6ANIcm3u5Ax01iTBJmvSb4Zre2plxXLY4w7T5DdOF4P1swJk57FBbZodyhcqhGwZ2Shqp4GBnZtbW/v/nmGz755BOefvppVFVt/oLjhMrKyqCXw+FocNxvv/0GQHJycoPnIyMjAdi6dWuT9+vRowcPP/wwdrudM888k23btgHw1FNPMWbMGF566aW2vZGjgBBqgUDQbtK8+9TQdMQ3BITcV27UR2Ydi9qHz6KuqbZh1KuccZr28DYljKBbcgLmUO0DgurSFNpuCwhbbIiExZtXbXB6K6IZ3H6LOroqjF35mggnWiSSLZqo76tQ+F+O17Le8xvxlq5tMjh79mzMZjO//vprm9KROpPoHR5itrbuFb3DW0kuJYWIiAj/67HHHqs3v91up7pa+//xCfKRRERoWy3FxcXNrveBBx7gH//4B3l5eZxyyinMnTuX+Ph4XnjhBXS6xr0+xxpCqAUCQbvp1zcQPW1tpNhJ4Lwmmr6cax8ZmZpQ9+oZKCdqjbD696LLiss59+yeABij+hIZG09IaAh6azLvriwCwFZd1/UtEeq1qG1FmvVmD6vCY3SBIrF9Swg+my7SKJEW4RNqlf95O3Kpm9ZhNDb9waOjiY2N5dprrwVg4cKFXXrvziQnJ4eKigr/q6GAsLr7zqGhDafGybImW3a7vcHzR/LQQw/xl7/8hWnTprFo0SIWLFjA9u3b2/AOjh5CqAUCQbvx7VND8xa1tQGLuqrKSXGJ9uDtWceiliSJSK/7u7S4jL59IpBcJUiynkMloXiM3QkfdCUOmyb6njreVE2ota9lh3ZPV6iWP220WXB5JFTv+SiTxGBv1ZT3MzxkVKmoLifqb98flWAyXwGU1atXs2/fvi6/f2cQHh4e9DKZ6heSMRoDP+vG3P5Op/Z7Ex0d3ew97XY7119/PXPmzGHFihXcfffdHDx4kMmTJ/Pjjz+28Z10PUKoBQJBu0mrY1E3t0ft67iVl2/zt6707U8nxJsJswQLvc/9XVZSjqIo2PK3AvDdpmoO1Q7WBikeVMWDpOJ3d8eG4BdqnRJcgSykOgzVJIE3aC3SCKcnaY/DQzVegdi5CWprgsSjq+jXrx/nnXceAIsXL+7y+x8toqOj/T/vmpqaBseUl5cDmuehKVRV5dJLL6Vbt2706NEDSZJYtGgR99xzD5WVlZx//vlUVFQ0OcexghBqgUDQbqKjQvwC3JxF3SPVSqhZj63WTdZBzd3ti/iuG0jmo25AWUlhKfbCnaiKi7JyFyoyztK92kBvh6xwrzjHmAKub51qDZrTVGPFa2QjeVRQICVMZlBkoP2mumkdwFFLz/IVPnnjjTeaTUU6UdDpdAwaNAiAvLy8BsccPqzltTeUH12X9957j9WrVzN9+vSg40899RTnnXceRUVFLFmypP2L7gKEUAsEgg7B5/6OiGha2HQ6icGDtCIkO3aVAnAgQ7NsGhTqOhZ1waHDqB4HulqtMlV8eCXV+z/BaFD8Qj0lWmZMnMyoODlgUWNE9m6Jyy4JQ60Zm7c5iOSGokrNip6Wou2Hh8gq6vafkCTJv0fe1UyZMoUZM2awcOHCRvdrT0TOPPNMAHbt2lXvXHFxMRUVFVgsFiZPntzkPL7+3vHx8UHHJUnikUceAWDTpk31rjsWEUItEAg6hGtm9mf62T2Y+qeG02rqMmRQDAA7d5eiqiqbfin0Hq+/7xgVo4l6WXE5BbmaNZVoyWLxUxMZ1bcMUNHLCqpXqEeYZV6abCTMIGH2CrWE5I/8NuU6kJBwe41n2Q1F3kIn5/XQMT5e5urkWnA6MJoM/pzurkaSJFasWMGtt96K2Wxu/oIThBtuuAFZlhuMePftK1988cUN7nHXxbeXfejQoXrn0tLSAI7KtkZbEEItEAg6hLQ+Ecy9cxjR0Ue2xqjPkMGaIO/YWcL+9AqKS+yEmHSMHF5/37GuRZ2fo5UO7Z4Uw9DBMYRaNAHTSR5waQ/mippAEJIsScguLcLM4ND2qUN+rw6aX3JDobfQSYRR4oVJRs6M0MYYTcfHg/xEIi0tjZtvvpkdO3bUy5V+8803MZvNLFiwwH9s3bp1jBs3jueeey5o7AUXXADQYOEYX7Wyiy++uGMX30kIoRYIBF3OgH6R6HQSxSV2PlqtubFHj4rDaKzvZo72CXVxOTmZ2r5lco9EAELMmlUl4/K7vittR0QLO7Qc67DDScRk9SL694ig07JbpbA8+BqfNXYsCLXD4eA///kPl1566QlVAKUpnn76aUaNGsXs2bMpLdW8Ls8//zyrV6/mrbfeCqpatnDhQjZt2sT8+fOD5rjmmmu48MILeeONN1i8eDEul/b78euvv3LzzTczc+ZMLr300i59X21FCLVAIOhyQkL0/mYeX3ydA8DJ47o1ONbv+i4pJ/uANja1j9ZRKcSsWe8SLr/re/UmFw8vt2N3qiiKglKrCbXOoyekOhx9RXD+raEq4Pr24bRrQm3o4hzqhrDZbMyZM4eVK1fy9ddfH+3ldAkWi4V169Yxfvx4Ro8eTVpaGl9//TWbN2/mkksuCRp7xRVXYLVa/bnnPmRZZuXKlTzzzDO8+eabxMfHk5qayuzZs7n//vt5++23j9q2RmsRQt0GPB4Pf/vb30hISCA+Pp7bbrutxcn3AoFAw+f+VlUtS2r82IQGx/lc36XFZWRn+IRa2wc3e13fKE6oLkdCpdoOG3d7+PWAh7LicnAHlwDVEbzfa6xUOVyuBB1zOjXRNx0DFnVUVBSzZs0CTqwCKM1htVpZvHgxGRkZpKen89FHH3HSSSfVGzdz5kwqKyt54YUX6p3T6XTcdddd/Pbbb5SVlZGdnc2mTZu46aabjhuRBiHUbeKJJ56gd+/efPbZZ9x888289NJLPProo0d7WQLBcUXdwLHBA6OJjGg4OMiXnlWUX0RBrhZ01qNPChBwfatuB2pVGeelHmJMmuY+zytVOZxXGCTUkltFCg3zf6+rVZGUBixqx7Hj+ga4++67kSSJzz//vMFoaMGJjRDqVqKqKlOnTuXmm29m5MiR/Otf/2LSpEn+QvICgaBl+CxqgJPHNWxNQ8CittdqQWHWiDAio7V9ZnOoZh0rbs2j5XY46d1Ne6zllyoczitCqmNQS26gTqqTqVQTaF96lo9jTah79+7NhRdeCMCiRYuO8moEXY0Q6lYiSVK9Zubx8fH8+c9/PkorEgiOTyIjTAwZHE2ISccpkxIbHRceaQ1qoJDaO8XvtvRZ1B6ntg9dU+MiMVo7l1+qUphXiKwGXJyyG+TweHr/8A2huQohhZrL2+EChysg1k6H5vo2mo7+HrUPXwGUd955x1/0Q/DHQAh1O8nOziYuLo6bbrrpaC9FIDju+PdD43jjtdNI7G5pdIwsy0REBwqh+NzeENijdju1Gt7VNS66R2uPtbwyr0WtBkRecrqRJBlXuYq5SEV2O9B5n4JVtXWF+tgJJvMxYcIExo0bh8PhOK5aNArajxDqNlJRUcFLL73E+PHj+fLLL5ttYi4QCOpjCTUQF9t8MY/o2Cj/175AMghY1C67JtQ1NW66ey3qwnKVw3nFSFJAbHXeaO5qYxIAisuF1Xv7Slvgfr70LFNI00U1uhJJkrjnnns488wzOfXUU4/2cgRdSNc2Wj2Guf/++5sV21mzZvmjLy0WC2eddRY1NTU8/PDDnHfeeWRlZfl7pQoEgo7DF1AGkFrHovalZzlrqzGgub5jrRIGPbjcUFQFshTYZ7biQiEEOVarTIXHQ6gRymu0/GubQ+XVz504S7UPBseSRQ0wY8YMZsyYcbSXIehihFB7eeKJJ1o1Xq/X06tXL/7617/Sp08fLrroIr799lvOP//8TlqhQPDHxRdQBtoetQ9fMJnDVoUBzfUtyxLdIiVyilUqnGZkXSB4LMGskF9nXtXjJkSvADJVtSrPrXawbrsHGA6A6Sg15BAI6iJc3x3ABRdcQGRkZLO1ZwUCQdsItqgDrm9zqPY353b4gsncAP596ho5FrmOPdIr5ojcWY8bg6yFhR8qVrwiHcB4jFnUPnJzc5k3bx5fffXV0V6KoAsQQt0BeDwejEYjY8aMOdpLEQhOSHwWdXRcFNbwQB50iNeiVj1a6pat1o3Ho/ojv53WXkh1apn07RZCXHidVCyPG52qifPKja6ge0omK4ZjtGnDokWLePzxx3n88ceP9lIEXcBxK9Rr1qxhwoQJvPHGG02OczqdPP744/Tv358+ffowZcqUBruytJSamhqefPJJdu7c6T+2YMECHnroIWJiYto8r0AgaJwobzBZau/gzlwGgx69XucXagCbLRD5rcb0ByUgzAOSzfRMqLPjp3j8NcJrjiguqAuLO2Zd33feeSc6nY6vv/6aHTt2HO3lCDqZ406oV6xYwbhx4zj33HP9Lc8aw+FwcNZZZ/H222/z5ZdfcuDAAe644w6mTp3KypUr23T/qqoqli1bxujRozn11FO56aabGD9+PLNnz27TfAKBoHkmTzuZ4eOGcvlNl9Q7F2IOAdWDwaBZ0TU2N92jtK9lU1hQwZOUGBMpcQH3t+px4/ZGeB+JHBZ3zAWT+ejRo4e/5rVI1TrxOe6CyUaPHs2GDRsYOnQo+/fvb3Ls/fffz7p16/j5559JTdWK+M+YMYNVq1Zx3XXXMXr0aHr16tWq+3fr1q1e6zWBQNC5dE/uxtK1DQtSSGgI1VU1mE0yLpeHmhoXA5LNmPQqDrcU5PqONEKPuDr2iceNq9YRNJ9SW45sjkRnjTtmKpM1xNy5c3nvvff48MMPj/ZSBJ3McSfUvvZmI0aMaFKos7KyWLJkCYMGDapXSezqq6/mv//9L/PmzWP58uWdul4fDocDhyPwQKisrATA5XL5268JBHXx/V6I34+m8eVSm0wSVENFpZ3UlFDOHFTFJ9vD8caKoXe7kRQdiVF1lNvjxlZpgzr1VtwFuzH2moB1yp387MxjcpaD/knHnvNxxIgRTJw4UdRw+ANw3Am1j5CQppvTv/fee7jdbiZMmFDv3Lhx4wBYtWoVJSUlXbK3/Nhjj/HQQw/VO75u3TpC69QeFgiO5MsvvzzaSzimcXn3mF2OaiCE9et/IucguDPzgGuQHWDaW0QPKZ+1a/Oxu/XAn/zXlxZX+IVa9bih7AD00p4b+e5Evvv+Jw5Yy7vyLbWYyZMnC6H+A3DcCnVzLcrWrFkDENRg3Ed0dDRJSUnk5uaycePGLqnTPW/ePH+tXtAs6pSUFE499VQRhCZoEJfLxZdffskZZ5yBwXBs7pUeC7y/ZA2HDxURGWmhvNrDgIHDmHpqEt8bfuTtO64nbsqdhBRVcPbMvpxzzggA/m+bb19awmFz+4N1lJpiLLINnw8jRHZw/YyT0cnHZkvEM888k48//pg9e/Yc7aV0OE6nk2eeeYalS5fidrtJTk7mkUce4ZRTTmnx9UlJSRQXFzc5rrCwkLi4uI5Ycqdx3Ap1c/i6WSUnJzd4PjIyktzcXLZu3dolQm0ymRrMszYYDOIhLGgS8TvSNKHeet++uC+HQ8VgMGCrrsVTkYeu6AAo0XSLt/h/jqOsW/hhlxNdWQWqzugXak91ERadnXLv9z3DSggxRXOsYjAYWL9+PfHx8Ud7KR2Kw+Hg7LPP5vDhw3z55ZekpqaycuVKpk6dyrvvvtui6myrVq1qVqTHjRt3zIs0HIdR3y3BbrdTXV0NaILcEL5Sn839RwoEgmObkFBtG0zv3Yyurtbs4aoK7RmgSJqQx9apKT6mezEVqx9Ar9r96VkAqr0K7CX+79Oiyjp38R2ALJ94j3FfIPDSpUuDAoEvueQSrrvuOjIzM5ud4/XXX2fOnDls27aNgoICioqK/K+8vDysVutxU471xPsfBkpKAn9oje3/+n657XZ7g+cFAsHxga/et4xWlazGpglvZUUVAC5F82TFxQbiWsLCtU1pWa0FNRBcprrtOMsOI9cW46nIp09MnU4dgi6huUBgm83GvHnzmpwjMzOT0047jcWLF3PSSSeRkJBAbGys/7V161aqqqqEUB9NjHWqCamq2uAYX3ec6Ohj160lEAiaxxwaLNQBi7oKSWdCUbXHXN0uXb7qZqqrJmgu1VVLrd2Dc9c21PQ96GQdgq6lNYHAjZGYmMj999/f6PmVK1cybtw4v7V+rHNCCnV0dLRfrGtqahocU15eDkBsbGxXLUsgEHQCPotaJ2kfvktKNS9ZVXkVstEKQHi4EZMpILrWCO24x1EZNJcz+1ccirdEqapic5yQj8hjmpYEAjudziaj3U0mU6NbAi6Xi48//phLL720YxbcBZyQv4U6nY5BgwYBkJeX1+CYw4cPAzB8+PCuWpZAIOgEfBa1Udbc1Ll52ofzqopqv1DXdXtDwPXtrCkHIDLrCyq+eBxHxve45XD/OJv9hHxEHhUqKyuDXnXrStSlJYHAQJsLT3399deUlZX5K7sdD5ywUd9nnnkmW7duZdeuXfXOFRcXU1FRgcViYfLkyV26riVLlrBkyRI8Hk/zgwUCQbP4gslkRRPogsM2PB6FyoqARR0bYw66xhqhWc326lLCEsBeXoVj/zoAVH2Uf1xVww65PyzuX9eDoXV1H9wu7QNUSkpK0PEFCxbw4IMPBh3rikDg483tDSeoRQ1www03IMtygw04fDXCL7744i5vTXn77beze/duNm/e3KX3FQhOVMzeymSqsxqDQcbtViksqvVa1Jp1HB8XbFH79qgVpyYKtc7Ao1BnSfB/XVWjIOgYcnJyqKio8L8aCgjr7EBgt9vNRx99dNwEkfk4boXa7dYCRxqzTNPS0rj55pvZsWNHPRfJm2++idlsZsGCBZ29TIFA0Mn4Wl3aa+1076Y93HPzaqgsr0I2aoJcN5AMwGA0EGI2oTi1yHA3ZpBkkGR05kABoopKIdQdRXh4eNCrISOpswOBfW5vIdRdQG1tLdu3bwfgp59+anTc008/zahRo5g9ezalpaWoqsrzzz/P6tWreeuttxoMVhAIBMcXvmAye62dpERt7zkvv0azqEM0N3Z8vLnedWHhYSj2MsIsMpJswBDRC11INJIc2BEsr3R3wTsQ+OjsQGCf2/tIN/yxznEn1JdffjmxsbH+Hqyvv/46MTExvPzyy/XGWiwW1q1bx/jx4xk9ejRpaWl8/fXXbN68+bgKJBAIBI1jtmhCXWuzk9hdE+pDudVUV1aj8wp1arK13nWa+1slOaYWgPDkkYTFBgcwlZaLhihdSWcGAvvc3sdTtLeP4y6YrLXdrqxWK4sXL2bx4sWdsyCBQHBU8VvUtoBFnZ1TiaQz+V3fKclh9a4L8waUqVX7gSFgSUXvqUYFXJU5GMJTKC11oqpqs70FBB1HZwUCf/PNN5SWlh6XRtpxZ1ELBAJBXXzpWfZah1+oc/NqkEO0voelFAAAHyRJREFUPcyYmBBCQ+vbJFZvilbmrl/x1JagokMNSwPAXZUDgNOlUFHprHetoPPorEDglStXMn78+OPO7Q1CqAUCwXGO2exzfdf6Xd+FRQ5/UFhqA9Y0QJi36ElBTgHuqlztoKzN5bEV+6uWFRbVdtraBfVpbSDwunXrGDduHM8991yjcx6v0d4+hFALBILjmpBQzbKy1zpIiDej00m43SqGiB5Aw25vCORSA7hth4POeRzlWh1woLhY9APoaloTCLxw4UI2bdrE/PnzG51v3bp1lJSUHJdubxBCLRAIjnPCrJrgVldUASrdErQULUNkH6AJobZa/F97agqDzin2MuLYyscrz2bC+G6dsGpBU7QmEPiKK67AarVy7bXXNjrf8ez2huMwmOx4R1QmEwg6lthuMRiMBlxOF4dzC5l4cjdWfHAAWa+5sVNTGhbqqLhABTK3rRBJAlUFxWVD9TiIjTURZhF9wI8WLQ0EnjlzJjNnzmxyzKuvvtqBK+t6hEXdxYjKZAJBx6LT6UhK7Q5ATmYuF1/QB4lAoZKUpIaF+vwrp3PJdRcQ1y2Wsy6cQrJ3nOIoByA6NqrB6wSCrkYItUAgOO5J6a3lPx/KyiU2JoRwXQEAeh3ExdUvdgIQERXO/IV/5YtdH/HYqw/St49WQ9pjLwMgKjay8xcuELQAIdQCgeC4J7lnIqBZ1ABK2W8oLhsD+oYgyy3LgT5lYndkScFVngFAVExkp6xVIGgtQqgFAsFxT3LPJCAg1CWHsij/7SXmzO7X4jlOmZTIOaPzcJbsASBKuL4FxwgimEwgEBz3pPTShPpQVi7VlTVUe/tTJiTGt2qeUEugy5ZwfQuOFYRFLRAIjntSenn3qDNzKcwvAiDMasFibV3vZF85UoBo4foWHCMIoRYIBMc9iandkCQJW00te3fsAyA+Ma7V85hCAmUp66ZvCQRHEyHUAoHguMdoMpKQpLm5f9n4G9B6tzeAogTSukQwmeBYQQi1QCA4IUjxBpRt2bgVaJtFXVsTqOvta/YhEBxthFALBIITgpTemlAfPKB1vmqLRV1rEw04BMceQqi7mCVLljBo0CDGjBlztJciEJxQ9O7fK+j7+O6xrZ5j2oWnAzDgpJandQkEnY0Q6i5GlBAVCDqHC686l5NPHev/vntK65tp9Bvcl7Xb3ueNz17qyKUJBO1C5FELBIITgtCwUJasXMhn739J+p4Mxkwe1aZ5uieLblmCYwsh1AKB4IRBkiTOmTHtaC9D0AE4nU6eeeYZli5ditvtJjk5mUceeYRTTjmlzXOWlZWxdOlSNmzYQHx8PImJicyfPx+D4djukiaEWiAQCATHFA6Hg7PPPpvDhw/z5ZdfkpqaysqVK5k6dSrvvvsuM2bMaPWcy5Yt4+677+bmm2/mnXfeISys4a5qxyJCqAUCgUBwTHH//fezbt06fv75Z1JTUwGYMWMGq1at4rrrrmP06NH06tWrmVkCPPDAAyxatIiPPvqIM888s7OW3WmIYDKBQCAQHDNkZWX5s2PGjh0bdO7qq6/GZrMxb968Fs/3+OOP89hjj/H2228flyINQqgFAoFAcAzx3nvv4Xa7mTBhQr1z48aNA2DVqlWUlJQ0O9f//vc/HnjgAS677DIuueSSDl9rVyGEWiAQCATHDGvWrAGgd+/e9c5FR0eTlJSE0+lk48aNTc7jcrmYM2cOqqqyYMGCTllrVyGEWiAQCASdTmVlZdDL4XA0OO6337Ra7cnJyQ2ej4yMBGDr1q1N3m/FihXs3buXsWPHsn//fq644gpGjhxJjx49mDlzJhkZGW1+L12NCCYTCAQCQYso27IYndQ62fCobgBSUlKCji9YsIAHH3ww6Jjdbqe6uhoICPKRREREAFBcXNzkfVeuXAlAUVER1dXV/N///R86nY5nn32W++67j//9739s2LCBQYMGter9HA2EUAsEAoGg08nJySE8PNz/vclkqjem7r5zaGjDvcRlWXME2+32Ju+3fv16AJ555hkuuOAC//F7772Xbdu28e6773LdddexadOmFr+Ho4VwfXcxota3QCD4IxIeHh70akiojUaj/2tVVRucx+l0Atp+dWPU1NRQXl4OQFJSUr3zt912GwCbN29m165dLX4PRwsh1F2MqPUtEAgEDRMdHe0X65qamgbH+AQ4NrbxpiuVlZX+r+ta8T4mTJjgd63v2bOnjavtOoRQCwQCgeCYQKfT+feM8/LyGhxz+PBhAIYPH97oPLGxsUiSBASLdl18wWqKorR1uV2GEGqBQCAQHDP4ipI05JIuLi6moqICi8XC5MmTG53DYDBw0kknNToPQEhICAD9+h37LU2FUAsEAoHgmOGGG25AlmU2bNhQ79yPP/4IwMUXX9zgHnddLr/8cgDWrl3b4PmsrCz69OnDsGHD2rnizkcItUAgEAiOGdLS0rj55pvZsWNHvVzpN998E7PZHFTAZN26dYwbN47nnnsuaOydd95JcnIyq1atIj09Pejcp59+SnFxMY8++qjfRX4sI4RaIBAIBMcUTz/9NKNGjWL27NmUlpaiqirPP/88q1ev5q233gqqWrZw4UI2bdrE/Pnzg+awWCysXr0as9nMxRdfTHZ2NqC5wu+8807++te/ctlll3Xp+2orIo9aIBAIBMcUFouFdevW8Y9//IPRo0cjyzJDhgxh8+bN/r1nH1dccQUbNmzgmmuuqTfP8OHD+emnn3jggQcYNmwY8fHxxMbG8vjjjx83Ig0gqY0lqwk6lcrKSiIiIiguLiYmJuZoL0dwDOJyuVi7di3nnHPOMd/YXnD0KCkpITY2loqKigZTkToC3/NqaNS4NlUm21H2c6eu70RHuL4FAoFAIDiGEUItEAgEAsExjBBqgUAgEAiOYYRQCwQCgUBwDCOEWiAQCASCYxiRnnWU8AXbV1VViYheQYO4XC5sNhuVlZXid0TQKFVVVUDj3aYExz9CqLuYJUuWsGTJEhwOBwC9evU6yisSCAQnAiUlJURERBztZQg6AZFHfZQoLy8nKiqK7OzsY/qPa8yYMZ3akrMj5m/rHK25riVjmxvT1PmGzlVWVpKSkkJOTs4xnX/a2b8jHXWPtsxxrP+OAFRUVJCamkpZWZm/dWNHI/Kojy7Coj5KyLIWHhAREXFM//LqdLpOXV9HzN/WOVpzXUvGNjemqfNNnQsPD/9D/4501D3aMsfx8jsCgWeK4MRD/M8KmuT2228/5udv6xytua4lY5sb09T5zv45dyZdsfaj9XsifkcExwLC9X2U8LmShDtI0Bjid0TQErri90S4vo8uwqI+SphMJhYsWNBsT1XBHxfxOyJoCeL35MRHWNQCgUAgaBJhUR9dhEUtEAgEAsExjBDq45CamhrmzJlDYmIi8fHxXHXVVRw+fPhoL0twDKKqKqtWrWLYsGFkZWUd7eUIjjJbt27lsssu46677uKqq64iLy/vaC+pUZxOJ48//jj9+/enT58+TJkyhQ0bNrRprjlz5iBJUr3XSy+91MGr7hxEetZxyB133EFYWBiLFi3ihx9+4IX/b+/eg6Iq3ziAfxeU27pALJCEmIjgJTW8BMqUiomMpqAJEqmBGKZDoWnKpNMPzcnGirwlKhIgZgUOqamBF8QuXjApS1CU1IzUlIuKCIvu7vP7g9kzHHdBWFl2keczszPwvu95z3Pghefs2fe854svcPbsWeTn5/MKVkwkKysL6enp+PPPP40dCjOyixcvYvz48Th69Cjc3d1x6NAhBAQEoKCgAFZWVsYOT6Surg7jxo3DjRs3cPDgQXTv3h07duzAmDFjsH37doSGhja7r/LyciQnJ2uVy+VyREREtGbYBsOJup0pKytD//79sXDhQgBAWFgYZDIZPvroIxw9ehSjRo0yboDMpISEhKBLly7Ys2ePsUNhRrZkyRL4+fkJqyGOGTMGNTU12LBhg/D/xFTExcUhLy8P+fn56N69OwAgNDQUO3fuRGRkJIYOHdrsVR3XrFmDOXPmIDo6WlTepUsX2NjYtHrshsCXvtsZMzMzvP3226KykJAQAPVnjow9zNTeLbG2V1NTg927d8PHx0dU7uvri23bthkpKt3+/vtvbNiwAf369dOKd8aMGaipqcH777/frL7u3r2LtLQ0LFmyBH369BG9unXrZojwDYITdTsjl8u1bsNQKpUwMzPD8OHDjRQVY8yUFRQUoK6uDk5OTqJyFxcXFBYWCs8eMAUZGRlQKpXw8/PTqvP19QUA7Ny5ExUVFY/sKzExEba2tjhw4EC7nsfDifoJkJ2djaioKLi6uho7FMaYCdIkKblcLiqXyWRQqVSorKw0Rlg67du3DwDQs2dPrToHBwe4urri/v37OHr0aJP9KBQKrFmzBufOncPrr78OV1dXTJ48GefPnzdI3IbEn1GbiLi4uEcOvKioKERFRYnKbt26haysLBw8eNCQ4TEToe84YQyA1meyKpUKAJo9CVVFqhbvU7NNVVWVqNzS0lLnIi2///47ADR6adre3h5Xr17F6dOnERQU1Oh+jx07Bjc3N1haWuLKlStQqVTYtWsXcnJykJKSgvDw8BYfi7FwojYRq1at0mu7+fPnY9OmTVqXtNiTSd9xwjo2zdW2W7duicqrqqpgbm4OBweHJre3sLBA165dcfa/U3rtv0uXLnBzcxOVxcfHY9myZaIyhUKB6upqAGj0SWCapw0+ak7O6NGjcfLkSQBAaWkptmzZgk8//RQKhQIzZsyAo6MjAgIC9DiatseJuh375JNPEBQUhGHDhhk7FMaYCevbty8sLS1x/fp1Ufm///4LHx+fRz55y8rKCpcvX8b9+/f12j8RQSKRiMp0vZtu+LlzYzOyNbEqFIpm79/NzQ0ffvghwsPD4e/vjxs3biAmJgbnz5/XissUcaJup5KTkyGXyzFlyhShrKysDHK5nB93xxgTsbe3x6RJk/DTTz8hNjZWKP/9998xf/78ZvVhZWVl8DsILCwshK8bW91ac7LwqKsAuvTt2xc//PADXnjhBZSUlKCgoABDhw7VL9g2xP/R9bRv3z74+fkhLS2tyXatubqOxpdffons7Gy4uroiJycH2dnZSE9Px/z58zlJmxhjjhONBw8eAKi/O4C1D4YYNx988AF+/vln4V1rdnY2pFIp5s6d29rh683BwUFI1vfu3dPZ5vbt2wAAR0dHvfYxePBg4fPpixcv6tVHmyPWIhkZGeTj40MACAClpqY22lahUJC/vz/169ePrly5QkREmZmZ1LlzZ8rMzNRr/ykpKSSRSIT9N3wlJCTo1SdrfcYeJxqHDx+mSZMmEQCaPXs2nTp16rH6Y4Zl6HGTm5tLU6dOpffee4+ioqLo+vXrhjiMx+Lt7U0AKDExUWe9nZ0dAaCDBw/qvY/U1FQCQHv37tW7j7bEibqFLl68SAqFgjw9PR/5hzRv3jwCQPn5+aLy8PBwsrGxoUuXLhk4WmYsPE6YPnjcEMXFxREAiomJ0aorKysjACSVSkmhUOi9j5ycHDI3N6cbN248Tqhthq+TtlDPnj1haWmJQYMGNdmuNVfXYe0PjxOmDx43wKxZs2BmZqbzEv7x48cBAFOmTHms528XFhYiLCwMzs7OevfRljhR6+lRkypac3Ud1n7xOGH66MjjxtPTE7Nnz8aZM2dw+vRpUd3WrVthbW2N+Ph4oSwvLw++vr5Yt26dqG1NTQ1qa2u1+r9z5w527dqFhIQEg8RvCJyo9fSoKf2ttboOa994nDB9dPRx89lnn2HIkCGYM2cOKisrQURYv3499uzZg/T0dNFxJyQk4OTJk1i6dKlQplKp0K1bN7i4uGDjxo3ChMqioiIsXLgQW7duRdeuXdv8uPTFidpAmrO6DgCtM0bWsfA4Yfp40seNVCpFXl4ehg0bhqFDh8LT0xO5ubn49ddfhYcQaYSHh0Mmk4keWWlubo4VK1bAyckJ7777Ljw8PDB9+nTk5+dj06ZNOk9wTBnfR20Arbm6Dnty8Thh+ugo40Ymk2HNmjVYs2ZNk+2mTZuGadOmaZXHxMQgJibGQNG1LX5HbQCGWl2HPVl4nDB98LjpeDhRG4ChV9dhTwYeJ0wfPG46Hk7UBtAWq+uw9o/HCdMHj5uOhxO1AZibm6Nfv34AgGvXrulso3k+rLe3d1uFxUwMjxOmDx43HQ8nagMJDAwEUH87wMPKy8tx584dSKVSvPTSS20dGjMhPE6YPnjcdCycqA2kLVbXYe0fjxOmDx43HQsnaj1pnkSkUql01rd0dR32ZOJxwvTB44aJGHep8fappqaGBgwYQADozTffbLRddXU1DRkyhHx9famiooLUajWtW7eOLCwsaMeOHW0YMTMGHidMHzxu2MM4UbdQWFgY2djYiB4v6eDgQBs3btTZvqqqiubNm0fu7u7k4eFBwcHB9Mcff7Rx1Kyt8Thh+uBxw3SREDVyIx5jjDHGjI4/o2aMMcZMGCdqxhhjzIRxomaMMcZMGCdqxhhjzIRxomaMMcZMGCdqxhhjzIRxomaMMcZMGCdqxhhjzIRxomaMMcZMGCdqxhhjzIRxomaMMcZMGCdqxhhjzIRxomYGt2/fPsybNw8ymQwSiQQSiQT29vail4WFhVA3cuRIY4fMHnLkyBFIJBLY2tqiV69ewqukpASJiYlwcnISfn+al1wux/Lly4U+0tLS8PTTT2u1s7e3R1xcXItjCg0NFeJwdXWFRCJBZGRkKx41YybC2I/vYh3H5s2bhUf3PXjwQKu+uLiYAgMDaciQIUaIjjUlLy+PAFBERITOerVaTfHx8cLvd9GiRaRWq3W2bTgOIiMjdY6F1o6PsfaM31GzNtOzZ88m63v37o0dO3ZAKpW2UUSstUgkEoSFhQnfT58+HRKJRGfbhu3CwsLQqVMng8fHWHvGiZq1meb8Q5bJZFi8eHEbRMNam7W1tfC1jY1No+0anohZWVkZNCbGngScqJnJeeWVV4wdAmOMmQxO1MxkREdHa5UVFxcjOjoaffr0AQCsW7cOcrkcI0aMwL1794R2x48fx8SJE9G3b19IpVL4+vpiz549OvejVCrxxRdfYPjw4ejduzfc3NwQFRWFLVu2wNXVFQBw5coVODs7CxOeRo0aJWyfnp4OqVQq1KWlpWnt4+zZswgPD0f//v3RpUsXDBw4ECkpKaI2RITvvvsO3t7eQh/r169Hjx49YGdnhzlz5uDBgwc6jyE3NxeBgYHw9PRE165dMWLECBw4cECof+GFF0QTtmxsbLBt2zah/vTp07C1tW3yGIwhMjISEokEXbt2FU1a8/DwEGKdMGGCscNkrG0Z+0Ny1nFoJvxAx2Sy9PR0GjVqlKgsOjqarK2tCQA9++yztH37drKzsxP6OHToEBERpaamUt++famoqIiIiAoLC+nZZ58liURCqampoj5v3bpFL774Ik2dOpXKy8uJiOj69ev08ssvC/02tGTJEgJAI0eOFJXX1NRQ//79CYDWPnJycqhHjx70888/ExFRaWkpeXt7EwBatmwZERH9+uuvFBAQIOwzNTWVoqOjSSqV0tNPPy2UL1++XOvnuHLlSnJ1daX8/HwiIiorKyM3NzcCQGlpaUREpFAoKDQ0VOhH87Np6MyZMwSAMjMzteoe1pzJWpcvXxb2V1JS0mi7Bw8eCO3y8vJEdREREfTVV19pbbN27VoCQDKZjC5duqRXfIy1V5yoWZtpmKh79+4tvJ566imdyZCIaP/+/QSAHB0dae7cuaRUKikxMZFmzZpFtbW1dO7cObKwsKATJ06ItsvMzBT+sd++fVsonzBhAg0ZMoSUSqWo/YULF3Qm6tzc3EZjmz59ulaiLi8vJwcHB/r2229FbU+ePEkAyMzMjEpKSqiuro6IiIYPH04AyNfXlxISEqi2tpaIiP73v/8JP6eG9u7dSwDom2++EZW/9dZbBIAGDBggisXe3p4ACCcNDWVlZYnaN6WtEnVMTIzW7+bcuXPCCdvDJ0UtiY+x9oovfTOjKCwsRHFxMYqLi1FRUYHVq1frbKeZKV5bW4vly5fD3Nwcc+fORXJyMqysrLB+/Xo4OzvD19dXtN3AgQMBAHfv3hUuCefm5mLv3r2YO3cuzM3Nde7nYWZmjf+JPNwHAKSkpODu3bsIDg7WGY9arcbOnTthYWEBAOjRowcAICQkBAsWLBAmV7355psAgH/++UfUT3x8PGQymWjmNADExMQgMDAQM2fOFMrkcjliYmIAAJs2bdKK9auvvkJUVFSjx/c4AgMD0adPH52v/v37N7pdbGys6OeqVCoxY8YM1NbWYsqUKXyfNOuQ+L4IZnQSiQTz5s3DiRMntOo0M8UdHR3h5OSkVX/48GFUVFQIn2FrqNVqyOVyAMB///0HAPj2228BAIMHD9bqR1fS1cfhw4dBRPD29taq08Rz8+ZNoaxz584A6o+vIRcXFwD1JygaN2/eREFBAby9vbVufRowYABycnK09hkbG4uEhARkZGRg5cqV6N69u9DXgQMHkJSUpMdRPtr+/fvRq1cvnXVKpVI47od5eXmJvv/www9x6tQpuLi4YPPmza0eJ2PtASdqZhIkEgnc3d1bvN0///yDAQMGID8//5FtT58+DQCwtbVt8X5aEo+DgwOKi4ub1b6xe4113cr2999/AwBUKlWz43F2dsYbb7yBpKQkrF69WrhykZ6ejnHjxmmdIJiSkydPYuXKlcJkN82JDmMdDV/6Zibj448/bvE2SqUSf/31F4jokW1v374NoP5yuKEolUqUlZUJ+2pNarUaAHD58uVmHa/GwoULYWZmhuTkZNy6dQsAkJqaarDL3q2hpqYGM2bMgEqlwjvvvIOxY8caOyTGjIYTNWvXXFxcUFlZiYMHD+qsr62tFd5ta95JFxQUNLv/xt7xNhUPESEzM1NnPRHhyJEjLepTo1u3bgCA6upq/PDDDzrb7N69GxUVFaIyLy8vBAUFobq6GomJiTh+/DiqqqoQGBioVxxtYdGiRbhw4QL69euHVatWGTscxoyKEzUzipa8I2zKiBEjAADvvPOOVoICgFWrVgmXigcNGgQASExM1Lp83NjlZM1qW5WVlVp1d+7cAQDcv39fK56lS5fi0qVLWtts3boV165da/qgGtGtWzd4eHgAAD766COtmKuqqpCUlKTzEvGiRYsA1N+nvWHDBkRERDQ5Uc6Y9u/fj8TERFhYWGD79u1aq5cdOnTISJExZhym+ZfKnkg1NTXC19XV1c3aRnO5t+G2DcXGxsLMzAwXLlyAj48Pvv76a5SWlqKoqAhxcXHIzs7GsGHDAECYEf3bb7/h9ddfR3l5OYD6hBsbG6uzf82s7KKiIvz4448A6pP2nDlzUFhYCACiz6Nnz54NqVSK8vJyDB8+HJs2bcLly5dx4cIFfPLJJ/j4448RFBQktFcoFADqL5k3puGiJwsWLABQv8BLWFgYLl68iLq6Ovzyyy8YPXo0Jk+erLMPPz8/+Pn54caNG/j6669Fs8NbS8OJbw2/bqqd5vg1KisrhUvyK1as0JqU1/AKCWMdhjHvDWMdh0qlolmzZgn3z65du7ZZ2yUnJwvb7N27V2ebhIQEoU3Dl729PZ0/f17UNjY2Vqjv3Lkzubu7k6OjIx07dkznfdRERC+++CIBIIlEQm5ubmRpaUlJSUkUEREhlAcHB9PNmzeJiCgjI4M6deqkFY+lpSX99NNPQr+1tbXk5eVFAGjmzJmifRYUFAjb5ebmCuVqtZpCQkJ0Hm9YWFijT6wiItq5cycB0FpYpjmac5/yihUrhFiWLVvWaCxbtmwR2kVFRYkWv5k6dapw37pKpRJtp1aracWKFRQfH69XfIy1V5yomcEtXryYbG1ttRKLk5NTowtYEBH5+PhobePv76+z7b59++ill14iGxsbsrOzo1dffZWKi4u12qnVavr888+pR48eZG1tTQEBAVRYWEhE1GiiLi0tpYCAALK2tqbnnnuOsrKyiIgoMjKSxo4dS0eOHNHa5tixYxQYGEgymYykUikFBAQIK4kREWVnZ5NMJhMdm7OzM505c4YmTpxInTt3FsrNzc1FiVypVFJCQgJ5eXmRhYUFeXl50erVq7USm65jf+aZZ2jbtm1NttOlqUS4YcMGcnBw0PpdOTg4CCuxEdWvIOfk5KTVzs7OjhYvXkw5OTmin4WHh4fwcnd3F8YQJ2rW0UiIWunDQsbaOc3EsSf1T6K0tBTPP/88rl69KnrSVXMcOXIE/v7+iIiIMJl1wRsy9fgYexz8GTVjHURKSgrCwsJanKQZY8bFC54w1gHcu3cPGzdubPS2LsaY6eJEzRiAuro64WulUqlzZbD2pLa2Fq+99hru3buHyZMn4/vvv4ePj4/O5VMZY6atff83YqyVNFyE5OjRoxg5cqTxgmkFRUVF+P777wHUP4zE1dUVx48fN3JUjDF98GfUrMMbO3Ysxo8fL3w/evRojBs3zogRPT5vb29MmjQJMpkMwcHB+OWXX+Dm5vbY/X733Xfo1auX8CopKWmFaPUTGhoqxDFt2jSjxcGYofGsb8YYY8yE8TtqxhhjzIRxomaMMcZMGCdqxhhjzIRxomaMMcZMGCdqxhhjzIRxomaMMcZMGCdqxhhjzIRxomaMMcZM2P8BKJRYTGxa2MMAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import matplotlib as mpl\n", - "plt.rcParams.update({'font.size': 18, \"font.family\": \"Times New Roman\"})\n", - "\n", - "\n", - "def plot_spectra_by_color(auto_spectra, U_mag, ax, fig, cbar_max=4.0):\n", - " U = U_mag.values\n", - " U_max = U_mag.max().values\n", - "\n", - " # Average spectra into 0.1 m/s velocity bins\n", - " speed_bins = np.arange(0.5, U_max, 0.1)\n", - " time = [t for t in auto_spectra.dims if 'time' in t][0]\n", - " S_group = auto_spectra.assign_coords({time: U}).rename({time: \"speed\"})\n", - " group = S_group.groupby_bins(\"speed\", speed_bins)\n", - " count = group.count().values\n", - " S = group.mean()\n", - "\n", - " # define the colormap\n", - " cmap = plt.cm.turbo\n", - " # define the bins and normalize\n", - " bounds = np.arange(0.5, cbar_max, 0.1)\n", - " norm = mpl.colors.BoundaryNorm(bounds, cmap.N)\n", - " colors = cmap(norm(speed_bins))\n", - "\n", - " # plot\n", - " for i in range(len(speed_bins)-1):\n", - " ax.loglog(auto_spectra[\"freq\"], S[i], c=colors[i])\n", - " ax.grid()\n", - "\n", - " # create a second axes for the colorbar\n", - " cax = fig.add_axes([0.8, 0.07, 0.03, 0.88])\n", - " #cax, _ = mpl.colorbar.make_axes(fig.gca())\n", - " sm = mpl.colorbar.ColorbarBase(cax, cmap=cmap, norm=norm,\n", - " spacing='proportional', ticks=bounds, boundaries=bounds, \n", - " format='%1.1f', label='Velocity [m/s]')\n", - " \n", - " # Add -5/3 slope line\n", - " m = -5/3\n", - " x = np.logspace(-1, 0.5)\n", - " y = 10**(-3)*x**m\n", - " ax.loglog(x, y, '--', c='black', label='$f^{-5/3}$')\n", - " ax.legend()\n", - "\n", - " return ax, sm\n", - "\n", - "\n", - "# Set up figure\n", - "fig, ax = plt.subplots(1, 1, figsize=(5,5))\n", - "fig.subplots_adjust(left=0.2, right=0.75, top=0.95, bottom=0.1)\n", - "\n", - "# Plot spectra by color\n", - "plot_spectra_by_color(ds_avg['auto_spectra_5m'], U, ax, fig, cbar_max=2.0)\n", - "# Set axes\n", - "ax.set(xlabel=\"Frequency [Hz]\", ylabel=\"PSD [m2 s-2 Hz-1]\", xlim=(0.01, 1), ylim=(0.0005, 0.1))\n" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In the figure above, we can see the energy-producing turbulent structures below a frequency of 0.2 Hz (one tick to the right of \"10^-1\"). The isotropic turbulence cascade, seen by the dashed f^(-5/3) slope (from Kolmogorov's theory of turbulence) begins at around 0.2 Hz and continues until we reach the Nyquist frequency at 0.5 Hz (1/2 the instrument's sampling frequency, 1 Hz). The instrument's noise floor can't be seen here, but will show up as the flattened part of the spectra at the highest frequencies. For this instrument (Nortek Signature1000), the noise floor typically varies around 10^-3, depending on flow speed and range distance.\n", - "\n", - "### 7.3 TKE Dissipation Rate\n", - "\n", - "Because we can see the isotropic turbulence cascade (0.2 - 0.5 Hz) at this depth bin (5 m altitude), we can calculate the TKE dissipation rate at this location from the spectra itself. This can be done using `dissipation_rate_LT83`, whose inputs are the power spectra, the ensemble speed, and the frequency range of the isotropic cascade." - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [], - "source": [ - "# Frequency range of isotropic turubulence cascade\n", - "f_rng = [0.2, 0.5]\n", - "# Dissipation rate\n", - "ds_avg['dissipation_rate_5m'] = avg_tool.dissipation_rate_LT83(ds_avg['auto_spectra_5m'], U, freq_range=f_rng)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have just found the spectra and dissipation rate from a single depth bin at an altitude of 5 m from the seafloor, but typically we want the spectra and dissipation rates from the entire measurement profile. If we want to look at the spectra and dissipation rates from all depth bins, we can set up a \"for\" loop on the range coordinate and merge them together:" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [], - "source": [ - "import xarray as xr\n", - "\n", - "spec = [None]*len(ds.range)\n", - "e = [None]*len(ds.range)\n", - "\n", - "for r in range(len(ds['range'])):\n", - " # Calc spectra from each depth bin using the 5th beam\n", - " spec[r] = avg_tool.power_spectral_density(ds['vel_b5'].isel(range_b5=r), freq_units='Hz')\n", - " # Calc dissipation rate from each spectra\n", - " e[r] = avg_tool.dissipation_rate_LT83(spec[r], ds_avg.velds.U_mag.isel(range=r), freq_range=f_rng) # Hz\n", - "\n", - "ds_avg['auto_spectra'] = xr.concat(spec, dim='range')\n", - "ds_avg['dissipation_rate'] = xr.concat(e, dim='range')\n", - "\n", - "del spec, e # save memory" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now that we have a profile timeseries of dissipation rate, we need apply some quality control (QC). Since we can't look at each individual spectrum to ensure we can see the isotropic turbulence cascade, we want to QC the output from `dissipation_rate_LT83` to make sure what was calculated actually falls on a f^(-5/3) slope. We can do this using the function `check_turbulence_cascade_slope`, which uses linear regression on the log-transformed LT83 equation (ref. to Lumley and Terray, 1983, see docstring) to calculate the spectral slope for the given frequency range. \n", - "\n", - "In our case, we're calculating the slope of each spectrum between 0.2 and 0.5 Hz. We'll use a cutoff of 20% for the error, but this can be lowered if there still appear to be erroneous estimations from visual inspection of the spectra." - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [], - "source": [ - "# Quality control dissipation rate estimation\n", - "slope = avg_tool.check_turbulence_cascade_slope(ds_avg['auto_spectra'], freq_range=f_rng)\n", - "\n", - "# Check that percent difference from -5/3 is not greater than 20%\n", - "mask = abs((slope[0].values - (-5/3)) / (-5.3)) <= 0.20\n", - "\n", - "# Keep good data\n", - "ds_avg['dissipation_rate'] = ds_avg['dissipation_rate'].where(mask)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If we plot the dissipation rate below in a colormap, we can see that the profile map has a lot of missing data. One of the reasons is that the 1 Hz sampling rate doesn't provide enough information needed to make dissipation rate estimations, and the other part is that turbulence measurements push the boundaries of what ADCPs are capable of.\n", - "\n", - "Also, 5x10^-4 $m^2/s^3$ sounds reasonable for a dissipation rate estimate for the 1.25 m/s current speeds measured here. They can be a magnitude or two greater for faster flow speeds and depend heavily on bathymetry and regional hydrodynamics." - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "ds_avg['dissipation_rate'].plot(cmap='turbo', ylim=(0,11))" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 7.4 Turbulent Kinetic Energy (TKE) Components\n", - "\n", - "The next parameters we'll find here are the vertical TKE component and the total TKE magnitude. Since we're using the vertical beam on the ADCP, we'll directly measure the vertical TKE component from the along-beam velocity using the `turbulent_kinetic_energy` function. This function is capable of calculating TKE for any along-beam velocity.\n", - "\n", - "We can also use the so-called \"beam-variance\" equations to estimate the Reynolds stress tensor components (i.e. $\\overline{u'^2}$, $\\overline{v'^2}$, $\\overline{w'^2}$, $\\overline{u'v'}$, $\\overline{u'w'^2}$, $\\overline{v'w'^2}$), which define the stresses acting on an element of water. These equations are built into the functions `stress_tensor_5beam` and `stress_tensor4beam`. Since we're using a 5-beam ADCP, we can calculate the total TKE as well using `total_turbulent_kinetic_energy`, which is a wrapper around the 5-beam variance function.\n", - "\n", - "#### Quick ADCP lesson before we dive in:\n", - "\n", - "There are a couple caveats to calculating Reynolds stress tensor components:\n", - " 1. Because this instrument only has 5 beams, we can only find 5 of the 6 components (6 unkowns, 5 knowns)\n", - " 2. Because the ADCP's instrument (XYZ) axes weren't aligned with the flow during deployment, we don't know what direction these components are aligned to (i.e. the 'u' direction is not necessarily the streamwise direction)\n", - " 3. It is possible to rotate the tensor, but we'd need to know all 6 components to do so properly.\n", - "\n", - "That being said, even if we don't know which direction the 3 TKE components ($\\overline{u'^2}$, $\\overline{v'^2}$, $\\overline{w'^2}$) are oriented, we can still combine them and get the total TKE magnitude." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 7.5 ADCP Noise\n", - "\n", - "The first thing we want to do is calculate the Doppler noise floor from the spectrum we calculated above. (We are making the assumption that the noise floor of the vertical beam is the same as the noise floor of the other 4 beams). This gives us a timeseries of the noise floor, which varies by instrument and with flow speed, at that depth bin.\n", - "\n", - "We can do this using the `doppler_noise_level` function. The two inputs for this function are the power spectra and \"pct_fN\", the percent of the Nyquist frequency that the noise floor exists. Because in this particularly dataset we can't see the noise floor, we'll just use 90% or pct_fN=0.9 as an example. If the noise floor began at 0.4 Hz and ran til our maximum frequency of 0.5 Hz, we'd use pct_fN = 0.4 Hz / 0.5 Hz = 0.8.\n", - "\n", - "Because ADCP noise is a function of range as well as flow speed and instrument frequency, we'll use a for loop to measure the noise from each spectra:" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [], - "source": [ - "# Setting up \"for\" loop\n", - "n = [None]*len(ds.range)\n", - "\n", - "for r in range(len(ds.range)):\n", - " # Calculate doppler noise from spectra from each depth bin\n", - " n[r] = avg_tool.doppler_noise_level(ds_avg['auto_spectra'][r], pct_fN=0.9)\n", - "\n", - "ds_avg['noise'] = xr.concat(n, dim='range')\n", - "\n", - "del n # save memory" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now that we know the Doppler noise level, we can use that as input for the TKE functions. We'll first calculate the vertical TKE component, using the function `turbulent_kinetic_energy`, inputting our raw vertical beam data and the noise floors we calculated above for each ensemble." - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [], - "source": [ - "# Vertical TKE component (w'w' bar)\n", - "ds_avg['wpwp_bar'] = avg_tool.turbulent_kinetic_energy(ds['vel_b5'], noise=ds_avg['noise'])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next we can calculate the TKE magnitude using the function `total_turbulent_kinetic_energy`. This method is a wrapper around the `stress_tensor_5beam` function, which calculates the individual Reynolds stress tensor components and takes the same inputs. As an fyi, this function will drop at least one warning every time it's run, primarily the coordinate system warning. This function also requires the input raw data to be in beam coordinates, so we'll create a copy of the raw data and rotate it to 'beam'. If you do not, this function will do so automatically and rotate the original." - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\users\\mcve343\\mhkit-python\\mhkit\\dolfyn\\adp\\turbulence.py:383: UserWarning: The beam-variance algorithms assume the instrument's (XYZ) coordinate system is aligned with the principal flow directions.\n", - " warnings.warn(\" The beam-variance algorithms assume the instrument's \"\n" - ] - } + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Analyzing ADCP Data with MHKiT\n", + "\n", + "The following example illustrates a straightforward workflow for analyzing Acoustic Doppler Current Profiler (ADCP) data utilizing MHKiT. MHKiT has integrated the DOLfYN codebase as a module to facilitate ADCP and Acoustic Doppler Velocimetry (ADV) data processing.\n", + "\n", + "Here is a standard workflow for ADCP data analysis:\n", + "\n", + "1. **Import Data**\n", + "\n", + "2. **Review, QC, and Prepare the Raw Data**:\n", + " 1. Calculate or verify the correctness of depth bin locations\n", + " 2. Discard data recorded above the water surface or below the seafloor\n", + " 3. Assess the quality of velocity, beam amplitude, and/or beam correlation data\n", + " 4. Rotate Data Coordinate System\n", + "\n", + "3. **Data Averaging**: \n", + " - If not already executed within the instrument, average the data into time bins of a predetermined duration, typically between 5 and 10 minutes\n", + "\n", + "4. **Speed and Direction**\n", + "\n", + "5. **Plotting**\n", + "\n", + "6. **Saving and Loading DOLfYN datasets**\n", + "\n", + "7. **Turbulence Statistics**\n", + " 1. Turbulence Intensity (TI)\n", + " 2. Power Spectral Densities\n", + " 3. Instrument Noise\n", + " 4. TKE Dissipation Rate\n", + " 5. Noise-corrected TI\n", + " 6. TKE Componenets\n", + " 7. TKE Production\n", + " 8. TKE Balance \n", + "\n", + "\n", + "Begin your analysis by importing the requisite tools:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\mcve343\\anaconda3\\envs\\tsdat-pipelines\\lib\\site-packages\\xarray\\backends\\cfgrib_.py:29: UserWarning: Failed to load cfgrib - most likely there is a problem accessing the ecCodes library. Try `import cfgrib` to get the full error message\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "from mhkit import dolfyn\n", + "from mhkit.dolfyn.adp import api" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Importing Raw Instrument Data\n", + "\n", + "One of DOLfYN's key features is its ability to directly import raw data from an Acoustic Doppler Current Profiler (ADCP) right after it has been transferred. In this instance, we are using a Nortek Signature1000 ADCP, with the data stored in files with an '.ad2cp' extension. This specific dataset represents several hours of velocity data, captured at 1 Hz by an ADCP mounted on a bottom lander within a tidal inlet. The list of instruments compatible with DOLfYN can be found in the [MHKiT DOLfYN documentation](https://mhkit-software.github.io/MHKiT/mhkit-python/api.dolfyn.html).\n", + "\n", + "We'll start by importing the raw data file downloaded from the instrument. The `read` function processes the raw file and converts the information into an xarray Dataset. This Dataset includes several groups of variables:\n", + "\n", + "1. **Velocity**: Recorded in the coordinate system saved by the instrument (beam, XYZ, ENU)\n", + "2. **Beam Data**: Includes amplitude and correlation data\n", + "3. **Instrumental & Environmental Measurements**: Captures the instrument's bearing and environmental conditions\n", + "4. **Orientation Matrices**: Used by DOLfYN for rotating through different coordinate frames.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading file data/dolfyn/Sig1000_tidal.ad2cp ...\n" + ] + } + ], + "source": [ + "ds = dolfyn.read(\"data/dolfyn/Sig1000_tidal.ad2cp\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are two ways to see what's in a Dataset. The first is to simply type the dataset's name to see the standard xarray output. To access a particular variable in a dataset, use dict-style (`ds['vel']`) or attribute-style syntax (`ds.vel`). See the [xarray docs](http://xarray.pydata.org/en/stable/getting-started-guide/quick-overview.html) for more details on how to use the xarray format." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset>\n",
+       "Dimensions:              (time: 55000, dirIMU: 3, dir: 4, range: 28, beam: 4,\n",
+       "                          earth: 3, inst: 3, q: 4, time_b5: 55000,\n",
+       "                          range_b5: 28, x1: 4, x2: 4)\n",
+       "Coordinates:\n",
+       "  * time                 (time) datetime64[ns] 2020-08-15T00:20:00.500999927 ...\n",
+       "  * dirIMU               (dirIMU) <U1 'E' 'N' 'U'\n",
+       "  * dir                  (dir) <U2 'E' 'N' 'U1' 'U2'\n",
+       "  * range                (range) float64 0.6 1.1 1.6 2.1 ... 12.6 13.1 13.6 14.1\n",
+       "  * beam                 (beam) int32 1 2 3 4\n",
+       "  * earth                (earth) <U1 'E' 'N' 'U'\n",
+       "  * inst                 (inst) <U1 'X' 'Y' 'Z'\n",
+       "  * q                    (q) <U1 'w' 'x' 'y' 'z'\n",
+       "  * time_b5              (time_b5) datetime64[ns] 2020-08-15T00:20:00.4384999...\n",
+       "  * range_b5             (range_b5) float64 0.6 1.1 1.6 2.1 ... 13.1 13.6 14.1\n",
+       "  * x1                   (x1) int32 1 2 3 4\n",
+       "  * x2                   (x2) int32 1 2 3 4\n",
+       "Data variables: (12/38)\n",
+       "    c_sound              (time) float32 1.502e+03 1.502e+03 ... 1.498e+03\n",
+       "    temp                 (time) float32 14.55 14.55 14.55 ... 13.47 13.47 13.47\n",
+       "    pressure             (time) float32 9.713 9.718 9.718 ... 9.596 9.594 9.596\n",
+       "    mag                  (dirIMU, time) float32 72.5 72.7 72.6 ... -197.2 -195.7\n",
+       "    accel                (dirIMU, time) float32 -0.00479 -0.01437 ... 9.729\n",
+       "    batt                 (time) float32 16.6 16.6 16.6 16.6 ... 16.4 16.4 15.2\n",
+       "    ...                   ...\n",
+       "    telemetry_data       (time) uint8 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0\n",
+       "    boost_running        (time) uint8 0 0 0 0 0 0 0 0 1 0 ... 0 1 0 0 0 0 0 0 1\n",
+       "    heading              (time) float32 -12.52 -12.51 -12.51 ... -12.52 -12.5\n",
+       "    pitch                (time) float32 -0.065 -0.06 -0.06 ... -0.06 -0.05 -0.05\n",
+       "    roll                 (time) float32 -7.425 -7.42 -7.42 ... -6.45 -6.45 -6.45\n",
+       "    beam2inst_orientmat  (x1, x2) float32 1.183 0.0 -1.183 ... 0.5518 0.0 0.5518\n",
+       "Attributes: (12/34)\n",
+       "    filehead_config:       {"CLOCKSTR": {"TIME": "\\"2020-08-13 13:56:21\\""}, ...\n",
+       "    inst_model:            Signature1000\n",
+       "    inst_make:             Nortek\n",
+       "    inst_type:             ADCP\n",
+       "    burst_config:          {"press_valid": true, "temp_valid": true, "compass...\n",
+       "    n_cells:               28\n",
+       "    ...                    ...\n",
+       "    proc_idle_less_12pct:  0\n",
+       "    rotate_vars:           ['vel', 'accel', 'accel_b5', 'angrt', 'angrt_b5', ...\n",
+       "    coord_sys:             earth\n",
+       "    fs:                    1\n",
+       "    has_imu:               1\n",
+       "    beam_angle:            25
" ], - "source": [ - "ds_beam = dolfyn.rotate2(ds, 'beam', inplace=False)\n", - "ds_avg['TKE'] = avg_tool.total_turbulent_kinetic_energy(ds_beam, noise=ds_avg['noise'], orientation='up', beam_angle=25)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And plotting TKE:" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } + "text/plain": [ + "\n", + "Dimensions: (time: 55000, dirIMU: 3, dir: 4, range: 28, beam: 4,\n", + " earth: 3, inst: 3, q: 4, time_b5: 55000,\n", + " range_b5: 28, x1: 4, x2: 4)\n", + "Coordinates:\n", + " * time (time) datetime64[ns] 2020-08-15T00:20:00.500999927 ...\n", + " * dirIMU (dirIMU) : Nortek Signature1000\n", + " . 15.28 hours (started: Aug 15, 2020 00:20)\n", + " . earth-frame\n", + " . (55000 pings @ 1Hz)\n", + " Variables:\n", + " - time ('time',)\n", + " - time_b5 ('time_b5',)\n", + " - vel ('dir', 'range', 'time')\n", + " - vel_b5 ('range_b5', 'time_b5')\n", + " - range ('range',)\n", + " - orientmat ('earth', 'inst', 'time')\n", + " - heading ('time',)\n", + " - pitch ('time',)\n", + " - roll ('time',)\n", + " - temp ('time',)\n", + " - pressure ('time',)\n", + " - amp ('beam', 'range', 'time')\n", + " - amp_b5 ('range_b5', 'time_b5')\n", + " - corr ('beam', 'range', 'time')\n", + " - corr_b5 ('range_b5', 'time_b5')\n", + " - accel ('dirIMU', 'time')\n", + " - angrt ('dirIMU', 'time')\n", + " - mag ('dirIMU', 'time')\n", + " ... and others (see `.variables`)" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds_dolfyn = ds.velds\n", + "ds_dolfyn" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Initial Steps for Data Quality Control (QC)\n", + "\n", + "### 2.1: Set the Deployment Height\n", + "\n", + "When using Nortek instruments, the deployment software does not factor in the deployment height. The deployment height represents the position of the Acoustic Doppler Current Profiler (ADCP) within the water column. \n", + "\n", + "In this context, the center of the first depth bin is situated at a distance that is the sum of three elements: \n", + "1. Deployment height (the ADCP's position in the water column)\n", + "2. Blanking distance (the minimum distance from the ADCP to the first measurement point)\n", + "3. Cell size (the vertical distance of each measurement bin in the water column)\n", + "\n", + "To ensure accurate readings, it is critical to calibrate the 'range' coordinate to make '0' correspond to the seafloor. This calibration can be achieved using the `set_range_offset` function. This function is also useful when working with a down-facing instrument as it helps account for the depth below the water surface. \n", + "\n", + "For those using a Teledyne RDI ADCP, the TRDI deployment software will prompt you to specify the deployment height/depth during setup. If there's a need for calibration post-deployment, the `set_range_offset` function can be utilized in the same way as described above." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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888/n9NPP33KbU45YQHYbbfdZuUpoGfis5/9LB/96Ed597vfzSOPPMKOO+7IO9/5zmntqCAIgiDMK7bhm27POussTjzxRBqNxqT17Xabs846a8slLBs3buQnP/kJjzzyyBNO5xx77LHTafJJGRwc5IILLuCCCy6YtTYFQRAEYV6wDScs3vtSjjyRO++8kyVLlkyrzSknLP/+7//OMcccw/j4OENDQ5MCUkrNasIiCIIgCNss22DCsnjxYpRSKKV49rOfPSlHsNYyPj7OiSeeOK22p5ywfPCDH+T444/nnHPOecKpHkEQBEEQFi4XXHAB3nuOP/54zjrrLIaHh8ttlUqFXXfdlZe+9KXTanvKCcv999/Pe9/7XklWBEEQBGEGFPLDmdSfbxSvHNltt9044IADiON41tqecsJy+OGHc+utt7L77rvPWhCCIAiCsODYxi4JjY6OMjQ0BISXyXY6HTqdzpOWLcpNhSknLEceeSQf/vCH+eUvf8k+++zzhOzpVa961ZSDEARBEARh62bx4sU8+OCDLF++nEWLFj3pTbfFzbjW2idp4emZcsJywgknAPCxj33sCdumG4QgCIIgLDhmKjCcZ5eEvve975VPAH3ve9970oRlJkw5YZG3zAqCIAjCLLCNXRI6+OCDy+9Xr1496+3Pr70VBEEQBGGz8vnPf55dd92VWq3GS17yEn7yk5/Meh+XXXYZ//Iv//KE9f/yL//ytALjp2NaL45rtVrceOONrFmzhiRJJm2binlREARBEBYqcyE//PrXv84pp5zCRRddxEte8hIuuOACDj/8cO655x6WL18+7Vgez7nnnsvFF1/8hPXLly/nHe94x1MKjJ+OKScsP/vZz3jlK19Ju92m1WqxZMkS1q9fT6PRYPny5ZKwCIIgCMKmMAeXhD796U9zwgkn8Pa3vx2Aiy66iP/4j//gS1/6Eqeeeur0Y3kca9asYbfddnvC+l122YU1a9ZMq80p7+0HPvABjjrqKDZs2EC9XueWW27hD3/4A/vvvz+f+tSnphWEIAiCIAjTY3R0dNLS6/WetFySJNx2220cdthh5TqtNYcddhg/+tGPZjWm5cuX8/Of//wJ6++8806WLl06rTanfIbljjvu4OKLL0ZrjTGGXq/H7rvvzic/+UmOO+44Xvva104rkC2J8vmNwxOz0zzTLU+xKZ1bcSO8d/ioNtmEO7G+0qHNiYbnLMXnVt5gAnbgXDAFp71g3c1N0b6wP0e53dhZiKuoqIobWY93tjQNqwmGYe8sKqrgui1UbuTVjcFQNsf32qi4gk8TSNPS3KuMwY4Fo7PrtILRudYsDb+uNRZswmMbsVGM77ZLa7Frj5bf26QbylZzw3NuNw7257hviM63+9YojDyKMqEfby2+PUq0/Spc0oUsGHr1wCJ80oUoxqdhHVrjOy1UFGMWL0fXm6GfKKay617QXIzvtdCDS/Ddcczi5bltuQ4uC/bn3Egd2jOYnZ6Nchmu2kSNrccPLEGNP4bacU945A+oWgMVV4h23C2MeZZiRx4N1evNYIFduSeu2sQ9en84JnEcxjlLS1O01oNlnwCq1gjGbQATQ+TwRXkTh/Fx2WSjtI7wSqNcFk4lmzhYwm0vlM1fQqUgbJs4v3Mbcxh095T/mXmlSzOv86AIxlxF/25/o8L6wn5bmHKNUsQ6GIZrkcZ6j/dQj4NZebQXxj3WGnA0YoNWCv0kTxI0YsOakQ7Lm1WWN2N+uyGjGmlirTFxMAFv16gQG8Xey2Me66RUI832AxWUgrUjPXYeqpK6St6nYnmzQjYh3ofHk2Azdo5VwzVGuhl/ssMQ923sMFCJGE8sy5sVxhNLLQr78Gg7YbBiiI2m6glGZqNop5ZYa8Z7wXy8oZPivC/Nz0YV1mbY0ElLc7L1lKZmCJbrEZuVhuuhakQndYx3MwYrUTleWsF4klEzwZasVRj3XuZwztPI27bGl8cMKMe6MCqHvj3VfJ31oaxznlR5XGoZrsVlPAW1SNNOXb5vYd2GdspAJfwuMzrMG+fDXOhlGan1xEbhvEIp0KjSpqwU4CnXF/PPPMlDJq7QNedz0xcxq/AfuPeexHkqWlExCus9mmBjLqoqgtU5cx5FWO+Aitqywubw4rjpd1jUXbly5aT1Z5xxBmeeeeYTyq9fvx5rLdtvv/2k9dtvvz133333tON4Mt785jfz3ve+l8HBQQ466CAAbrzxRt73vvfxpje9aVptTjlhieMYnf/RW758OWvWrOG5z30uw8PDrF27dlpBCIIgCMJCw/uwzKQ+wNq1aye9iK1arc4wspnz8Y9/nN///vcceuihRFFINZxzHHvssZxzzjnTanPKCct+++3HT3/6U/bcc08OPvhgTj/9dNavX8+VV17J85///GkFIQiCIAgLDZefhZpJfQhvjd2UN8dut912GGN4+OGHJ61/+OGHWbFixbTjeDIqlQpf//rX+fjHP86dd95JvV5nn332YZdddpl2m1O+h+Wcc85hhx12AOATn/gEixcv5l3vehfr1q170juCBUEQBEGYeyqVCvvvvz/XXXdduc45x3XXXTdtIeEz8exnP5vXv/71HHnkkTNKVmAaZ1he9KIXld8vX76ca665ZkYBCIIgCMJCxOfLTOpPlVNOOYXjjjuOF73oRfzpn/4pF1xwAa1Wq3xqaDb58pe/zPnnn89vfvMbICQvH/7wh3nrW986rfam9R6WJ+P222/n9NNP59vf/vZsNSkIgiAI2yzOh2Um9afKG9/4RtatW8fpp5/OQw89xAtf+EKuueaaJ9yIO1M+/elP89GPfpSTTjqJAw88EICbb76ZE088kfXr1/OBD3xgym1OKWG59tpr+e53v0ulUuF//+//ze67787dd9/Nqaeeyr//+79z+OGHTzkAQRAEQRC2HCeddBInnXTSZu3js5/9LBdeeCHHHntsue5Vr3oVe++9N2eeeebmTVguvfRSTjjhBJYsWcKGDRv44he/yKc//WlOPvlk3vjGN/KLX/yC5z73uVMOQBAEQRAWIt57/Axuup1J3c3Ngw8+yAEHHPCE9QcccAAPPvjgtNrc5JtuP/OZz3Deeeexfv16/vmf/5n169fzj//4j9x1111cdNFFkqwIgiAIwhQoLgnNZJmvPOtZz+Kf//mfn7D+61//Onvuuee02tzkMyy//e1vOfroowF47WtfSxRFnH/++ey8887T6lgQBEEQhG2Ts846ize+8Y3cdNNN5T0sP/jBD7juuuueNJHZFDY5Yel0OjQaDQCUUlSr1fLxZkEQBEEQps48PkkyI173utfx4x//mP/zf/4PV199NQDPfe5z+clPfsJ+++03rTandNPtF7/4RQYGBgDIsozLL7+c7bbbblIZkR8KgiAIwjMzF08JbUn2339//umf/mnW2tvkhGXVqlVccskl5ecVK1Zw5ZVXTiqjlJKERRAEQRAWIKOjo5tcdlPezPt4Njlh+f3vfz/lxucV2gS5oYlQaSes8w7lXF90WEjxckmc11EpPFQuywVzuQ68ECEqDTYJYjodBQmiqYDNUDbr91+I5wDf66CquWhw4vpCouhsWJ9v07VmEORl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hBN+g0+6XcEoNalNCJcTUt//PowvVIwqpYvWU36/JSiEnjOpP185++yz+dCHPsTHP/5x9t9/f5rN5qTt07n6MWX54RlnnAHAunXryrMfz3nOc1i2bNmUO38mXvziF3PVVVdx2mmn8bGPfYzddtuNCy64gGOOOWbW+xIEQRCELclML+vM10tCAK985SsBeNWrXjXpvtcisdxs8sOJtNttTjrpJK688sqyQ2MMxx57LJ/97Gdn/czL//gf/4P/8T/+x6y2KQiCIAhzjfMeu40mLJtD6TPlhOUDH/gAN954I9/61rc48MADAbj55pt573vfywc/+EEuvPDCWQ9SEARBEISth4MPPnjW25yyS+ib3/wml156KUcccUT5FM4rX/lKLrnkEr7xjW/MeoCCIAiCsC3i/EyfFJrrPXh6vv/97/OWt7yFAw44gPvvvx+AK6+8kptvvnla7U05YWm322y//fZPWL98+XLa7fa0ghAEQRCEhUZx0+1MlvnKN7/5TQ4//HDq9Tq33357+Qb6kZERzjnnnGm1OeWE5aUvfSlnnHEG3W7/KZROp8NZZ53FS1/60mkFIQiCIAjCtsPZZ5/NRRddxCWXXEIcx+X6Aw88kNtvv31abU75HpYLLriAV7ziFey888684AUvAODOO++kVqtx7bXXTisIQRAEQVhobMtPCd1zzz0cdNBBT1g/PDw87TfgTjlh2WefffjNb37DV77yFe6++24A3vzmN3PMMcdQr9enFYQgCIIgLDTsDJ8Smkndzc2KFSu499572XXXXSetv/nmm9l9992n1eaUEpY0Tdlrr7349re//bTGZEEQBEEQtl4+8YlP8B//8R/ccccdVCqVKZ8VOeGEE3jf+97Hl770JZRSPPDAA/zoRz/iQx/6EB/96EenFdOUEpY4jifduyIIgiAIwvRwMKMnfTbnPbdJknD00Ufz0pe+lEsvvXTK9U899VSccxx66KG0220OOuggqtUqH/rQhzj55JOnFdOULwm95z3v4bzzzuOLX/wiUTTl6oIgCIIgEDQAM1EBbE6NwFlnnQXA5ZdfPq36Sin+5m/+hg9/+MPce++9jI+P87znPY+BgYFpxzTljOOnP/0p1113Hf/1X//FPvvs8wQ/wL/+679OOxhBEARBEKbG6OjopM/VapVqtTpH0QSOP/54PvOZzzA4OMjznve8cn2r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HwoNDaXrrruO9u7d27Adr0Zt6rHb7UREtGPHDvriiy983g927dpFkydPpr///jsgXh92aeABy0VQFIXmzJlDXbt2pfz8fCIqf5Ndt24diaJIhw4dIiLtE9QVV1xBgiBQbGwsffLJJ/7qdrVqU8/Z13R434wC8U3pfOtZuHAhjR8/ngYMGECff/65P7pco9rUc+DAASIiWrNmDaWnp+sDl0Csx8s78NqwYQNdf/31NHr06CqXe+ONN2j06NGUkpKiX0MViGpTj9PppO7du5MgCBQfH08rV65s6G7WWm1fH8bqGw9YalBUVESLFy/WP2VU5P0DvWHDBurTpw+NGzeu0nM7dOign2Y4deoU9e3bl955553673g16qKezMzMBulrbdTl6xMI6qKeBQsW+Ez35ymtmuqpisPhoBdffJE6dOhA33//PRFpF94GymC4ruohIiopKaGHH36YFi5cWG/9PZe6qOfso0aM1Se+6LYaM2fORJMmTbBy5coq78XhvXjupptuwg033IDvvvvO5+uXJ06cwOnTp9GqVSsAQJMmTfDVV1/h0UcfbZgCzlJX9cTGxjZYn2tS16+Pv9VVPXFxcQDKL3Rs3rx5A/S+snPVczYigtFoxO2334727dtj7ty5OHz4MIYOHYqvvvqqAXpcs7qsZ9WqVQgJCcG7777rt6+a11U9Dz74INasWdMAPWYMfNHt2VavXk0xMTHUrl07WrVqVY3Leg+V7t27l0aMGEGRkZG0evVqOnDgAM2dO5c6d+7s93PSXA/X05DOp57qzJ8/n8xmM8myTG3atPFrTVxPZYFUD7u88IClAlVVqW/fvhQREaFP+/PPP6mgoMDnfg9VXfF//Phxuu+++6hNmzaUkJBALVu2pM8++6xB+l0drqcc11P/LqYeIu10yRdffEEtW7akhIQErqeOXWr1sMsPD1jI94LRn376iSwWC/33v/+lp556iuLj46lLly6UkJBAc+bMqfI5FR07dkz/+q+/cD1cT0Oqq3psNhv179+fpkyZ0iD9rg7XE9j1sMvXZT1g2bx5c5XTR44cSYIg0MCBA2nVqlW0adMmmjBhArVu3Vr/pa7qYjN/XxzI9XA9Daku6/F+qq94G4CGxvUEdj2MXZYDlpycHOrRowcJgkCrV68mIt9f0CNHjtDEiRPp119/1acVFRXRxIkTKTExMaBuVkXE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li1bLqieiu1GRETgmmuu0aelpKRAFEVs3br1otpm7JLk7xETuzSczxGW3r1764/dbjcFBwfT0KFD9WlHjx4lALRlyxYiIpo1axb169fPp90//viDANCePXtq3Z8VK1ZQWFgYnTlzptLydrudgoKCKh3tyMjIoCFDhhAR0ZQpU6h169bkdDqrXGdMTAy98MILPtOuvfZaevzxx4mo/NP3u+++q8/fvXs3AaCCggIiIhoyZAjddtttPm3cd999PrWEhoZSVlZWlX0429y5c6l9+/bV9rmqIyzPPvus/ri0tJQA6EeKzrUN2rZtSx999JHPtFmzZlFycnKt+osqjrA4nU6Ki4uje+65h06dOkUOh4NefvllAlBpv/AaPXo0JSYm+kwbOXJkpeWtVisBqHREryKDwVCppszMTIqOjq607PkcYXnhhReoffv2laZHRUXRm2++WWk6H2Fhlzs+wsIaXJcuXfT/S5KEyMhIn0/93k/Af//9NwBgx44d2LBhA0JCQvSfjh07AgD2799f6/X+85//RHx8PNq0aYOhQ4diyZIl+lGcffv2oaysDP/85z991vPBBx/o68jLy0OfPn2qPJpx5swZHDlyBNdff73P9Ouvvx4FBQXV1t+yZUufWgsKCpCUlOSzfHJyss/jp556Co888ghSUlLw8ssv17gN7rnnHthsNrRp0wYjR47EJ598cs6LTCv2Lzg4GGFhYXr/atoGVqsV+/fvR0ZGhs82fP7558/rdTqbwWDAypUrsXfvXjRt2hRBQUHYsGEDbr31Vohi5bcwm82Gjz76yOfoSm0cPnzYp98vvvjiBff5bKNGjfJpmzF2/mR/d4Bdfs7+YycIgs80QRAAAKqqAgBKS0sxcODAKi9o9P7Br43Q0FD8/PPP2LhxI9auXYupU6di+vTpyMnJ0b+ZsWrVKlxxxRU+zzOZTAAAi8VS63XVpKZaa2P69Om4//77sWrVKnz55ZeYNm0ali5divT09ErLtmrVCnv27MHXX3+NdevW4fHHH8err76KTZs2VXsaqarXx9u/mraBdxsuWrSo0qBLkqRa11eVq6++Gnl5eSguLobT6URUVBSSkpJ8Tqd4ffzxxygrK8NDDz3kM71Fixb46aeffKYdO3ZMnxcTE+Pz7Z6mTZvq87zLVXxeixYtat3/mTNnYuLEiZX64x0Ierndbpw6deq8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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ds[\"vel\"][1].plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# The ADCP transducers were measured to be 0.6 m from the feet of the lander\n", + "api.clean.set_range_offset(ds, 0.6)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So, the center of bin 1 is located at 1.2 m:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.DataArray 'range' (range: 28)>\n",
+       "array([ 1.2,  1.7,  2.2,  2.7,  3.2,  3.7,  4.2,  4.7,  5.2,  5.7,  6.2,  6.7,\n",
+       "        7.2,  7.7,  8.2,  8.7,  9.2,  9.7, 10.2, 10.7, 11.2, 11.7, 12.2, 12.7,\n",
+       "       13.2, 13.7, 14.2, 14.7])\n",
+       "Coordinates:\n",
+       "  * range    (range) float64 1.2 1.7 2.2 2.7 3.2 ... 12.7 13.2 13.7 14.2 14.7\n",
+       "Attributes:\n",
+       "    units:    m
" ], - "source": [ - "# Remove estimations below 0\n", - "ds_avg['TKE'] = ds_avg['TKE'].where(ds_avg['TKE']>0)\n", - "\n", - "ds_avg['TKE'].plot(cmap='Reds', ylim=(0,11))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "TKE esimations are generally more complete than those of dissipation rates because they are found directly from the along-beam velocity measurements. Missing TKE estimations exist whenever the noise calculated by the function `doppler_noise_level` is greater than the calculated TKE, as TKE can't be less than zero. Noise levels are affected by the instrument's processor and working frequency, water waves and other sources of \"interference\", instrument motion, current speed, intricacies in the spectra calculation, the ability to see the noise floor in the spectra, etc.\n", - "\n", - "You may also note that high TI doesn't always correlate with high TKE. TI is the ratio of flow speed standard devation to the mean, which is naturally lower when flow speeds are higher. When flow speeds are higher, they also have greater kinetic energy and thereby greater TKE.\n", - "\n", - "There is one other important thing to note on TKE measurements by ADCPs: the minimum turbulence length scale that the ADCP is capable of measuring increases with range from the instrument. This means the instrument is only capable of measuring the TKE of larger and larger turbulent structures as the beams travel farther and farther from the instrument head. One of the benefits of calculating w'w' from the vertical beam is that it isn't limited by this beam spread issue." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 7.6 TKE Production\n", - "\n", - "Though it can't be found from this deployment, we'll go over how to estimate TKE Production. There isn't a specific function in MHKiT-DOLfYN for production, but all the necessary variables are. \n", - "\n", - "If we had aligned the ADCP instrument axes to the flow direction (so \"X\" would align with the main flow), we could use the following equation to estimate production:\n", - "\n", - "$P = -(\\overline{u'w'}\\frac{du}{dz} + \\overline{v'w'}\\frac{dv}{dz} + \\overline{w'w'}\\frac{dw}{dz})$\n", - "\n", - "To start, we need the functions `reynolds_stress_4beam` or `stress_tensor_5beam` to get the stress tensor components $\\overline{u'w'}$ and $\\overline{v'w'}$. We also need the vertical TKE component, $\\overline{w'w'}$. \n", - "\n", - "Both of these functions will give comparable results, but it should be noted that `stress_tensor_4beam` assumes the instrument is oriented with 0 degrees pitch and roll, and will throw a warning if they are greater than 5 degrees. The `stress_tensor_5beam` gives more leeway to instrument tilt, but shouldn't be used if pitch and roll angles are greater than 10 degrees." - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\users\\mcve343\\mhkit-python\\mhkit\\dolfyn\\adp\\turbulence.py:383: UserWarning: The beam-variance algorithms assume the instrument's (XYZ) coordinate system is aligned with the principal flow directions.\n", - " warnings.warn(\" The beam-variance algorithms assume the instrument's \"\n", - "c:\\users\\mcve343\\mhkit-python\\mhkit\\dolfyn\\adp\\turbulence.py:391: UserWarning: 100.0 % of measurements have a tilt greater than 5 degrees.\n", - " warnings.warn(f\" {pct_above_thresh} % of measurements have a tilt \"\n" - ] - } + "text/plain": [ + "\n", + "array([ 1.2, 1.7, 2.2, 2.7, 3.2, 3.7, 4.2, 4.7, 5.2, 5.7, 6.2, 6.7,\n", + " 7.2, 7.7, 8.2, 8.7, 9.2, 9.7, 10.2, 10.7, 11.2, 11.7, 12.2, 12.7,\n", + " 13.2, 13.7, 14.2, 14.7])\n", + "Coordinates:\n", + " * range (range) float64 1.2 1.7 2.2 2.7 3.2 ... 12.7 13.2 13.7 14.2 14.7\n", + "Attributes:\n", + " units: m" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds.range" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2.2. Discard Data Above Surface Level\n", + "\n", + "To reduce computational load, we can exclude all data at or above the water surface level. Since the instrument was oriented upwards, we can utilize the pressure sensor data along with the function `find_surface_from_P`. However, this approach necessitates that the pressure sensor was calibrated or 'zeroed' prior to deployment. If the instrument is facing downwards or doesn't include pressure data, the function `find_surface` can be used to detect the seabed or water surface.\n", + "\n", + "It's important to note that Acoustic Doppler Current Profilers (ADCPs) do not measure water salinity, so you'll need to supply this information to the function. The dataset returned by this function includes an additional variable, \"depth\". If `find_surface_from_P` is invoked after `set_range_offset`, \"depth\" represents the distance from the water surface to the seafloor. Otherwise, it indicates the distance to the ADCP pressure sensor.\n", + "\n", + "After determining the \"depth\", you can use the nan_beyond_surface function to discard data in depth bins at or above the actual water surface. Be aware that this function will generate a new dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "api.clean.find_surface_from_P(ds, salinity=31)\n", + "ds = api.clean.nan_beyond_surface(ds)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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0t3d/Zbr5PN5li5d2nitlNpa3W2aiscqIGKCGhwcpFAoMDAwQD6fb3V3hBBCTGBb43fG+m303fcj8rnM6Nsplula8IER9fVd73oX+++/P1dddRUAxhhmzZrFWWedxXnnnbfB8osXL+acc86hv79/1P1spQk7JkcIIYSY1MboiceDg4PDpjc/EPfNfN/niSeeGPb8Oa01hx9++CafP1csFpkzZw6zZs3i/e9/P3/84x/H9nMYR1LkCCGEENuwWbNmDXsI7qJFi95yuddee40oikb0/LlddtmFG2+8kZ///Of827/9G8YYDjzwQF555ZUx34/xMOmekyOEEEJsE5p9oF993eXLlw+7XDWWz4o74IADht3RfOCBB7Lrrrty3XXXcckll4zZdtarVqv8/ve/Z82aNRhjhr33vve9b8TtSZEjhBBCtECz0Qzr183n81s0JmfKlClYltXU8+ccx2Gfffbh+eefH3mHN+OOO+7gpJNO4rXXXtvgPaUUURSNuE25XCWEEEJsB1zXZb/99hv2/DljDHffffcWP38uiiL+8Ic/0NvbO+b9O+usszjhhBNYuXIlxphh02gKHJAzOUIIIURrNPvU4lGse+6553LyySfzjne8g3e+851ceeWVlEolTj31VABOOukkZsyY0RjX89WvfpW/+qu/YqeddqK/v5+vfe1rvPzyy/zf//t/R9/vjVi9ejXnnnvuBmOGmiFFjhBCCNEKLShyPvjBD7J27VouuOACVq1axd57780dd9zRKCyWLVvWeNIwJLlRp59+OqtWraKjo4P99tuP3/72t+y2226j7/dG/N3f/R333XcfO+6445i1Kc/JEUIIIeq25nNyXv/fX5PPZUffTrFE5/5HT5rfb+VymRNOOIGpU6eyxx574DjOsPc//elPj7hNOZMjhBBCtIDSGtXE3VXNrDsR/fu//zv//d//TSqV4r777hv2ZGWllBQ5QgghxDZDNXm5Sk2ugM4vfelLXHzxxZx33nnDLpk1Q4ocIYQQohWUGnXIZmP9ScT3fT74wQ+OWYEDcgu5EEIIISaAk08+mdtuu21M25QzOUIIIUQrKN3kmZzJdZ4iiiKuuOIK7rzzTvbcc88NBh5/4xvfGHGbUuQIIYQQLRArTdxEodLMuhPRH/7wB/bZZx8Ann766WHvqVFemtuiIuf3v//9iBvebbfdsG2p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jmeTbXPx/YjezjQrX68wf2aBF9YU6c57DJQDIhOTcS36Sj5D1ZBcysGPTCPhG2CoGlL2I+Z0ZbG0wlIKLOgHOnMuq/qrpN3k511kYn63vJ/e9hSRiUm7Fn5k8GxNxrFYG9YoBxEZxyIwYClwLE3asZJUcK2oKYWlwLM1JoZqaMg41rDPL44hiGLW/0is1hPPHa0xcdJ3E8NALaDgOaTrKeWWgsDEBCbG1QrbUqRiTTUyWHHSHxODpZO/by3JwwBHv8H16/7lFYsLL7yQiy66aIPlX3vtNaIoYtq0acPmT5s2jWefffYtt7Fq1aq3XH7VqlWj7vfGfPjDH+bTn/40bW1tjZMp999/P2effXajDhipERc5p59+OmeffTY33ngjSileffVVHn74YT73uc/xla98ZVSd2JhyuYzWw082WZaFMWYjawghhBDbhjhOpmbWB1i+fPmwB+W95X/0twGXXHIJL730Eocddhi2nZQnxhhOOumkUY/JGXGRc95552GM4bDDDqNcLnPIIYfgeR6f+9znOOuss0bViY059thj+ad/+idmz57N7rvvzlNPPcU3vvENTjvttDHdjhBCCLG1mTjGNFHlrF83n89v0dOAp0yZgmVZrF69etj81atX09PT85br9PT0jGj5Zriuy2233cYll1zC7373O9LpNHvssQdz5swZdZsjLnKUUnzpS1/i85//PM8//zzFYpHddtuNXC436k5szHe+8x2+8pWv8KlPfYo1a9Ywffp0Pv7xj3PBBReM+baEEEKIycx1Xfbbbz/uvvtujjvuOCA5U3L33Xdz5plnvuU6BxxwAHfffTfnnHNOY95dd9016sDMLfG2t72NnXfeGaDphwOO+klCruuy22678c53vnNcChyAtrY2rrzySl5++WUqlQp//vOfufTSS3Fdd1y2J4QQQmwt8RhMI3Xuuefy3e9+l5tvvplnnnmGT37yk5RKJU499VQATjrpJM4///zG8meffTZ33HEHX//613n22We56KKLePzxxzdaFDXr+9//PnvssQfpdJp0Os2ee+7JLbfcMur2Rnwm52/+5m/esrJSSpFKpdhpp534+7//e3bZZZdRd0oIIYSY7EycTM2sP1If/OAHWbt2LRdccAGrVq1i77335o477mgMLl62bNmwsbAHHnggP/zhD/nyl7/MP/7jP7Lzzjtz++238/a3v330Hd+Ib3zjG3zlK1/hzDPP5KCDDgKSm5o+8YlP8Nprr/GZz3xmxG2OuMgpFArcfvvttLe3s99++wHw5JNP0t/fzxFHHMFtt93G5Zdfzt13393opBBCCCEmhjPPPHOjZ2Luu+++DeadcMIJnHDCCePcq2SIyjXXXMNJJ53UmPe+972P3XffnYsuumjrFDk9PT38/d//PVdddVWj2jPGcPbZZ9PW1satt97KJz7xCb74xS+OecyDEEIIMVnEcfK4gGbWn0xWrlzJgQceuMH8Aw88kJUrV46qzRGPybnhhhs455xzhp3O0lpz1llncf3116OU4swzzxyXRz4LIYQQk8X6y1XNTJPJTjvtxI9+9KMN5t92222NgcgjNeIzOWEY8uyzz/K2t71t2Pxnn32WKIoASKVSYx6XLoQQQojJ6+KLL+aDH/wgDzzwQGO4y29+8xvuvvvutyx+tsSIi5yPfvSjfOxjH+Mf//Ef2X///QH43//9Xy677LLGdbT777+f3XfffVQdEkIIIbYXk+xkTFOOP/54Hn30Ub75zW9y++23A7Drrrvy2GOPsc8++4yqzREXOd/85jeZNm0aV1xxReMBQdOmTeMzn/kMX/ziFwE44ogjOOqoo0bVISGEEGJ70Iq7qya6/fbbj3/7t38bs/ZGXORYlsWXvvQlvvSlLzE4OAiwwZMWZ8+ePTa9E0IIIcSktb6O2BJb8lTnvzTiIqfZDbZK7HigFLGTQpXWEYc+SlsQBijLAhOhglpy6tAkY4uUmyIOA5SXgrBGXCmBlwJtYSqlJKzTdjFD/ah09o2gzmweqiVMtfRGB0zUmMLBQayOEiqdTdpPZZPt2w5xPUA0NgbCgDgypLsKKDcFpUFMEKIdGyebJihVcNoyBKUKmWlTiEOfVFehESAaFEtYKZdgsIw/lPQl1VXAmzGbYM2rhKUqHbvOIar62GmXSt8A2d4u4sjgD5VxsmkqfUWypSpBqYqVchvvxZHBchziyGCMwXJs/KEyURA2gkCdbIqhZatx81miqo+TTVFbVyLd7RARAvD/TjoWv+RTmNuN5dj0PbMCgPadplFZ00+mt5OwVCEoVXHzGVYveZWpu3VjouQzshybVFeBNb9bRs875jHw51fp2HU2fU+/hJ12MH6EshRhNURphZP1qPZXKK0uceD9D2yVY0+01vn/9f+ohYa2lE1/OcCPDBU/Iu1apB2LFevKTG1LsXaoyu4zCryyrkLOs3l25SDzpuZ4YW0RgDlTsjyzvB8Az7OpVgLCwJDLe/h+RHkwSX5Ot7lUhnwA3LSNiWIczyIKDZaV3LBhaUXVN8T1/4rbjoUxIab+2vNsioM1aqEhDCJCPyKbdVmzcog953Tw2DNrsCyNqQdqrhyoYjsWbjrGRDG+H6G1YnV/lTiOKVYD0q7FUDVs7DdAxY+S8E2taE87lP2ItUNJ8GaxGuLaSX+L1YCpbSkqQfKzcX2QZyHjUKyG9FcCdp7WRsWPKGQcKn5ELmVTDiL8eohmxY9oc22ielBmOYjIuRblwJBzk6BOSylqocGxkpBOSymCKEarJJhTuRAYQ8FzqIYmCeasX/BxLU1Uv9uoM+0QmST2IJmXjBHVKLRS1MKkD45+Y+yooxVhFBNsxWhEubsK2tvbNzuGN45jlFKNcb8jMeIiZ/Xq1Xzuc5/j7rvvZs2aNRt8yKPphBBCCLG9MfWpmfW3dffee++4tj/iIueUU05h2bJlfOUrX6G3t1fuohJCCCFGYaxSyLdlhx566Li2P+Ii56GHHuLBBx9k7733HofuCCGEEGJ79eCDD3Ldddfxwgsv8OMf/5gZM2Zwyy23MHfuXA4++OARtzfihwHOmjVrUlwHFEIIIVpJHgY43E9/+lOOPPJI0uk0Tz75JLVaMs5tYGCAyy67bFRtjrjIufLKKznvvPN46aWXRrVBIYQQQrwx8LiZaTK59NJLufbaa/nud7+L4ziN+QcddBBPPvnkqNoc8eWqD37wg5TLZXbccUcymcywjgC8/vrro+qIEEIIIbZfS5cu5ZBDDtlgfqFQoL+/f1RtjrjIufLKK0e1ISGEEEK8Qe6uGq6np4fnn3+eHXbYYdj8hx56iHnz5o2qzREXOSeffPKoNiSEEEKIN8Q0eXfVmPVkYjj99NM5++yzufHGG1FK8eqrr/Lwww/zuc99jq985SujarOphwFWq1V83x82b1t6QKAQQgghJobzzjsPYwyHHXYY5XKZQw45BM/z+NznPsdZZ501qjZHPPC4VCpx5pln0t3dTTabpaOjY9gkhBBCiM0zcdz0NBm84x3v4Nprr2VoaIgvfelLvP766zz99NM88sgjrF27lksuuWTUbY+4yPnCF77APffcwzXXXIPneXzve9/j4osvZvr06Xz/+98fdUeEEEKI7Uk8BtNksNdee/GFL3yB3t5eTjrpJH7729+y22678c53vpNcLtdU2yMucv7zP/+Tf/3Xf+X444/Htm3e/e538+Uvf5nLLruMH/zgB011RgghhBDblxtuuIFVq1Zx9dVXs2zZMg477DB22mknLrvsMlasWNFU2yMek/P66683Rjnn8/nGLeMHH3wwn/zkJ5vqzHiKlU5CMGsl0Ek4HdpGOTqpiGsVlF0DbSVBmSHEfhWVbiOuDA1vq1IP13TSqMjHmCgJ+7QcUBoFKNutb0Oj2zqIBvoAUOksTkdHsn6lhNKauDz4Rhio7aBtB0yEKQ3itGUwQQgmIqr6KEujbBdlhUTVZDyUnfKITYTfXyQ1a1ZjW8YPcXJZrJSLrtZQlias1NBrXgWg1j+ETmWSsM2US1Cq8vozL9O+4wwqa9bRNnsafjEJCa32DeC2ZSit6sNOuVTWrmPwpZX0vHM3gj+vgKntFFesJdvThZ1J4Q++jp1ycbJpnGwKf7AMgJP1cLIpAKp9A5jIEFZCLMfGyWdIT8lQee2NZQdeXMOU3WdTXPkSqh5uGJRqKEtRfq2C5WqyM6YCkO3t4vVnlxMMlgmrIdrSREGE47oorQhKAQCZrizl18o8c+r7WPv/XqN33+lo16a8ZpBMd57iygF63rETYcVn4M+v4nVkiaPkPgYr5dH3/14lOy1LtqeLoFwBIDdjamMfS6v6yO/QS2nFWgo7zkhCSyODnXJJdRWo9g0QBSHGD1GWJtPdgV3/THQqQ2qPAyg9chcmSL4/3daOKQ1hTZ1B7FeT4yr0icMAq6MbM7QOe9psYhMlQa6AclxUKpcEy6bzUA9tja3kn7wKA2IvC5EP2sak2ojdLMb2qARJ5KEfxfhRjKUg52osrSj6BqXgub4qvW0uRT8iMkloYsaxeKm/QsaxGKgGOJYmMjGOpamFEQO1kCCKaXMtAhPTXw1o82yeW11kdleG10s+rq1JuxaO1vx5TZEdu5P/xa0erGJpxbQ2jyXLB5jZmWagHDSW727z6Cv5+KHh5b4yu8/Is6q/2giY9GzdCKOsVJJ8vbRjNQInLa0o19/PeTa2VqRdi7VDVaL6E9f80OB5NrVaiKUV2axLpZoEzQa1CG1rYhMTm5h0m4tlaYr9VVJZB6UUrmdTLQdoSxGZmChKwjdNZABNUIuwHQvL1pSGfGqVgMjElIs+mTZv2M8gExq8tI1fDcm0p7C0wrY1tQpoSyXb0Qrb0TiejaU17RmXoWrQCNfsK9bwbE3/QJWZnRkgCd5Mu0mQ6bzuHCv7K43PaP1n5tnJsdBfCShknEbApx8ZXFvj2ppiNaTiJ+GcxfpnlHYthvzks1v/nZQDQ8bRmDgm7VgU/WRZRyscS5FxLKqhIWVrHK2pBgatVCOUM1h/XCuwlcKqxwxVQ0Pa0YQmGdir9fAH5/lRjKXB1ioJCHU0volxrRH/v78pzT7QbzI9DDCTyXDKKadwyimn8Oc//5mbbrqJ6667jgsvvJAjjjiCj33sY/zt3/7tiNsd8Tc6b948XnzxRQDmz5/Pj370IyA5w9Pe3j7iDgghhBDbpfiN/KrRTJPmetVf2HHHHbn00kt56aWX+Pd//3ceeeQRTjjhhFG1NeIzOaeeeiq/+93vOPTQQznvvPM49thjueqqqwiCgG984xuj6oQQQgixvTHEjbNSo11/srrvvvu46aab+OlPf4pt25x++umjamfERc5nPvOZxt8PP/xwnn32WZ544gl22mkn9txzz1F1QgghhBDbt1deeYXFixezePFiXnjhBd797nfzr//6r5xwwgmk0+lRtTmiIicIAo466iiuvfZadt55ZwDmzJnDnDlzRrVxIYQQYnvVuOzUxPqTwY9+9CNuvPFG7r77brq7uzn55JM57bTT2GmnnZpue0RFjuM4/P73v296o0IIIcT2TgYeJ0488USOOeYYfvazn/He974XrcduAPiIL1edeOKJ3HDDDfzzP//zmHVCCCGEENunV155he7u7nFpe8RFThiG3HjjjfzP//wP++23H9lsdtj7MvhYCCGE2Dy5XJUYrwIHRlHkPP300+y7774A/OlPfxr2nqo/o0AIIYQQmyZ3V42/ERc5995773j0QwghhBBiTG3dxzsKIYQQAmjuQYDNXuqaaKIo4oEHHqC/v39M25UiRwghhGgBSSF/g2VZHHHEEaxbt25M25UiRwghhBAt9/a3v50XXnhhTNvcboocFSbhjGgLUm0o2wETQpwEvCkrCdhUjpMEbWorCTuMDaZSSoIRdT3kM53cURa7acxQP3EYEJcGiYMahLWkXa3R2TZUPfBTt7Un7WkLlUrCOYHk78ZgqmXiMHgjPLQuLFex0hlMpYQJQkwQEoc+/mCJsOoTDCWhkCYI0a4NJkLbDmE5CXKMTYRdj6o3frJ+tW+AqOoT+SHrnn4OgGrfIMYPiaOIav8QmZ4ulNZkpyXhlKmuAgBWysVKubhtWcJqyMBLKxvhnuuXAYgjQ1j1qfUPEflJQGWlbxBTDwONI4OyNHbaITMlQ1itYfyQ6roKTtbBcmzCqo+2FLX+IQZfGcJybCzXYuCVQfxSEnQYVkLCUpWhlUWUpcnN6KK0qo/IN/S/PFDf74jYxGjXaoR0rldZVyWs+hg/xE7Z1NaVCCshQalKccVatGvhD5aJ6sGBAEE1JPIjjDHkZkyltq6ULBOElFb1EUcGN5+pH1ca44f4Q+Xk+ypViIKQYLCcvBeEhNUatXVDhKUq4eAgtWefoLJmHUGp0jgeVDpLXB6E0H/jWDIR2E5ybJSHMAN9EAYoxyVatwYz8FoS1hoGqKg+xSYJ57QdYtsjtlPE2kZFIcQxykT4JgnlDEyMaykCExMYKAUGE0MYxaRsTWhitFK4tsLEMUpBwbPxLM1ALSTnWqRsTRAZHEtTDqLG/zw9W+OHhqFaiGtr/MjQV/SxtMKpPyNjat6jGkZUw6gRBBnF0JayyaVsaqEhl7LpyLjUQpMEiFZD0o7Fqv4qtdBQ8aN66KTFUC1MgjHroY6erXEtTS00RCYm41pU/IiMazXm1UJDV85Ntm1iXFs3brAolXwqRb8RAmo7uv4jRhOFhraMQ/imcEtjYpRSaK3IpWxcz0Jphe0k33FQCynkXFxbUxqsorTCDw2hH1Et+UmwppV8VuvDQFMZh86cx8uvlfD9CMtO+rY+nDMKY4L6Z9xf9ocd++vDOF3PxlKqEURa8UPmTMnSW0jRlUuCQS2dhK0mwaU2awdrWErh1oNP045FxU9COVN28jmmXYtiNWx8/pZ647t1tCLn2vXvwSLjWDg6Cdishgav/plWQ4OlITJQDiIy9c9Kkxx3llbo+vfx5pMaSaBncuyuf5aMpSCqH6eWBq8exrk+nBOSYz7cimdHItP8NJlceumlfO5zn+OXv/wlK1euZHBwcNg0GiMeeCyEEEKI5jV7yWkyXa4CeO973wvA+973vmF3a8dx8h+EKIo2tupGSZEjhBBCtICJYyIpchrG4+5tKXKEEEIIMczrr7/OWWedxX/+53+iteb444/nW9/6Frn68Ie3smDBAu6///5h8z7+8Y9z7bXXbtE2Dz300Kb6/Fa2mzE5QgghxESSZFc1c3fV+PXtIx/5CH/84x+56667+OUvf8kDDzzAP/zDP2x2vdNPP52VK1c2piuuuGJE233wwQc58cQTOfDAA1mxYgUAt9xyCw899NCo9kOKHCGEEKIFJurA42eeeYY77riD733ve7zrXe/i4IMP5jvf+Q633norr7766ibXzWQy9PT0NKZ8Pr/F2/3pT3/KkUceSTqd5sknn6RWqwEwMDDAZZddNqp9kSJHCCGE2Ib95V1I64uD0Xr44Ydpb2/nHe94R2Pe4YcfjtaaRx99dJPr/uAHP2DKlCm8/e1v5/zzz6dcLm/xdi+99FKuvfZavvvd7+I4TmP+QQcdxJNPPjnyHUHG5AghhBAtMVZ3V82aNWvY/AsvvJCLLrpo1O2uWrVqg9BM27bp7Oxk1apVG13v7//+75kzZw7Tp0/n97//PV/84hdZunQp//Ef/7FF2126dCmHHHLIBvMLhcKon4Q84YucFStW8MUvfpFf//rXlMtldtppJ2666aZhFaYQQgixrYmavLtq/brLly8fdlnI87y3XP68887j8ssv32SbzzzzzKj78+YxO3vssQe9vb0cdthh/PnPf2bHHXfc7Po9PT08//zz7LDDDsPmP/TQQ8ybN29UfZrQRc66des46KCDWLhwIb/+9a+ZOnUqzz33HB0dHa3umhBCCDEh5PP5LRr78tnPfpZTTjllk8vMmzePnp4e1qxZM2x+GIa8/vrr9PT0bHG/3vWudwHw/PPPb1GRc/rpp3P22Wdz4403opTi1Vdf5eGHH+Zzn/scX/nKV7Z4u282oYucyy+/nFmzZnHTTTc15s2dO7eFPRJCCCHGhoGm7pAa6bjjqVOnMnXq1M0ud8ABB9Df388TTzzBfvvtB8A999yDMaZRuGyJJUuWANDb27tFy5933nkYYzjssMMol8sccsgheJ7H5z73Oc4666wt3u6bTeiBx7/4xS94xzvewQknnEB3dzf77LMP3/3udze5Tq1WG5NHQQshhBDjKYkZaW4aD7vuuitHHXUUp59+Oo899hi/+c1vOPPMM/nQhz7E9OnTgWQoyfz583nssccA+POf/8wll1zCE088wUsvvcQvfvELTjrpJA455BD23HPPLdquUoovfelLvP766zz99NM88sgjrF27lksuuWTU+zKhi5wX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QytFYAzV0FDw6sefSlLMTT15PI6TtHGlwI9iHK2xreT4y7kaSymUqh+3KllOKbA1GGL8KCaqX9axlMKP4vqyyd9r9bj0OI6T43ArFg6SQj7+tpsiRwghhBDbFylyhBBCiBZYH9DZzDRe/umf/okDDzyQTCZDe3v7Fq1zyimnoJQaNh111FHj1sctIWNyhBBCiBaYyLeQ+77PCSecwAEHHMANN9ywxesdddRR3HTTTY3XnudtYunxJ0WOEEIIIYa5+OKLAVi8ePGI1vM8j56ennHo0ejI5SohhBCiBdafyWlmAhgcHBw21Wq1lu3TfffdR3d3N7vssguf/OQn6evra1lfQIocIYQQoiVMHDc9AcyaNYtCodCYFi1a1JL9Oeqoo/j+97/P3XffzeWXX87999/P0UcfTRRFLekPyOUqIYQQYpu2fPly8vl84/XGxsGcd955XH755Zts65lnnmH+/Pmj6seHPvShxt/32GMP9txzT3bccUfuu+8+DjvssFG12SwpcoQQQogWGKuBx/l8fliRszGf/exnOeWUUza5zLx580bdn7dqa8qUKTz//PNS5AghhBDbk62dQj516lSmTp066u2N1CuvvEJfXx+9vb1bbZt/ScbkCCGEEC0QN/mMnPG8hXzZsmUsWbKEZcuWEUURS5YsYcmSJRSLxcYy8+fP52c/+xkAxWKRz3/+8zzyyCO89NJL3H333bz//e9np5124sgjjxy3fm6OnMkRQgghxDAXXHABN998c+P1PvvsA8C9997LggULAFi6dCkDAwMAWJbF73//e26++Wb6+/uZPn06RxxxBJdccklLn5UjRY4QQgjRAhM5oHPx4sWbfUbOm7efTqe58847x60/o7X9XK6qhxDGShN72SRgkzeCO2Nto2rFJPFMKdCa2PaILTcJ9HTTSQin4xI7Hsovodw0ykslAYmVQWLHQ2fbkmWBuFJCuSnMa68QhwFxGIDtEDsehDWUm0IXulD18M31oYzKSUIydVs7cRAkf0YRcaWEnUlhZ1M4+QyxX8XO5VCpLBiDCUJq64qgrSQMNDJU1q7DSrkYP6TaN0gcGfKzpxBVfbRj45d87GwKty2L154DwB8s0zZ7KnbawUSGKAhJd3cQG0NtMAkONX6EsjRRPRR0ffBnHBnCetva0oSlZHm3LYvSmqAUUO6r4KRsUl0F0t0duPks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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ds[\"vel\"][1].plot()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2.3: Apply an Acoustic Signal Correlation Filter\n", + "\n", + "After removing data from bins at or above the water surface, we typically apply a filter based on acoustic signal correlation to the ADCP data. This helps to eliminate erroneous velocity data points, which can be caused by factors such as bubbles, kelp, fish, etc., moving through one or multiple beams.\n", + "\n", + "You can quickly inspect the data to determine an appropriate correlation value by using the built-in plotting feature of xarray. In the following example, we use xarray's slicing capabilities to display data from beam 1 within a range of 0 to 10 m from the ADCP.\n", + "\n", + "It's important to note that not all ADCPs provide acoustic signal correlation data, which serves as a quantitative measure of signal quality. Older ADCPs may not offer this feature, in which case you can skip this step when using such instruments." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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9wAAPvroI9SsWRPLli3D4MGDSxxrWccWHSIiojBT314eygcAcnNzgz5ut7vI9XXq1AkrV67EoUOHAAC7du3C2rVr0bt3bwDAkSNHkJmZie7du2vzxMTEoEOHDtiwYcM1ro3IYosOERFRGVWnTp2g79OmTcOzzz5baLrJkycjNzcXTZs2hU6ng9/vxwsvvIAhQ4YAADIzMwEANWvWDJqvZs2a2riKiokOERFRmPkhwx/CRRN13vT0dERHR2vDTSZTkdN//vnnWLRoET799FO0aNECO3fuxLhx45CUlISHH364xHFUBBG9dHU1vcSJiIjKm3BduoqOjg76XCrRefLJJzF58mQMHjwYrVq1woMPPojx48dj1qxZAICEhAQAwMmTJ4PmO3nypDauoopoonM1vcSJiIjo8pxOJ2Q5+E+6TqeDoigAgPr16yMhIQErV67Uxufm5mLTpk3o2LFjqcZa2iJ66epKvcSJiIjKIwUylBDaEoo7b9++ffHCCy8gOTkZLVq0wI4dO/Dqq6/ikUceAQBIkoRx48ZhxowZSElJQf369TF16lQkJSWhX79+JY6zPIhootOpUye88847OHToEBo3bqz1En/11VeLnN7tdgf1OM/NzS2tUImIiK6aX0jwixBe6lnMeefOnYupU6fi8ccfx6lTp5CUlIS//e1veOaZZ7Rp/vGPfyAvLw+PPfYYsrOz0aVLFyxfvhxms7nEcZYHEU10rtRLvKBZs2Zh+vTppRwlERFR2Waz2TBnzhzMmTPnktNIkoTnnnsOzz33XOkFVgZEtI9O/l7i27dvx4cffohXXnkFH374YZHTT5kyBTk5OdonPT29lCMmIiK6snB1RqbQSSKCtzjVqVMHkydPxqhRo7RhM2bMwCeffIIDBw5ccf7c3FzExMQg61ADRFkFDNLFBqp9XidaGCxI89lhlCQk6KyF5vcKH84qLlglPaxy0U13XuELWm5R4wHALXywymY4FBdMkh4O4UGsbNFiaaw3wiDptbjyzwsABkmPLMUJAIiVLchSnEHztzAED8u/fnXdqV4HqutkWCUjPnfE454qJ4LKlep1oJ7ejMfSb8U7dVZp61U5FNcl6wEAVrskdDMLeIVPK58as1UyYrNbxlFvdXya0QG+bicuuRyiiubHE7suOU49/vOfE4CL55aC55g0nx3JelvQMgpOm+l3aOe0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QgJWrlypjc/NzcWmTZvQsWPHYhfvSv7880/8+eefYV9uSVxVi05JelI3b94cej0bjIiIiK618ePHo1OnTpg5cyYGDRqEzZs345133sE777wDIHDpaNy4cZgxYwZSUlK028uTkpLQr1+/sMSgKApmzJiBf/3rX3A4Ag+ctNls+Pvf/46nnnoKshyZtpWrykTatm0LSZIgrrIdTpZlHDp0CA0aNAgpOCIiovIo1PdVFXfeG264AV999RWmTJmC5557DvXr18ecOXMwZMgQbZp//OMfyMvLw2OPPYbs7Gx06dIFy5cvD/kZOqqnnnoK7733Hl588UV07twZALB27Vo8++yzcLlceOGFF8KynuK66iaXTZs2oUaNGlecTgiBli1bhhQUERFRuVfKr3G46667cNddd11yvCRJeO655/Dcc89dk/V/+OGH+Pe//427775bG9a6dWvUqlULjz/+eNlOdG655RY0atQIVatWvaqFdu3aFVFRUaHERUREROXIuXPn0LRp00LDmzZtinPnzkUgooCrumC2atWqq05yAOD7778P6tVNRERUmYTrgYHlSZs2bfDmm28WGv7mm2+iTZs2EYgogL2FiYiIwi3UN5CXw7eXz549G3369MFPP/2k3cm1YcMGpKen4/vvv49YXMVOdIQQ+OKLL7Bq1SqcOnUKiqIEjf/yyy+LtbwrvW2ViIiIyr5bbrkFhw4dwrx583DgwAEAwF/+8hc8/vjjSEpKilhcxU50xo0bh7fffhu33noratasGdLTDq/mbatERETlj3ThE8r85U9SUlLEOh1fSrETnY8//hhffvkl7rzzzpBXfqW3rRIREZVLlejSVWpqKp555hm8/fbbhZ7inJOTg5EjR2LGjBkRe+RMsZ/eExMTE7Zgr/S21YLcbnehN7kSERGVOaX8ZORIevnll1GnTp0iX1URExODOnXq4OWXX45AZAHFTnSeffZZTJ8+HefPnw955erbVlNSUvDjjz9i5MiReOKJJ/Dhhx8WOf2sWbMQExOjfQq+1ZWIiIhK1y+//IKBAwdecvygQYPw888/l2JEwYp96WrQoEH4z3/+g/j4eNSrVw8GgyFo/Pbt2696WcV92+qUKVMwYcIE7Xtubi6THSIiKnuEFPiEMn85kZaWhvj4+EuOr169OtLT00sxomDFbtF5+OGHsW3bNjzwwAMYMGAA7rnnnqBPcVzqbatpaWlFTm8ymbQ3ueZ/o6tB0sEgXczZkvW2IufP9DvgFj6cVVzaMMeF31O9DlhlMzL9gfdzWCUjvMIHr/ABALIUJ7IUJ9wXvudfX6bfAYfiQrLeBi8UbZxB0iNLcSLD79OmU5dVVGwGSQ+v8CFLcWLY0cDTLQdac2CVzYiVLYG4ZDMOdPk4aF51nkeiT2rfE3RWLXaVGlf+MqnDHIoLK10WbdwZv6LFq9anV/i0MqnTHfRd3IW+a/yDNlz9aZXNcCgueIUPC3JqIcVg1car8eavy1jZggz/xdZCg6TXyuJQXIW2c/667GwOxJJiCEyvxg8AM840RaxsQZbixIiY4+hslhErW7TYOpu8QXXlufC6E3W7rHNdvLtQ3S/U5Z29sAw1NnVbbXJX1eoh/7oy/Q54hQ+HfB68l9MUXuGD9UI5ASBBZ0WcbNa2AwDYFT8cigsTYg9o2y7FYMU/jgzQ1pGst6HRqqFobnTBABmN9UZ0MwstrkX2amioPweDpIdB0uOYX0Gaz45EnV7bv1sYLLhhx0CtzhN1evSrchaZfgdMkh6ZfgeuNxphkPSIk8047a8Cr/DhM3sK3ELBSmcTWGUzrJIeB7w2JOkubhsvFCTpgre3us3y19sie7WgbfGbx6ztC2f8CmJlC+rpzdp+rrJeqLMsxYnJJ9ugm/li279aR+58x4RDeGCQ9Kiuk5GgsyJZb8MQ28WHmmUpTqT7quCR6JOwSkZteWqcAHDcb0SCzopY2YIzfgVe4cOkaocx+WQbrHMbYJWMsEpGLQarbA46Dg0X6jR/nLu9F489db9f6bJo5yqVuo/0OdQ7aP/Lf1yf8Su43mhEok4Ph/AgVragv20PAGCbx6MtyyDpYbuwKdT1pBis2vGlnpvUc2QLg0Vbp0HSI9XrQKxswRJHDPZ5A/Oo5V7tkrRto8Y17cSd2jTJehu8wocWBguS9TbEyhak+eza9Oqns1mGQdIjWW+DQdLjdrOz0Plo6qmWGHt0AGySHwBwVnFhtUtCht+HFIMVJ/15KC3q28tD+ZQXMTEx+P333y85/vDhw1f1BvZrpdgtOt999x1+/PFHdOnSJeSVX+ltq0RERFS2de3aFXPnzsVtt91W5Pg33ngDN998cylHdVGxW3Qu1eGoJMaPH4+NGzdi5syZOHz4MD799FO88847GDVqVFiWT0REFBGVqDPylClT8MMPP+D//u//sHnzZuTk5CAnJwebNm3CgAED8OOPP2LKlCkRi6/Yic6//vUv/OMf/8DRo0dDXrn6ttX//Oc/aNmyJZ5//vlCb1slIiIqd9Q+OqF8yol27drhiy++wJo1a9CxY0dUq1YN1apVQ6dOnfDrr7/i888/x3XXXRex+Ip96eqBBx6A0+lEw4YNYbFYCnVGLu6Lu670tlUiIiIq2+666y4cO3YMy5cvx+HDhyGEQOPGjdGjRw9YLJYrL+AaKnaiM2fOnGsQBhERUcUhicAnlPnLm6ioKPTv3z/SYRRS7ESnqNu+iYiIKJ9K9GTksu6q+ugU9wnEdru9RMEQERERhdNVJTqxsbE4derUVS+0Vq1a+OOPP0ocFBERUblWiTojl3VXdelKCIF///vfsFqtV54YgNfrvfJEREREFRUvXZUZV5XoJCcnX/ZlmwUlJCQUuhuLiIio0qgkiU5xurZE6unIV5XohOOZOURERFSxVK1aFZJ0+ctsQghIkgS/319KUQUr9l1XREREdAWVpEVn1apVkQ7hipjoEBERhVsleXv5LbfcEvIyqlWrduWJ8pEkCdu3b7/q92Iy0SEiIqKwcTqdSEtLg8fjCRreunXrIqfPzs7GnDlzEBMTc8VlCyHw+OOPF+syGBMdIiKiMKuMT0Y+ffo0hg0bhh9++KHI8ZdLTgYPHoz4+PirWs+YMWOKFVexX+pJREREV1CJ3l6uGjduHLKzs7Fp0yZERUVh+fLl+PDDD5GSkoJvvvnmkvMpinLVSQ4QeChxgwYNrnr6EiU6v/76Kx544AF07NgRx48fBwB8/PHHWLt2bUkWR0REROXczz//jFdffRXt27eHLMuoW7cuHnjgAcyePRuzZs2KWFzFTnSWLl2Knj17IioqCjt27IDb7QYA5OTkYObMmWEPkIiIiMq+vLw8rWUmNjYWp0+fBgC0atUK27dvL9ay7HY7nnzySdxwww247rrrMGbMGJw5c6ZEcRU70ZkxYwYWLFiAd999N+ihgJ07dy52QYiIiCoiCRf76ZToE+kClECTJk1w8OBBAECbNm3w9ttv4/jx41iwYAESExOLtaxHH30UZ86cwfTp0zFt2jT88ccfGDJkSIniKnZn5IMHD6Jr166FhsfExCA7O7tEQRAREVH5NnbsWGRkZAAApk2bhl69emHRokUwGo1YuHDhZed97bXXMG7cOO3hg1u2bMGhQ4eg0+kABJKom266qURxFbtFJyEhAYcPHy40fO3atcXqHHQtZPod8Aqf9j3V69CGA0CCzgqrbIZduTiPSQrkeikGqzZNpt+Boz4XDJIeGf7z8AofYmULYmWLNn3+danLBYBY2YLVLkmbJla2IMVgRZbiRILOqk2TpTjhFT44FBfSfHZtnEHSI1a2YEmDn+BQXFqc6rrSfHbcsGNg0PwGSQ+rZNTW6RCBW/rWuQ1aPajT51+eGodB0sMqm9ErygNDvvowSTIMkl6LQ/09VrZoy7neGFjvEsfF2wLVZaqsshmb3TJGxBxHluLEt06LFmOaz44ljhhkKU5tPcl6G7zCh9ez6mnLcAgPrLIZWYoTWYoTh3yB+X/zmLVyr3ZJ2rY2SHqtTlO9Djxd/QAcigtWyQiH4tL2DatshkHSa/F6hQ/7vE4YLxxscbIZXuFDc6NLq7PN7kC9qN/jZDPOKi6tfvd5AzE21J/T6swrfDBJehz1uZCgs8ItfGhhsGBs7FGt/vNvm7OKC0ZJQqIusJ5kvS1oGnUbfNJoaVBdf9b5HcTKFq1cAHDbvrthk4F7qpxAPb0ZmX4HMv0ONNYbkaiLguNC3LGyBV7hw5Z2S7Q6tMpmfO6I12JO0Fmxz+vU6q+bWcAg6dHPehBWSY84XWDZVtmMNsY8uIWibQOrZNTiTvPZA9v1wv5rkPTotGsAYmULhtjOIdPv0OL/284HtPJV18na/mCQ9Ej1Bo5Dte7VbfJizV3Y5vEE1Y26vdV9RI0l//6cpTgvTisZ0dDgxIKcWlrMnXYNAAAsyKkFg6SHXTFp604xWLX1vVhzl1Y3DuEpdEwAgDvf+SN/Ga43GoPOB+qxaZXNQecEtbzvNVyiLVvdx9U6V89rjgv1ou5L6noKylKcMEl67XyhniPU7eRQAvuvWk/quUXdLgOtOWhhsGjbaJ1LQTdzoFftapeELMWJFIMVs2r9ELTNdnsvnpQz/Q7tHKCOz78+lXputkpGrfzPx+/FV43+h3RfFbx0rhHOKjJmHb0TKYZAHdfUVSlU5mumEr7U84EHHsDQoUMBANdffz2OHTuGLVu2ID09Hffee+9l5/3999/RoUMH7NixAwBwxx13oE+fPliwYAHmzp2Lhx56CD179ixRXMVu0Xn00UcxduxYvP/++5AkCSdOnMCGDRswceJETJ06tURBEBERVSiV5MnIl2OxWHDddddd1bRvvvkmNm7ciEceeQS33norZs2ahU8++QQrVqyA3+/HwIEDMXr06BLFUexEZ/LkyVAUBbfffjucTie6du0Kk8mEiRMnFvvediIiogqpEiY6fr8fCxcuxMqVK3Hq1CkoihI0/ueff77s/DfddBO2bNmCl156CR07dsTLL7+MpUuXhhxXsRMdSZLw1FNP4cknn8Thw4fhcDjQvHlzWK3WkIMhIiKi8mns2LFYuHAh+vTpg5YtW17xZZ9F0ev1eOqppzBo0CCMGDECH374Id58800kJCSUOK4SPxnZaDSiefPmJV4xERFRRVUZn4y8ePFifP7557jzzjuLPe+uXbvw17/+FQcOHEDr1q3x/vvvY+XKlfjggw/QqVMnPPnkkxg5cmSJ4ip2otO/f/8iszRJkmA2m9GoUSPcf//9aNKkSYkCIiIiKvcq4aUro9GIRo0alWjeRx55BLfccgs+/vhjLF++HCNGjMCqVaswbNgw3HXXXRg/fjw++ugjbNiwodjLLvZdVzExMfj555+xfft2SJIESZKwY8cO/Pzzz/D5fPjss8/Qpk0brFu3rtjBEBERUfn097//Ha+//jqEKH6WdujQITz++ONo2rQpxowZgyNHjmjjatSogU8++QTTp08vUVzFbtFJSEjA/fffjzfffBOyHMiTFEXB2LFjYbPZsHjxYowYMQKTJk3iKyGIiKhyqoQtOmvXrsWqVavwww8/oEWLFkEPFQaAL7/88pLzduvWDY899hgGDx6Mn3/+GZ07dy40TY8ePUoUV7ETnffeew/r1q3TkhwAkGUZY8aMQadOnTBz5kyMHj0aN998c4kCIiIiKu8qYx+dqlWron///iWa96OPPsILL7yAr7/+Gm3atMHkyZPDFlexEx2fz4cDBw6gcePGQcMPHDigvYLdbDaXqLc1ERERlU8ffPBBiebbvXs3WrZsiVdeeeWqpt+3bx+aNGkCvf7qUphiJzoPPvgghg8fjn/+85+44YYbAAQe1Txz5kw89NBDAIBffvkFLVq0KO6iiYiIKoZQn25cDp+MXFLt2rVDZmYmatSocVXTd+zYETt37rzqtzEUO9F57bXXULNmTcyePRsnT54EANSsWRPjx4/HpEmTAASuo/Xq1au4iyYiIqoYKmEfnXbt2l3xruyhQ4fi1ltvDRovhMDUqVNhsVgKzVsUj8dTrLiKnejodDo89dRTeOqpp5CbmwsAiI6ODpomOTm5uIslIiKicqxXr16YP38+WrVqhRtvvBFA4IrP7t27MXToUPz222/o3r07vvzyS9xzzz3afF27dtXeen41OnbsiKioqKuevsQPDAQKJzhERERUOTsjnzlzBn//+98LvfdyxowZOHbsGP73v/9h2rRpeP7554MSndWrV1/TuIr9HJ2TJ0/iwQcfRFJSEvR6PXQ6XdCnOJ599lntWTzqp2nTpsUNiYiIqGwRYfiUM59//jnuu+++QsMHDx6Mzz//HABw3333Fav1JhyK3aIzdOhQpKWlYerUqUhMTAz57qoWLVrgp59+uhjQVfaiJiIiKrNCbNEpj4mO2WzG+vXrCz0def369TCbzQACz91Tfy8txc4q1q5di19//RVt27YNTwB6fUgv6yIiIqLIGzNmDEaMGIFt27YF3ZX973//G//85z8BAD/++GPY8oerVexEp06dOiV6vPOlpKamIikpCWazGR07dsSsWbMu2ZnZ7XbD7XZr39XO0ERERGVKJbzr6umnn0b9+vXx5ptv4uOPPwYANGnSBO+++y7uv/9+AMCIESNK/HLOkip2H505c+Zg8uTJOHr0aMgr79ChAxYuXIjly5dj/vz5OHLkCG6++WbY7fYip581axZiYmK0T506dUKOgYiIKOwqYR8dABgyZAg2bNiAc+fO4dy5c9iwYYOW5ABAVFRU2b90de+998LpdKJhw4awWCyF3mVx7ty5q15W7969td9bt26NDh06oG7duvj8888xfPjwQtNPmTIFEyZM0L7n5uYy2SEiIqJLkkQxr0N9+OGHlx3/8MMPhxTQDTfcgO7du2PWrFlXnDY3NxcxMTHIOtQAUVYBg3Qxb8v0O5Cgs15xGV7hw1nFVWhar/DBIOkx+WQbTKqxAXbFD5usQ6xsCRqff3oA2jCH4oJVNsOhuOCFgljZgky/A1ZJD6t8MZvNH2em34E42QyDpNeWry6noAU5tTA8+lhQDAVlKc5C8eZfrknSwyDpi5yuqGFFLR+ANl3B8hScr2BZ9nmdaKw3Bk2T5rMjURdVKAZ13vzDtnk8uN5oLLSudS4FDQ1OJOis2vCi9oc0nx1GSULchZjey61bqE7z19OV6ib/vpTqdSDFYC1UJgBI9TpQXScjVrYUqqMsxYkzfgU2GfAIAbeQUE9v1soAAHGyGQ7hCar3gjL9DtgVXDIGNV4AcAgPDJC1baPWS4LOCofiwkGfjA/OdMHYGj9rcRe1PdWyrHZJ6GYWSPPZ4RYSbDKwxR2PG0ynLnmcFayH/NsWAFa7JHQ2eQvFX1Td7/M68ehvD2Jxi4VI1AWetaFOl+azI1lvCzpeC+5b6n7tFgrOKjJaGCxB+3qW4sQuTxV0MwttORn+80jW27TY9nmdaGGwaNvbJgMJOqu2HKtkhEN4tN+LqoOi6qmgLMV5yfnVbX7I50GcrMCuACZJ4Pu8phgRc7zQ9KleB0xSYJ9T95vLbaPLxZL/XKYuO8UQOB7dwgerbMa3Tgv6Wpza/Jl+B5Y5mmBEzPFCy85fn/mPZXXbrXMp6Gy+eIHCobhwzK/gN3ciBlpztNjP5noQ3+QYcnJyrtnjUdS/Sw3/ORO6EFou/C4Xfp/5z2saazhUq1YNhw4dQvXq1REbG3vZG5SK0xASTsVu0Qk1kbkch8OB33//HQ8++OA1WwcRERGFx2uvvQabLZDkz5kzJ7LBXEJI93K7XK5Cj2IuTuY5ceJE9O3bF3Xr1sWJEycwbdo06HS6Iu/DJyIiorIlf+PHtWwICUWxE528vDxMmjQJn3/+Oc6ePVtovPoG86vx559/4r777sPZs2dRo0YNdOnSBRs3brzqF3sRERGVSZXoriufzwe/3w+TyaQNO3nyJBYsWIC8vDzcfffd6NKlS8TiK3ai849//AOrVq3C/Pnz8eCDD2LevHk4fvw43n77bbz44ovFWtbixYuLu3oiIqIyrzK9AuLRRx+F0WjE22+/DQCw2+244YYb4HK5kJiYiNdeew1ff/017rzzzojEV+zby7/99lu89dZbGDBgAPR6PW6++WY8/fTTmDlzJhYtWnQtYiQiIqIyat26dRgwYID2/aOPPoLf70dqaip27dqFCRMm4OWXX45YfMVOdM6dO4cGDRoACPTHUXtRd+nSBWvWrAlvdEREROVVJXmGzvHjx5GSkqJ9X7lyJQYMGICYmBgAgb47+/bti1R4xU90GjRogCNHjgAAmjZtqr2o69tvv0XVqlXDGhwREVG5VIkeGGg2m3H+/Hnt+8aNG9GhQ4eg8Q6HIxKhAShBojNs2DDs2rULADB58mTMmzcPZrMZ48ePx5NPPhn2AImIiMobtY9OKJ/yom3bttorH3799VecPHkSt912mzb+999/R1JSUqTCK35n5PHjx2u/d+/eHQcOHMC2bdvQqFEjtG7dOqzBERERUdn2zDPPoHfv3vj888+RkZGBoUOHIjExURv/1VdfoXPnzhGLr1iJjtfrRa9evbBgwQLtelzdunVRt27daxIcERFRuVSJbi+/5ZZbsG3bNvzvf/9DQkICBg4cGDS+bdu2uPHGGyMUXTETHYPBgN27d1+rWIiIiCqEynR7OQA0a9YMzZo1K3LcY489VsrRBCt2H50HHngA77333rWIhYiIiCisip3o+Hw+zJ8/H+3bt8ff/vY3TJgwIehDRERU6UX4rqsXX3wRkiRh3Lhx2jCXy4VRo0YhLi4OVqsVAwYMwMmTJ0NbUTlQ7M7Ie/fuxXXXXQcAOHToUNC4y721lIiIqNKIYB+dLVu24O233y50g9D48ePx3XffYcmSJYiJicHo0aPxl7/8BevWrQsh0LKv2InOqlWrrkUcREREVEBubm7Qd5PJFPROqYIcDgeGDBmCd999FzNmzNCG5+Tk4L333sOnn36q3fr9wQcfoFmzZti4cSNuuumma1OAMqDYl66IiIjo8sL1HJ06deogJiZG+8yaNeuy6x01ahT69OmD7t27Bw3ftm0bvF5v0PCmTZsiOTkZGzZsCEuZt2zZgk2bNhUavmnTJmzdujUs6yiJYrfoEBER0RWE6dJVeno6oqOjtcGXa81ZvHgxtm/fji1bthQal5mZCaPRWOgNBjVr1kRmZmYIgV40atQo/OMf/wh6KjIQeEXESy+9VGQSVBqY6BAREZVR0dHRQYnOpaSnp2Ps2LFYsWIFzGZzKURW2G+//ab14c2vXbt2+O233yIQUQAvXREREYVbKd91tW3bNpw6dQrXXXcd9Ho99Ho9fvnlF7zxxhvQ6/WoWbMmPB4PsrOzg+Y7efIkEhISSl7OfEwmU5F3cWVkZECvj1y7ChMdIiKiMCvtd13dfvvt2LNnD3bu3Kl92rdvjyFDhmi/GwwGrFy5Upvn4MGDSEtLQ8eOHcNS5h49emDKlCnIycnRhmVnZ+Of//wn7rjjjrCsoyQkIUQ5e/7iRbm5uYiJicGpg3URF21EqteBFIMVAOBQXPBCQaxsgVf4YJAC2WSm3wGPEEjW24KWlaU44RYKACBBZy12LA7FBatcuLnQK3xwCx8cwocEnRVZilOLySE82u9nFRcSdFZ4hQ8AcMjnQQuDpch1qeXJUpywSka8dLYlJsXthUHSa/O7hQ9W2axNW7Dc6nTqcs74A2VPMVi12KySURsfK1u0ejJADiqrQ3HBJOm18uRfvlv44IWiLUv1elY9jI09qv3M9DtgkmRt/oJlzf97/tjz1/1ql4T2xvOFtkNR2z9RFwWDpEeaz15oX9jndcIl9LjeaAxap1qPcbI5qCwOxQXHhZjyjyu4rQvWAQCscylobnQVKneqN/CmX5MkYJN12vj8+5m6XnV/zV+W/od74P6ETRhozUGW4sRvHjM6m2WtPhzCAwNkbdvk3xcNkh4zzjTV9qnJJ9vgxZq7gsprlc3Y53UiTla09TsUF6ae7IzXErdpda06q8ja/qweEwW3U4Nlj+HgPW8hw38eyXobUr0OmKSij1W74odN1gXtt/m3N4Ait5u6P8bKlqD9On+9q8tSl6MemwVlKU4ACFpGwf3VLXwwXfiuxpH/PFCUTL8DVkkPk6SHQdIHxVRwPQXLp8p//ljtklBLZw9ahhpH/jI+k9ED82qtKbT/5qfuY+p6F9mr4UZzGurpzYXqSZ1f3V/y101BBcflryf1uEn1OlBdJ8MqGeEWPmT4faiuk4OODYfwIU42B5Vfjfn1rHoYpv8dsY3/QE5OzlVdDioJ9e9S0zEzoTOV/BKS3+3Cgbn/DCnWbt26oW3btpgzZw4AYOTIkfj++++xcOFCREdHY8yYMQCA9evXlzjO/I4fP46uXbvi7NmzaNeuHQBg586dqFmzJlasWIE6deqEZT3FxT46RERElcBrr70GWZYxYMAAuN1u9OzZE2+99VbYll+rVi3s3r0bixYtwq5duxAVFYVhw4bhvvvug8FgCNt6iouJDhERUZiVhXddrV69Oui72WzGvHnzMG/evNAXfglVqlSJ+LutCmKiQ0REFG6V5O3l33zzDXr37g2DwYBvvvnmstPefffdpRRVMCY6REREVCL9+vVDZmYm4uPj0a9fv0tOJ0kS/H5/6QWWDxMdIiKicKskLTqKohT5e1nC28uJiIjCTArDp7z56KOP4Ha7Cw33eDz46KOPIhBRABMdIiIiCtmwYcOCnqGjstvtGDZsWAQiCuClKyIionCrJJeu8hNCQJIKt0X9+eefiImJiUBEAUx0iIiIwqws3F5eWtq1awdJkiBJEm6//fag1z34/X4cOXIEvXr1ilh8THSIiIioxNS7rXbu3ImePXvCar34hGyj0Yh69ephwIABEYqOiQ4REVH4VaJLV9OmTQMA1KtXD4MHD4bJZIpwRMHYGZmIiOhaKKU3l5cVt912G06fPq1937x5M8aNG4d33nknglEx0SEiIgq70n57eVlw//33Y9WqVQCAzMxMdO/eHZs3b8ZTTz2F5557LmJxlZlE58UXX4QkSRg3blykQyEiIqJi2rt3L2688UYAwOeff45WrVph/fr1WLRoERYuXBixuMpEH50tW7bg7bffRuvWrSMdChERUegqUR8dldfr1frn/PTTT9q7rZo2bYqMjIyIxRXxFh2Hw4EhQ4bg3XffRWxsbKTDISIiClllvHTVokULLFiwAL/++itWrFih3VJ+4sQJxMXFRSyuiCc6o0aNQp8+fdC9e/crTut2u5Gbmxv0ISIiosh76aWX8Pbbb6Nbt26477770KZNGwCBN5yrl7QiIaKXrhYvXozt27djy5YtVzX9rFmzMH369GscFRERUYgq4aWrbt264cyZM8jNzQ26QvPYY4/BYrFELK6Iteikp6dj7NixWLRoEcxm81XNM2XKFOTk5Gif9PT0axwlERFR8VXGS1cAoNPpCnVDqVevHuLj4yMUESAJISJSncuWLUP//v2h0+m0YX6/H5IkQZZluN3uoHFFyc3NRUxMDLIONUC0LTBtluJErFw4c3QoLjiEDwk66yWny1KcAACrZMQhnwdJF1YfK1uQpTjhFoFX0CforPAKnzafQdIHLcMAGecULxJ1Udq4VK8DiTo9rHIgqfMKnzZOjWWf14kWhqJjcgtFix0AWm68HxtvfB8mSY+ziitonBpb/rguJ9PvCJq/4PrV8uevLzX+b50WdDGfgVUyYrdXwfVGY5Fly1KcsEpGOIQHVslYqM6AQD0P/KM7ljT4SZtP3W6f5bbE2NijWOdS0Nzo0mJRp0/1OlBPfzFhdggPzvgV1NObYZD02voNkh4OxaVtBwBYft6ItsZziJPNQXVZcBsXVU/qsHUuBZ3NF/9vSPPZYZN1sEpGnFVciJMvxqGWyyqbscQRg4HWHHiFDw7hgQEyvFAQK1uQ6Xcg7kKc6v5YsO4KbqeCUr0OVNfJ2rjVLgndzCJoX/MKH84qLgDQ4lx+3oheUR5t/FGfC7nCiAPuBAyxndOWs9olob3xPLxQtG24yF4NN5rTkGKwItXrQIrBqtWVuny13vZ5nUjSAXbFjz980ehmFvjWaUFfizOojn/3WmCWfWhtkLXyq9un4D6lLtsrfHBfmMYqm7U6L7h/AsAZv6LFmV+az45kvU2bJ/+86ro8QiBZb8OCnFoYEXNcG37Aa0Nnk7fQ9lK3tVUyavGpx7FJkos8ztRtlH/fVJc740xTTIrbW+iYcgtFW946l4J4nVM7HoDAOTHD7ys0TD1PqtvOK3w45PNo+0vB46Co81aazw63kHDKb9GOCzXmVK8Dm13JGGI7V6i+lzhi0N2SgVjZElT2zW4Znc2ytk1Nkj7ouAYunu/SfHZtXyp4vOXa/Yht/AdycnIQHR1daP3hoP5dav3ITOiMV/dPfFH8Hhd2v//PaxpruNWvX7/Id12p/vjjj1KM5qKIXbq6/fbbsWfPnqBhw4YNQ9OmTTFp0qQrJjlERERlViW8dFXw8TBerxc7duzA8uXL8eSTT0YmKEQw0bHZbGjZsmXQsCpVqiAuLq7QcCIionKlEiY6Y8eOLXL4vHnzsHXr1lKO5qKI33VFREREFVfv3r2xdOnSiK2/TDwwULV69epIh0BERBSyUDsUl9fOyEX54osvUK1atYitv0wlOkRERBVCJbx01a5du6DOyEIIZGZm4vTp03jrrbciFhcTHSIiojCThIAUwk3NocwbKf369Qv6LssyatSogW7duqFp06aRCQpMdIiIiCgMpk2bFukQisREh4iIKNwq4aUrIPA8vGXLlmH//v0AAu+/uvvuuyP6yBgmOkRERGFWGTsjHz58GHfeeSeOHz+OJk2aAAi8uqlOnTr47rvv0LBhw4jExdvLiYiIKGRPPPEEGjZsiPT0dGzfvh3bt29HWloa6tevjyeeeCJicbFFh4iIKNwq4aWrX375BRs3bgy6lTwuLg4vvvgiOnfuHLG4mOgQERGFWWW8dGUymWC32wsNdzgcMBqNEYgogJeuiIiIKGR33XUXHnvsMWzatAlCCAghsHHjRowYMQJ33313xOJiokNERBRuIgyfcuaNN95Aw4YN0bFjR5jNZpjNZnTu3BmNGjXC66+/HrG4eOmKiIgozCrjpauqVavi66+/xuHDh7Xby5s1a4ZGjRpFNC4mOkREROFWCTsjqxo1ahTx5CY/XroiIiKikA0YMAAvvfRSoeGzZ8/GwIEDIxBRABMdIiKia0C9fFWST3m0Zs0a3HnnnYWG9+7dG2vWrIlARAG8dEVERBRuQgQ+ocxfzlzqNnKDwYDc3NwIRBTAFh0iIiIKWatWrfDZZ58VGr548WI0b948AhEFSEKUw7TxgtzcXMTExCDrUAPIVbxwCB/iZDMMUqChap1LQWezjEy/A3GyGZvdMjqbL+Z2DsUFq2yGV/hwVnEFzavKUpywSsag4Wk+OxJ1UdqwLMUJAIiVLUG/OxQXvFC033d5jOhsluEVvkLrUZejLsMtFCTorEHjvcKn/a7Ory7LobgC36HArviRqIuCQ3hglYw4q7jwu9eC5kYXDJCR4Q8sp57+YnmXnzeiV5QHmX4HEnTWImNU69Eg6eEVPjiER4tXrSO1TrMUJ+aduw5PVz+gLUuN3yDptbLmX8/l6sUAGVbZXGicOp9DeOAWSpHbUJ3mudNt8Xz8Xm3dapkSdFbs8zrRwnAxnn1eJxrrL27393Nr4pHok9r2VanlV5cHQFtWqtcBkyTgFhJSDIXrdPSJG/Fm0uZCdRkrW5Dms8Mm63DGr6C6TtaWr+7T61wKmhtdiJUtWO2S0M0stPWq1GkvVberXRIOuJMwIua4ts+ZJDmoLACQ6nUAAFIM1qA6S/U6tGFe4UOG/zzePdcRz8fv1bb1ZreMhgYn7Aq0ZRSMRV2euq2tkhH3H+mFuXWXacMLbqf861bnU48zAHAIH6ySHqYL61H3v91eBa0Nsrb+/OtWy1pPb8arWU3xWNXd2jbO9DuwzNEEI2KOI9XrwCm/Jehckj8Oq2TU1pl/uF3xI1lvC5reK3xwC98l9+33c2viziq/46wia/vj5eov/7j8deKFArcIbAT1+M6/3vznqvzfrZJR2zeLqq+iqPtd/uP+rOIqNJ96rigYt3o8qOcu9Zh+P7cm+luPaOea/OejTL9D294rXRb0ivIE1eGDtuNwCx9y7QrqND2OnJwcREdHX7YcJaX+XWr/fzOgNxS9Xa+Gz+vC1i+evqaxhtu3336Lv/zlL7j//vtx2223AQBWrlyJ//znP1iyZAn69esXkbh46YqIiCjcKuFdV3379sWyZcswc+ZMfPHFF4iKikLr1q3x008/4ZZbbolYXEx0iIiIKCz69OmDPn36FBq+d+9etGzZMgIRsY8OERFR2ElK6J/yzm6345133sGNN96INm3aRCwOJjpEREThVglfAaFas2YNHnroISQmJuKVV17Bbbfdho0bN0YsHl66IiIiopBkZmZi4cKFeO+995Cbm4tBgwbB7XZj2bJlEb3jCmCLDhERUdiF8rDA8vbQwL59+6JJkybYvXs35syZgxMnTmDu3LmRDkvDFh0iIqJwq0QPDPzhhx/wxBNPYOTIkUhJSYl0OIWwRYeIiCjMKlOLztq1a2G323H99dejQ4cOePPNN3HmzJlIh6VhokNEREQldtNNN+Hdd99FRkYG/va3v2Hx4sVISkqCoihYsWIF7HZ7RONjokNERBRulfCuqypVquCRRx7B2rVrsWfPHvz973/Hiy++iPj4eNx9990Ri4uJDhERUZhVpktXRWnSpAlmz56NP//8E//5z38iGgsTHSIiIromdDod+vXrh2+++SZiMfCuKyIionCrRHddlXURbdGZP38+WrdujejoaERHR6Njx4744YcfIhkSERFRyCr7pauyJKKJTu3atfHiiy9i27Zt2Lp1K2677Tbcc8892LdvXyTDIiIiogoiopeu+vbtG/T9hRdewPz587Fx40a0aNEiQlERERGFKNQ7p9iiEzZlpo+O3+/HkiVLkJeXh44dOxY5jdvthtvt1r7n5uaWVnhERERXLdTLT7x0FT4Rv+tqz549sFqtMJlMGDFiBL766qtLvgBs1qxZiImJ0T516tQp5WiJiIioPIl4otOkSRPs3LkTmzZtwsiRI/Hwww/jt99+K3LaKVOmICcnR/ukp6eXcrRERERXQRGhfygsJCHK1j1s3bt3R8OGDfH2229fcdrc3FzExMQg/UAtJMVYAABZihMAECsHvnuFDwZJj1SvAykGK7zCBwAwSHptXH4OxQWrbA4aNiztZnyQ/CuyFCdiZQu8wodDPg/iZAVxshlnFRcSdMHLVqfNUpywSsZC68n0O2CSZJzxK/jdVw23m53aNPnnVdfnEB5YJaP286ziwllF1mJQ16tK89mRrLdp5dnndaKuToZVNmvlfj2rHobHHECG34cUg1WbVx3vUFzaOLUcZxUXrJIeVtmMl841QgfL72hjzINbBOJQ69UtfDjmV9BYbwQAnFVcAIAEnVUrv1pnan1ZJWOh+sv0O7DTUw0dTNmFtmn+eM8qLm1bqHEAwD6vE3GyUmi9BbeD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cuVR+xE0atQIDocD99xzD4YPH44OHTqgadOm2n+pZek/7KLK88UXX+CZZ56BTqfDvffeC6/Xi+zs7KBOyLVr10ZycjJ27doVwegLK6o8S5cuxbPPPgu3263FfezYMfz1r3+FXq9HTEwMWrZsiVq1auHnn38GUDYum27duhWjR49GXFwc+vbti7feegs+nw96vR5erxd6vR4DBgzA8ePH8dlnnwG4eHk0JiYGMTExOHv2bCSLEORS5dHpdIUu/wLAmTNnsH79elx//fXauFOnTkUk9qJcqTzqZam6desiIyMD/fv3x6BBg3D77bejXr16WutuWTofEF1SpDOtssrn84nrrrtOTJo0KWj422+/Lcxms1i1alXQ8DfeeEO0bdtWCCHE2bNnxbBhw0SfPn3E6dOnSyvky7pceUwmk1i9erUQQoi6desKSZK0/7TPnj0rxowZI2rXri0yMjIiEXqRLlceo9EofvnlFyGEEJMmTRJxcXHizTff1Kb57rvvRJs2bURmZmapxnw5V7u/rVixQnTs2FFs2bJFm2bFihWiWbNmYvfu3aUZ8mVlZWWJ0aNHi3379oklS5aINm3aiJdeekkIEdxq8MQTT4gOHTqITz75RBu2YMEC0bZtW+FwOEo97ku5XHnUlqj8Fi9eLBo2bCiEEOLMmTPikUceES1bthTHjx8v1bgv5WrL07FjRyFJkrj77rvFnj17hMvlEi+++KKQJEkcO3YsUuETFQsTnSKoB3qvXr3EwIEDg4YJIUT79u1F//79hcfj0YaNGjVKPP3002LOnDnCZrOJG264QRw+fLh0A7+EqynPXXfdJYQQYs2aNWLZsmXaJQYhhPj+++/FpEmTxLlz58pEU/XVlKdv375CCCGOHTsmxowZIyRJEvfdd58YO3asiI+PF5MnTxYej6fclOeee+4RQgixc+dOcfPNN4sOHTqId999Vzz33HMiISFBjB49WjidzjJRHjWGvLw8IUTgj+q4ceNEq1atRFpamhBCaJcSjxw5IkaPHi1kWRbDhw8X48ePF1WrVhUvvPCC8Pv95aY8BS/5TJ8+XQwfPly8+uqrwmaziZtuukkcOnSodAO/hKspj8vlEkIIsWvXLvHf//436Hywd+9eMXnyZHHq1KkysX2IroSJziX4/X7xyiuviDZt2og9e/YIIS6enFesWCFkWRZHjx4VQgT+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eOIJdO/evVjLJqJiEERX8MEHH4iYmJhCwx9++GFxzz33aN9vueUWMXr0aDF27FhRtWpVER8fL9555x3hcDjE0KFDhdVqFQ0bNhTff/990HL27NkjevXqJapUqSLi4+PFAw88IE6fPl3seObNmycaNWokTCaTiI+PFwMGDNDG+f1+MXPmTFGvXj1hNptF69atxZIlS4Lm37t3r+jTp4+w2WzCarWKLl26iMOHD2vzT58+XdSqVUsYjUbRpk0b8cMPP2jzHjlyRAAQS5cuFd26dRNRUVGidevWYv369YVir1OnjoiKihL9+vUTr7zySlBZdu7cKbp16yasVquw2WziuuuuE1u2bCmyHhRFEdOmTRN16tQRRqNRJCYmijFjxmjj69atK1577TXtOwDx7rvvin79+omoqCjRqFEj8fXXX191HQghxLvvviuaNm0qTCaTaNKkiZg3b16RsRUFgPjqq6+Chh08eFAAEHv37tWG+f1+UaNGDfHuu+9ecllt27YVjzzyiPb9+++/F7Isi8zMTG3Y/PnzRXR0tHC73ZdczqBBg0SfPn2ChnXo0EH87W9/KzStuo137NhxyeWpfvvtNwEgaNv98MMPQpIkcfz48ULTFzyWiCh82KJDYfXhhx+ievXq2Lx5M8aMGYORI0di4MCB6NSpE7Zv344ePXrgwQcfhNPpBABkZ2fjtttuQ7t27bB161YsX74cJ0+exKBBg4q13q1bt+KJJ57Ac889h4MHD2L58uXo2rWrNn7WrFn46KOPsGDBAuzbtw/jx4/HAw88gF9++QUAcPz4cXTt2hUmkwk///wztm3bhkceeUS79PH666/jX//6F1555RXs3r0bPXv2xN133x10iQUAnnrqKUycOBE7d+5E48aNcd9992nL2LRpE4YPH47Ro0dj586duPXWWzFjxoyg+YcMGYLatWtjy5Yt2LZtGyZPngyDwVBkmZcuXYrXXnsNb7/9NlJTU7Fs2TK0atXqsvU0ffp0DBo0CLt378add96JIUOG4Ny5c1dVB4sWLcIzzzyDF154Afv378fMmTMxdepUfPjhh1e7mQpxu90AALPZrA2TZRkmkwlr164tcp5t27Zh586dGD58uDZsw4YNaNWqFWrWrKkN69mzJ3Jzc7Fv375Lrn/Dhg2FWlN69uyJDRs2lKg8+ZdbtWpVtG/fXhvWvXt3yLKM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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "ds[\"corr\"].sel(beam=1, range=slice(0, 10)).plot()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It's beneficial to also review data from the other beams. A significant portion of this data is of high quality. To avoid discarding valuable data with lower correlations, which could be due to natural variations, we can use the `correlation_filter`. This function assigns a value of NaN (not a number) to velocity values corresponding to correlations below 50%.\n", + "\n", + "However, it's important to note that the correlation threshold is dependent on the specifics of the deployment environment and the instrument used. It's not unusual to set a threshold as low as 30%, or even to forgo the use of this function entirely." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "ds = api.clean.correlation_filter(ds, thresh=50)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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5510d3e3u0tCCCHEmFC6xYBOmXi8WW0tcsrlMk8//XTz5yVLlrB48WK6urro6+vjne98J4888gg///nPiaKIlStXAtDV1YVt2+3qthBCCNEyubtq/LX1E3rooYeYP38+8+fPB+Dss89m/vz5nH/++Sxfvpyf/exnPP/88+y777709fU1l9///vft7LYQQgjRsnRujdHCMrK/wl/pAbybctddd/HqV78ax3HYeeeduemmm0b3ZtukrSM5CxYsIEmSTb7+Sq8JIYQQYsttfADvKaecwr/+679udvslS5bw1re+ldNOO43vfOc7LFq0iH/7t3+jr6+PI444Yiv0uHUTek6OEEIIMVm1+tTike77Sg/gfTnXXnstc+bM4ctf/jIAu+22G/feey9f/epXpcgRQgghxKZprdEtzKvZuO8/PvR2rO4yvu+++zjssMOGrTviiCM466yzWm57a5FZS0IIIcQ2bNasWcMegrtw4cIxaXflypVMnTp12LqpU6cyODhIrVYbk2OMNxnJEUIIIdpgrC5XLVu2bNgz5ORZcS+SIkcIIYRog7EqcorF4mYflDsa06ZNY9WqVcPWrVq1imKxSCaTGfPjjQe5XCWEEEKIl9h///1ZtGjRsHW//vWv2X///dvUo5GTIkcIIYRoA6V084GAo1rUyP4KL5fLLF68mMWLFwMvPoB36dKlQJr9eMIJJzS3P+2003jmmWf49Kc/zZNPPsl//ud/8oMf/ICPf/zjY/YZjDe5XCWEEEK0wda+hfyhhx7ikEMOaf589tlnA3DiiSdy0003sWLFimbBAzBnzhz+53/+h49//ON87WtfY+bMmXzrW9/aZm4fBylyhBBCiO3C5h7A+3JPM16wYAF//OMfx7FX40uKHCGEEKINtvZIzvZIihwhhBCiDbSh0S0UKq3su72QIkcIIYRoA6VViynkagx7MzlJGSiEEEKISUlGcoQQQog2kDk540+KHCGEEKINpMgZf/IJCSGEEGJSkpEcIYQQog02PvG4lf3FK5MiRwghhGgDZRhow2hpf/HKpAwUQgghxKQkIzlCCCFEG8jE4/EnRY4QQgjRBlLkjD/5hIQQQggxKclIjhBCCNEGSrd4d1UL+24vpMgRQggh2kAuV40/KXKEEEKINlBatVbkTIKAzsHBwRHvUywWt3hbKXKEEEII0RYdHR0oteXFmlKKv/zlL8ydO3eLtpciRwghhGgDmZOT+tGPfkRXV9dmt0uShLe85S0jaluKHCGEEKINlDZQuoUnHrew70Qxe/ZsDjroILq7u7do+7lz52JZ1ha3L0WOEEIIIdpiyZIlI9r+8ccfH9H2UuQIIYQQ7aCNdGllf/GKJscFPSGEEGJbo3Xry3Zg1apVfP7znx/VvtvHJySEEEKIbdLKlSu56KKLRrWvXK4SQggh2kAZBspoYeJxC/tOJI8++ugrvv7UU0+Num0pcoQQQoh2kDk5AOy7774opUiS5CWvbVw/kmfp/D0pcoQQQgjRNl1dXVx++eUceuihL/v6n//8Z972treNqm0pcoQQQoh20LrFkZzJMa12v/3244UXXmD27Nkv+3p/f//LjvJsCSlyhBBCiDaQJx6nTjvtNCqVyiZf32GHHbjxxhtH1bYUOUIIIUQ7qBbn5KjJMSfnX/7lX17x9c7OTk488cRRtT05ykAhhBBCTBq/+93vqNfrLbcjRY4QQgjRDhvvrmplmaSOOuooli9f3nI7crlKCCGEaAOZk7Npo51o/I8m7yckhBBCiO1aW4ucu+++m7e97W1Mnz4dpRS33377sNeTJOH888+nr6+PTCbDYYcdxl//+tf2dFYIIYQYS3K5apOuu+46pk6d2nI7bS1yKpUK++yzD1dfffXLvn755Zfz9a9/nWuvvZYHHniAXC7HEUccged5W7mnQgghxBjb+JycUS+T92LM+973PqIo4vbbb+eJJ54YdTttnZNz1FFHcdRRR73sa0mScMUVV/C5z32Od7zjHQB8+9vfZurUqdx+++0ce+yxL7tfvV4fNiN7cHBw7DsuhBBCiDH17ne/m4MOOogzzjiDWq3Ga17zGp599lmSJOH73/8+xxxzzIjbnLBl4JIlS1i5ciWHHXZYc12pVOL1r38999133yb3W7hwIaVSqbnMmjVra3RXCCGEGJGNAZ2tLJPJ3XffzRvf+EYAfvKTn5AkCf39/Xz961/nkksuGVWbE7bIWblyJcBLrslNnTq1+drLOffccxkYGGguy5YtG9d+CiGEEKOidevLJDIwMEBXVxcAd9xxB8cccwzZbJa3vvWto56PO7k+IcBxHIrF4rBFCCGEEKmrr76aHXfcEdd1ef3rX8+DDz64yW1vuukmlFLDFtd1x6Vfs2bN4r777qNSqXDHHXdw+OGHA7Bhw4ZRH3PCFjnTpk0DYNWqVcPWr1q1qvmaEEIIsc1qw91Vt956K2effTYXXHABjzzyCPvssw9HHHEEq1ev3uQ+xWKRFStWNJfnnnuulXe9SWeddRbHHXccM2fOZPr06SxYsABIL2Pttddeo2pzwhY5c+bMYdq0aSxatKi5bnBwkAceeID999+/jT0TQgghWqe00fIyUl/5ylc49dRTOfnkk9l999259tpryWaz3HDDDZvup1JMmzatuYzFrd0v58Mf/jD3338/N9xwA/feey+6cTlu7ty5o56T09a7q8rlMk8//XTz5yVLlrB48WK6urrYYYcdOOuss7jkkkvYZZddmDNnDueddx7Tp0/n6KOPbl+nhRBCiLGgWpxXo9J9//EuYsdxcBznJZv7vs/DDz/Mueee21ynteawww57xRt6yuUys2fPJo5jXv3qV3PppZeyxx57jL7fr2C//fZjv/32G7burW9966jba+tIzkMPPcT8+fOZP38+AGeffTbz58/n/PPPB+DTn/40H/3oR/ngBz/Ia1/7WsrlMnfccce4XQ8UQgghtjWzZs0adlfxwoULX3a7tWvXEkXRiG7o2XXXXbnhhhv46U9/yn/9138RxzEHHHAAzz///Ji/j/HQ1pGcBQsWvGI+hVKKz3/+83z+85/fir0SQgghxt9oLzn9/f4Ay5YtG3aTzcuN4ozW/vvvP2yKyAEHHMBuu+3Gddddx8UXXzxmxxkvEtAphBBCtMPGJx63sj9s8Z3EPT09GIbR0g09lmUxf/78YVNNJrIJO/FYCCGEEGPHtm3222+/YTf0xHHMokWLtviGniiKeOyxx+jr6xuvbo4pGckRQggh2qHVB/qNYt+zzz6bE088kde85jW87nWv44orrqBSqXDyyScDcMIJJzBjxozmvJ7Pf/7z/NM//RM777wz/f39fPGLX+S5557j3/7t30bf71fgeR6PPvooq1evJo7jYa+9/e1vH3F7UuQIIYQQbdBqNMNo9n3Pe97DmjVrOP/881m5ciX77rsvd9xxR3My8tKlS5u3bkP6IL5TTz2VlStX0tnZyX777cfvf/97dt9991H3e1PuuOMOTjjhBNauXfuS15RSRFE04jZV8kozfyeBwcFBSqUSAwMD8vRjIYQQr2hr/J2x8Rjr7/spxXxu9O2UK3Tt/45J8/fbLrvswuGHH875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1bBCJ4oiyuUyp5122qja3qIiR56JI4QQQojxcMUVV5AkCaeccgoXXXQRpVKp+Zpt2+y4447sv//+o2p7xHdXCSGEEKJ1EtCZ2njX9pw5czjggAPG9EqQFDlCCCFEO8jlqmF3b8+fP59arUatVnvZbUcTKSVFjhBCCCHaorOzkxUrVtDb20tHR8fLTjzeOCE5iqIRtz+hi5woirjwwgv5r//6L1auXMn06dM56aST+NznPifPMhBCCLFtazVkcxL8Pfib3/ymeefUb37zmzH/u31CFzmXXXYZ11xzDTfffDN77LEHDz30ECeffDKlUomPfexj7e6eEEIIMXpyuYqDDz64+f8LFiwY8/ZH9Qndc889HH/88ey///4sX74cgFtuuYV77713TDv3+9//nne84x289a1vZccdd+Sd73wnhx9+OA8++OCYHkcIIYTYXlx99dXsuOOOuK7L61//+s3+nfrDH/6QefPm4boue+21F7/4xS/GpV833ngjP/zhD1/2+DfffPOo2hxxkXPbbbdxxBFHkMlk+OMf/0i9XgdgYGCASy+9dFSd2JQDDjiARYsW8Ze//AVIHwh07733ctRRR21yn3q9zuDg4LBFCCGEmGg2BnS2sozUrbfeytlnn80FF1zAI488wj777MMRRxyxyVSD3//+97z3ve/lAx/4AH/84x85+uijOfroo3n88cdbffsvsXDhQnp6el6yvre3d9T1xYg/oUsuuYRrr72Wb37zm8Nu8zrwwAN55JFHRtWJTTnnnHM49thjmTdvHpZlMX/+fM466yyOO+64Te6zcOFCSqVSc5k1a9aY9kkIIYQYE22IdfjKV77Cqaeeysknn8zuu+/OtddeSzab5YYbbnjZ7b/2ta9x5JFH8qlPfYrddtuNiy++mFe/+tVcddVVrb77l1i6dClz5sx5yfrZs2ezdOnSUbU54k/oqaee4qCDDnrJ+lKpRH9//6g6sSk/+MEP+M53vsN3v/tdHnnkEW6++Wa+9KUvveKw1bnnnsvAwEBzWbZs2Zj2SQghhJhI/vHqxcYrLP/I930efvhhDjvssOY6rTWHHXYY991338vuc9999w3bHuCII47Y5Pat6O3t5dFHH33J+j/96U90d3ePqs0RTzyeNm0aTz/9NDvuuOOw9ffeey9z584dVSc25VOf+lRzNAdgr7324rnnnmPhwoXN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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ds[\"vel\"][1].plot()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2.4 Rotate Data Coordinate System\n", + "\n", + "After cleaning the data, the next step is to rotate the velocity data into accurate East, North, Up (ENU) coordinates.\n", + "\n", + "ADCPs utilize an internal compass or magnetometer to determine magnetic ENU directions. You can use the set_declination function to adjust the velocity data according to the magnetic declination specific to your geographical coordinates. This declination can be looked up online for specific coordinates.\n", + "\n", + "Instruments save vector data in the coordinate system defined in the deployment configuration file. To make this data meaningful, it must be transformed through various coordinate systems (\"beam\"<->\"inst\"<->\"earth\"<->\"principal\"). This transformation is accomplished using the `rotate2` function. If the \"earth\" (ENU) coordinate system is specified, DOLfYN will automatically rotate the dataset through the required coordinate systems to reach the \"earth\" coordinates. Setting `inplace` to true will modify the input dataset directly, meaning it will not create a new dataset.\n", + "\n", + "In this case, since the ADCP data is already in the \"earth\" coordinate system, the `rotate2` function will return the input dataset without modifications. The `set_declination` function will work no matter the coordinate system." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Data is already in the earth coordinate system\n" + ] + } + ], + "source": [ + "dolfyn.set_declination(ds, 15.8, inplace=True) # 15.8 deg East\n", + "dolfyn.rotate2(ds, \"earth\", inplace=True)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To rotate into the principal frame of reference (streamwise, cross-stream, vertical), if desired, we must first calculate the depth-averaged principal flow heading and add it to the dataset attributes. Then the dataset can be rotated using the same `rotate2` function. We use `inplace=False` because we do not want to alter the input dataset here." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "ds.attrs[\"principal_heading\"] = dolfyn.calc_principal_heading(ds[\"vel\"].mean(\"range\"))\n", + "ds_streamwise = dolfyn.rotate2(ds, \"principal\", inplace=False)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Average the Data\n", + "\n", + "As this deployment was configured in \"burst mode\", a standard step in the analysis process is to average the velocity data into time bins. \n", + "\n", + "However, if the instrument was set up in an \"averaging mode\" (where a specific profile and/or average interval was set, for instance, averaging 5 minutes of data every 30 minutes), this step would have been performed within the ADCP during deployment and can thus be skipped.\n", + "\n", + "To average the data into time bins (also known as ensembles), you should first initialize the binning tool `ADPBinner`. The parameter \"n_bin\" represents the number of data points in each ensemble. In this case, we're dealing with 300 seconds' worth of data. The \"fs\" parameter stands for the sampling frequency, which for this deployment is 1 Hz. Once the binning tool is initialized, you can use the `bin_average` function to average the data into ensembles." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "avg_tool = api.ADPBinner(n_bin=ds.fs * 300, fs=ds.fs)\n", + "ds_avg = avg_tool.bin_average(ds)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset>\n",
+       "Dimensions:         (time: 183, dirIMU: 3, range: 28, dir: 4, beam: 4,\n",
+       "                     earth: 3, inst: 3, q: 4, time_b5: 183, range_b5: 28)\n",
+       "Coordinates:\n",
+       "  * time            (time) datetime64[ns] 2020-08-15T00:22:30.001030683 ... 2...\n",
+       "  * dirIMU          (dirIMU) <U1 'E' 'N' 'U'\n",
+       "  * range           (range) float64 1.2 1.7 2.2 2.7 3.2 ... 13.2 13.7 14.2 14.7\n",
+       "  * dir             (dir) <U2 'E' 'N' 'U1' 'U2'\n",
+       "  * beam            (beam) int32 1 2 3 4\n",
+       "  * earth           (earth) <U1 'E' 'N' 'U'\n",
+       "  * inst            (inst) <U1 'X' 'Y' 'Z'\n",
+       "  * q               (q) <U1 'w' 'x' 'y' 'z'\n",
+       "  * time_b5         (time_b5) datetime64[ns] 2020-08-15T00:22:29.938495159 .....\n",
+       "  * range_b5        (range_b5) float64 1.2 1.7 2.2 2.7 ... 13.2 13.7 14.2 14.7\n",
+       "Data variables: (12/38)\n",
+       "    c_sound         (time) float32 1.502e+03 1.502e+03 ... 1.499e+03 1.498e+03\n",
+       "    U_std           (range, time) float32 0.04232 0.04293 0.04402 ... nan nan\n",
+       "    temp            (time) float32 14.49 14.59 14.54 14.45 ... 13.62 13.56 13.5\n",
+       "    pressure        (time) float32 9.712 9.699 9.685 9.67 ... 9.58 9.584 9.591\n",
+       "    mag             (dirIMU, time) float32 72.37 72.4 72.38 ... -197.1 -197.1\n",
+       "    accel           (dirIMU, time) float32 -0.3584 -0.361 ... 9.714 9.712\n",
+       "    ...              ...\n",
+       "    boost_running   (time) float32 0.1267 0.1333 0.13 ... 0.2267 0.22 0.22\n",
+       "    heading         (time) float32 3.287 3.261 3.337 3.289 ... 3.331 3.352 3.352\n",
+       "    pitch           (time) float32 -0.05523 -0.07217 ... -0.04288 -0.0429\n",
+       "    roll            (time) float32 -7.414 -7.424 -7.404 ... -6.446 -6.433 -6.436\n",
+       "    water_density   (time) float32 1.023e+03 1.023e+03 ... 1.023e+03 1.023e+03\n",
+       "    depth           (time) float32 10.28 10.26 10.25 10.23 ... 10.14 10.15 10.15\n",
+       "Attributes: (12/41)\n",
+       "    fs:                        1\n",
+       "    n_bin:                     300\n",
+       "    n_fft:                     300\n",
+       "    description:               Binned averages calculated from ensembles of s...\n",
+       "    filehead_config:           {"CLOCKSTR": {"TIME": "\\"2020-08-13 13:56:21\\"...\n",
+       "    inst_model:                Signature1000\n",
+       "    ...                        ...\n",
+       "    has_imu:                   1\n",
+       "    beam_angle:                25\n",
+       "    h_deploy:                  0.6\n",
+       "    declination:               15.8\n",
+       "    declination_in_orientmat:  1\n",
+       "    principal_heading:         11.1898
" ], - "source": [ - "# Beam-variance equation for 4-beam ADCPs\n", - "stress_vec = avg_tool.reynolds_stress_4beam(ds_beam, noise=ds_avg['noise'], orientation='up', beam_angle=25)\n", - "upwp_ = stress_vec[1]\n", - "vpwp_ = stress_vec[2]\n", - "wpwp_ = ds_avg['wpwp_bar'] # Found from the vertical along-beam velocity (vel_b5) above\n", - "\n", - "# OR #\n", - "\n", - "# Beam-variance equation for 5-beam ADCPs\n", - "tke_vec, stress_vec = avg_tool.stress_tensor_5beam(ds_beam, noise=ds_avg['noise'], orientation='up', beam_angle=25)\n", - "upwp_ = stress_vec[1]\n", - "vpwp_ = stress_vec[2]\n", - "wpwp_ = tke_vec[2]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The shear components can be found from the aptly named functions `dudz`, `dvdz`, and `dwdz` in ADPBinner. These functions, which are useful alone in their own right, estimate the shear in the velocity vector between respective depth bins. There is always correlation between velocity measurements in adjacent depth bins, based on ADCP operation principles, which is why \"estimation\" is also used here for shear.\n", - "\n", - "The shear functions operate on the raw velocity vector in the principal reference frame and need to be ensemble-averaged here. This can be done by nesting the `d*dz` function within the ADPBinner's `mean` function. With the ensemble shear known, we can put all the components together to get a production estimation." - ] - }, + "text/plain": [ + "\n", + "Dimensions: (time: 183, dirIMU: 3, range: 28, dir: 4, beam: 4,\n", + " earth: 3, inst: 3, q: 4, time_b5: 183, range_b5: 28)\n", + "Coordinates:\n", + " * time (time) datetime64[ns] 2020-08-15T00:22:30.001030683 ... 2...\n", + " * dirIMU (dirIMU) " + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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V155xZJuGIZuu+029enTRykpKZoyZYo+/fTTI7J/R1uk+jQzDENTp06Vw+HQc889d8g8qc/I9bls2TKdfvrpSktLU2Zmpr7yla/o4MGDUfNcsmSJxo0bJ5/Pp8GDB+vRRx/t9HYTVbT9Kisr01VXXaX8/HylpaVp3Lhxevrppw+ZZzLW59KlSzVt2jQVFBS0ex539ZxMxrqUotdnc3OzbrrpJo0cOVJpaWkqKCjQ1Vdfrd27dx8yX+qz/ePT7Pvf/74cDofmzZt3yHyTtT6RZAwknAULFhher9eYP3++sX79euOaa64xsrOzjfLycmPdunXGRRddZLzwwgvG5s2bjUWLFhnHHXec8fWvfz1qnu+8847hcrmMX//618aGDRuMW265xfB4PMa6detCy9xzzz1GVlaW8dxzzxkffvihccEFFxgDBgwwDh48eKR3+YiKVp9m9913nzF16lRDkvHss89GzZP6jFyf7777rpGZmWnMnTvX+Oijj4xPPvnEeOKJJ4yGhoaIeW7dutVITU01Zs2aZWzYsMF44IEHDJfLZSxcuLDD201Uh9qvM8880zjppJOM999/39iyZYtx1113GU6n01i1alXEPJO1Pl955RXjf//3f41nnnmm3fO4K+dkstalYUSvz8rKSmPKlCnGE088YXzyySfGsmXLjAkTJhgnnnhi1Dypz8jH5xeeeeYZY/To0UZBQYHx+9//PmqeyVyfSC4ENAlowoQJxnXXXReaDgQCRkFBgTF37tx2l3/yyScNr9drNDc3R8zz4osvNs477zzLvIkTJxrf+973DMMwjGAwaOTn5xu/+c1vQumVlZWGz+czHn/88cPZnbjrSH2uXr3aKCwsNEpLSzsU0FCfketz4sSJxi233NKpPH/+858bI0aMsMy75JJLjLPPPrvD201Uh9qvtLQ04+9//7tlnZycHOORRx6JmGcy1+cX7OdxV89J6rJVR9rF5cuXG5KM7du3R1yG+mwVqT537txpFBYWGh999JHRr1+/QwY01CeSBZecJZimpiatXLlSU6ZMCc1zOp2aMmWKli1b1u46VVVVyszMlNsdfo5q//79dfvtt4emly1bZslTks4+++xQntu2bVNZWZllmaysLE2cODHidhNBR+qzvr5el19+uR588EHl5+e3mw/12epQ9VlRUaH3339fubm5Ovnkk5WXl6evfvWrevvtty35nHrqqfrWt74Vmj5UfXblvEgEHdmvk08+WU888YT279+vYDCoBQsWqKGhQaeeempoHerz0Dp6TlKXXVdVVSWHw6Hs7OzQPOqz44LBoK666ir97Gc/04gRI9pdhvpEsiKgSTB79+5VIBBQXl6eZX5eXp7KysraXf6uu+7Stddea5k/aNAg9erVKzRdVlYWNc8v/u/odhNFR+rzxhtv1Mknn6wLL7wwYj7UZ6tD1efWrVslSbfffruuueYaLVy4UOPGjdMZZ5xhuVehuLhYffr0CU1Hqs/q6modPHiw0+dFoujIfj355JNqbm5Wz5495fP59L3vfU/PPvusBg8eHFqe+jy0jp6T1GXXNDQ06KabbtJll12mzMzM0Hzqs+Puvfdeud1u/fjHP464DPWJZOU+9CJIVNXV1TrvvPM0fPhwS++BJC1atCg+hUowL7zwgt58802tXr066nLUZ8cEg0FJ0ve+9z3NnDlTkjR27FgtWrRI8+fP19y5cyVJf//73+NWxkRz6623qrKyUm+88YZ69eql5557ThdffLHeeustjRw5UhL1GUvUZec1Nzfr4osvlmEY+vOf/2xJoz47ZuXKlbr//vu1atUqORyOiMtRn0hW9NAkmF69esnlcqm8vNwyv7y83HI5VE1Njc455xxlZGTo2WeflcfjiZpvfn5+1Dy/+P9Q2000h6rPN998U1u2bFF2drbcbnfosr2vf/3rlkt67KjP9vfri78cDh8+3JI+bNgw7dixI2K+keozMzNTKSkpHT4vEs2h9mvLli364x//qPnz5+uMM87Q6NGjNWfOHI0fP14PPvhgxHyTtT6j6eo5SV1G90Uws337dr3++uuW3pn2UJ/te+utt1RRUaHi4uLQd9H27dv1P//zP+rfv3/E9ahPJAsCmgTj9Xp14oknWnoEgsGgFi1apEmTJklq7Zk566yz5PV69cILL8jv9x8y30mTJrXpZXj99ddDeQ4YMED5+fmWZaqrq/X++++HlklEh6rPm2++WWvXrtWaNWtCL0n6/e9/r7/97W8R86U+26/P/v37q6CgQBs3brSst2nTJvXr1y9ivoeqz46cF4noUPtVX18vqfWadzOXyxXqDWtPstZnNF09J6nLyL4IZj799FO98cYb6tmz5yHXoT7bd9VVV7X5LiooKNDPfvYzvfbaaxHXoz6RNOI9KgE6b8GCBYbP5zMeffRRY8OGDca1115rZGdnG2VlZUZVVZUxceJEY+TIkcbmzZuN0tLS0KulpSWUx+mnn2488MADoel33nnHcLvdxm9/+1vj448/NubMmdPuMMPZ2dnG888/b6xdu9a48MILj5lhhiPVZ3vUzugz1GfYoerz97//vZGZmWk89dRTxqeffmrccsstht/vNzZv3hzK46qrrjJuvvnm0PQXQ4/+7Gc/Mz7++GPjwQcfbHfo0c58joki2n41NTUZgwcPNk455RTj/fffNzZv3mz89re/NRwOh/Hyyy+H8qA+W9XU1BirV682Vq9ebUgy7rvvPmP16tWhUbc6ck5Sl2HR6rOpqcm44IILjL59+xpr1qyxfBc1NjaG8qA+ww51fNq1N8oZ9YlkRUCToB544AGjuLjY8Hq9xoQJE4z33nvPMAzDWLx4sSGp3de2bdtC6/fr18+YM2eOJc8nn3zSOP744w2v12uMGDHC8oPIMFqHNb311luNvLw8w+fzGWeccYaxcePGI72rR0Wk+mxPewEN9Wl1qPqcO3eu0bdvXyM1NdWYNGmS8dZbb1nSv/rVrxozZsywzFu8eLExZswYw+v1GgMHDjT+9re/dXq7iSrafm3atMm46KKLjNzcXCM1NdUYNWpUm2Gcqc9WkdrHL+qmI+ckdRkWrT63bdsW8bto8eLFoTyoz7BDHZ927QU01CeSlcMwDOPI9wMBAAAAQOxxDw0AAACAhEVAAwAAACBhEdAAAAAASFgENAAAAAASFgENAAAAgIRFQAMAAAAgYRHQAAAAAEhYBDQAAAAAEhYBDQAksG9961uaPn16vIsBAEDcuONdAABA+xwOR9T0OXPm6P7775dhGEepRAAAdD8ENADQTZWWlobeP/HEE7rtttu0cePG0Lz09HSlp6fHo2gAAHQbXHIGAN1Ufn5+6JWVlSWHw2GZl56e3uaSs1NPPVU/+tGPdMMNN6hHjx7Ky8vTI488orq6Os2cOVMZGRkaPHiwXn31Vcu2PvroI02dOlXp6enKy8vTVVddpb179x7lPQYAoPMIaADgGPPYY4+pV69eWr58uX70ox/pBz/4gb75zW/q5JNP1qpVq3TWWWfpqquuUn19vSSpsrJSp59+usaOHasPPvhACxcuVHl5uS6++OI47wkAAIdGQAMAx5jRo0frlltu0XHHHafZs2fL7/erV69euuaaa3Tcccfptttu0759+7R27VpJ0h//+EeNHTtWd999t4YOHaqxY8dq/vz5Wrx4sTZt2hTnvQEAIDruoQGAY8yoUaNC710ul3r27KmRI0eG5uXl5UmSKioqJEkffvihFi9e3O79OFu2bNHxxx9/hEsMAEDXEdAAwDHG4/FYph0Oh2XeF6OnBYNBSVJtba2mTZume++9t01effr0OYIlBQDg8BHQAECSGzdunJ5++mn1799fbjdfCwCAxMI9NACQ5K677jrt379fl112mVasWKEtW7botdde08yZMxUIBOJdPAAAoiKgAYAkV1BQoHfeeUeBQEBnnXWWRo4cqRtuuEHZ2dlyOvmaAAB0bw6DR0wDAAAASFD86Q0AAABAwiKgAQAAAJCwCGgAAAAAJCwCGgAAAAAJi4AGAAAAQMIioAEAAACQsAhoAAAAACQsAhoAAAAACYuABgAAAEDCIqABAAAAkLAIaAAAAAAkrP8Pf05JNbw8jNcAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "from matplotlib import pyplot as plt\n", + "import matplotlib.dates as dt\n", + "\n", + "ax = plt.figure(figsize=(10, 6)).add_axes([0.14, 0.14, 0.8, 0.74])\n", + "# Plot flow speed\n", + "t = dolfyn.time.dt642date(ds_avg[\"time\"])\n", + "plt.pcolormesh(t, ds_avg[\"range\"], ds_avg[\"U_mag\"], cmap=\"Blues\", shading=\"nearest\")\n", + "# Plot the water surface\n", + "ax.plot(t, ds_avg[\"depth\"])\n", + "\n", + "# Set up time on x-axis\n", + "ax.set_xlabel(\"Time\")\n", + "ax.xaxis.set_major_formatter(dt.DateFormatter(\"%H:%M\"))\n", + "\n", + "ax.set_ylabel(\"Altitude [m]\")\n", + "ax.set_ylim([0, 12])\n", + "plt.colorbar(label=\"Speed [m/s]\")" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzgAAAIACAYAAABO0sn2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAACO9UlEQVR4nOzdeXwT1d4/8M8kbbonpYWutGUpOwUKChQU2S47iOCjogKiDy4X5aeoF7kPCK549V7FhatXr4ob4gaoqCAgi+xLC2VfSqGlK1C60y2Z3x+FMDNtQhImTNN+3r5Gkjkz3zlzkkzy7Zk5I4iiKIKIiIiIiKgR0GldASIiIiIiIrUwwSEiIiIiokaDCQ4RERERETUaTHCIiIiIiKjRYIJDRERERESNBhMcIiIiIiJqNJjgEBERERFRo8EEh4iIiIiIGg0mOERERERE1GgwwSEiIiIiokZD0wRn8+bNGDt2LKKioiAIAlauXGktq66uxuzZs5GQkICAgABERUVhypQpyM7O1q7CRERERETUoGma4JSVlaF79+5YvHhxnbLy8nIkJydj3rx5SE5OxvLly3Hs2DGMGzdOg5oSEREREZEnEERRFLWuBAAIgoAVK1Zg/PjxNpfZvXs3evfujTNnziA2NvbGVY6IiIiIiDyCl9YVcEZRUREEQUBwcLDNZSorK1FZWWl9brFYUFBQgNDQUAiCcANqSURERERaEkURJSUliIqKgk7XMC85r6ioQFVVlepxDQYDfH19VY/rSTwmwamoqMDs2bMxadIkGI1Gm8stXLgQL7zwwg2sGRERERE1RJmZmWjZsqXW1aijoqICsbGxOHfunOqxIyIikJ6e3qSTHI84Ra26uhoTJ07E2bNnsXHjRrsJjrIHp6ioCLGxscjMzLS7HhERERE1DsXFxYiJiUFhYSFMJpPW1amjuLgYJpMJOzftQGBgoGpxS0tL0ee2vigqKmrSv3sbfA9OdXU17rrrLpw5cwZ//PHHNV8sHx8f+Pj41JlvNBqb9AtNRERE1NQ09MsTAgMDEKRiggM0iH4LzTXoBOdKcnPixAls2LABoaGhWleJiIiIiEgdolg7qRmPtE1wSktLcfLkSevz9PR07Nu3DyEhIYiMjMSdd96J5ORkrFq1CmazGbm5uQCAkJAQGAwGrapNRERERHTdRKjb58L0ppamCc6ePXswaNAg6/NZs2YBAKZOnYoFCxbgp59+AgD06NFDtt6GDRswcODAG1VNIiIiIiI3YIrjDpomOAMHDoS9MQ4ayPgHRERERERuwATHHRr0NThERERERI0Wr8Fxi4Z55yMiIiIiokZOhAgRFhUn5xKc999/H926dbOONpyUlITffvvNWj5w4EAIgiCbHn30UVmMjIwMjB49Gv7+/ggLC8Ozzz6LmpoaVdrHVezBISIiIiLSgsZnqLVs2RKvvfYa2rVrB1EU8dlnn+H2229HSkoKunTpAgCYPn06XnzxRes6/v7+1sdmsxmjR49GREQEtm3bhpycHEyZMgXe3t549dVXVdklVzDBISIiIiLShLYZztixY2XPX3nlFbz//vvYsWOHNcHx9/dHREREvev//vvvOHz4MNatW4fw8HD06NEDL730EmbPno0FCxZoNuoxT1EjIiIiItKAKIqqTwBQXFwsmyorK69ZF7PZjGXLlqGsrAxJSUnW+V999RWaN2+Orl27Ys6cOSgvL7eWbd++HQkJCQgPD7fOGz58OIqLi3Ho0CEVW8o57MEhIiIiItKCmwYZiImJkc2eP38+FixYUO8qBw4cQFJSEioqKhAYGIgVK1agc+fOAIB7770XcXFxiIqKQmpqKmbPno1jx45h+fLlAIDc3FxZcgPA+vzK/Su1wASHiIiIiEgT7jlFLTMzE0aj0TrXx8fH5hodOnTAvn37UFRUhO+//x5Tp07Fpk2b0LlzZzz88MPW5RISEhAZGYkhQ4YgLS0Nbdu2VbHe6mKCQ0RERESkAVG0QBQtqsYDYB0VzREGgwHx8fEAgF69emH37t14++238Z///KfOsn369AEAnDx5Em3btkVERAR27dolWyYvLw8AbF63cyPwGhwiIiIiIi2IFvWn62SxWGxes7Nv3z4AQGRkJAAgKSkJBw4cQH5+vnWZtWvXwmg0Wk9z0wJ7cIiIiIiINCAdGECteM6YM2cORo4cidjYWJSUlGDp0qXYuHEj1qxZg7S0NCxduhSjRo1CaGgoUlNT8dRTT2HAgAHo1q0bAGDYsGHo3LkzJk+ejNdffx25ubmYO3cuZsyYYfe0OHdjgkNEREREpAWVel1k8ZyQn5+PKVOmICcnByaTCd26dcOaNWvwl7/8BZmZmVi3bh0WLVqEsrIyxMTEYOLEiZg7d651fb1ej1WrVuGxxx5DUlISAgICMHXqVNl9c7TABIeIiIiISBPa3gfn448/tlkWExODTZs2XTNGXFwcfv31V6e2625McIiIiIiINKD1KWqNFRMcIiIiIiItaHyKWmPFBIeIiIiISAOixQLRYlY1HjHBISIiIiLSBntw3IIJDhERERGRJkSIGg4y0FgxwSEiIiIi0gJ7cNyCCQ4RERERkQY4ipp7MMEhIiIiItKEyj04YA8OwASHiIiIiEgTomiBqGKCo2YsT8YEh4iIiIhICxZz7aRmPGKCQ0RERESkBfbguAcTHCIiIiIiLYhi7aRmPGKCQ0RERESkhdpR1NTswWGCAzDBISIiIiLSBu+D4xZMcIiIiIiINMD74LgHExwiIiIiIi2wB8ctmOAQEREREWlAtNRAtNSoGo+Y4BARERERaYOjqLkFExwiIiIiIg2IFgtEi4qjqKkYy5MxwSEiIiIi0gKvwXELJjhERERERBrgKGruwQSHiIiIiEgL7MFxCyY4REREREQaECFCVDEpEcEeHIAJDhERERGRNizm2knNeMQEh4iIiIhIC6JoUbcHh6eoAWCCQ0RERESkDV6D4xZMcIiIiIiItGARayc14xETHCIiIiIiLfAUNfdggkNEREREpAWeouYWTHCIiIiIiDQgWswQVRz5TM1YnowJDhERERGRFtiD4xZMcIiIiIiItGCByoMMqBfKkzHBISIiIiLSAAcZcA8mOEREREREWhDF2knNeMQEh4iIiIhIE7wGxy2Y4BARERERaUAURYgq9rqoGcuTMcEhIiIiItKCpQYw16gbj5jgEBERERFpgtfguAUTHCIiIiIiDfAUNfdggkNEREREpAUOMuAWTHCIiIiIiLRgEVW+0Sd7cAAmOEREREREmuCNPt2DCQ4RERERkRZEqDzIgHqhPFmTSXD+tfYYOsaEIy7UH61CAxBh9IVOJ2hdLSIiIiJqqizm2knNeNR0EpxPt5yGziff+tzgpUNciD/iQgPQKtQfbcMC0S4sEPFhgQj2N2hYUyIiIiJqCkSLCFHF62bUjOXJmkyCc1+fWORcEnDmQjkyC8pRVWPBifxSnMgvrbNsiyAftLuS8IQHWR+HBvpoUHMiIiIiapQ4ippbNJkEZ86oTjAajQCAGrMF2YUVOFNQhtMXynH6fBlO5pfiZH4psgov4VxJJc6VVGJb2gVZjGb+3mgXFoT48MDLSU8Q2oUHIizIB4LA092IiIiIyAm80adbNJkER8pLr0NsqD9iQ/1xazt5WWllDdIu9+ycyC/Bybzax5kXy3GxvBq7Thdg1+kC2TpBvl6yhCc+LBDtwoMQZfJl4kNERER0A1VUm2H2lFO1VL7RJxOcWk0ywbEn0McL3WOC0T0mWDb/UpUZaedqe3lO5JfgRF7t4zMF5SipqEFyRiGSMwpl6wQY9IgPC0T85cTnShLUspkfBzggIiIiuoaKajPOlVQir7gC+ZJ/C8urcKnKjEvVZpRXmVFYXo2CsioUlFXhUrUZKx9O1LrqjrFYaic14xETHEf5GfToGm1C12iTbH5ljRmnz5fLkp4T+SVIP1+Gsioz9p8twv6zRbJ1fL116BBhRNcoI7pEmdA12oj24UHw9dbfyF0iIiIiuqEqa8y4UFqF86WVtVNJFc5dfnyhtAqFl6pRdKkaxZeqcaG0EsUVNS5t52JZlco1dxNR5QSH1+AAYIJz3Xy89OgQEYQOEUGy+dVmC85cKMfJy4nPlQEN0s6VoqLagv2ZhdifWWhd3ksnoF14ELpE1SY+XaNN6BRpRIAPXyIiIiJquERRRNGlaus1zPnWfytkz8+VVqKwvNrp+D5eOoQbfREW5IMwow/CgnwREmCAv0EPP4Meft56BPt7IyTAByH+BoQEGmCuKHPDnqpPVPkUNVVPd/Ngmv563rx5M9544w3s3bsXOTk5WLFiBcaPH28tF0UR8+fPx0cffYTCwkL0798f77//Ptq1a2c7aAPhrdddPj0tECO6Xp1vtog4c6EMh3OKcTCrGIeyi3AwqwgXy6txJKcYR3KK8f3e2mUFAWjTPAA9YpqhR2wwEmOC0SEiCN56nTY7RURERE1OVY0FGQVlyC6sqO1hKa/ChbIqnLlQjlPnSnHqXBlKKh3vafHWCwgN8EHzIAOaB/pIJgOa+Rtg8vOG0c8bIQHeaBHkC6Ovl9PXNBdXesilABoPMvD+++/j/fffx+nTpwEAXbp0wfPPP4+RI0cCACoqKvD0009j2bJlqKysxPDhw/Hvf/8b4eHh1hgZGRl47LHHsGHDBgQGBmLq1KlYuHAhvLy0SzM0TXDKysrQvXt3PPjgg5gwYUKd8tdffx3vvPMOPvvsM7Ru3Rrz5s3D8OHDcfjwYfj6+mpQ4+un1wlo0yIQbVoEYky3KAC1iVx2UQUOZRXhYHbx5X+LkFdcibRzZUg7V4Yfks8CqD29LSHahB4xwUiMbYab4pohzOiZbUFEREQNR1F5NY7lldQmLefLkJZf+29GQblDF+2b/LwRFuSDFkE+1n9rH/taH7cI9EGwvzcHYbpC42twWrZsiddeew3t2rWDKIr47LPPcPvttyMlJQVdunTBU089hV9++QXfffcdTCYTHn/8cUyYMAFbt24FAJjNZowePRoRERHYtm0bcnJyMGXKFHh7e+PVV19Vb7+cJIgNpC9LEARZD44oioiKisLTTz+NZ555BgBQVFSE8PBwLFmyBPfcc49DcYuLi2EymVBUVGQdJtpTnCupROrZQuzLvDqV1HMualyoP26KC0G/tqG4tV1zJjxERERUL1EUUVBWhTMFtfcFPH2+HIdzinAouxhnL16yuV6AQY+YEH808zcg2N8bwf7eaNnMH21bBKBNi0DEhvg3qGuJG/rvvyv1W/vSIwjwVe8+i2UVlfjLvP9c136HhITgjTfewJ133okWLVpg6dKluPPOOwEAR48eRadOnbB9+3b07dsXv/32G8aMGYPs7Gxrr84HH3yA2bNn49y5czAYDKrtmzMa7AUe6enpyM3NxdChQ63zTCYT+vTpg+3bt9tMcCorK1FZWWl9Xlxc7Pa6ukuLIB8M6RSOIZ1q3zAWi4hT58uQknER+zILsffMRRzLK8GZC+U4c6Hc2svTITwIt7RrjlvbNUef1qHwMzScAw4RERHdOPklFUjNLEJqVhEOnC3EgawinC+1fQF+dLAf2oYFWhOXts1r/w038p5/biFC5VPUav9R/v718fGBj4/9RMpsNuO7775DWVkZkpKSsHfvXlRXV8t+i3fs2BGxsbHWBGf79u1ISEiQnbI2fPhwPPbYYzh06BASE7UZza7BJji5ubkAIGuwK8+vlNVn4cKFeOGFF9xaN63odIL1up7/uSkGAFBcUY3kMxexK70AW06ex4GsIhzLK8GxvBJ8vCUdBr0ON7VqhlvbtcCt7Zqjc6SRQ1QTERE1QkWXqnHgbBH2ny1E6tlCpJ4tQk5RRZ3lBAGIMPoiNsQfsSH+6BARhC5RJnSOMsLk561BzZswN12DExMTI5s9f/58LFiwoN5VDhw4gKSkJFRUVCAwMBArVqxA586dsW/fPhgMBgQHB8uWl/4Wz83Nrfe3+pUyrTTYBMdVc+bMwaxZs6zPi4uL67zIjYnR1xsDO4RhYIcw/A21wyJuTTuPLSfO488T55FVeAnb0i5gW9oF/GM1EBJgQP/42t6dW9s1R6TJT+tdICIiIidV1pgvJzNF1mQm/XzdkcMEAYhvEYhuLYPRraUJ3VrWjtLakE4na8pEswWiWb1rcK7EyszMlJ2iZq/3pkOHDti3bx+Kiorw/fffY+rUqdi0aZNqddJCg01wIiIiAAB5eXmIjIy0zs/Ly0OPHj1srudIF1xj1izAgDHdojCmWxREsfaUttpk5xy2p11AQVkVft6fjZ/3ZwNA7ShvXSIwPjEK8WFB14hOREREWrlQWokNx85h3eE8/HniHMqqzHWWiQnxQ7eWweje0oRuLYPRNdqEQN5youFyUw+O0Wh0+Bocg8GA+Ph4AECvXr2we/duvP3227j77rtRVVWFwsJCWS9OXl6e9Xd6REQEdu3aJYuXl5dnLdNKg33Ht27dGhEREVi/fr01oSkuLsbOnTvx2GOPaVs5DyEIAtq2CETbFoGY2q8Vqs0WpGQUYsuJc9h84jxSzxbiZH4p3ss/ifc2nESXKCPGdo/CkI5hiA8L5Lm2REREGjpzoQw7Tl3A3jMXsffMRaSdk/fQNA80oEdMsKR3JhghAdpc1E0u0niY6PpYLBZUVlaiV69e8Pb2xvr16zFx4kQAwLFjx5CRkYGkpCQAQFJSEl555RXk5+cjLCwMALB27VoYjUZ07tz5uuviKk0TnNLSUpw8edL6PD09Hfv27UNISAhiY2Px5JNP4uWXX0a7du2sw0RHRUXJ7pVDjvPW69C7dQh6tw7BrGEdUFRejY3H8/HTvmxsOn4Oh7KLcSi7GK/9dhTRwX4Y1LEFRnaNRN82odDzuh0iIiK3Kq+qwZ8nzmPz8XP488R5ZBSU11mmS5QRQzqF4y+dwtE12sg/Rno40SJCdGAIbmfiOWPOnDkYOXIkYmNjUVJSgqVLl2Ljxo1Ys2YNTCYTHnroIcyaNQshISEwGo144oknkJSUhL59+wIAhg0bhs6dO2Py5Ml4/fXXkZubi7lz52LGjBmanlGlaYKzZ88eDBo0yPr8yrUzU6dOxZIlS/C3v/0NZWVlePjhh1FYWIhbbrkFq1ev9th74DQ0Jn9v3N4jGrf3iEZBWRV+OZCDtYfzsOPUBWQVXsKXOzLw5Y4MhAX51J721j0S3VsGM9khIiJSycWyKqw/mo81h3Kx+fg5VNZcvR7DWy8gMaYZbmrVDL3imiExthl7aBobjXtw8vPzMWXKFOTk5MBkMqFbt25Ys2YN/vKXvwAA3nrrLeh0OkycOFF2o88r9Ho9Vq1ahcceewxJSUkICAjA1KlT8eKLL6q3Ty5oMPfBcZeGPg56Q1ReVYPtaRew9nAefjuYi6JL1daykAADbmvfAgM7tMCgjmEw+nK0FSIiImekny/DusN5WHskD3tOF0D6R/eYED8M7hCGAe1boE+bUF4/46KG/vvvSv3WPDcVAb7qJa1lFVUY/tpnDXa/bxR+aqgOf4OX9f47L97eFZuPn8OP+7Ox8Wg+CsqqsCIlCytSsmDQ6zCgfQuM6RaJoZ3DeRAmIiKqh9kiIjnjItYdycO6w3l1rqXpGBGEYV0iMKJLBDpFBvG0syZEhAg1+xpENOp+C4fxFynZZfDSYWjncAztHI5qswV7z1zEhmP51gP0uiN5WHckDwYvHQZ1aIHR3WoHKQhgskNERE1YWWUN/jxxDmsP52PDsdo/EF7hpRPQt00ohnYKw5BO4YgJ8dewpqQl0SxCNKuY4KgYy5PxVyg5zFuvQ982oejbJhTPjeiI43ml+CU1G6tSc3DqfBnWHMrDmkN58PXWYXDHMIzpFoVBHcLgZ+BY+0RE1PjlFF3C+iP5WHckD9tOXkCV5P4mRl8vDO5Ym9Dc1qEFT/GmWg1wFLXGgAkOuUQQBHSICEKHiA546i/tcSSnBL8cqE12zlwox68HcvHrgVz4G/QY0ikcoxMiMbBDC95YjIiIGpWswkv4NTUHqw7kYH9moawsLtQfQzuFY2incNzUqhm89TptKkkNFxMct2CCQ9dNEAR0jjKic5QRzwzrgEPZxfg5NRu/pObg7MVL1huLBhj0+EvncIzuFoUB7ZvDx4vJDhEReZ6cokv49UAufknNRnJGoXW+IAA9Y5tdTmp4Tzm6NlFU+RocJjgAmOCQygRBQNdoE7pGm/DciI7Yf7YIv1xOdrKLKrByXzZW7stGkI8X/tIlHGO7RaF/fHMYvPhXLSIiarjyiivw24Ec/HIgB7tPX7TOFwSgd6sQjOkWieFdIxAWxFtZkBMsIqDifXBUjeXBmOCQ2wiCgB4xwegRE4w5IzshJbMQv6Tm4NcDOcgtrsDy5CwsT86C0dcLw7tEYEz3KPRrG8oufCIiahDOlVRi9cEc/Jyag92nC2Rn/9zcqhlGJ0RiVEIkwoxMasg1TfUMtZ49ezq1vCAI+OmnnxAdHe3Q8kxw6IbQ6QT0iqu9Udnc0Z2wN+Mifkmt/UvYuZJKfLf3LL7bexbN/L0xomsERidEoW+bEHgx2SEiohvoQmklVh/Kxar9OdiZfkH2B/GescEY0y0KIxMiEGny066S1Hg00Qxn3759ePrppxEYGHjNZUVRxGuvvYbKykqH4/NGn6Qps0XE7tMFWJWajd8O5OKCZBjNFkE+uPumGEzqE4voYH6REBGRe1wsq8LqQ7n4JTUH209dgFmS1XSPCcbYbpEYmRDJ7yIP0tB//12p36oZdyPAR8UbfVZWYczibxrsfl+h0+mQm5uLsLAwh5YPCgrC/v370aZNG4eWZw8OaUp/+V4AfduEYsHYLtiVXoCfU3Ow+mBtz857G07i3xtPYnDHMNzZKwaDOrbg4ARERHTdisqrseZQLlYdyMHWk+dlSU23libr6We8Rw25VRPtwUlPT0eLFi0cXv7w4cOIiopyeHkmONRgeOl16BffHP3im+PF27tg7eE8fLnjDLalXcC6I/lYdyQfJj9vjO4WiTsSo9Erthl0Oo5OQ0REjjFbRGw+fg5f78rAhmP5qJbcFLFLlBGju0VidEIk4kIDNKwlNSW1+Y2ao6ipFsqt4uLinFo+JibGqeWZ4FCD5K3XYdTlv56lnSvFN7sz8eO+LOQVV2Lpzgws3ZmBls38ML5HNMYnRiM+7NrncBIRUdMjiiIO5xRjzaE8fL8nE9lFFdayjhFBGNOt9rumTQt+j5AGxMuTmvE8REZGhkPLxcbGOh2bCQ41eG1bBOLvozph9oiO2HHqAlakZGH1wVycvXgJ7204ifc2nERCtAl3JEZjbPcotAjy0brKRESkIVEUsSu9AKtSc7D+SJ4sqQn298aExJa4p3cM2ocHaVhLoqZ9H5xWrVrVe58oURSt8wVBQE1NjdOxmeCQx9DrBPSPb47+8c3x0u1dse5IHlamZGHT8XM4kFWEA1lFeOXXIxjQrjkmJ8XhtvZh0PMUNiKiJuNcSSV+SD6Lb3ZnIv18mXW+r7cOt8S3wNjukRjeJQK+3ryWkxoIEYBF5XgeIiUlpd75oihi2bJleOeddxwaZa0+THDII/kZ9BjbPQpju0fhQmklfjmQgxUpWUjJKMSGY+ew4dg5xIT44f4+cbgjMZr3KCAiaqTMFhGbT5zDN7syse5IHmouDxYQYNBjdLdIjOgagX5tmzOpoQZJtFggWtTLcNSM5W7du3evM2/dunV47rnncPz4cfztb3/D008/7VJsJjjk8UIDfTAlqRWmJLXCqXOl+HpXBr7ZnYnMgktY+NtRvLb6KG6OC8GohAiMTIhEOJMdIiKPl1V4Cd/uzsR3iutqesQEY1LvGIzpFoUAH/7MoYatiQ6iVkdycjJmz56NP//8E//7v/+LX3/91eEhpOvDTz41Km1aBOL/RnfGrL90wE/7s/D1rkzsyyzErtMF2HW6AC+uOoyBHcJw100xGNwxDAYv3kiUiMhTVFSb8cfRfHyzOxObT5yz/pgz+XnjjsRo3NM7Bh0jGu69P4jqaOIZTlpaGv7+97/jhx9+wF133YXDhw87fK8be5jgUKPkZ9Dj7ptjcffNscgqvITfDuTglwM5SMkoxB9H8/HH0XyEBhgwoWc07r45BvFhvNCUiKghqqwxY/Px8/glNRtrD+ehrMpsLUtqE4p7esfwuhryWKKldlIznqf461//io8//hiDBg3Cnj170KNHD9ViC6InDbfggoZ+J1u6sdLOleLbPZn4YW8WzpdWWuf3jA3G/9wUg1EJkTD5eWtYQyIiAoAjOcX4dk8mVqZk4WJ5tXV+lMkX43rU/nGqdXPer4bq19B//12p34qpExBgUO93R1lVNe74bHmD3W8pnU4HX19fdOzY0e5yycnJTsdmDw41KW1bBGLOyE54ZlgHbDx2Dt/uycQfR/ORnFGI5IxCzP/xEAZ3DMP4xGiewkZEdIOVVtbgp33ZWLY7A6lni6zzw40+GJ0QhTHdI9GjZTBv8kyNRlMeJnr+/Plui80Eh5okb70Of+kcjr90Dkd+SQWWJ2dhRXIWjuWVYPWhXKw+lIvQAAMm9mqJe26O4Q3giIjcRBRFpJ4twte7MvDT/myUXz4FzVsvYGincNx1cwwGtGvBYf+pcWrCN/pkgkPkRmFBvnj0trZ49La2OJJTjJUpWViRkoX8kkp8uPkUPtx8Cn1ah2BS71iM6MrzvImI1FBcUY0fU2oHgzmcU2yd36Z5ACb1jsWEntEIDeSNm6lxEy0iRIuKPTgqxvJkTHCIJDpFGtEp0ohnh3fAhmPnsGxXBjYcy8fO9ALsTC9A8M+1I/VM6h3LO2ATETlJFEUkZxTi610ZWJWajYrq2iuiDV46jOoagUm9Y9G7dUi9dzcnaoya8iAD7sQEh6geXpJT2HKKLuHb3Wfx7Z5MZBVewqdbT+PTrafRMzYYk3rHYky3KPgZ2KtDRGRLUXk1lqecxbJdmTiWV2Kd3y4s0NpbE+xv0LCGRBpR+RocTxsm2l2Y4BBdQ6TJD/9vaDs8Pjgem0/U9uqsO3J1YIIXfz6M2xOjMKl3LLpEmbSuLhFRgyCKInafvohluzLwy4EcVNbU/mnZ11uH0QlRuLdPDHrGNmNvDTVtTfgaHHdigkPkIL1OwKAOYRjUIQz5xRX4bu9ZfLM7ExkF5fhyRwa+3JGBbi1NmJrUCmO7R3EENiJqki6WVeGH5LP4elcG0s6VWed3jAjCvX1icXuPaA7HT3RZE7/PZx0VFRXw9fW97jhMcIhcEGb0xYxB8XjstrbYfuoCvt6VgTWHcpF6tghPf7cfr685igf6tca9vWNh8ucXORE1bqIoYvupC1i2KxOrD+aiylzbW+Nv0GNstyhM6hOL7i1N7K0hqkPlDMcDu3AsFgteeeUVfPDBB8jLy8Px48fRpk0bzJs3D61atcJDDz3kdEwmOETXQacT0D++OfrHN8eF0kos252Jz7adRl5xJf6x+ijeXn8coxIicfdNMbxwloganfOllfhh71ks252J9PNXe2sSok24p3cMxnWPQpAv/8hDZAt7cICXX34Zn332GV5//XVMnz7dOr9r165YtGgRExwiLYUG+mDGoHj8762t8fP+HPz3z1M4mluC5clZWJ6chdbNA/BAv1a466YYDkpARB7LYhGxNe08lu3KxO+Hc1Ftrv1FFejjhXE9ojDp5lgktOT1iESOEM0iRJ2Kw0SbPS/D+fzzz/Hhhx9iyJAhePTRR63zu3fvjqNHj7oUkwkOkcp8vPS4s1dLTOwZjZTMQny7OxM/789G+vkyzP/pEN5efwJTk1phSlIcmgVw1CAi8gxXrj1ctjsDmQWXrPO7xwTj3t4xGNMtCgE+/FlB5Az24ABZWVmIj4+vM99isaC6utqlmDwSEbmJIAjoGdsMPWObYd6YzliefBYf/nkKmQWX8Na641i88ST+0jkcd/ZqiVvjm8NLz0EJiKhhqaqxYMOxfPyw9yzWH82H+fJNBIN8vXBHYjTuuTkWnaOMGteSyHMxwQE6d+6MP//8E3FxcbL533//PRITE12KyQSH6AYI8PHC5KRWmNQ7Fr8ezMV/NqXhUHYxfknNwS+pOQgL8sG9fWIxuW8c79xNRJo7cLYI3+2t7X2+WH71L6i94pphUu9YjE6I5Km2RGrgMNF4/vnnMXXqVGRlZcFisWD58uU4duwYPv/8c6xatcqlmIKo6t2FGp7i4mKYTCYc2HsIQYFBEO288vYaQnlpuHRZC+S3jRUkSwuKNQUbyynFtY+xUxvydKIo4lB2Mb7fexY/7suy/oDw8dJhYq+WeLB/K8SHBWlcSyJqSoorqvHjvmws25WBQ9nF1vlhQT4YnxiNO3u1RPtwHpfIvgcjx1gf14jy30eVFvPVMsWvLmmZWVEmjaNXDNZTJV5drwRXk3GzWIOUi3tQVFQEo7Hh9TJe+X26dNwY+HurNxBHeXU17v1pVYPdb1v+/PNPvPjii9i/fz9KS0vRs2dPPP/88xg2bJhL8diDQ6QBQRDQNdqErtEm/H1UJ6w+lIv//nkKqWeLsHRnBpbuzEBibDDu7NUSY7pF8Z4RROQWoigiOaMQX+/KwC+pObhUXftj0eClw4guEbizV0v0j28OvY4jQBK5A09Rq3Xrrbdi7dq1qsVjgkOkMYOXDuO6R2Fst0jsSi/Af7ek44+j+UjJKERKRiFe+PkwxiRE4v6kOCTGBHOoaSK6boXlVVienIVluzNwPK/UOr9dWCAm9Y7FHYnRHASF6EbgKWpuwQSHqIEQBAF92oSiT5tQ5JdU4MeUbHy3NxPH80qxPCULy1Oy0DnSiPv6xmJMQhRvIEpETrFYROxML8A3uzPw68FcVNXUnvbj663DmG5RmNQ7Bj1jm/GPKEQ3kMUMWFQcY0hypp/H0Ol0do87ZrPzO8UEh6gBCgvyxfQBbfC/t7bGvsxCfLkjAz+nZuNwTjH+b8VBvPDzYQztFIYJiS1xW4cW8OYIbERkw/G8EqxMycKP+7KRVXh1eOdOkUbc2zsG43pE8zRYIo3wFDVgxYoVsufV1dVISUnBZ599hhdeeMGlmExwiBowQRCQGNsMibHNMHd0J3y/9yy+33sWx/JK8OuBXPx6IBehAQaM7R6FCT2jkRBt4l9fiQh5xRX4aV82VqRk4XDO1QEDgny8MKZ7JO65ORbdWvJ4QaQ5Zji4/fbb68y788470aVLF3zzzTd46KGHnI7JBIfIQzQLMFh7dQ7nFGN5cu1fZM+XVmLJttNYsu004sMCMaFnNMb3iEZUsJ/WVSaiG6ikohprDuVhZUoWtqadt/7O8dYLGNghDON7RGNIpzD4enN4Z6KGgvmNbX379sXDDz/s0rpMcIg8jCAI6BJlQpcoE+aM7Ig/T57H8uQs/H4oFyfzS/H66mN4Y80xJLUJxYSeLTGiawQCeXdxokap2mzB5uPnsHJfNtYezkVF9dXhdG+Ka4bxidEYnRDJAQOIGigmOPW7dOkS3nnnHURHR7u0Pn/1EHkwL70OgzqEYVCHMBRXVGP1gVz8kHwWO9MLsC3tAralXcC8lQcxvEs4JvTkcK9EjYHFIiIlsxA/7svCqtQcFJRVWcvatAjAHT2icXuPaMSG+mtYSyJyBBMcoFkz+eAmoiiipKQE/v7++PLLL12KyQSHqJEw+nrjrptjcNfNMcgsKMeP+7KwPDkLp86XYeW+bKzcl41wow/G94jGHT2j0THCc24ARtTU1Zgt2JVegNWHcrHmUC7yiiutZc0DfTCuexTuSIxG12gjr6sh8iCiCCjuh3rd8TzNokWLZM91Oh1atGiBPn36oFmzZi7FZIJD1AjFhPjj8cHtMGNQPPZlFmJ5chZ+Ts1GXnEl/rP5FP6z+RQ6RxoxoWc0xvWIQliQr9ZVJqJ6HMkpxvLks1i5LxvnSq4mNYE+XhjaKQx39GyJ/m1D4cWRFIk8UlPvwampqcGZM2fw4IMPomXLlqrFZYJD1IhJR2GbN6YzNhzLx/Lks/jjaD4O5xTj8C/FWPjbUQzq0ALT+rdGv7ah/OsvkcbyS2pHQPshOQtHJCOgBft7Y1jncIzoGoF+bZtzsACiRqCpJzheXl544403MGXKFHXjqhqNiBosg5cOw7tEYHiXCFwsq8KqAzlYnnwWKRmFWHckH+uO5KNDeBCm9W+FcT2i4G/g4YHoRimpqMb6I/n4cV8WNp84D7Ol9leKt17AkI7hmNAzGgM7hMHgxZ4aosakqSc4ADB48GBs2rQJrVq1Ui0mf8EQNUHNAgyY3DcOk/vG4WR+Kb7YfhrfXb6/znPLD+ClVYcxKiESE3u1RO9WIdBxYAIi1V1Jalal5mDziXOoqrl6In5ibDAm9GyJsd0iEezPEdCIGi3x8qRmPA8zcuRIPPfcczhw4AB69eqFgIAAWfm4ceOcjskEh6iJiw8LxAu3d8WsYR3w7e5MfLHjDDIKyvHd3rP4bu9ZxIT4YUJiS0zs2ZKjMhFdJ3tJTdsWARidEInxidFo0yJQw1oS0Y3CHhzgr3/9KwDgzTffrFMmCALMZrPTMZngEBEAwOTnbb2R6O7TF/HD3rP45UAOMgsu4e31J/D2+hPo3ToEd/ZqiVEJkby3DpGDLpZVYe3hPPx2MAdbT15AlVmR1HSLwuiESLQPD+Q1cERNjcoJjif24FgsKg4jdxl/oRCRjCAI6N06BL1bh2DBuC5Yc6j23jpbTp7HrvQC7EovwPwfD2Fk1wjceVNLJLXhwARESvklFfj9UG1Ss+NUgfWaGqC213RUQiSTGiKCxVI7qRnP03z++ee4++674ePjI5tfVVWFZcuWuTQAARMcIrLJz6DH+MRojE+MRnbhJaxIycIPe8/i1PkyLE/JwvKULLRpEYD7+sRhYs9oXitATVp24SWsPpiL1QdzsftMgeyvsp0jjRjZNQIjEyIQHxakXSWJqEHhKWrAtGnTMGLECISFhcnml5SUYNq0aUxw7BEuT1f+L51/hfI9IUrm6BTryZfVKZ459tc4e0tlHM+0uT2di/2PyjMYayR3lrLU2SPbtdMLtkfxsbeefC35nxgslqt34rbUVMGW1l272Cwj94oK9sOMQfH468C2SMksxHd7zuKnfVk4da4ML606jNdXH8Wt7ZpjSKdwDOkYhjAj761Djd+ZC2X47WAufjuYi/2ZhbKyHjHBGNk1AiO6RiAuNKD+AKS5kc0HWx9bFL8OdZLeNWWZtOPNrCjzsvM9Kf1tIdT5bWH7+126rHI56Xevvd8r3op62auLl2QHletJ20LZAyndvl5ZJnmus/NTRq/8rWanPfWSXxfSmB7zQ5+DDEAUxXp7ss+ePQuTyeRSzCaT4BCROgRBQM/YZugZ2wz/N7oTVqZk4csdZ3A0t8Q63DQAdG9pwpBO4RjaKRydIoN4Gg41ChXVZuw9cxFbT57HhmPnZPepEQTg5rgQjLic1EQF+2lYUyLyBFr34CxcuBDLly/H0aNH4efnh379+uEf//gHOnToYF1m4MCB2LRpk2y9Rx55BB988IH1eUZGBh577DFs2LABgYGBmDp1KhYuXAgvL9upRmJiIgRBgCAIGDJkiGxZs9mM9PR0jBgxwrkduowJDhG5LNDHC/f3jcN9fWJxJKcE64/kYd3RfOzPLMT+s0XYf7YIb649jiiTb22y0zkcfduEwMeLNygkz1BjtiA1qwjbTp7H1pMXsDfjomzkM71OQFKbUIzoGoFhXcIRFsSeSyJynNYJzqZNmzBjxgzcfPPNqKmpwd///ncMGzYMhw8flg3XPH36dLz44ovW5/7+V0dVNZvNGD16NCIiIrBt2zbk5ORgypQp8Pb2xquvvmpz2+PHjwcA7Nu3D8OHD0dg4NXRIw0GA1q1aoWJEyc6t0OXMcEhousmCAI6RxnROcqIJ4a0Q35xBf44mo91R/Kw5eR5ZBdV4IsdZ/DFjjMIMOhxa7sWGNo5HIM6tEBooM+1N0B0g1gsIo7nl2DryQvYdvI8dqYXoLSyRrZMuNEH/ds2R//45hjcMQzNAnjtGRG5xl0JTnFxsWy+j49PnYv4AWD16tWy50uWLEFYWBj27t2LAQMGWOf7+/sjIiKi3m3+/vvvOHz4MNatW4fw8HD06NEDL730EmbPno0FCxbAYKj/GDl//nwAQKtWrXD33XfD11e9PxAxwSEi1YUZfXFP71jc0zsWl6rM2HryPNYfzcP6I/nIL6nE6kO5WH0oF4IA9IxthgHtWuCWdqHo3jIYXnreqZ1uHFEUkVFQjm1pF7D15HlsT7uAC2Xy6wBNft5IahOK/vGh6BffHG2aB/CUSyJShbsSnJiYGNn8+fPnY8GCBddcv6ioCAAQEhIim//VV1/hyy+/REREBMaOHYt58+ZZe3G2b9+OhIQEhIeHW5cfPnw4HnvsMRw6dAiJiYl2tzl16tRr1stZTHCIyK38DHoM7Vx7eprFIuJAVlHtqWxH8nE4pxh7z1zE3jMX8dY6IMjHC/3iQzG0UzgGdwxj7w65RX5xBbafqk1otp68gKzCS7JyP289bm4dgv5tQ9E/vjk6RRqh1zGhISL1uWuY6MzMTBiNRuv8+npv6q5rwZNPPon+/fuja9eu1vn33nsv4uLiEBUVhdTUVMyePRvHjh3D8uXLAQC5ubmy5AaA9Xlubu717pJLmOAQ0Q2j0wnoHhOM7jHBmDWsA7IKL2HjsXzrD82iS9VYcygPaw7lyXp3+seHontMMLzZu0MuyCq8hJ2nLmBXegF2phcg/XyZrNxbLyAxphmSLic0PWKCYfDie42I3E+Eyj04l/81Go2yBMcRM2bMwMGDB7FlyxbZ/Icfftj6OCEhAZGRkRgyZAjS0tLQtm3b662yWzDBISLNRAf74b4+cbivTxzMFhGHsovwx9F8rD2ch0PZ8t6dAIMefdrU/gDtHx+KDuEcmY3ql1dcgU3Hz2FH2gXsTC+o00MjCLX3pekf3xz92oaid+sQ+Bv4dUhEN57Wgwxc8fjjj2PVqlXYvHkzWrZsaXfZPn36AABOnjyJtm3bIiIiArt27ZItk5eXBwA2r9txNx7RiahB0OsEdGsZjG4tg/Hk0PbILryEDcfyse3kBWxLO4+L5dX442g+/jhaOwx180Af9Gsbilvim6NffChaNvO/xhaosbpYVoXUrCLsTi/AhmP5OJQtv7hWrxOQEG1Cn9Yh6NMmBL3iQmDy89aotkREV2md4IiiiCeeeAIrVqzAxo0b0bp162uus2/fPgBAZGQkACApKQmvvPIK8vPzrTfrXLt2LYxGIzp37uxchVTCBIeIGqQoSe+OxSLicE4xtqWdx5aTF7A7vQDnSyvx0/5s/LQ/u3Z5k2/tSG6RRnSKrB3RLaaZP3S8dqJRKa2swcGsIqSerR2KPPVsITIL6vbQdGsZjFvjm6NPmxD0jG2GAB9+3RFRw6N1gjNjxgwsXboUP/74I4KCgqzXzJhMJvj5+SEtLQ1Lly7FqFGjEBoaitTUVDz11FMYMGAAunXrBgAYNmwYOnfujMmTJ+P1119Hbm4u5s6dixkzZjh07Y8oivj++++xYcMG5Ofnw6K4KOnKtT7O4BGfiBo8nU5A12gTukab8PCAtqisMSMloxDbTp7HlpPnsf9sEbKLKpBdVGG90ShQe5+ejhFB6BJlRELLYHRraULbFoG8YNyDlFbWYHd6Abalncf2UxdwKLu43i/w1s0D0L2lCQPat8CA9i3QnANUEJEH0DrBef/99wHU3sxT6tNPP8UDDzwAg8GAdevWYdGiRSgrK0NMTAwmTpyIuXPnWpfV6/VYtWoVHnvsMSQlJSEgIABTp06V3TfHnieffBL/+c9/MGjQIISHh6ty+jkTHCLyOD5eevRtE4q+bUIxa1gHlFbW4HB2MQ5nF+FwTjEO5xTjeG4pSitrsOfMRew5cxHAGQC1I2TVJjwmJESb0K2lCa2bM+lpCMoqa3AouxgHsoqsvTSnzpfV+cKOMvmiW8tgJLQ0oXvLYCREm2Dy5ylnROR5LBbAouLXj7MjsonXyIhiYmKwadOma8aJi4vDr7/+6tzGL/viiy+wfPlyjBo1yqX168MEh4g8XqCPF3q3DkHv1lfH7a82W3DqXBkO5xThYFYxDpwtwsHsIpRXmSVJTy1/gx5do0zWpCehpQmtQwN4epsbVJstyCmsQObFcmQWlCPzYjkyCi7hSE4x0s6V1vvXx5gQP/Rv2xxJbWuT2nCjejeDIyLSktY9OA2ByWRCmzZtVI3ZoBMcs9mMBQsW4Msvv0Rubi6ioqLwwAMPYO7cuRw9iYjs8tbr0CEiCB0ignDH5XuMmS0i0s+XIvVsEQ5kFeHA2SIcyi5GeZUZu04XYNfpAuv6gT5e6BARhLYtAtCmRSBaNw9AdLAfIk2+CAkw8Bh0DWWVNci8WI4jOcU4nF2MIzklSD9fhpyiS7DY+QKOMPqi6+WetYTLpyW2COLpZkTUeHlgTqKqBQsW4IUXXsAnn3wCPz8/VWI26ATnH//4B95//3189tln6NKlC/bs2YNp06bBZDJh5syZWlePiDyMXicgPiwI8WFBmNCzdhhMs0VE2rnLSc/ZQhzIqk16SitrrMNUKxm8dIgL8bcOZtAxIggtm/kh3OiLIN+mc6pURbUZaedKcSy3pHbKK8HZi5eQV1SBksoam+sZvHRo2cwPMc38ERNS+2+78EB0jTYhLIi9M0TUdLAHB7jrrrvw9ddfIywsDK1atYK3t/x7NDk52emYDTrB2bZtG26//XaMHj0aANCqVSt8/fXXdcbaJiJylV4noH14ENqHB+HOXrVJT43ZgpPnSnE8rxSnzpXi1LkynL5QhpyiCpwrqURVjQUn8ktxIr/UOorbFYE+Xgg3+iDC5IsIox8iTD6IMPkhwuiLSJMvwo2+CA0wNPjT38wWEaWVNSitrEFReTXyiiuQU1SBnKJL1qTm9IVymO10xwT5eqFThBGdIoPQOcqIti0CERPijxaBPg1+/4mIbgQmOMDUqVOxd+9e3H///U1jkIF+/frhww8/xPHjx9G+fXvs378fW7ZswZtvvmlzncrKSlRWVlqfFxcX21yWiKg+XnodOkYY0TGi7l2gq2osyCuuwMn8UuuABifySpBTVIGSitqEoPRcDdLOldmM760XEBbkixZBPjDodRCE2kTL11uPIF8vBPp4IcjXW/LYCwYvHQTUHvQFARAu/wsIkucC9DogwOCFgMvrAcClajMuVZlRUW1BRbXZ+vx8aSWyCy8hq7AC+SUVKK2oQUllDcoqa1BeZXaorYL9vdEhPMh6OmCr0ACEG30RYfJFIIdmJiKyiwkO8Msvv2DNmjW45ZZbVIvZoL99nnvuORQXF6Njx47Q6/Uwm8145ZVXcN9999lcZ+HChXjhhRduYC2JqCkxeOkQE+KPmBB/DOoYJisrq6xBbnEF8opqeztyiyusPR95xRXILarAudJKVJtFZBVeQlbhJRtbaTgMeh2CfL0QfrkHKjLYF3EhAdaEJizIh9cjERG5iAlO7UhtRmPdPyhejwad4Hz77bf46quvsHTpUnTp0gX79u3Dk08+iaioKEydOrXedebMmYNZs2ZZnxcXFyMmJuZGVZmImrAAHy+0bRGIti0CbS5TbbbgXEklcooqcL60EmaLCIsowmwRUVFtRklFjbUnqKSi2vq8ymyxXokqQqz9UkTtEJ+1/9Y+N1ssKK80o/RyT4wgCPD11sHXWw9fbz38vPXW5yEBBkQF+yE6uPYUOqOfNwJ9anuNAn29EOCjh4+X/kY0HRFRk2QRYXfgFVfieZp//etf+Nvf/oYPPvgArVq1UiVmg05wnn32WTz33HO45557AAAJCQk4c+YMFi5caDPB8fHxqfeuqcLlqb75tgiSUuVygo3lrkW6pPI96GgUUXR8kHNZPQX5DxXpX111isrI/yArr5nOTk1dawl53QSdl6Ls6rJnjpxQxJFWXLF1O/tgO4ZyWVdfJdsEQSd7HttB3aERqWHz1usQFeyHqGB1RoohutGGhw5yaDkz5N9V0u9K5feIRXKs1St6BKV/kVZ2FpolhcqYtjoWlX/hVm5PFsNOPPn+2F7PflTbMe1HEGw+1ykqapHscN3fMo5tr843oWQbyggipNtTvJY2lgPsvw72eiX0st8yVx9bVPi+vhHYgwPcf//9KC8vR9u2beHv719nkIGCggIba9rWoBOc8vJy6HTyw4Zer4fF2bsYERERERE1MOzBARYtWqR6zAad4IwdOxavvPIKYmNj0aVLF6SkpODNN9/Egw8+qHXViIiIiIiuC3twYPOsrOvRoBOcd999F/PmzcNf//pX5OfnIyoqCo888gief/55ratGRERERHRdRKh7o08PzG8AAGazGStXrsSRI0cAAF26dMG4ceOg17t2HWiDTnCCgoKwaNEit3RdERERERFpiT04wMmTJzFq1ChkZWWhQ4cOAGpHRY6JicEvv/yCtm3bOh1TeV0cERERERHdAFcSHDUnTzNz5ky0bdsWmZmZSE5ORnJyMjIyMtC6dWvMnDnTpZgNugeHiIiIiKixMgMwq5iUOHaL5oZl06ZN2LFjB0JCQqzzQkND8dprr6F///4uxWSCQ0RERESkAZ6iVnuLl5KSkjrzS0tLYTAYXIrJU9SIiIiIiDQiqjh5ojFjxuDhhx/Gzp07a29eLYrYsWMHHn30UYwbN86lmExwiIiIiIg0wGtwgHfeeQdt27ZFUlISfH194evri/79+yM+Ph5vv/22SzF5ihoRERERkQaa+ilqoiiiuLgYy5YtQ1ZWlnWY6E6dOiE+Pt7luExwiIiIiIg0YLk8qRnPk4iiiPj4eBw6dAjt2rW7rqRGiqeoERERERFpoKmfoqbT6dCuXTtcuHBB3biqRiMiIiIiIodYRFH1ydO89tprePbZZ3Hw4EHVYvIUNSIiIiIiDTT1U9QAYMqUKSgvL0f37t1hMBjg5+cnKy8oKHA6JhMcIiIiIiINNPVBBgBg0aJFqsdkgkNEREREpAG171/jKfnNrFmz8NJLLyEgIACtW7dGv3794OWlXlrCa3CIiIiIiDRgEdWfPMG7776L0tJSAMCgQYNcOg3NnibUg1ObIwsQ6plfq25Z/cspub6ea9sQ7Z1hqeibFIWr6+mgl5XppDHt7IJy/6TPlDW2VybKllPGvJprCzpl3i1IHsnXEx19/QS9YoakDZX9uYK917P+el2pjePLXpVx7LSD27PXoso2k7e2OmW2CZI2i2kf5/B6RI3ByOaDZc+lxyXl4cUsOfYoP9GyY7Ki1FtyDFOWSbehPHwJdmLaWq72uSS+zbXsHy4FxReL3s7CejvHG+lqynra+yutre8Eu3W20352t2Vnvbqu/xeovddLSefgd5qjy12L3dfS3valba2oi/R3j06575Lm1EteJdFD/obfVHtwWrVqhXfeeQfDhg2DKIrYvn07mjVrVu+yAwYMcDp+E0pwiIiIiIgaDrVHPvOUUdTeeOMNPProo1i4cCEEQcAdd9xR73KCIMBsNjsdnwkOEREREZEGRJVPK/OQ/Abjx4/H+PHjUVpaCqPRiGPHjiEsLEy1+ExwiIiIiIg00FRPUbsiMDAQGzZsQOvWrVUdZIAJDhERERGRBsTL/6kZz9PcdtttqsdkgkNEREREpAG1Rz7zlFHU3I0JDhERERGRBpr6KWruwgSHiIiIiEgDoihCVHFkADVjeTLPGCSciIiIiKiRMUNUffIUn376Kc6cOeOW2OzBISIiIiLSgCiqO7SzJ3Xg/PWvf0VVVRXi4uIwaNAg6xQdHX3dsZngEBERERFpwHJ5UjOepygsLMS2bduwadMmbNiwAUuXLkVVVRXi4+Otyc7AgQMRHh7udGwmOEREREREGmjKw0T7+PhYE5kFCxagoqIC27dvx4YNG7Bx40Z89tlnqK6uRk1NjdOxmeAQEREREWmgKZ+ipqTT6aDT6SAIAgRBgCiKiI2NdSkWExwiIiIiIg1YIMKiYq+LmrHcraqqCjt27MDGjRvxxx9/YOfOnYiLi8OAAQMwffp0fPnll4iJiXEptkMJTnFxsdOBjUaj0+sQERERETUVTfk+OCaTCWFhYRg7dixmzJiBZcuWISIiQpXYDiU4wcHBEATB4aCCIOD48eNo06aNyxUjIiIiImrMLCJgVvG8MosHZTjdu3dHSkoKNm/ebD09beDAgQgNDb3u2A6fovb9998jJCTkmsuJoohRo0ZdV6WIiIiIiBq7pjzIwI4dO1BaWootW7Zgw4YNeP311zFp0iS0b98eAwcOxG233YbbbrsNYWFhTsd2KMG5cj6coxlVmzZt4O3t7XRliIiIiIiaiqZ8ihoABAYGYsSIERgxYgQAoKSkBH/++SfWrl2L6dOno7S01H2jqKWnpzsV9ODBg05XhIiIiIioKRFFEaKKp6ipGetGslgs2L17NzZu3IgNGzZg69atKCsrQ1xcnEvxmuAoaopbIEnfCILOznquvmEU60m2VzeitG7ya54ESd1E0axYT7qscntXywRBXqaTrKesi/S58uorx6/Gsh1TSbp/ghNvS8HOM3l8eZkoSl5rF3dIuZoomeNUSIevb1MsJ3vvKsvsxbe3PVdf3avrZR47rSiSxFQeeO2WST+Pznz+HN0HZUx727P3iVCf3feS9POveG0tlqqri+l8ZGXSz/vF4+tkZSc//Nn6eNs++TEytazQ+rhSlA8eI6LA+rhUJz8uGS1XP8d+Ovln2le4+rxScTwLkCxbYVEe62zTSdqiRrR9qztB0aKOns6hPEdeZ+dzK8iOraLNMuX7TC+JabZTLeU+QHBsH+qsJyuzt6xiHwRby8nZ+0a19zo4VU87H0fHj6y2P292vl1txrhWPaRxdHXawTHKmHo7DSHbnvKYIUrbXbkN2+0i2lgOkH/fKvdHuqxeue+y95VyPem2bbeSl+x7w947sOFoyjf63LVrFzZu3IiNGzdiy5YtKC0tRcuWLTFw4EC88847GDRoEFq1auVSbJcSnN27d2PDhg3Iz8+HxSJvyjfffNOlihARERERNSVN+Rqcvn37IiIiAoMGDcKbb76JQYMGoW3btqrEdjrBefXVVzF37lx06NAB4eHhskzdmZHWiIiIiIiasqZ8Dc6RI0fQoUMHt8R2OsF5++238cknn+CBBx5wQ3WIiIiIiJoGsyhCp+J1M2oOOe1uYWFhePfddzF16tQ6988sKirC559/Xm+ZI5w+QVGn06F///5Ob4iIiIiIiK4S3fCfp3jvvfewefPmehMYk8mEP//8E++++65LsZ1OcJ566iksXrzYpY0REREREVEt0Q2Tp/jhhx/w6KOP2ix/5JFH8P3337sU2+kE55lnnsGxY8fQtm1bjB07FhMmTJBNRERERER0bRZRVH1yxsKFC3HzzTcjKCgIYWFhGD9+PI4dOyZbpqKiAjNmzEBoaCgCAwMxceJE5OXlyZbJyMjA6NGj4e/vj7CwMDz77LPXvH9NWloa2rVrZ7O8Xbt2SEtLc2p/rnA6wZk5cyY2bNiA9u3bIzQ0FCaTSTYREREREdG1ad2Ds2nTJsyYMQM7duzA2rVrUV1djWHDhqGsrMy6zFNPPYWff/4Z3333HTZt2oTs7GxZp4bZbMbo0aNRVVWFbdu24bPPPsOSJUvw/PPP2922Xq9Hdna2zfLs7GzodK4N9+30IAOfffYZfvjhB4wePdqlDRIRERERkfbDRK9evVr2fMmSJQgLC8PevXsxYMAAFBUV4eOPP8bSpUsxePBgAMCnn36KTp06YceOHejbty9+//13HD58GOvWrUN4eDh69OiBl156CbNnz8aCBQtgMBjq3XZiYiJWrlyJvn371lu+YsUKJCYmOrU/VzidFoWEhKg2RjURERERUVMlQoRFxelKglNcXCybKisrHapPUVERgNrf+wCwd+9eVFdXY+jQodZlOnbsiNjYWGzfvh0AsH37diQkJCA8PNy6zPDhw1FcXIxDhw7Z3Nbjjz+Of/3rX3jvvfdgNl+9sbPZbMa7776Lt956CzNmzHCwJeWcTnAWLFiA+fPno7y83KUNEhERERHR5dPKRBWny3FjYmJkl5AsXLjwmnWxWCx48skn0b9/f3Tt2hUAkJubC4PBgODgYNmy4eHhyM3NtS4jTW6ulF8ps2XixIn429/+hpkzZyIkJASJiYlITExESEgInnzyScyaNQt33nmnYw2p4PQpau+88w7S0tIQHh6OVq1awdvbW1aenJzsUkWIiIiIiJqSKz0vasYDgMzMTNnwyz4+Ptdcd8aMGTh48CC2bNmiWn2u5ZVXXsHtt9+Or776CidPnoQoirjttttw7733onfv3i7HdTrBGT9+vMsbIyIiIiKiWu66BsdoNDp1g8zHH38cq1atwubNm9GyZUvr/IiICFRVVaGwsFDWi5OXl4eIiAjrMrt27ZLFuzLK2pVl7Ondu/d1JTP1cTrBmT9/vqoVICIiIiJqitS+d42zsURRxBNPPIEVK1Zg48aNaN26tay8V69e8Pb2xvr16zFx4kQAwLFjx5CRkYGkpCQAQFJSEl555RXk5+cjLCwMALB27VoYjUZ07tz5uvfJFU4nOEREREREdP20HkVtxowZWLp0KX788UcEBQVZr5kxmUzw8/ODyWTCQw89hFmzZiEkJARGoxFPPPEEkpKSrKOfDRs2DJ07d8bkyZPx+uuvIzc3F3PnzsWMGTMcOjXOHRwaZCAkJATnz593OGhsbCzOnDnjcqWIiIiIiBo7re+D8/7776OoqAgDBw5EZGSkdfrmm2+sy7z11lsYM2YMJk6ciAEDBiAiIgLLly+3luv1eqxatQp6vR5JSUm4//77MWXKFLz44osutIg6HOrBKSwsxG+//ebwjTwvXLggG+6NiIiIiIjkLKLKgwyIzsUSHVje19cXixcvxuLFi20uExcXh19//dWpbbuTw6eoTZ061Z31ICIiIiJqUrS+BqexcijBsVgs7q6H24miBaJY335cnSco3xWCIFtfUSiN7mCJYo4ipvS8SUEWRRnVXkzlara3Jwh6O/Ht1cXpWjngaiRBUJ45KdmK8nUQhPqXu9bWZIs6sxeutYVbCHa2aK/M3eq8ftIyZ+rs6j7Y+wSqEdP9bWvvsyP/3CqOPcLVYfvtHrUVnyO9ZLR/vZ3du4Ri2XNf6bbr1OVqILPiL4QWyXFJeb64vX23Vyb9q6V6r7pjx3kl6ZLKt7Ue0u8VeaF0e3aOgvXsn2PHJXvtYj+Gsp71P66znqJQGqfuevbKHFO3nup+Vu3Hs/3u1CkaQvpxUJY5+td35XpSdevpeN1ssVcre9c6KHsH7PVU2KuJTvrZEJSv89WYXqKj786GQ+trcBqCxMRE2XfGFYIgwNfXF/Hx8XjggQcwaNAgh2M6faNPIiIiIiK6flpfg9MQjBgxAqdOnUJAQAAGDRqEQYMGITAwEGlpabj55puRk5ODoUOH4scff3Q4JkdRIyIiIiLSAHtwgPPnz+Ppp5/GvHnzZPNffvllnDlzBr///jvmz5+Pl156CbfffrtDMdmDQ0REREREmvj2228xadKkOvPvuecefPvttwCASZMm4dixYw7HZIJDRERERKQBnqJWO0rbtm3b6szftm0bfH1rr/a0WCzWx47gKWpERERERBqwQOVhoj0wxXniiSfw6KOPYu/evbj55psBALt378Z///tf/P3vfwcArFmzBj169HA4pksJTlpaGj799FOkpaXh7bffRlhYGH777TfExsaiS5curoQkIiIiImpyPC8lUdfcuXPRunVrvPfee/jiiy8AAB06dMBHH32Ee++9FwDw6KOP4rHHHnM4ptOnqG3atAkJCQnYuXMnli9fjtLSUgDA/v37MX/+fGfDERERERE1UTxJDQDuu+8+bN++HQUFBSgoKMD27dutyQ0A+Pn5OXWKmtMJznPPPYeXX34Za9euhcFgsM4fPHgwduzY4Ww4IiIiIqImielNrcLCQuspaQUFBQCA5ORkZGVluRTP6VPUDhw4gKVLl9aZHxYWhvPnz7tUCSIiIiKipkYUaifV4qkX6oZJTU3F0KFDYTKZcPr0afzv//4vQkJCsHz5cmRkZODzzz93OqbTPTjBwcHIycmpMz8lJQXR0dFOV4CIiIiIiJqmWbNm4YEHHsCJEydkp6GNGjUKmzdvdimm0wnOPffcg9mzZyM3NxeCIMBisWDr1q145plnMGXKFJcqQURERETU1Ihu+M/T7N69G4888kid+dHR0cjNzXUpptMJzquvvoqOHTsiJiYGpaWl6Ny5MwYMGIB+/fph7ty5LlWCiIiIiKip4TU4gI+PD4qLi+vMP378OFq0aOFSTKcTHIPBgI8++ghpaWlYtWoVvvzySxw9ehRffPEF9Hq9S5WwJysrC/fffz9CQ0Ph5+eHhIQE7NmzR/XtEBERERHdSCKuXoejyqT1Drlg3LhxePHFF1FdXQ0AEAQBGRkZmD17NiZOnOhSTJdv9BkbG4vY2FhXV3fIxYsX0b9/fwwaNAi//fYbWrRogRMnTqBZs2Zu3S4REREREbnfv/71L9x5550ICwvDpUuXcNtttyE3NxdJSUl45ZVXXIrpUIIza9YshwO++eabLlWkPv/4xz8QExODTz/91DqvdevWqsUnIiIiItKK6qOoqRjrRjGZTFi7di22bNmC1NRUlJaWomfPnhg6dKjLMR1KcFJSUmTPk5OTUVNTgw4dOgCoPUdOr9ejV69eLlekPj/99BOGDx+O//mf/8GmTZsQHR2Nv/71r5g+fbrNdSorK1FZWWl9Xt85fUREREREWqu9bka9E8s88RS1K2655RbccsstqsRyKMHZsGGD9fGbb76JoKAgfPbZZ9ZTxS5evIhp06bh1ltvVaVSV5w6dQrvv/8+Zs2ahb///e/YvXs3Zs6cCYPBgKlTp9a7zsKFC/HCCy+oWg8iIiIiIrUJAASo1+3iKR0477zzjsPLzpw50+n4giiKTiV70dHR+P3339GlSxfZ/IMHD2LYsGHIzs52uhK2GAwG3HTTTdi2bZt13syZM7F7925s37693nXq68GJiYnBwT2pCAoMqmcNi/WRoBxzQbj6NhFFCxSFNustLanbuJI5ipjSDF75ZheEqwM4WMRqm9uus0FJGJ3gLV9UElO5mr26ODoyhbLFbFSrnud22lr5OghC/ctdk3SP7a1np0HJzex/klxbz9UyW8u5h/Rdbv+zIq+n9DhlFuSfVL1kzYvHfpeVpS/5xfp42x75ZyyltND6uFDRLL6osT4u09XIyoyiwfrYW3HU8NNd/dtalWiWlQXorh6nKi3yMkdfFbNiSflRQtmCtqNKl61RHHv0gu33gSh7bDu+8ttXJ4lpURRKt+eOT4MzP7Assu8Hx5ZTbkO5nqNHZPt1UX5XOf9ZVdZZ+rmx1+7K11laF+V7xSx5bZVlytfdFp1iPUff416C7W/wusca2/sg5VXn94r0t5N8f2okdVGWKT+3sjLJssp9l5aVWqqubkuswaaL21BUVASj0WgztlaKi4thMpnQrdnN0OtcviS+DrOlBqkXdzfY/b5CecnJuXPnUF5ejuDgYABAYWEh/P39ERYWhlOnTjkd3+kWLS4uxrlz5+rMP3fuHEpKSpyugD2RkZHo3LmzbF6nTp3www8/2FzHx8cHPj4+deaLYg1EsaaeD77kS0v5Aa6T1MjXlKxos8ReElPn2026nKIqjh+mFTElgUTB9pd+Xba/iOx/Fdkus/elqJNtz04KZefgbG+P6n6xO9qi7v8xe6NTLUdfPSUtUztR+QUqK7Ot7ufdsTJH/4ChXM/VdEpJtPMq2XsGyR8tBDsto/P2U27QJunn1izIkxiLZD2dnRhmxR8tpD9IzMofOQ7+kFH+oHT1tAxHP3/Krwfp+6fuj1vbz+wnVLa3pwZ7P2CvJ47t5ex9jpw5+ri2DXdT408wSsr3vJQ0+VFrry12ki3pe1Wn+F529JQqu38aViZpdkJ6SZat8ytAEsZHuPqz1t4xqWFR+SIcD/lDbHp6uvXx0qVL8e9//xsff/yx9fKXY8eOYfr06fXeH8cRTg8Tfccdd2DatGlYvnw5zp49i7Nnz+KHH37AQw89hAkTJrhUCVv69++PY8eOyeYdP34ccXFxqm6HiIiIiOhGE9wweZp58+bh3XfftSY3ANChQwe89dZbLt9j0+kenA8++ADPPPMM7r33Xut41V5eXnjooYfwxhtvuFQJW5566in069cPr776Ku666y7s2rULH374IT788ENVt0NEREREdOOpnZZ4XoqTk5ODmpqaOvPNZjPy8vJciul0D46/vz/+/e9/48KFC0hJSUFKSgoKCgrw73//GwEBAS5Vwpabb74ZK1aswNdff42uXbvipZdewqJFi3Dfffepuh0iIiIiohtNEAXVJ08zZMgQPPLII0hOTrbO27t3Lx577DGXh4p2+aqmgIAAdOvWzdXVHTZmzBiMGTPG7dshIiIiIrqx2IPzySefYOrUqbjpppvg7V070ExNTQ2GDx+O//73vy7FdDrBGTRokGyEDKU//vjDpYoQERERETUlwuX/1IznaVq0aIFff/0VJ06cwJEjRwAAHTt2RPv27V2O6XSC06NHD9nz6upq7Nu3DwcPHrR5bxoiIiIiIpIToLM/eqwL8TxVu3bt0K5dO1ViOZ3gvPXWW/XOX7BgAUpLS6+7QkRERERETUFT7cGZNWsWXnrpJYev358zZw6effZZhISEOLS8amne/fffj08++UStcEREREREjVzTHCj67bffRnl5ucPLL168GIWFhQ4vr9qtU7dv3w5fX1+1whERERERNXLq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lyc14xETHCIiIiIiTbAHxz2Y4BARERERaYDX4LgHExwiIiIiIg3odQL0KmYlasbyZExwiIiIiIg0IFye1IxHTHCIiIiIiDShEwToVLxuRs1YnowJDhERERGRBgShdlIzHjWhBKdVfAyMRqPW1SAiatD+3/4V8uca1YOI6HoUFxfja5NJ62pckwB1e3AEnqQGoAklOEREREREDQmvwXEPJjhERERERBrgNTjuwQSHiIiIiEgDHCbaPZjgEBERERFpQLj8n5rxiAkOEREREZEmdELtpGY8YoJDRERERKQJQRAgqDmKGq/BAcAEh4iIiIhIE7rLk5rxiAkOEREREZEm2IPjHkxwiIiIiIg0oBcE6FVMStSM5cmY4BARERERaUHlHhwwwQHABIeIiIiISBMcRc09mOAQEREREWmA98FxDyY4REREREQaEAR1zyrjGWq1mOAQEREREWmAPTjuwQSHiIiIiEgDvAbHPZjgEBERERFpQCcI0Anq3Z5Tx3PUADDBISIiIiLSBK/BcQ8mOEREREREGuA1OO7BBIeIiIiISAPC5UnNeMQEh4iIiIhIE4IgQFDxvDI1Y3kyJjhERERERBpgD457MMEhIiIiItIAe3DcgwkOEREREZEGdBCgU7HfRc1YnowJDhERERGRRpiSqI8JDhERERGRBngfHPdggkNEREREpAkOM+AOTHCIiIiIiDTA9MY9mOAQEREREWlAuPyfmvGICQ4RERERkSbYg+MeTHCIiIiIiDTAHhz30GldAUcsXrwYrVq1gq+vL/r06YNdu3ZpXSUiIiIiImqAGnyC880332DWrFmYP38+kpOT0b17dwwfPhz5+flaV42IiIiIyGWCGybygATnzTffxPTp0zFt2jR07twZH3zwAfz9/fHJJ59oXTUiIiIiImpgGvQ1OFVVVdi7dy/mzJljnafT6TB06FBs37693nUqKytRWVlpfV5UVAQAKC4udm9liYiIiKhBuPK7TxRFjWtiX1lpqaq9LmWlpSpG81wNOsE5f/48zGYzwsPDZfPDw8Nx9OjRetdZuHAhXnjhhTrzY2Ji3FJHIiIiImqYSkpKYDKZtK5GHQaDAREREehzWx/VY0dERMBgMKge15M06ATHFXPmzMGsWbOszy0WCwoKChAaGgpB4JmJVxQXFyMmJgaZmZkwGo1aV8fjsT3VxfZUF9tTXWxPdbE91cO2vEoURZSUlCAqKkrrqtTL19cX6enpqKqqUj22wWCAr6+v6nE9SYNOcJo3bw69Xo+8vDzZ/Ly8PERERNS7jo+PD3x8fGTzgoOD3VVFj2c0Gpv8QVBNbE91sT3VxfZUF9tTXWxP9bAtazXEnhspX1/fJp+IuEuDHmTAYDCgV69eWL9+vXWexWLB+vXrkZSUpGHNiIiIiIioIWrQPTgAMGvWLEydOhU33XQTevfujUWLFqGsrAzTpk3TumpERERERNTANPgE5+6778a5c+fw/PPPIzc3Fz169MDq1avrDDxAzvHx8cH8+fPrnM5HrmF7qovtqS62p7rYnupie6qHbUlUSxAb+vh5REREREREDmrQ1+AQERERERE5gwkOERERERE1GkxwiIiIiIio0WCCQ0REREREjQYTHA+1ePFitGrVCr6+vujTpw927doFACgoKMATTzyBDh06wM/PD7GxsZg5cyaKioquGfO7775Dx44d4evri4SEBPz666+yclEU8fzzzyMyMhJ+fn4YOnQoTpw44Zb9u9FstaeUKIoYOXIkBEHAypUrrxmT7Wm7Pbdv347BgwcjICAARqMRAwYMwKVLl+zG3LhxI3r27AkfHx/Ex8djyZIlTm/XU9nbr9zcXEyePBkREREICAhAz5498cMPP1wzZlNsz82bN2Ps2LGIioqq93Ps6meyKbYlYL89q6urMXv2bCQkJCAgIABRUVGYMmUKsrOzrxmX7Vn/+1Pq0UcfhSAIWLRo0TXjNtX2pCZOJI+zbNky0WAwiJ988ol46NAhcfr06WJwcLCYl5cnHjhwQJwwYYL4008/iSdPnhTXr18vtmvXTpw4caLdmFu3bhX1er34+uuvi4cPHxbnzp0rent7iwcOHLAu89prr4kmk0lcuXKluH//fnHcuHFi69atxUuXLrl7l93KXntKvfnmm+LIkSNFAOKKFSvsxmR72m7Pbdu2iUajUVy4cKF48OBB8ejRo+I333wjVlRU2Ix56tQp0d/fX5w1a5Z4+PBh8d133xX1er24evVqh7frqa61X3/5y1/Em2++Wdy5c6eYlpYmvvTSS6JOpxOTk5Ntxmyq7fnrr7+K//d//ycuX7683s+xK5/JptqWomi/PQsLC8WhQ4eK33zzjXj06FFx+/btYu/evcVevXrZjcn2tP3+vGL58uVi9+7dxaio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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ax = plt.figure(figsize=(10, 6)).add_axes([0.14, 0.14, 0.8, 0.74])\n", + "# Plot flow direction\n", + "plt.pcolormesh(t, ds_avg[\"range\"], ds_avg[\"U_dir\"], cmap=\"twilight\", shading=\"nearest\")\n", + "# Plot the water surface\n", + "ax.plot(t, ds_avg[\"depth\"])\n", + "\n", + "# set up time on x-axis\n", + "ax.set_xlabel(\"Time\")\n", + "ax.xaxis.set_major_formatter(dt.DateFormatter(\"%H:%M\"))\n", + "\n", + "ax.set_ylabel(\"Altitude [m]\")\n", + "ax.set_ylim([0, 12])\n", + "plt.colorbar(label=\"Horizontal Vel Dir [deg CW from true N]\");" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Saving and Loading DOLfYN datasets\n", + "Datasets can be saved and reloaded using the `save` and `load` functions. Xarray is saved natively in netCDF format, hence the \".nc\" extension.\n", + "\n", + "Note: DOLfYN datasets cannot be saved using xarray's native `ds.to_netcdf`; however, DOLfYN datasets can be opened using `xarray.open_dataset`." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "# Uncomment these lines to save and load to your current working directory\n", + "# dolfyn.save(ds, 'your_data.nc')\n", + "# ds_saved = dolfyn.load('your_data.nc')" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 7. Turbulence Statistics\n", + "\n", + "The next section of this jupyter notebook will run through the turbulence analysis of the data presented here. There was no intention of measuring turbulence in the deployment that collected this data, so results depicted here are not the highest quality. The quality of turbulence measurements from an ADCP depend heavily on the quality of the deployment setup and data collection, particularly instrument frequency, samping frequency and depth bin size.\n", + "\n", + "Read more on proper ADCP setup for turbulence measurements in: Thomson, Jim, et al. \"Measurements of turbulence at two tidal energy sites in Puget Sound, WA.\" IEEE Journal of Oceanic Engineering 37.3 (2012): 363-374.\n", + "\n", + "Most functions related to turbulence statistics in MHKiT-DOLfYN have the papers they originate from referenced in their docstrings.\n", + "\n", + "### 7.1 Turbulence Intensity\n", + "For most users, turbulence intensity (TI), the ratio of the ensemble standard deviation to ensemble flow speed given as a percent, is all most will need. In MHKiT, this can be simply calculated as `.velds.I`, but be aware that this will be a conservative estimate. Another function, `turbulence_intensity`, is capable of subtracting instrument noise from this parameter and is discussed below. The noise-subtracted TI is more accurate and typically 1-2% lower than the non-noise-subtracted estimation.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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XBwGDhyI1NRUFBYWYvLkyQCACRMmoF27dkhJSYGfnx969uxpyB8WFgYA+vyCggLMmzcPd9xxByIjI3H48GE88cQT6NKlC0aMGOFB6zzD4IaIiKiZGDduHM6ePYvk5GRkZWWhb9++SE9P1y8yPnbsGCyW6h8Tslqt2LNnD958803k5uYiKioKw4cPx9NPP23qs24UcbnzQk1Afn4+QkNDkZeXxzuniIjosurj/xlyHS8Ht4S/4v5Ny5eEAw9dPM//v7nAIzdEREQmqK27paiyBvucGyIiIiJ38MgNERGRCcx4t1RzweCGiIjIBOpbwT3LT64x8CMiIqImhUduiIiITGDGc26aCwY3REREJrAoCiwK75aqCwxuiIiITMAjN3WH19wQERFRk8IjN0RERCbgkZu6w+CGiIjIBAxu6g5PSxEREVGTwiM3REREJlAUBYoHd0spPHZTJQY3REREJuBpqbrD01JERETUpPDIDRERkQks8OwIA49OVI3BDRERkQkURf24nb/2qtLkMPAjIiKiJoVHboiIiEygaP95kp9cY3BDRERkAt4tVXcY3BAREZmAwU3d4TU3RERE1KTwyA0REZEJLAAsHhx+sYhaq0qTw+CGiIjIBLyguO7wtBQRERE1KTxyQ0REZBIee6kbzSa4Ecd+ggj0V79YrOrU+dGQVm916uWjTu2lWkZhnDrnKcpXpz5+apJC9bulxw21WXUiInJBZB1S/yi5pE5LbeXLcs+of3irv+ni553q9LuvAQBKmzbq8t4Dygs8fQz2SyV1V+EKPH5CMSOjKvG0FBERETUpzebIDRERUUPC59zUHQY3REREJrBAgcWDEMWTvE0dT0sRERE1I8uWLUNMTAz8/PwQHx+PrVu3VivfmjVroCgKxowZY5gvhEBycjLatm0Lf39/JCQk4ODBg3VQ8+pjcENERGQCpRY+NbV27VokJSVh7ty52LFjB/r06YMRI0bgzJkzl8139OhRzJgxA0OGDKm0bPHixXjhhReQlpaGLVu2IDAwECNGjEBxcbEbNawdDG6IiIhMIO+W8uRTU0uXLsWUKVMwefJk9OjRA2lpaQgICMDKlSurzGO323Hvvfdi3rx56Ny5s2GZEAKpqal48skncdttt6F3795YvXo1Tp06hY8++qjmFawlDG6IiIhMUFtHbvLz8w2fkhLXt7PbbDZs374d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iNf3S4fTXRL6+NFSlaj9BLlvyT4IcH7Whxy3ajlCuwNEkevXlisVx7BzHeX21sa+KC2unEffP2RWud3VGYrdxf+AZGO1cSUcxvWU71dOvwMVfzP09ajfhTYeFW+n3z+t3/RSZDv05XIM+zjl0ebZjeUb6qIuKP9T1tdRYV/Tf+9cbEs5T/5++fgby5K/C85p5TiT219rq1Kxb5zL0X7D4dDqFKLdkKL95itB5WNTXCow9kWd8/CCYjT+4KZFixY4fvw4oqOjkZ6erscQQgi375QC3AxunF+a5Sw0NNTl2z3ddcMNN+DAgQOGeb/88ov+8B8iIiJqvG6//Xbcc8896Nq1K86dO4dRo0YBAHbu3Kk/FdkdbgU3kZGROHToEGJiYgzzv/32W3Tu3NntylT02GOP4frrr8fChQvxpz/9CVu3bsWrr76KV199tdbWQUREZAZPLwpuChcUP/fcc4iJicHx48exePFiBGlHk0+fPo2HHnrI7XLdCm6mTJmC6dOnY+XKlVAUBadOncLmzZsxY8YMzJkzx+3KVHTttdfiww8/xOzZszF//nx06tQJqampuPfee2ttHURERKbgreDw9vbGjBkzKs1/7LHHPCrXreBm1qxZcDgcGDZsGIqKinDjjTfC19cXM2bMwMMPP+xRhSq69dZbceutt9ZqmURERNQwHDx4EBs3bsSZM2cqPdQvOTnZrTLdCm4URcHf//53PP744zh06BAKCgrQo0cP/XASERERXR5PSwErVqzA1KlT0bp1a0RGRhrapChK/QY3ko+PT6W7mYiIiKgaeFoKCxYswDPPPIOZM2fWarluBTdjx451GTEqigI/Pz906dIF99xzD66++mqPK0hERERN04ULF3DXXXfVerluPcQvNDQUX331FXbs2KEfVtu5cye++uorlJWVYe3atejTpw/+97//1XZ9iYiImgb54kxPPo3cXXfdhc8//7zWy3X7VvB77rkHL730kv5qdIfDgenTpyM4OBhr1qzBgw8+iJkzZ9bq6xiIiIiaCsWiQPHg1JIneRuKLl26YM6cOfj+++/Rq1cveHsbH8T6yCOPuFWuW8HN66+/jv/97396YAMAFosFDz/8sP5cmsTERAwZMsStShERETV5nh59aQJHbl599VUEBQVh06ZN2LRpk2GZoij1G9yUlZVh//79uOqqqwzz9+/frz8u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vx9vv/02vvrqK/z+979HfHw85s2bhzZt2qB79+5YvXo1Pv30UyxbtszE2lfG9rA99YntYXuImh0zDhfV1N69e4Wfn1+l5zfs3LlTjBgxQjz22GNCCCEuXLggrr/+ehETEyO6dOki+vXrJ7799lszqnxZbA/bU5/YHraHqLlpNHdL3XzzzSgqKsL69esRFBSkz58wYQLy8vLw/vvvw9vbGxcvXkROTg7Onj2LgQMHmljjy2N72J76xPawPUTNitnRVXXt2rVLeHl5ieXLl4uSkhJ9/t///nfRpUsXE2vmHranYWN7Gja2h4gup1FccwMAffr0wcyZM/H000/D29sb48ePh8PhwA8//IA///nPZlevxtieho3tadjYHiK6nEZzWkqaNm0aPvzwQ3To0AFZWVkIDAzEe++9hx49ephdNbewPQ0b29OwsT1E5EqjC26Ki4vx888/Y8eOHfD19W30/6phexo2tqdhY3uIyJVGF9wQERERXU6jeIgfERERUXUxuCEiIqImhcENERERNSkMboiIiKhJYXBDRERETQqDGyIiImpSGNwQERFRk8LghoiIiJoUBjdETUxmZiYURUFubq7ZVSEiMgWfUEzUyA0dOhR9+/ZFamoqAMBms+H8+fOIiIiAoijmVo6IyASN5q3gRFQ9Pj4+iIyMNLsaRESm4WkpokZs0qRJ2LRpE55//nkoigJFUfDGG28YTku98cYbCAsLw/r163H11VcjICAAd955J4qKivDmm28iJiYGLVq0wCOPPAK73a6XXVJSghkzZqBdu3YIDAxEfHw8MjMzzWkoEVEN8MgNUSP2/PPP45dffkHPnj0xf/58AMBPP/1UKV1RURFeeOEFrFmzBhcvXsTtt9+OsWPHIiwsDJ988gl+/fVX3HHHHbjhhhswbtw4AEBiYiL27duHNWvWICoqCh9++CFGjhyJvXv3omvXrvXaTiKimmBwQ9SIhYaGwsfHBwEBAfqpqP3791dKV1paiuXLlyM2NhYAcOedd+Ktt95CdnY2goKC0KNHD9x0003YuHEjxo0bh2PHjmHVqlU4duwYoqKiAAAzZsxAeno6Vq1ahYULF9ZfI4mIaojBDVEzEBAQoAc2ABAREYGYmBgEBQUZ5p05cwYAsHfvXtjtdlx11VWGckpKStCqVav6qTQRkZsY3BA1A97e3obviqK4nOdwOAAABQUFsFqt2L59O6xWqyGdc0BERNQQMbghauR8fHwMFwLXhn79+sFut+PMmTMYMmRIrZZNRFTXeLcUUSMXExODLVu24OjRo8jJydGPvnjiqquuwr333osJEyZg3bp1OHLkCLZu3YqUlBRs2LChFmpNRFR3GNwQNXIzZsyA1WpFjx490KZNGxw7dqxWyl21ahUmTJiAv/71r7j66qsxZswYbNu2DR06dKiV8omI6gqfUExERERNCo/cEBERUZPC4IaIiIiaFAY3RERE1KQwuCEiIqImhcENERERNSkMboiIiKhJYXBDRERETQqDGyIiImpSGNwQERFRk8LghoiIiJoUBjdERETUpDC4ISIioibl/wMDCsMw5Lw1EwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Turbulence Intensity\n", + "ds_avg[\"TI\"] = ds_avg.velds.I\n", + "ds_avg[\"TI\"].plot(cmap=\"Reds\", ylim=(0, 11))" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 7.2 Power Spectral Densities (Auto-Spectra)\n", + "\n", + "Other turbulence parameters include the TKE power- and cross-spectral densities (i.e the power spectra), turbulent kinetic energy (TKE, i.e. the variances of velocity vector components), Reynolds stress vector (i.e. the co-variances of velocity vector components), TKE dissipation rate, and TKE production rate. These quantities are primarily used to inform and verify hydrodynamic and coastal models, which take some or all of these quantities as input.\n", + "\n", + "The TKE production rate is the rate at which kinetic energy (KE) transitions from a useful state (able to do \"work\" in the physics sense) to turbulent; TKE is the actual amount of turbulent KE in the water; and TKE dissipation rate is the rate at which turbulent KE is lost to non-motion forms of energy (heat, sound, etc) due to viscosity. The power spectra are used to depict and quantify this energy in the frequency domain, and creating them are the first step in turbulence analysis.\n", + "\n", + "We'll start by looking at the power spectra, specifically the auto-spectra from the vertical beam (\"auto\" meaning the variance of a single vector direction, e.g. $\\overline{u'^2}$, vs \"cross\", meaning the covariance of two directions, e.g. $\\overline{u'w'}$). This can be done using the `power_spectral_density` function from the `ADPBinner` we created (\"avg_tool\"). We'll create spectra at the middle water column, at a depth of 5 m, and use a number of FFT's equal to 1/3 the bin size." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "rng = 5 # m\n", + "vel_up = ds[\"vel_b5\"].sel(range_b5=rng, method=\"nearest\") # vertical velocity\n", + "U = ds_avg[\"U_mag\"].sel(\n", + " range=5, method=\"nearest\"\n", + ") # flow speed, for plotting in the next block\n", + "\n", + "ds_avg[\"auto_spectra_5m\"] = avg_tool.power_spectral_density(\n", + " vel_up, freq_units=\"Hz\", n_fft=ds_avg.n_bin // 3\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the auto-spectra, we're primarly looking for three components: the energy-producing region, the isotropic turbulence region (so-called \"red noise\"), and the instrument noise floor (termed \"white noise\"). \n", + "\n", + "The block below organizes and plots the power spectra by the corresponding ensemble speed, averaging them by 0.1 m/s velocity bins. Note that if an ensemble is missing data that wasn't filled in, a power spectrum will not be calculated for that ensemble timestamp." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0.5, 0, 'Frequency [Hz]'),\n", + " Text(0, 0.5, 'PSD [m2 s-2 Hz-1]'),\n", + " (0.01, 1),\n", + " (0.0005, 0.1)]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeoAAAIPCAYAAAC8DJ2WAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3hURRfA4d/dkt30kIQESKVD6F0QAVFBigoiAtJBEKWrSPsUUFGUXgVBQIo0lQ4CAoJK7yX0loSa3rff748lgZgEUjYN5n2efSC7t5xNNjl35s6ckWRZlhEEQRAEoVBSFHQAgiAIgiBkTiRqQRAEQSjERKIWBEEQhEJMJGpBEARBKMREohYEQRCEQkwkakEQBEEoxESizgVZlvn111+pXr06N2/eLOhwBEEQhGeQSNS58Pvvv7NixQrOnj1b0KEIgiAIzyhVQQdQlHXo0AFHR0c2btxY0KEIgiAIzyjRos4lrVZb0CEIgiAIzzCRqAVBEAShEBOJWhAEQRAKMXGP+jEjR47k33//feI2ffr0oU+fPvkUkSAIgvC8E4n6Md99911BhyAIgiAIaYiub0EQBKHQ2rp1K40aNWLp0qU52n/JkiU0aNCAMmXK4OXlRceOHbl06ZJtg8xjIlELgiAIhc7atWtp0KABbdu25eDBg9neX5ZlevXqxYQJE/jhhx+4fv06586dIyYmhnr16nHgwIE8iDpvFOlEndUrLYPBwKRJk6hYsSJly5aladOm7N+/3yYxGI1GAEwmk02OJwiCIEDdunXZv38/5cuXz9H+8+bN4+eff+aHH36gdu3aAHh5efHrr79iZ2dHp06diImJsWHEeadIJursXGnp9Xpef/11li9fzq5du7h27RqDBg3i1VdfZd26dbmKY+/evcybNw+AyZMnc/z48VwdTxAEQbAqU6YMGo2GWrVqZXtfWZb55ptvUKlUtGjRIs1rrq6u9O7dm7CwMObMmWOrcPNUkUzU2bnSGjlyJHv37mXJkiX4+/sD0LFjR9555x169+7NjRs3chzHyy+/zPr165FlmQULFlCnTp0cH0sQBEFILydFpS5evMidO3fw8vJCqVSme/3VV18FYPXq1bmOLz8UyUSd1SutmzdvMnfuXIKCgqhfv36a17p3705iYiKjR4/Oy1AFQRCEXJAkKdv7REVFARAXF5fh6wEBAQAEBweTlJSU8+DySZGenvW0K601a9ZgMplo1KhRutcaNGgAwPr164mMjMTDwyNPYkyh1+vR6/WpX1ssFqKiovDw8MjRB1EQBAGs3bzx8fGUKlUKhSLv2l46nQ6DwZCjfWVZTvd3TqPRoNFobBFaOj4+PgAkJCRw4cIFKleunC6elH8jIyNxcHDIkzhspUgn6qcluK1btwLWFvh/ubu74+Pjw+3bt/n3339588038yTGFN9++y0TJkzI03MIgvD8Cg0NxdfXN0+OrdPp8LS3JzGH+zs5OZGQkJDmuXHjxjF+/Phcx5aRwMBAatWqxcmTJ5kzZw5z585N8/rt27dT/29nZ5cnMdhSkU7UT3Py5EmATD+8bm5u3L59m1OnTuV5oh49ejQff/xx6texsbH4+/tz+fJl3N3d8/TcQtFkNBrZu3cvL7/8Mmq1uqDDEQqpqKgoKlSogLOzc56dw2AwkAgMUirIbhtYD8xJSCA0NBQXF5fU5/OqNZ3ip59+olmzZsyfP5+AgAAGDx6MWq1mx44dfP755wA4ODjg6emZp3HYwjObqHU6XeoVnJubW4bbuLq6AhAREZHn8WTWzePu7p7n3e5C0WQ0GnFwcMDDw0MkauGp8uMWmgbQZPc8D7uZXVxc0iTqvFarVi2OHTvGl19+ybx581i2bBlVqlShffv2qRc19evXz3CwWWHzzCbqyMjI1P9ndv8h5X6OTqfLl5gEQRCE/FO+fHmWL1+e5rmIiAi6desGQKdOnQoirGwrkqO+s+Lx+w4pAwf+K2VghOh6FgRBeD7MmDEDs9mMt7c3PXv2LOhwsuSZTdTu7u6pyToxMeMhEClVaYrCPQpBEAQhd27evMnUqVMBmDlzJvb29gUcUdY8s4laqVQSFBQEwJ07dzLc5v79+wDUqFEj3+ISBEEQ8p/BYKBbt27odDoGDRpUZLq94RlO1AAtW7YE4Pz58+lei4iIIDY2FkdHR5o2bZrfoQmCIAhZkLKOgtlszvD1vXv30qBBA2bNmpXpMZKTk+nUqRP//vsvH374ITNnzsyTWPPKM52o+/bti0KhyHABjpQa4R06dMjXeXQpldLq1auXb+cUBEEoipKTkzlz5gwAhw4dynCbqVOncuTIEcaOHZvutfj4eJYuXUqtWrVSS0nPmzcvTwvD5IWiFe1/PO1Kq3z58vTv35+zZ89y6tSpNK/9/PPP2NvbM27cuLwOM42BAwcSHBzM0aNH8/W8giAIRUnnzp3x9PTk7NmzACxatAgPDw/mz5+fZrsuXbrg7OycbmBYUFAQvr6+zJs3j27dunH16lV69eqVX+HbVJGdnvXfK62+fftmuN2UKVM4evQoAwYMYNu2bRQrVozZs2ezefNmVq5cmWHVMkEQBKFgZXXBjK5du9K1a9d0zwcHB9s6pAJTJBN1586d2bx5c2ox9UWLFvH7778zceJEBgwYkGZbR0dH9u7dy+eff07dunVRKBRUrVqVo0ePUr169YIIX3iOyLKM0WjEYrFke1+j0YhKpUKn02XaayQUfQqFArVaLWr+C5mS5MwmGQt5Ki4uDldXVyIiIkRlsmeQ2WwmIiKC+Ph4jEZjjo4hyzLJycnY29uLP+LPOLVajbOzM56entmulBUZGYmnpyexsbF5Vvkr5e/VJ0pFtiuT6WWZqWZLnsb3rCuSLWpBKMzMZjOhoaHo9XpcXV1xcnJCqVRmO9laLBYSEhJwcnIqcoNfhKyRZRmz2UxCQgIxMTEkJyfj5+dXJMpaCvlHJGpBsLGIiAj0ej3+/v65KqhgsVgwGAxotVqRqJ9xTk5OuLq6EhISQkREBN7e3gUdklCIiN9+QbChlLWBXV1di0zVI6FwsLe3x8XFhfj4+EzLHgvPJ5GoBcGGjEYjRqMRJyengg5FKIKcnZ1TP0OCkEIk6nwmCp4821JGd4t7jEJOpHxucjJLQHh2iUSdz0TBk+eDGKUt5IT43AgZEYlaEARBEAoxkagFQXhu3bx5E0mSMnw8qdxkq1atePXVVwEICQmhW7duVKpUCRcXF5ycnKhatSpffvkl8fHx+fROhGeZmJ4lCMJzr3379rz99ttpnitbtmyG2yYkJLB3716+//57wLpcblhYGO3bt0+dA33s2DG+/vprNm3axMGDB1Gr1Xn+HoRnl0jUgiA896pXr063bt2ytO0ff/yBXq/nzTffBKBevXr89ddfabb54IMPqFChAp999hm7du2idevWtg5ZeI6Irm9BEASsC/0kJyc/dbuNGzdSvXp1AgMDn7hd6dKlAYiOjrZFeMJzTCRqQRCKjB07dvDGG29QsmTJ1IUsypcvn+vjTp06FQcHBxwcHChXrhyzZ8/OsOiI2Wxm27Ztqa3px+l0OiIiIggNDWXr1q2MGTMGrVZLkyZNch3f82zr1q00atSIpUuX5mj/JUuWUL9+fUqWLEnJkiVp0KABy5Yts22QeUx0fQuCUCQsW7Ysdc1hhUKBh4cHCoUiV4lQoVDwyiuv0K5dOwICArh79y4LFy5kyJAhXLt2jRkzZqTZ/p9//iEqKoq33nor3bEWLVrE4MGDU7+uWLEiGzduxM/PL8fxPc/Wrl3L1KlTOXLkCAD9+/fP9jGGDBnC4sWLWblyJW+99RayLLNu3Tq6du3KmTNnmDJliq3DzhMiUQuCUOglJyczfPhwAAYMGMCUKVNwdHQErGVbdTpdlo6jUCiws7NL/drf358///wzzTZ9+/bllVdeYdasWXzwwQdUrlw59bWNGzfi4+NDnTp10h27Xbt2VKpUidjYWA4cOMC+ffuIi4vL9nsVrOrWrcv+/fupVq0aV65cyfb+x48fZ/bs2XzzzTepF1aSJPHuu++yY8cOpk6dSp8+fQgKCrJ16DYnur4FQSj0du7cSVRUFI6OjkydOjU1SQPcunULe3v7LD1q16791HMplUpGjhyJLMvs2rUrzWubN2+mbdu2GRYm8fX15dVXX6VDhw5MnTqVkSNH0rFjx3QXAkLWlClTBo1GQ61atXK0/549ewCoWbNmutdSPgfnzp3LcXz5SbSo89ncuXOZO3cuZrO5oEMRhCLj77//BuCll17CwcEhzWuenp4sWbIkS8cpVqxYlrYLCAgArCuhpQgODubq1avMmjUrS8d4++230Wq1LFmyJHXOtZB9Wq02R/ulXMwdPnyYVq1apXktPj4eSZKoUaNGruPLDyJR57OBAwcycODA1IXYBUHInL+/P6Ghoalf//HHH2las0eOHKFevXpPLE6SE1evXgVIs9zkxo0bcXJyonnz5lk6hslkwmg0ilHfuZTTsqpt2rRhyJAhTJs2jffee48KFSqkvrZ+/Xref/99KlasaKsw85To+hYEoVBKTEzEaDSmSZbFihXD29sbb29vSpQokev7iw8ePEj3nE6n46uvvkKpVNKyZcvU5zdt2kSLFi3QaDRptr9//36Gx16wYAFms5kGDRrkKsZnRVxcXJqHXq/P0/MFBASkVod7+eWXOX36NACTJ0+mXr16/PDDD3l6flsSLWpBEAolR0dH7t69S3h4OF5eXoB11LUtB/988MEHREZG8vLLL+Pr68u9e/dYtmwZV69eZdy4cZQrVw6wJuMjR45k2MU+cuRIgoODee211wgICCAhIYF9+/axefNmKlasyNChQ20Wb0FrWELGMZvNu0SLDLdJN/p93LhxjB8/3nbBZWDMmDGpF15NmjShb9++1KhRgxEjRuTpeW1NJGpBEAq1EydOAODg4GDzrsq2bduybNky5s+fnzpYrXbt2kyaNIkOHTqkbrd582YkSaJNmzbpjvH2228TGRnJzz//THh4OCqVinLlyvG///2PTz/9FBcXF5vGXFSFhoam+V78t2cir0yYMIGEhARCQ0OZPn06AQEB1KpVi+rVq+fL+W1BJGpBKCCJiYmZvqZUKtNMI3rStgqFAnt7+xxtm5SUlGFhD7DeG3x84FZm2z4+AjsvnDx5ErCW+bT1Ot99+/alb9++T91u06ZNNGrUCA8Pj3SvvfnmmxkWQBHScnFxyfeLFp1Ox4ABA5gwYQL+/v58/PHHzJgxg5deeok//viDhg0b5ms8OSUStSAUECcnp0xfa926NZs3b0792svLi6SkpAy3bdq0aZpa04GBgWlGKz+ubt26adZCDwoK4tatWxluGxQUxPnz51O/rlevHsHBwem2yyzR20pKos7pNB1baNy4cYZzp4XCS5Zl3n33XYKCglJH8U+fPh2lUsnUqVN56623uHLlSpEY1CsGkwmCUKildH0XZKL+7LPPeOWVVwrs/EL2rVmzhs2bN6e7XTF58mTeeOMNwsPDmTt3bgFFlz2iRS0IBSQhISHT1/7bxZvR6OQUCkXa6+2bN29medvg4OAndn0/7ujRo3neev6v+Ph4rl27BpClYiWCkOL3338HSB2ImEKSJL766is2b96cWp60sBOJWhAKyNPu7Voslixvm53jPu6/xUNsta2tnDp1ClmWUalUVK1aNd/PLxRdBoMBgLCwsHSDEFMWcnl8HEhhJrq+BUEotFLuTwcFBeXbKGGhcDGZTACZVnPcu3cvDRo0SFcxrl27dgCsWrUq3T6HDh0CSDOyvzATiVoQhEKrMNyfFgpOcnIyZ86cAR4l1/9KWWFr7NixaZ7v0aMH7du3Z+nSpcyYMQOj0QhYP1P9+/ena9euvPvuu3n7BmxEJGpBEAqtlBa1uD/9/OncuTOenp6cPXsWsC4j6uHhwfz589Ns16VLF5ydnVOXQE2hUChYt24d06ZN4+eff8bLywt/f38GDBjAyJEjWb58eY7Lk+Y3cY86n4lFOQQha/R6fep0MNGifv6sXr06S9t17dqVrl27ZviaUqlkyJAhDBkyxJah5TvRos5nAwcOJDg4OM1cVkEQ0jt37hwmk6lIrXIkCHlBtKgFQSiU6tSpk+/TwQShMBItakEQBEEoxESiFgRBEIRCTCRqQRAEQSjERKIWBEEQhEJMJGpBEARBKMREohYEQRCEQkwkakEQBEEoxESiFgRBEIRCTCRqQRAEQSjERKIWBEEQhEJMJGpByAOi9KWQE+JzI2REJOp8NnfuXIKCgqhXr15BhyLkAYXC+islVkcTciLlc5PyORJg69atNGrUiKVLl2ZrP4PBQPHixZEk6YmP8PDwvAnchsSnIZ+J1bOebWq1GrVaTUJCQkGHIhRB8fHxqZ+h593atWtp0KABbdu25eDBg9nef/369URERDxxmwYNGlC8ePGchphvRKIWBBuSJAlnZ2diY2NJTk4u6HCEIiQ5OZm4uDicnZ2RJKmgwylwdevWZf/+/ZQvXz5H+y9atIihQ4dy+vRp7t27R3h4eOrjzp07ODs707FjRxtHnTfEMpeCYGOenp4kJycTEhKCi4sLzs7OKJXKbP/xtVgsGAwGdDqd6Ap9RsmyjNlsJj4+nri4ODQaDZ6engUdVqFQpkwZAGrVqsWVK1eyte/169dp3rw5o0ePzvD17du3Ex8fLxK1IDyvlEolfn5+REREEB8fT0xMTI6OI8syycnJ2NvbixbWM06tVuPm5oanpydKpbKgwylUtFpttvfx8fFh5MiRmb6+bt06GjRogL+/f25CyzciUQtCHlAqlXh7e+Pl5YXRaMRisWT7GEajke3bt/PKK6/g6OiYB1EKhYFCoUCtVouLsUzk5Pui0Wgyfc1oNLJhwwb+97//5SasfCUStSDkIUmSsLOzy9G+33//Pd988w0zZ87kgw8+sHFkgpC/4uLi0nyt0WiemFDzyu7du4mJieGdd97J93PnlEjUglBI2dvbo9frmTFjBv369RP3qYUCV6mMBmdV9lq48SYZbuvw8/NL8/y4ceMYP368DaPLmqLW7Q1i1LcgFFq9e/fG3t6eixcvsmPHjoIORxByJTQ0lNjY2NRHZgO98pLJZGLDhg1FZhBZCpGoBaGQcnV15bXXXgNg2rRpBRyNIOSOi4tLmkdBdXtHR0eLRC0Igu20bdsWhULBn3/+yenTpws6HEEo0lK6vf/bDV/YiUQtCIWYl5cXb7/9NgDTp08v4GgEoehK6fZ+9913CzqUbBOJWhAKueHDhwPw66+/phs5KwhC1uzZs4eoqKgiNdo7hUjUglDI1atXjzlz5nDp0iVcXFwKOhxBKJLWrVvHCy+8UOS6vUEkakEoEgYOHIiPj09BhyEI+c5kMgGZr0i3d+9eGjRowKxZs554jPXr1xe5QWQpRKIWhCJGrMwlPC+Sk5M5c+YMAIcOHcpwm6lTp3LkyBHGjh2b6XH27t1LVFSUSNSCIOStW7du0apVK+rUqZOjkqSCUJR07twZT09Pzp49C1hXw/Lw8GD+/PlptuvSpQvOzs707Nkz02OldHv7+vrmacx5RVQmE4QiwsPDg0OHDhETE8OWLVt48803CzokQcgzq1evztJ2Xbt2pWvXrk/c5scff7RFSAVGtKjz2dy5cwkKCqJevXoFHYpQxDg5OaXW/J46dWoBRyMIQn4RiTqfDRw4kODgYI4ePVrQoQhF0KBBg1CpVOzfv59jx44VdDiCIOQDkagFoQjx9fWlc+fOgCiAIgjPC5GoBaGISSmAsmbNGkJDQws4GkEQ8ppI1IJQxNSuXZtmzZphNptZsGBBQYcjCEIeE6O+BaEIGj9+PFeuXHnqaFdBEIo+kagFoQhq2rQpTZs2LegwBEHIB6LrWxCKOIvFIgqgCMIzTCRqQSjCVqxYQeXKlVm/fn1BhyIIQh4RiVoQirBLly5x+fJlUQBFEJ5hIlELQhE2cOBA7OzsOHjwIAcPHizocARByAMiUQtCEVaiRInUkd/Tpk0r4GgEQcgLIlELQhGXUgDl999/58aNGwUcjSAItiYStSAUcdWqVaNFixZYLBZmzZpV0OEIgmBjIlELwjPg448/Bqxr9sbFxRVwNIJgO1u3bqVRo0YsXbo018eKjo5m2rRptGvXjv79+zN+/HiMRmPug8xjIlELwjOgRYsWDBw4kM2bN+Ps7FzQ4QhCrq1du5YGDRrQtm1bmwyU/OWXX6hYsSJRUVGsWLGCH3/8kfHjx6NWq20Qbd4SlckE4RkgSRJz5swp6DAEwWbq1q3L/v37qVatGleuXMnVscaMGcP06dPZsGEDLVu2tFGE+Ue0qAXhGSTLckGHIAi5UqZMGTQaDbVq1crVcSZNmsS3337L8uXLi2SSBpGoBeGZEhERwaeffsprr70mkrXwTNBqtTned8eOHYwZM4ZOnTrxzjvv2DCq/CUStSA8Q2RZZu7cuezevZt//vmnoMMRhFyTJClH+xmNRoYOHYosy4wbN87GUeUvkagF4RlSvHhxevToASDKigqFSlxcXJqHXq/P0/OtXbuWS5cuUb9+fa5cuUKXLl2oXbs2AQEBdO3alevXr+fp+W1JDCYThGfM8OHD+fHHH9m0aRNXrlyhfPnyBR2S8Izwqu6OiyZ77Tt7vQX+voOfn1+a58eNG8f48eNtGF1a69atAyA8PJyEhAQWL16MUqlk5syZfPbZZ+zYsYP9+/cTFBSUZzHYimhRC8IzplKlSrRp0wZZlpkxY0ZBhyMIAISGhhIbG5v6GD16dJ6eb9++fYC1tO57772Hvb09dnZ2jBgxgq5duxIZGUnv3r3zNAZbEYk6n82dO5egoCDq1atX0KEIz7CUAihLliwhKiqqgKMRBHBxcUnz0Gg0eXauxMREYmJiAPDx8Un3+kcffQTAkSNHOH/+fJ7FYSsiUeezgQMHEhwczNGjRws6FOEZ9vLLL1OzZk2Sk5NZsGBBQYcjCPnq8ep8Li4u6V5v1KgRbm5uAAQHB+dXWDkm7lELwjNIkiTGjBnDwYMH6dKlS0GHIwj5ytPTE0mSkGU505K6vr6+xMTEFIlpjKJFLQjPqI4dOzJt2jQCAwMLOhRByFdqtZrq1asDZNq1nTI/u0KFCvkWV06JRC0IgiA8czp37gzAtm3bMnz95s2blC1blho1auRnWDkiErUgPOP+/fdf2rVrx549ewo6FEHINpPJBIDZbM7w9b1799KgQYN0S7wOHjwYX19f1q9fz9WrV9O8tmXLFiIiIpg4cWKOC6rkJ5GoBeEZt2rVKjZu3CgKoAhFTnJyMmfOnAHg0KFDGW4zdepUjhw5wtixY9M87+joyObNm7G3t6dDhw6EhIQA1q7wwYMH8+mnn9KpU6e8fQM2IhK1IDzjhg0bhiRJbNu2jQsXLhR0OIKQJZ07d8bT05OzZ88C1rXWPTw8mD9/fprtunTpgrOzMz179kx3jJo1a3Lo0CFKly5NjRo1qFixIv3792fSpElMnjw5X96HLYhR34LwjCtXrhxvvfUWGzZsYPr06fz4448FHZIgPNXq1auztF3Xrl3p2rVrpq8HBQWxYcMGG0VVMESLWhCeAykFUJYtW0Z4eHgBRyMIQnaIRC0Iz4HGjRtTr1499Ho9P/zwQ0GHIwhCNohELQjPAUmSUlvVc+fORafTFXBEgiBklbhHLQjPiXfeeYeFCxfSoUOHgg5FEIRsEIlaEJ4TKpWK3bt3F3QYgiBkk+j6FgRBEIRCTCRqQXjO6HQ6Fi9ezKBBgwo6FEEQskB0fQvCc+bu3bv069cPi8XCBx98QLVq1Qo6JEEQnkC0qAXhOVO6dOnUAWXTp08v4GgEQXgakagF4TmUMlVr5cqV3Lt3r4CjEQThSUSiFoTn0AsvvECjRo0wGAzMnTu3oMMRBOEJRKIWhOdUSqv6hx9+ICkpqYCjEQQhMyJRC8Jzql27dpQuXZrIyEiWL19e0OEIgpAJkagF4TmlVCoZPnw4LVu2pEqVKgUdjiBkaOvWrTRq1IilS5fm+BhDhw5FkqR0j3nz5tku0DyU5elZX375ZZ4F8cUXX+TZsQVByNygQYMYPHhwQYchCOmsXbuWqVOncuTIEQD69++fo+NERESwaNGidM97eHjQq1ev3ISYb7KcqMePH48kSciybNMAJEkSiVoQCogkSQUdgiBkqG7duuzfv59q1apx5cqVHB9nxowZDBgwgH79+qV53snJCQcHh9yGmS+ynKi9vLz47rvvbHpyWZYZPXq0TY8pCEL23blzhzlz5vDuu+9Ss2bNgg5HEChTpgwAtWrVynGijo+PZ+nSpZw+fRoPDw9bhpevspyoXVxc6Nmzp80D+Oabb2x+TEEQsmfkyJGsWLGC0NBQMbBMKFS0Wm2O9503bx4uLi7s3LmT5s2b4+3tbcPI8o8YTCYIAsOGDQNg9erVhIWFFWwwgvCYnN6e0el0TJ8+nQsXLvDee+/h6+tL+/btuXTpko0jzHtZTtSenp55EkBeHVcQhKyrU6cOTZs2xWQyMWfOnIIOR3gGxcXFpXno9fo8Pd+BAwfw9/cnICAAAJPJxIYNG6hZsyarVq3K03PbWpYT9YEDB/IkgLw6riAI2ZNSAGXBggUkJCQUcDRCYaRu4I26UYnsPRpYu5v9/PxwdXVNfXz77bd5Gmvz5s05cuQIN2/eJCQkhM8//xytVotOp6N79+7s2rUrT89vS6LrWxAEANq2bUv58uWJiYlh8eLFBR2O8IwJDQ0lNjY29ZGfA4n9/Pz48ssvOX78ON7e3pjNZgYOHGjzWUx5RSRqQRAAUCgUDB8+HICZM2diNpsLOCLhWeLi4pLmodFo8j2GoKAgtm3bhkKh4MqVKxw/fjzfY8iJfEvUUVFR+XUqQRByqGfPnvj5+fH666+TmJhY0OEIgs3Vrl2bLl26AHDt2rUCjiZr8i1R16pVK79OVajNnTuXoKAg6tWrV9ChCEI6Dg4OXLt2jblz5+Li4lLQ4QhCnnj11VcBa9GToiDL86hzSpZlDh48yJ07d/L6VEXCwIEDGThwIHFxcbi6uhZ0OOnoLRbO6RM5oUvklC4BP7WGIe6lcFAobX4uiywTjw4XtKJCViGiVqsLOgRByFMlS5ZEqVQWmQZTlhO1t7c3EREReRmLkM9kWeaWUc8JXULq47w+CcN/BlhsiY9ibsly1NA62uzcJ8xhfKffQ4gcgwNq/BXF8JPcCFAUw19RDH/JDT+FGw6Snc3OKWTP4cOHOXToEEOHDi3oUATBps6dO0enTp3w8vIq6FCyJMuJetiwYYwdOzbHJxItpoIXZzZxUpeYJjFHmU3ptnNXqqitdaKKxoG1ceFcM+p4I+Q8ozx9GVCsJIpc/Cxj5WRmG/5lqyk49bkkjFy0POAiD+A/45c8JUcCJGvy9lO4ESBZ/y0puaCSxFjIvHL58mVeeOEFFAoFb731FoGBgQUdkvCcMpmsf6MyG9y4d+9eRo0aRdeuXRkyZEjq80lJSUiShL29fZrtY2Nj2bBhA7/++mveBW1jWU7UgwYNYurUqfz22280aNAgy2XdzGYzBw8e5OWXX85xkEL2mWSZi/okTugSOKlL5LgunqsGHf+djKBGoqrWgdpaJ2prnaijdcJfrUm9sOpfrAQj7t9gW0I0X0WE8ldSLLNKlKWEKnstXVmW2Wm+xEz930STDMDbqmq8b9eAWFnHLUs0oZYYbsnWf0Ms0USTTIScSIScyHFL2mpZKhT4Sq74K4pRXuHJu+qauEg5LzUopFWhQgVeffVV/vzzT2bPns3UqVMLOiThOZScnMyZM2cAOHToEH379k23TcoKW8HBwamJ2mw24+vri8Vi4dtvv+X9999HrVZz/vx5pk+fzs8//1ykyolKcjYmkk2YMIFPPvkkRzfg/f39CQkJyfZ+z6qUe9QRERE2KRZ/z2TgeHICJ3UJHNclcFqXSLJsSbedv1qTmpRrax2ponFEq3hyy1SWZVbGhvNF+C2SZQvFFCqmlSjN607uWYrttiWWyYa9HDZbf/5lJHdGal6hurLkE/eLk3XW5G2JJlR+9G+IJRrDf5reZSR3pmvfwkvhnKWYigKj0ci2bdto3bp1gdw33r59O61bt8bZ2ZnQ0NBCOaZCgMjISDw9PYmNjc2zAYApf6+il9XCxSF741XikswU63Ey2/F17tyZzZs3k5SUlPqcu7s7EydOZMCAAanPrVy5kg8//JAePXqkqao3d+5cZsyYQWhoKF5eXjRp0oTmzZvTo0cPVKo8H55lU9lK1NHR0ciyjLt71v5AP+7OnTuUKlUq2/s9q3KTqJMsZs7qkziR/KgL+47JkG47J4WCWqlJ2frwVOX8D/5VQzIf3r3KOb31F6eHqxfjivtnOtDMJJtZbTzFIuNh9JiwQ0lvdX26qmujlnI+OM0iy9yX41OT9zLjMSLkRLwlJ2Zo2xGoyP7nszAq6EQtyzJVq1YlODiYqVOnplYuEwqXZzVRC49k67KiWLFiOT6RSNI5Y5Flrht1aZJysD7pv7dyUQCV7ByoZe9InYdJuZydPUobjg0oZ2fPFr8qfBcZxg/Rd1kW+4CDyXHMK1GOqv8ZaHbefI9Jhj1ctVgHINZR+DJS0xw/hVuu41BIEiUlF0riQn2lP42VpRmm20iIHM0Hyb8yRfsG1Z7SWs+qeKLZxzrq0oISBNrkmEWFJEkMHz6cfv36MXPmTIYMGVLkWiKC8CwQv3WFTJTZaB3w9TAxn9QlEGtJP4jCS6m23lO2tyblGlpHHPNgCtV/aRQKvijuT1MHV4beu8YVg442oecZ4+lHP7cSJGPkR8NB1plOIwMuaBli9xKtVZXybEBhSYULC+zf4VPdJs5b7jNYt56Jmla8qCqd62NvZxEXOEwsD+jK/2wQbdHSrVs3xowZQ0hICL/99hudOnUq6JAE4bkjEnUBO6tP5Hq0MXXQ13WjLt02WkmimsaR2vbWwV61tE74qOwKdCR9U0dXdgdW45N719mRGMP48BC2Gq5gcbpCJNaKVq+rKjHErjHFJIc8j8dNsme29m3+p9/OAfNNRuq3MEp+hbbqoBwfM5SLXOAwALe4gBkjSp6vOcZarZaBAweyZMkSMXNDEAqIzRP10KFDSUhI4KeffrL1oZ9Jne5dReGUttu4rFpLrYet5VpaJ4I09qgL4VQkD6WaJaUqMC/2JotM/xJuby0TW0x2Yrz9q9RX+udrPPaSmu80bfjWsIdtpgtMNPxJlJxEd3WdbCcZGZldLE/92oieMK4QQM4Tf1E1YsQIxo4dK7q9BaGA2Pw375dffiEqKkok6ixykRTUc3C1DvZ6mJiLKYvGH0SLLLPedJb16gNo1QaQJWISSnAr3oeNrhaqeVqwf8qIcltTSUr+Z/cqHpIDy43H+cF4gEg5kaF2TbI1//siRwjlEmo0+FCOm5znOmefy0Tt4JD3PSKCIGSu8DXTnjMH/aryi28lPvX0pbmjW5FJ0tcskXygW8cUw18kYqCKwptF2k50VNRHlpUsjrlP65BzXNAnPf1gNiZJEh/ZvchQu5cAWGs6zXj9Dgxy+uIuGTFjYjcrAWjIG1TDepwbnM2bgIsIo9HIypUruXHjRkGHIgjPFZGoC1hRu++nk03MNxygZ/Iqzlnu4YCaj+2askDbkSoqL770CmClT0WKK9VcNCTTKuQcP0XfK5B1XzurazFB0xIVCnaZL/OpbjOJcvppbP91gt1EcgcHXGjEW5SmGgC3uYL+YbGW51GfPn3o1q0b06dPL+hQBOG5IhK1kGXHzKF0T17Jz8ZjmLHQVFmWVfbd6KiugfKxe+jNHd3YE1CNVxzd0Msy/wu/Rfc7l4kwGfM95haqikzVvokDao5aQhmo+40oOfNWvp5k9rEWgKZ0RIM9xfDGDS8smLlFcKb7Put69uwJwOLFi4mOji7gaATh+SEStfBUMXIyX+l3MVi3njA5luKSI5M0bZikbZNpJTBPlZrlpSrwdfEANJLE7sQYmt86y57EmPwNHqiv9GeutgPFsOeSJZz+yesIs2Qcx0E2kUgs7pSkDq+lPl+G6sDz3f39yiuvUL16dRITE/nxxx8LOhxBeG7YPFF37tyZHj162PqwQgGQZZntxgt0TlrONtMFJOAdVXVW2XejqarsU/eXJIm+xUqw3b8qFe3sCTcb6Xr7El88uIXOkr68aV6qpPRigX1HSkku3JZj6Z+8jkvmB2m2iSeaA2wG4BW6onxsrGVK9/d1zuRf0IWMJEmp1clmzZqFwfD02wiCIOSezRP17NmzWbJkia0PK+SzcEsCw/Ub+dKwi1h0lJU8+FHbkU80zXCUNNk6VmWNA9v9q9LHzVoEf2HMPdqEnOdSPg8081O48aO2I+UVnkSTzHDdRu5Z4lNf38dajOjwpQKVaZD6fILlKgFyBQAeEEIisfkad2HSuXNnSpQowZ07d1i7dm1BhyMIz4VcJerq1atz7NixTF/fvXs3//vf/+jTp0+Gq54IhdM/phv0SP6Fw+YQ7FDyoboRS+07UzUXZTntFQomegWyrFQF3JUqgg1JvB5yjp9j7ufrQDMPhSM/aDukJuvP9JtJkg2EE8YJdgPwGt2RsA7yCzWu5bCuC8G6YfhYSgDPd/e3RqNh0KBBgHXVooIYJCgIz5tcJepz587x4osv8tVXX2HJoCvzlVde4euvv6ZZs2YsXbo0N6cS8oFeNjFdv48R+s3EoKO8wpNl9u/Rw64uqlwsovG415yKsTegGk0dXNHJMqMe3GR29B2bHDurHCUN32vewF1y4Iolggn6nfwpr0TGQiXq409lAExyAteN1nuxCfJlAnVncTbruf4cJ2qAAQMG4ODggJubGzExMQUdjiA883KVqJVKJUajkfHjx/PSSy9lOr+yR48euVrQQ8h7Ny1R9NOtZa3pNACdVTVZpH2XAIXtf25eKjt+8anIZx6+AHwbEcaymPs2P8+TlFA4M0nTBjUKzsonuSwdRULBK3RN3eaWcQUmYrGX/HGSyiORRDX9PaJMf+VrrIWNh4cHly9fZu/eveL3WhDyQa4SdWBgIBs3bsTT05ODBw9So0YNFi9enOG24he6cJJlmY3Gc/RKXs0VSwTFsGea5k2GappgJ+Vd8RWFJDHcw4eh7tZV1UY9uMnG+Mg8O19GqilLMlrzChXtrgNQ3FIHT3wAMMhRhJp+AaCceiB1tIvwUDZGAfgZrnPOMBk5g/W+nxc+Pj4FHYLwnNi6dSuNGjWyWa/sp59+iiRJ3Lx50ybHyw+5StSSJPHGG29w7tw53nzzTRISEujXrx8dOnQgMjIy3bZC4RIn6xir384kwx70mKiv8GO5/Xs0VAXmWwwjPXzp6eqFDAy6ey3fp28FqGJwU8ZjkhX8plNx1nwXgJvGJZhJxllRmeLKl1FJDtSwm0rswxW57pvWctYwEtMT5mQ/D8LDw9myZUtBhyE8g9auXUuDBg1o27YtBw8etMkx9+/fXyQL9tikyVS8eHE2bNjA4sWLGT58OBs2bODQoUMsXryYli1b2uIUgo2dNt9hvH4H9+R4lCj40K4RXVS1slUP2xYkSeIbr0BiLWY2xEfS984V1vhWor59xvOzbcmMMbVUqGyuRqKsZqRuCz9omxFm+g2wtqZTLjIlSYG7XQeCFUuoYIgm3PwXx3X9qKGZilZRIs/jLWyuXr1K1apVkSSJ0NBQPD09Czok4RlSt25d9u/fT7Vq1bhy5Uquj5eQkEDfvn3RaDQkJ2etwuCXX36Z6/Nm5osvvsjytrlK1P8d8dmnTx+aN29Oz549+fvvv2ndujUfffQRkydPzs1pBBsyyxaWGo+y2HgECzI+kitfal4nSOmdZrskyy1uGZdjIoniymZ4KhujyqPlKhWSxMwSZYgzm9iTFEv325f43a8yVTSOT985F47zJ1HcwxE33lcOIUSxlSuWCLbrv6Y8Roop6uKubJBmnzJUZ5/KCSRXquqjSZAvc1TXk+qaKbgqq+VpvIVN2bJlqVq1KsePH+eHH37g888/L+iQhGdImTJlAKhVq5ZNEvXw4cPp1KkTK1as4NatW1naZ/z48UiSZPPZDZIk5V+ijo1NP580MDCQv/76iylTpvDFF18wb948du/eLUoOFgL3LfGM1+/glMU6yrqVqhKf2DXDUbJL3UYvR3DDuIg7pg3ImAF4YN6FAg0eykZ4K1/FIw+Stp2kYGGp8nQOu8hRXQJdwi6x0S+I0nZam54nhZ4k9rEOgGZ0xE1y5XvNG4zQzaesfAEkKK3+KN1+PpRDjZZwpY5A7dfc1c8gQb7CCf0Aguwm4K16NU/iLYxSCqB07dqVOXPmMGLECLTavPl5Cc8vW3ymtm3bxokTJzh06BArVqzI8n5eXl589913uT7/42RZZvTo0dnaJ1eJOiIigkmTJtG3b1+KFy+e+rwkSYwYMYKWLVvSvXt3zp49K+5RF7C/TFf5Rr+bePQ4oOYzzcu0VFVKfd0kJ3DLuJwQ0y9Y0AHgqWiMo6IcD8y7SZZDCTfvJdy892HSfhFv5at4KhujlOxtEqODQslyn4p0CLvAeX0SncIustEviJJqu6fvnE3/spEk4vCgFLV4BbCOBP9AEYreIhMs+3HZHM+H/5mVpkRNIEFc4QRhinvU1y7ivOELIsz7CDZMwFVR9bnqBu/YsSMjR44kLCyMVatW0bt374IOSXjG5DZ3REZGMmjQILZs2YJarc7Wvi4uLqk17m3pm2++ydb2uRpMNm7cOPR6PT/88ANXr15N93pKQZQRI0aIRF1AdLKR7/R7GK3fRjx6ghTe/GzfJTVJW2QDocbVHEhuz03TYizocFFUo7ZmATW00ylnN5CG2t+or11BgKoX9pIfFvSEm/dwzjCG/cmvcVY/ivumXZjl3K8s5apUscqnEqXVGkJNerrcvki0OWvLU2ZVNPc5mEGp0FjzefSWg8hI/ElNlhmPsd14Id3+KeVEb3AWleRAdbvvcVPUwoKOS8YpNo01Ixc5wiWOoiMxz8/1NGq1miFDhgAwbdo0UQBFyFRcXFyah16vz5fzfvTRRwwZMoSgoKK7lnyuWtTjxo176jZqtZrvvvtOXGkXgKuWCL7Q/cENOQoJ6KquRTd1VYxSIiHyHSLNfxFj3IhFjgLAIrmSpK7GbaUrJ6RVJPMjDrhQQapLJakeZe0+oqz8EQnyZe6bdj1saYfxwLybB+bdKNDgqXwJL+UreCpfzHFLu7hKzRrfyrwZcp5LhmS63b7IWt/KOCpyX3QljkiW8yUmDPhRiUrUT33tmnEuAKWUrWklvcrPxmN8a9iNr8KNao9VZUtJ1LcIxowRpaSmot0ojujeI8K8j3DTPoqrmuY61oxc5wxr+B4ACQU+lKMM1SlDdXypkKY+eX7p168fEyZM4Ny5c/z555+89tprT99JKJLCK6vQOWXvMxafYG2k+fn5pXl+3LhxjB8/3lahZWjVqlVEREQwdOjQHO2fVwMks3vcLH/Hu3fvzvLly7MdUIqJEyfman/hERkLOpJIJp5kEkh6+G8y8SSRQLIcz2U5lOuWu5TQGAiQzDhJMhHSfmYAbuZkAg3ROMnWZSf1kpIQtSv3lU4ghQKhqeeKJYK7XGcfa3GlOBWlelSS6lHabgBl5YHEy5d4YPqTB+Y/SZZv88Bs/b8CLZ7KxngpX32YtLN3n8lPrWG1byXah17ghC6RPncus6xURTSKnHcCJRDDMiYQzX2K4c07DE8tFRplPkK05SgSKkqr+1NJKslNSzT7zNcYqdvCTG07yiutt3e88ccBF5KII4wrBBCEk6IM/qru3DIt5ZJxMsWU9fJk8N1Z/gZAjRYjOsK4TBiX2c+vFMePAUxBgW2qyGWVm5sbffv2ZcGCBVy8eFEkaiFDoaGhuLi4pH6t0WRvzYDsunPnDmPHjmXfvn057tE9cOCAjaPK2XGznKg3btyI0WjMdh8/gE6nY+PGjdne73mgJ4kYzGmS7X+Tr/XfR8/pSETmCcU2JOvD47GcZgIcLXpKG2Jws1jvQVtQkqCugEVVHX+pGBVxwgEn7HHGHifscSKcUC5xlGucIZZwjrCNI2xDixPlpVpUkupT1q7vw6R9kQemP7lv/hOdfCfXSbuixoGVPhV5J+wC+5PiGHjvKgtKlkeZg1+6JOJZzpdEcgcXPOnBeFzwAKyDO1Ja0z6qDtgrrEVYvtC8xgBdLFcsEfTQrSJI4U0bVRCvqSpQWqrKeQ5wg7MEYO1SK63uy33zTnTyHW4YF1Hebki243wSM0YucBiArozBleJc5ww3OMNFjhJOKDc5n7okZ34aM2YMY8aMwdvb++kbC88lFxeXNIk6r/Xt25cJEyaka8nnpaSkJIKDg/Hx8aFkyZyvjfBfWU7UCQkJvPvuu7Rq1Spbo/B0Oh3btm0jMbHg76cVRrPVg9CS/YsfsLaqHB4mVHuc0VkUnDZHES+DWbajqTKIJsog1HISMcYNxJj/AUBCja+qI4Hq3thJbk88hy8VqMUrGNFzjdNc4iiXOU4ScZzlb87yN0pUlJaqUVGqR0W7bpSVBxFvucAD8+5MkvZLD0ePN3pq0q5l78SSUhXofucSWxOi+ez+DaZ4l87WFbKORFbwFQ8IwYli9GQcbjwa/Bhu3kucJRgl9gSqH92icZDsmKJ5k2mGffxjvkGw5T7BhvvMNOynmZ0ChRquy2doJnUCQClpqWg3gtP64YSafqGkqjVOinJZjvNprnEaPUk4UQx/KiGhoDavUJtX2MwCTrCL8xwskEQtErRQmMyfPx9HR0e6d+9u82PPmjUr9f+SJDF48GAANmzYQN++fVPr3w8YMIC5c+fa5JzZutmwadMmNm3aZJMTC48oUePwWCvWAWe0D/9NScKP/z9lO9XDBG+SzSwyHmaZ8RgyrgRIxfhS8zqBCiU3jD9xy/Tbw6lWEiWUr1NGPSC11ZhVajRUoj6VqI8FM6Fc4hJHucRRorjHVU5ylZNs5Ud8pPJUVNajkrIdZeSBJFguct/8Jw/Mux8m7V08MO9CiT2eyib4qTo9cQ5yE0dX5pUoR/+7V/glLhxXpYrPPf2ylKz1JLOSidzlOg640INxuPPoSleWzVwzzgfAT9UFjeSRZn8vhROTtG2IkpPYYbrIFuMFrsuR/G3U01QNIVxmvmE/b6hq4KNwxVPZmOLKlwk37+Wi4VvqaBYiSbZZTfY81u6yIBoi/WccaBUacoJdXOAQbXg/37u/H3fy5El8fX3TzAQRhPw0efJkrl+//sS/EaVLW6sMLlmyhF69emX52MOGDcPBwYFRo0bRp08fAIKDg+nUqRNGo5F69erx0ksvsWHDBhYuXEi/fv1y9V4gm4lalmXc3NxwdExfiOL+/fsZXlUnJycTFRUlRn1nYqjxB0qQvaT5uDuWWL7Q/8F5i3VRi7dUVRikrsMD8zoO6Fdgxlri0kPRkLJ2A3FWVMx1zAqUBBBEAEG8Rg8iCEsdiXybq9zmCre5wh5+wV0qQUVlfSopX+MF+SMSLZceS9p3uW/ewX3zDlwV1fBTdaW4simKDGqMt3F2Z4qlNB/fv8EP0XcpplQx2P3J3zcjelbxLWFcRosT3fmC4vim2eaueRtJ8g1UuBKgzvzq211yoIu6Np1VtbhoecAWUzBRlnNoFclstezh5+RTvKAMoI+6PhXUnxBlPkys5Qx3zJvwUbXL0ff5cSYMXOQoAFVplO71QKqk3je/wTnKUiPX58yJYcOGMXPmTL744gsmTJhQIDEIQmBgYKa3aa9du4bJZKJMmTKo1WpcXV2zffyVK1fy1ltvpX79ySefYDQaadGiBdu2bUOhUDBs2DDefPPN/E/UO3fu5NVXMy7oULlyZS5cSD+VBeDPP/8UpUQzoSbnAyp2mi7xvX4viRhwRsNIuyZU5BwndJ0wYh3J7ayoTDn1YNyV9WwVchoSEsXxozh+vEQH4oniEse4xFFucJYo7nGQTRxkEw6SCxWUdaiobEg9+QOSLVe5bfqde+Y/iLWcJdYwCq1UCj9VJ0qp3kIlpb0g7OLqRazZzISIEL6JCMVNoaK7m1eGcZkwsJrvuEUwGhzoxv8oQWCabSyygRsPl7EMVPdEJTk9/f1KEpWV3lRWerNBvsBp9lBVZWafGQ6Zb3HIfIv6Cj+6KDuTaF7MVcNsiiubYiflblGaq5zCQDIueOBLhXSvK1BSmQYcZxfnOVBgibpx48bMnDmTefPmMWrUKOztbTPHXhCyY/fu3Zm+FhgYyK1bt9i9ezeBgYHZPrabm1uaJH348GF27NiBRqNh/vz5KB4OePX19bVZoa8s98n5+PhkmqThyZPSX331VUqUeH6KQOS1JNnA1/pdjNPvIBED1aUSzLIrib1pLJeM32MkCnvJl6p231BPszTPknRGnHGnLi3oylhGsIR3+JhqvIQWR5KI4xR7WcP3TJb6sF25Fb2mMbXtfyFQ1Qc1rujkO1wxTuef5DZcMcxEZ7mX5vgD3Esy5GFLeuSDG2zKYMUtM0bWMY3rnEGNlvcYgw/p7xXfNv2OTr6HRiqOr6pjtt9rOcmaDANUSay170FbVRBKFByxhPKJSU8sXpiI46ph1lOO9HSPur0bpev2TlHlYUv7IocxY9u551nVrl07AgMDiYiIELM8BJswmayfZbPZnOHre/fupUGDBmnuHeelEiVKpKkXMGrUKCRJ4v3330+T+CMiIggNDc3gCNmX5USd2yXGli1blqv9BatL5gf0Sl7NVtMFFEh8pHSlr7SF28avSJZDUeNORfVnvKBdh7fqtRzdHzVZZP4INdNzr563/tAz7ICB2eeMbAsxczHGgs6ctaIWGuypQiPeZiif8hM9GEd9WuNKcUwYuMRRNjGPWXzGP3b30dgPJkA9GAcpADOJhJhWcEDXjnP6scSZz6ced5SHL90fW3Fr72Mrblkw8zszucwxVNjRhZH4UyldbCY5kRtG65KspdXvZ3v6GEBpqgJwn1sUU0iM1bzKWvvuvKmqgoSKVXJtLDLcNW/hsPGPbB8/hRE9lzgGWO9FZyaAIBxxJZkEbnAux+fLDZVKlTpndfr06Vgsz+9SoELuJScnc+bMGQAOHTqU4TZTp07lyJEjjB07Nl9iql+/PqNGjSI4OJiBAweyb98+XF1d09Xu/vTTT21WAEiSbXSkoKAggoODbXGo50JcXByurq5ERETg4eHx1O0tssxq00l+MBzAhIUgSUdP6SpG+SQAShzwV3fDX9U1x/N3DWaZLSFmll02E5aY+cdCAfg6SZR1sT7KuCgo6yIR4CShUjx9LIKMzIpNS9gavIaSrbW4VU97L8lHLkt5iyda40USLGdSn3dV1MRf9R7FlU2woGDgvatsjI/CTpLwU2lQSxDkuREvpzNYZCWhEV0xGiqiliTsJAk1Cuu/kkR5u98I1KzBXvLjBe3aDO+LZ8V8PuE+t+jAcKryYurzdy1x/Gw8BqafqCdd5oHsSrTqcz7SZL0QitFoZNu2bZRp48Hvqhm44cUQ5qbO/c7IVhZyjB3UpDlvkb5WeX6Ii4vDz8+PuLg4tmzZQps2bQokjudFZGQknp6exMbG5tn0p5S/V5eP1sM52wVPTFSodzTb8XXu3JnNmzeTlPRoKVl3d3cmTpzIgAEDUp9buXIlH374IT169GDOnDlPPW5K1/eNGzdy1PUdERFB69atOX78OLIso9VqWb16NW+++SYAu3btYurUqezcuRNJkjLtCciO/C9jJGRblJzEl/qdHDaH4EYC70nXKMVZjLKMhBIfVQcC1X3SjVjOqiSTzO83zKy8YiLcOsUaVzvoUlZFTU+JG3Ey1+JkrsdbuBYnE2uAkASZkASZvXeAh4t3qCTwd36YwJ2tybusq4SPo5Rm7vOV89eYM2AFBr2BS5MTcQhQMnjtuySVu0sol7gtXeO28hoowddSg0CjEcyXiLWc4qzhFPaSD36qLkz3bkOCxcLuxBiuGZNp4rXzYZKW2HnnDW4megMxaCUdnsooPFWReCqjKK6Kwlv9LwB/JryFn8qMnzpnvwqlqc59bnGdM2kSdUmFC6M0zbmtqsRZfVe8pFjCTXN5oFTirqydrYupYIV1LV7raO8nXwhVoSHH2MFFjtCWfihzOPUvN1xcXOjXrx9Tp05l2rRpIlELObJ69eosbde1a1e6du2a5ePevHkzhxFZeXp6cvDgQQ4ePMiDBw9o2LBhmjnTcXFx9OvXzyaDyFJkuUU9YMAA5s+fn+nrT2tRP23/501WW9SHTLf4Ur8TPdE05zwNpMtID+8/eitbUEY9AAdFzib0x+hl1lwzsfa6mViD9TkvLXSvoKJdoBJ7VfqkIMsykXq4FmdN2tfjZK7FWbgeJ5OYyW1RjQICna1J209j4rdvZnH/+FEa1ymHj583a376ndLlA1izfyl6uwQucpSLHOEGZ7E8vAiws5gINJkpbopGwlojWIUzpVTtiTe/SrDyN6IVB9DKZryMldDKAPdR8ACFFJ9hXDcNvnz+4DM0kpJB7qX4qFgp7LNZ+ewKJ/iFb3DDi6HMy3Cbu8btBBsfdYtJKHFRVH24jGY97BXl0UjO6ZKw0Whk846NXGjzOybJQD++oxRlnxiPBTPT+IBEYniPMZSndrbej62EhIRQpkwZSpQowZkzZ3B3dy+QOJ4Hz2qLuqAdPnyYBg0aPH3DfJDlRF2sWDEiIyNTR7T915MStdlsxtPTUyx1+ZinJWqjbOYHwwF+NR2hERdpKgVjhzWbFlPUo5zdYFwUlXN07gfJMiuvmPj9hpnkh70y/k4SPSsoae2vRJ2F7uv/kmWZ+8lw9WHSTkne1+Nl9Jn0/NgrZSo6y1z6YSYJ+/5g2Ocf0HPwe6mv60jkMse5yGGucgojehSyBS9TIr6mBLSyIcvxqXBBK5XAXlEKrVQCrVSSOPOLjAtP5ECyNZH7quwYVzyANk7Fsjyd0EAy39ELC2aGMJdiZFz4Y0byLPSWg9SQolA/HJGfwoJEpNqXpuoplKRM6vNGo5GVp+Zxq97fFKMEg5n91BY1wDYWcZQ/qMnLvMXALL2PvLB//35eeOEF7Oxsv/qZ8IhI1HmjSZMmhIWF8fbbb9OxY8cCTdpZ/o7HxsbSo0cPOnfujIND+m67pKQk9u7dm+7meXJyMhs3biQuLi730RYSiYmJjB49mnXr1mE2m2nRogVTp061WXWmEEs043TbcJIPMpwzuEjWVamcpAqUsxuMu6JBjualhyZYWHbZzJYQM8aHY3wquEr0qajiZR9FjkpzppAkiRIOUMJBSePHBvibZZk7idau863/XGL38ZtIPoGofEuTbJY4FSNBl+EoWnRl3j9beCkknDL+1kIZWhypThOq0yS1MtpF6TCX1Me4p0rA3ZyMjykOV4seIwq0ipK4SxWxl0qilUqlScwZTr1Sw6++MlsSohgfHkKYyUC/u1d4ycGFr4oHUFHz9O5pO+zxpTwhXOQ6Z6hDxnWuy6he4VsDXJNKMlPTiGjLMSLMh7lr/gsVRoobQ/lVMYw6yvdpSNvUkd0xPtYF7qtkods7RRUacZQ/uMBh2tK/QLq/wfqHThCKqv3793P37l1+++03RowYUaBJO8staoVCkeuiJba4qV4Y9O7dGycnJxo3bsyBAweYM2cONWrU4NChQ1luPWTUopZlmW3GYLYYl9GUYxSXrBc3WqkUZdUf4q1skaNR3FdiLSy5ZOLPMEtqhfBaHhK9K6po6J37n2tW3Lh8i/de6YsuScdHo9+n98c9CUmQ+fO2hV+vm4h6uOKd0mTgnYr2dCmrxNcp4/dqxsRNznORI1zkMAlyDC2lXrxA2xzHl2QxMyfqLvOi76CXZZRAb7cSfOrhg6vyydezf7GGfayjMg14lxEZbnPXEsfbyUtRIrHDoT+OkoYdLOWQvJmKxiSKmyLQS0pOaEsRINWkHYORjEqmKfohK818wJR088AzY8HMdAaQQDRdGE0F6mTzu2FbJpOJixcvUrVq1QKN41klWtT5IyVpr127Nt+TdrYSda5OZKPRbwUtPDycZcuW8cknn6Q+9/nnn/P111+zd+9emjVrlqXj/DdRJ8h6FuiW4GHZiJ8UAYASF8qo38dX1QGFlP3uw1ORFpZeMvHPvUdTZF70VtC7ooqanrYpa5kVumQ9PVr050rwNeo3qcO8X6ehVD4qcak3yyz+9zaLTscj+VjL+klAk5IKupZXUctDyvRiwrqSWCL2ONsk1hCjjvHhIWxPsN6m8VCqGOPpR0cXT9SZXCTd5gqLGA3Aq3TjRdpluF3HpJ8Jk2P5XtMWX1USyxgPQCf5E6J0k0mWQ3mgdOGypph1eVFzPU4pd+Mul2SQNCvLLWqA7fzEEbZTnSa0x7aLg2THjRs3aN68OTExMYSGhuLk9PSiMkL2iESd//I7aWfrr/WKFStISkrCYrFk+ZGUlPRMzaGWJImBA9Pe9+vQoQNg/YXJiVPGQ6xJ7kZN+Sf8pAgs2BGg6k1j+434q7tkK0nLsszB+2b679fz/j4D/9yzoABe81WwsrkdM1+0y9ckDTD1f7O5EnwN9+LFmDj/izRJGkCjlPiwiS/tb27FPO0z7G+cRQb23bXQf7+B7nsNbAsxY7Skv6aUUNgsSQP4q7UsLlWB1T6VKG+nJdJs4pP7N6h49Tidwi4wI/I2R5LjMciPLn58KE9TrAVT/mQF+/ktw2PXU/oDcNR8jY1Yp5HU5lUqSQ2pbPc5IOFljqOM2VoK9JTSWl2psiXr3d4pqjwcgX6RIxjQZWtfW/L390elUhETE5PrWgyCUFiULFmSQYMGsX//fv79918CAwMZMWIEZcqU4dNPP+Xw4cM2PV+WW9SlSpXizp07OT5RyZIluXv3bo73L8yOHTtGgwYNCAkJwcfHJ0v7pFyh/nK3H57OJ1FI1kFFjoqW1NEMRSNlb2Fxsyyz97a1i/tSrPVHqpKgbYCSHhWU+GfSjZzXdm7Yzci+45AkiXnrpvHCy5lXSYuNjqNd/S7ERMXSe9IY4uu8xrYQM/qHObG4Ft4tq+Lt0kpc7fK+u94oW1gSc5/ZUXeIMKcd0q6VFNTVOtHQwYWG9s7U1jpxWLGevawCoAkdaca7aRLsXtNVxui30VBzE1dVCG54MYCpaLCW2bxsmEqoaTUayYsk7VsclHaCLNHP9D2l1KWzFbuMzGwGE8093mIQNWmWu29GLsydO5dBgwZRtmxZLl26lO5CTcgd0aIuPDJqaU+ZMiXXx83yX+/cTq1asGBBrvYvzLZv307v3r2znKQf58gxFBKEE0RNzUoaab/KVpI2WmQ23jTRcZeBUUeMXIqV0SrhvXJKNrbU8L/a6gJL0qE3bvPVsO8B6DOs2xOTNIBrMRcG/a8/AOsmzuQDnzi2ttLwYZAKDw2E62DueROtt+v59qSRm/F5W/VKLSnoX6wkp8vUZm9ANb7xCqCtkzseShU62cI/yXFMjgzj7bALVLx2jPX3avGixTpqfT/r2MMvyDy6Dq6t9MVLGYGrKgRkiXYMSk3SAGXVH2Ev+aKXH+BnCKe36WvK/ftauoVEskJCSk3Op9iTu29ELvXq1YtixYpx7do1Nm/eXKCxCEJeeryl/c8//6Su0JVbNqtMVtSNHDmSf//994nb9OnTJ3VZsxTR0dE0b96cnTt3ZmtZv5Qr1Dl3WlDafSCt7N7I3hrLJpkNN80sv2LivnVQOC5q6FRWSaeyKtw0BbtamUFvoFerD7lw+hI1G1Rj4abZqFRpr8RvR1qISZSp4v+ohWU2m+nR4gOCT12kzbst+fqHz63HM8vsDLPwy1UTl2MffWQbl1DwTmklnloJlQKUEigV1t4EpfToOVXKcw//zc0AOlmWuWLQcTA5joPJcRxIiifcbATAW6lmuO81bmrWANCQN3mN7khIJBLLd/JHKCU9JcyN+UA5LN2xo80nOaH/AJCpqpzOoT8iad26daYrAT1JLBHM4ENAfuLUsfwwZswYvv32W1566SX2799fYHE8i0SLunBKTk6mRIkSxMbG5vpYIlHnUq9evfjoo4+oX79+tvZL+eCffHCVmsWfXMQizX4GmbXXzay+aiLm4TRiDw10K2/tEnZUF47lRKeMncXK+WtxLebC6n1LKOFjTRI6g8zf5038ccLEuVvWFnGrOio+amOH3cMCK+eOB9O9hbVlvXjrXGq98GglKFmWOR5hYeUVM//cs5DTD69SghIOEmWcJUq7SJRxVlD64f8dMij08iSyLHNEl8An965zzWi9H9ytxGWcXDYCUJ/WvE5v1jKZixwh3uKAs7Ez4zStMzzeJcMUwkxr0OBN5J4etG7ZPkeJGmA5X3KdMzShIy/TKUfHsIU7d+4QGBiI0WjkyJEj1KuXfwvFPOtEos5/t27dYs2aNYSEhJCcnJxuWrLRaOTEiRNcvHhRlBAtaJMmTeKtt97KdpJ+nJ/CLUvbRehkfrlq4rfr5tQKYD4OEj0qKGkboESjLBwJGuCv7f+wcv5aACbMGYN3KS8uhpr544SJfedMJD2ciqWQQAa2Hzdx7Z6Fzztr8HJVULVOEO26tWXDii1MGjmdlbsXpbbGJUmibnEldYsruRVvYfU1MwfuWzCYZcwymGUwWcD08N/M1g8xy3A7UeZ2oszf9yClDCpASQco7aygjItEaWeJci4KgoplPvJckiQa2DuzK6AakyPDmB99lxX3KtBA14paXts5wjbucp1QLiLJSs7oK6GR7xJuNLArKYa/k+J42cGVd12tPTLl1AOJNP9LshyGpsKfQPsc/yxq8jLXOcNp/qIZHTNdeSuvlSpVis6dO7N8+XI2bdokErVQZG3ZsoWOHTtiMBieuuiGraa+ihZ1Di1cuBClUpmmKzw8PBwPD48sTWXLagnR24kWll82s+mWGcPDW7JlXaxzoF/1UWRpEYz8dDfsHp2b9iYuJp6OH/akYqte7Dhp5NaDRx+zku4SLWupeLWmilsPLEz6VU98Mrg6wJh3tdQsoyQqIpp29bsQH5vAyEnD6dyvQ47ikWUZC4+StvlhEtebrYn6Rry1gtqNeJnrcRYi9Rkf580AJZ/XVmXpF+9YcjzDHrauK7qcpZn3DiTJ+v6rmjowXReJWbJw5341DCZrURWNJHG0dC2Kq6wt52jziYdd4FBWMYxAbdZrGT/OiJ6p9ENPEt35gjJUz9FxbOHy5ctERkbSsGHmK4AJ2Sda1PmrUqVKXL58mRo1avDee+/h6emZ7m++LMvs37+fn3/+2SYt6iKbqLdu3crEiRPp378/vXr1ynQ7g8HAtGnTWLJkCSaTCV9fX7766qtcVU1atGgR27dvTy26Lssy4eHh7Nixg5UrV2bpGE9L1NfirHOgd4ZZUluF1dytCbpxCQWKfChSkl1Go4n33xzCxfsavF54B4tXTUwPLy7sVPBSFSUta6upFqBA8dgFxr1oC1+t1nP1rgWFBL1fVdOxsZp1i9fz7WfTcHZ1YsPhVbgXL5bn7yFGL3Mz3roAyY2HJVCPPrAWivmitoo3A7P2RyrZYuH7yFAWRN+jnPN5Xi7xBzE6f9aFdsDL4xL22jgiYwIoYypLnMXEDaOeIe6lGO35qG77Vd0CblkWAVBRPRpf9duZnu+i+QEAlZRe6V7bwgKOs6vA51QLeUMk6vzl7OyM2Wzm/v37ODtnPjVUlmW8vb158OBBrs9ZMP1gubB27VoaNGhA27ZtOXjw4BO31ev1vP766yxfvpxdu3Zx7do1Bg0axKuvvsq6detydP4lS5bQv39/fv/9d1q1akWrVq1o3bo1PXv2pE6d3FeAOhdl4ZODBjr9aWB7qDVJN/BSMP8lNYub2tGkpLJQJuk7URaGTTzG7cqf4db2awye1iRdoZSCwW/YsfozBz7roKVGaWWaJA1QopiCae9rea2WCosMP+0y8vUaPa26vEnFauWJj01g1lf5s6CLm0aipqeCt0ur+KSGmrmN7fggyPqH6bvTJq7FZW2kub1CwbjiAWzwC8Ksq8PSawNZF9oBJUpKWqz361sWgz8CqvJ5cev86qUx94l/bBqYv6I3hhvW1ucl47fcMW3K8FxRchIDdGvor1vFAdPNdK/X5GUAgjmEjsSsfSPyWFRUFImJhSMWoXDbunUrjRo1ytE8fLPZzKxZs6hSpQr29vYEBAQwevRo9PpMus6yoFGjRnh5eT0xSYO129tWAyeLXKKuW7cu+/fvp3z58k/dduTIkezdu5clS5bg72/9Y9ixY0feeecdevfuzY0bN7J9/t69e2OxWJBlOd3j448/zvbx4OFgpAdmPvzbQK+/DOy7a0ECXi6lYNnLdsxtbEfd4sp8KfWZHTqDzO7TJkYsTqb3jGSuWqqhdCqOVmmk3QsqfvjIntkD7GlbT42j9smxa9QSn7SzY/AbdqiU8E+wmeGLDPT5YiQAG1du5czRc/nxttLpXVFJAy8FejOMPmxEZ8p6J1R9e2d2BVRlUvHKzC1RnnNlazPD3XpBFyzfwSSbaelYjHJ2WuIsZpbHPrr6liQJw9Xm+CjeBeCC4WvumbanOb5RjuOAfiqfsJrBbGCKfjXnzGnrFfhQHk98MGHgPAdy+m2wme+//x4/Pz8WLlxY0KEIhVh2GmWZef/99/n444+Jj4/HbDYTEhLCpEmT6NmzZ47j+v7774mKiuLixYtP3dYWc6ghjweT3bx5k08//ZQ2bdrQoUMHm3R7lCljXV2oVq1aXLly5Ynnnjt3LkFBQekGe3Xv3p1Vq1YxevToLK95mlt6vT7NVVzKIiX7bhtZf1rPhRjr80oJWvpIdC8nEegsAWaMxsJTelWWZa7cldl1ysK+c5bUgWGybMEQcoJqxSOYMLYV1riN3L5jwWi0YDQ9/NdowWRK+VfGzc2OiuXdUo/fsiYEeKr49lcToREy8w740bDbQA6umMu3n01jyfZ5BVIw44ua0GMfXI+XmXTSwNiaWb/GVQPvODzstrfIBMpuuKAhDj1nDLeppijJABdvPo24xYLoe/Rw8kAjKTAajYCEn+UjLAojdy3rOW8Yj8WswE2qTZhlNXcsv2FPIkjggIFu8na+0imZqO5JgPToVkE1RRP2Kldx0rKH6uZmtvzWZJuzszNJSUnMnDmTDz74IN20PSF7rJ+TZ09Ko6xatWpP/FufmTVr1pCYmEhYWBglSpQgMTGRIUOGsHjxYtasWcOYMWOoXj37YzZq1KjBzp07GTNmDOvWrcv079GNGzdYvnw5ixYtyvY5/itbvyF6vZ6vvvqKFStWEB4eTkBAAO3atWPQoEGUKlUq3faBgYH06dOHtm3bMmjQIJt2dWm12ie+vmbNGkwmE40aNUr3Wko91vXr1xMZGfnEwVy28u233zJhwoR0z391RoHSAVSYqSWF8YJ0E7e7OoLvQuare+e95GQ4cQYio8BsBqOsJsm+BDrHUljsHuvyMSRjDg/DEn4bpdFEcLiajl3/zNa52rSQKfufugBvlLZj5/Vq3EkoxjXXN3F5ycDFf35i4ujvqNusZu7fYA60kt1ZQV22hIIy7CTVFTmvtFeqmpI4b1h1aS+hN9zQAm7livMAmHBwH41jklO3/XPXn0AQmqAbqH1OWde2tiiRVNY/0PdkNw7IlXlDdwlXhyjelbcwJt7Mm0fL46y3/oobNQZoIXFbcYU1BxfjHFEifVD5xMPDAxcXF27evMm4ceN48cUXCyyWZ0FSUlJBh5Anstooy0xISAirV69OHejl6OjIggUL+Ouvv7h+/TqXLl3KUaIGCAsL4/bt2/j5+WWYi8xmMw8ePMBkMmWwd/ZlOVEbDAZatGjBP//8kzok/eLFi0yaNImZM2fy+eefM3LkyHTdsynFGnQ629Ybflo38NatW4FHP+zHubu74+Pjw+3bt/n333958803bRpbRkaPHp2mazwuLg4/Pz8cVDKdykl0KqPGXVMGSB9vfjIYzWzacotVv10jMdGE5OKO5FkKya040sMPvGwxI0eHI0fcQY63Ll4hAWTwM1GrFdaHSkKtVqBSKVKf0+st3L6TyD+H7Oj63ku4F9Ok2be9RWbJbjMbDlnQVn8HRbGy7N85hyGjBuLm7prj93gv7D7rlmygaavGVK9bJVv7ai5Z+OmyzE5Fdbo0qUmAU85uR5jMwVw07yOunD2tK1vnUz+Ivc+XUbf518+LrxoGYTGZ2LVrF6+99hpqtRpZfp1L5ok8UPwBCgtOVOCm1JS5cjI1FT685DKGk6aBuEkhdNJuZ2cTZ75V9cRZsn5fFYRzlv3cbnSA7qZxFMfvSSHmqTNnzjBx4kT279/PxIkTCyyOZ0FO1xgoKp7WKMvMiBHpV7JTqVTUqVOH69evU6NGjQz2errvvvuOMWPGAOTb9KwsJ+opU6bw999/A9Z1Zj/55BPKly9PREQEu3btYvbs2fzxxx/89ttv6VqoTk5OxMTE2CTgrDp58iQAvr4Zl190c3Pj9u3bnDp1Kl8StUajQaPRpHv+l2ZKAkqkfz6/ybLMvr/vsGjpBe7eS0JycUdbqxIm5aMSlyVczNQLNFE70IKrYzGuBkfy9fClWExGPvnqI15v/zKq1MSsQKnMfO4xgNFoYeDw/Vy7HseMOef4ZkLadbbVwIetobKfiekb9OBXC7Pbt0yZspXvJmf/HpPZbGbNot+YM3EhyYnJbF27g01H1+Do/PR1p1P0ryJzOtrIsXALn5+QWdJMjTYHc9gbKgMheR/n5QcYVDKOkh093EsyK+YeN0x6/tTH01JrvVWkVqsfFjxRU0Ueh7u5FhrJGw9FI+bqViGjo4W6Eo7qEtRTL+CIrj9uhNJCXsdgk55Gqga0UVXmDcUHxPCAUOkia9Tf05eJuJD3vUkZGTx4MFOmTOHw4cMcPXo0w54vIWtyWgynqLD12Jx79+7x3nvvUaFChRztP2PGDADatWvHxx9/TKlSpdJNz7JYLOzduzd1ZlBuZflG24oVK5AkiR49evDXX3/xxhtvUKlSJRo3bsyECRO4ceMGL7/8Mk2aNOHatWtpT5LLJTKzS6fTkZCQAFgTckZcXa0tsoiIiPwKK0NOhaCS2PkLUQz59B++mnScu1EWtJVroqxQC5PSHictvNlAxdwPtfz8qQuD3nGnUV1PShaXmPvFN5gSH9Cm/Qu817cV7u5aXJztsNeqUKmevs61Wq1gzIjaqNUKjhx7wJZttzLcrlk1FTM/sMfDwYDS2YuTdm/y0/rQbL3Hy+ev0uv1AUweM4vkxGSUSiVR4dEsnZ216XQplJLE13XVFNPAlViZaWdy1rVVSuGKj+SCGQunzLcBcFQo6e1m7ZKeE3U3w6t1haTCR/U2nsoXuSVHc8USgRIFL6us1e00kif1tT+iknxxkxJ5Wd7DCuNxuiSv4KPkjbgb2+EhlyKOCH7hmwIbBe7t7U23bt0AmDZtWoHEIOSvuLi4NI/cjLzOqRMnTmA0Gvnhhx9yfAyTyYSzszNr167lxRdfpHTp0gQEBKR5lC5dmj59+lCpUiWbxJ3lDHr9+nXAeq81I3Z2dowbN46lS5fSuXNnTp8+bZMAc+LxriAHh4xbSykXD7buki9K7t5L5KtvjzHkk38IvhiLnW8ZNDUaYnL0QKGAtxupWPaxAwPbaChX8tGACYvFwhcDJxJ+L4LS5QMY9d3wHMcQGOBCv96VAZi/6DyhYQkZb+elYOEwN1x1V5CUdqw96c70DToMxid3PemS9cz+agFdm/fl3IkLODk7Mnbqp0xaZB0vsGLeau7fzt48R097ia/qqpGA32+Y2RmWs8F+dVOXvXx00dHHzRutpOC0PpF/dfFP3H+n6TIADZT+uEqPej40kif1NDMAKC2F01ThgxKJc5Z7fGc4wFFdFTSyM/e5xVqmYKZgBiMNH2793GzZsuWZ7759VlzwNXHe35itxwVf68Wsn58frq6uqY/Mckle+eOPP2jTpg0VKlTI1Xip7t27o9VqszSo9fz58zk+z+OynKhdXFxQqVSULFnyidvVq1ePzZs3M2zYsKcucpFX7Owerd+c2T0Eg8FaKNvd3T1fYipMEhKMLPjpPL377+Wvv+8guXrgXO9FLCVKY5YVVA9U8MOH9nzwuibDaVUr5q3m3z8PodHaMemnCTg4Zb3rOCPt3yxD7Zqe6PRmvp1yApMp47nKjlqJWcN80R9fgSxb+OOEmU9+0vEgJuPtj/59gneb9GTxjOWYTGaat23KbwdX8k6vdrzyRlNqvVAdXbKeud9kf5rQC95KelW0/qJOPGEkNCH7K3nVU1rvER81h6Q+56lS897DUqLzYu5nuq8sy+wyXQKghSp9F56DIgCtVBKwMMLOh432fRiofhFXtFy26NmrK4csq7jBWXayPNux20KVKlVYuHAh165dy5cBnULBCg0NJTY2NvUxevTofDlvcHAwXbp04Y033uDevXssW7aM2rVrc+HChRwd75tvviEoKIjt27c/dducDlb7rywn6tdeew2TycSlS5eeum2JEiXYtGkTX3/9NX/+mb0RwLbg7u6emqwzu3JKuWfu6Zm9dZ+LMpPJwobNN+j+/m7W/nYNo8IO99p1UZavSbLFDndniVHvaPi+t5ZA74w/GmeOnmP2V9YlS0d8M5QKVcrlOi6FQuKzj2vh5KTm0uUYVq6+nOm2JUp50qe1C7GbxyLr47l8x8Kg+ckcvfKoCzouJo4JQyfRv90QQq+HUbyEJ9OWfcPUnyfiVdL685YkieETBgKwZc0fXDyT+Tkz80FlFbU8JBJNMPqIEUNmhcUzUUfpiwRcl6OIsDz6nA4oVhIl8I8unlvajIeRXLA8IEyORYOKl5QZD0B0U9QCIMZ8Ag+FI93s6rDGoQcdVTVItLhwQl8RgCNsI5hD2YrdVt5///0cLQ8rFD0uLi5pHhmN2ckLQUFBrFq1igcPHvD111+j0Wi4d+8e77//fo6O9+DBA+bPn8/q1as5f/48ISEh6R7Xr19n1apVBAfbZu5OlhP1V199hZubG+PGjcvS9s7Ozvz2229MmzaN+Pgnd+HZmlKpJCgoCLCu2pOR+/etrZWcjvwrSmRZ5sChe7z/0V/M/uEscfEmilWqgLZmI+IUrigU0KGRikWD7Xm5eub1rONi4hjVbzwmk5kW7Zrzdg/bDcIr7mnP0IHWq88Vq69w4WJ0ptt26d8RH/soItcMxMkSTmwS/G+5nh//0LP99z283bAbG1ZsAaBj73b8dnAFL7dJXzK2Wt0qtHz7FWRZZvoXc586gvO/VAqJr+vZ4WoHF2NkZp3L3v1qN8meCgpr6/mY5VH3t59aQztnawtzh4djhvumtKZfUpbGQbLLcJtiytoARFtOpj7nKmn5WNOUZfbv4SZX5LrBOthyE/OI4l624rc1WywHKAiZKVasGGPHjuXXX38F4MCBA4SEhDxlr/ReeOEFKleuzIoVK6hevTqlS5dO9yhfvjzdunXL9t+UzGQ5UZcpU4b9+/dz8+ZNunTpkqU36ODgwK+//krt2rVzFWROtGzZEsj4HkFERASxsbE4OjrStGnT/A4tX125Fsunow/y+ZdHCA1LwKmkNx6NmhDv5IfJIlm7uT+yp38m3dwpZFlmwtDvuBt6D9/AUvxv+mc2H43ZvKkPrzTzwWKR+XbKCZJ1GSc+tVrFqO+GY4m/z81FfXmprLU1+tsBE5N3uBGj01C6fACLt85lzJRPcXZxyvScg//3AWo7NUf+Ps4/f2a/VentIDGhrnXU7ZprZs5FZa8LvF4G96kBBrpb6xKcdNZy22RI85pZtvCn2Tqv9LUMur1TuCmsv3dxlvOY5bRjMcooPHhDVYUrxkBMluLoSeJXpmHCkNGh8tTt27d5/fXXqVq16jNbvEMoPNq2bZtaBCuzhtyTjBo1ClmWUalUeHt74+/vn+5RsmRJm/59zNZw7CpVqnDo0CFGjx6d5ZvkDg4ObNu2Ld+Xtevbty8KhSLDWqsp5eg6dOiQ5n52fkiplpbX34/wiGS+m3aSD4fs49SZCFQODvg3aYjOpyqxeiXuzhKjOz7s5vZ6+sdg7U+/s2fLPlRqFZMWffnE5Jcbgz+sRnFPLbfvJDJ/YeafsfpN6tCiXXMsRj1H5w4hec+3WHTxqL0r4t19IR/O+ynNOtaZ8QkoxXsfdARgxri5OSpQ0LiEktb+CmRg0ikj5mxcRafcp95vukas/KjISWWNAw20TsiSxPbEtL0Lpy13iJATcUbDC8qATI9tL/mikYojYyTWkr78ahVFCWQUnNJVxl525i7X2cHPWY7dVjw9PTl9+jRhYWE5rsEvCNnRuHFjgKeOucrIgAEDqF69OtHR0dy5c4cbN26ke4SFhXHhwgWbTZ3L0byp6tWr06pVqyxv7+bmxqFDtr0HlvIHNbMlxMqXL0///v05e/Ysp06dSvPazz//jL29fZa78W1p4MCBBAcHc/To0Tw5fnKyiSXLL9Kz3x52/hmKjIJyjaqjrtaQO0kOKBXwzotqfhpiT7NqWVu28eKZy0z9fA4Awyd8RJVatplykBFnZztGfmy9t7pl+y0OHs68O3b4lwPROmgJuRZG/IW/KHFpBmWLGzChZsoGM1PX69EZnp40+w7vjmsxF65fusnGlVtzFPfQqmqc1dYu8F+vZ30UeB2FL2UlDxIw8LPhWJrXWju4AbA1MSbN8ymjvZuqymInZV4KQZKkR/epH+v+TlFe4YkdSiJkaCz3QSWbOWfZwn1uZjl+W9BoNAwcaB0vMHXqVJt1FwpCZmJjY6lRowYBAZlf6GYmZYbT00rfli9fnlGjRuU0xDRsPsF5ypQpfPnll7Y+bBrJycmcOXMG4IkXAFOmTKFOnToMGDCAqKgoZFlm1qxZbN68mWXLlmVYtayoMptltu24RY/3d7Ni1WX0ejOBVQMp0bQZNw3FMZqhRmlrN3e/lnY4aLLWLZMYn8TI97/AaDDS9PXGdOnfMY/fCdSqWZwO7aw/mykzTxETm/F8yxI+3oyZ/AllKgYyevIn/Lz+G2Z/5EbXZmokCXaeNDFwfjLX7j45cTq7OtN/RG8Afpj0E4nx2S/J6KGVGFjF+os777yJCF3Wko1SUjDQzlpC81fTae5a4lJfM0VaC54c1ydy12jtkjbKZvaargJP7vZOkdL9HWM+ke41taRMvUcea/Kgji6eOro7XDKvf+IxNxjP0TpxIafN2e82zMyAAQOwt7fnxIkTNltxSHg2PK1RtnfvXho0aMCsWbOydLyoqCi2bdvG1KlTn7ptZtN327dvn6Xe2PHjx2fruJmxeaL+7rvvMqxpbSudO3fG09OTs2fPAta1oT08PJg/P/0yiI6Ojuzdu5cXXniBunXrUr58efbs2cPRo0d555138izG/HbsxAMGDNnH1JmniYrW4+1bjKBWTQjTliUiQcLjYTf3d720BGShmzuFLMtM/HQyIdfCKOHjxYQ5Y/JtBa/3e1WmdIAzMTEGps48nWkr643OrfjtwAre7dMehcJaDa1Hczu+66XFw1kiLEJm6I86Nh42PrGl1rF3O/zK+BL5IIqf5/ySo5jbl1YS5GYdBT7jbNbvtb6gDKCOwhcjFn40WG/LnI+ysPi8GrtE69S3bQlRAKw3nSUOHe6SA3UUGVfde1zKgLJYy1kscvr7z1UV1gIr1y2nUMuxSIDO8DtGOeOBXTcskUwz/EU0yewxZb/+cmY8PT1TVzQSBVCEFFlplE2dOpUjR44wduzY1OciIiLw8/OjWrVqLFmyJLW4yrVr13j33XeZOnUqr7zyylPPb6vpVbk9bpFb5nL16tUkJiamWV4yMjKSAQMGZLi9s7MzM2bM4Pr161y9epUNGzbk2Tc/v928FcfoLw4x8n+HuH4jDidnOxq8UZ9439pcDlendnMvykY39+M2/rKV7b/uQqlU8u3C8bgWy79F3+3slIweURuVSuLAoXv8sSt7lchqlFbyw0f2NKigxGiGeVsNTFilJy4p42SttlMz9IsPAVg+d1W2i6CAtWrZqFrWQih/hFo4+iBrXeCSJDHIznrPbIf5EpfMD5h5zpro7ePcANiSEEWoJYZ5BusylX3V9VFKT//1dZACUVMMC3riLOnnjVZRWhO10fJo+UulrOOC4Zt0FzYm2cLX+j8xYh0wd81i2yIlKQVQNm/ezOXL2Z8uJzxbstoo69KlC87OzmmWrnRzc+O1117j7t27vP/++/j5+dGyZUvmz5/PkiVL6NKlS5ZiyKvbMNk9bpFL1AJEReuYPvs0/Qb+xZFjD1CpJF5sWQXXBi9x/K4zBlPOurlTyLLM8nmrmfjxZAA+GvM+NRvk/8VN2TKu9O5uvR8+d8FZ7tzNXjUhV0eJCV01fNjaDrUSDl408+G8ZM7ezDiBNm/bJLUIyrxvc7Y0XVAxBe+UsRZCmXTKhNGStV/ISkovXlNWQAa+SfiXExHW/bRx1lK3h5PjGK/bhR4TdRS+tFNVy9JxJUnCTZlynzp993dVRUlAppRsne95X+WJBQg37+GeOW1Bh9XGkwRb7qO0LsHCdRsn6goVKvDGG28gy3KGPWTC8yWrjbKuXbsSFxfHnDlzUp9TqVQsXryYiIiI1JWsduzYweTJk/Hzy/piNHnVg5jd44qFYIsQvd7MrxuusXrtVZKSrfdt6jX0R/Ypx+Gb1h+8h7NE/9ftaFpVmaMPWWx0HF8Mmsj+P6xV5Vq98xq9hnS13ZvIpo5vl+Pw0QecORfJpCknmP79iyiVWb++lCSJdi+oqRqg4Ju1em5Hyny2RMd7TdW811SN8rEFNVKKoPRo+QGbV2/nvQ86UrFa+WzH/FGQij23zdxKkFl+2UyfSln7NfvAriF7k69yWRWK5BFGeyc/Nt5Sok5yQFv8OsHyXRxQM1bzKops/GyLKWoTbt5DtPkEgereaV7zlpyoLOnwIB6ww07djBDpTwKNMVwyfI+boib2ilLctESx0Gjtehxm14Rphn1Ek0yUnIS7lLvKdI8bO3Ysb731Fl27FtxnThBSREZG8tVXX9m8ZR0VFZWt7UWiLgIsFpndf4Wx+OeLPAi3TuEpX74Y5RtV469Lagw3QamAtxuqea+ZOtst6BSnjpxl9PvjuHf7AXYaOz75ejAde7fLt/vSGVEqJUZ+Uot+H/3F+QvRrP71Kl07ZX/Vm3IllcwdYM/crQZ2nTKx4i8jF0It/K+zJs33K6UIyo7fdzPtiznM/31Gtt+/s53EsGpqPj9m5KeLJlr6KfBxfPrFhY/ClRpJVTnucAZ1xcP0c/bjzK0o4vRKXFysXf+D7BpTUpG1WxA7E6KppLG33qc2QqzlNBbZhOKxkeKSJNHoYaETnVSF0lJttqiOUNIMGksMl41TqKGZxnT9PgyYaagMoIOqOmuMpwiTY7lmicRdabtE3aBBg9T14gWhoEVHRzN+/HibJ+oCb1E3atSIuLi4p28oZMmZc5HMX3ieS1diAPAqbk+zttU4EObCzvPWD0/N0go+aqPJ1kCxx1ksFn6e/QtzJy7EbDbjX9aX73/6KketybxQwtuBwR9V47upJ/l5xSXq1faiQnm3bB/HXiPx6dsaapdVMmOTnuPXzIxYrOPr7lqKPbau9OD/fcCeLfs5sv84/+4+RONXG2b7XK/7KdhwU8HxCAtTTpuY3ujpI0STTTJXTtZErn8BnCM5orxKeSmZ675XUSgsJOtcaGxXMUvn350YQ887l6micWCXfxVUuGAijnjLJVyVj9bglmUZP6xVzq5QloZUA0niop0TNXQxRJuPkWBJ5rglDIDhdk2RJImyCk/CzLFcs0SkzgW3NYvFgsVieeo0GEHIK0uWLCnoEIA8SNQbN2609SGfKXPnzmXu3LmZTjVIEXY7gYVLgvnngLW142Cvom27SoRRkt/PWgA5193cAFER0XwxcCL/PqzK1eqd1xg7ZUS21mjOD6819+Xg4Xvs/+cu3045wfxZTdFonr56TUaa11BRykPiixU6rt61MHxhMhN7aPHxsF7o+ASUokv/d1g2ZxXTv5jLC83qZTtZSJLEqJoquuw28Pc9C3/dMdOs1JPj/eWqmcgELa63a5IUeJRF5iMElNagdIvAYlESEVOGHcoYurl5pdt3yy0zSgla+VvP8WucdfnW8/okrhr1uClrEmHeT4zlRJpEHS9fQkU4BlnJ37gyFG9c8SRWCkdCjZlkTphPYEbGT3LDT+EGWCub7TNfs/l96hSrVq1i3LhxjB49mt69ez99B0HIA48PUCtIeTaYLCQkhF9//TW1Cphg9bSCJ3HxBub9eI6+H+7lnwP3UCigdatA3ujbjM03vDlyxYJSAR1zMZo7xfEDp+jctHfqSlifzxjJxPlfFLokDdbEN2xQDTzcNYSEWi9icqOSr5Lp/ewpUUzibrTM8EXJXLr96OLp8SIom37ZlqNzlHZR0L28NXFOOW0k2ZR591m0XmbZZeu4g2EutfCUHLlHPIfLWxNucmhVzGYNWxLS39u6GGNh/HEjnx8zEpJgIcliZkfCo2pmW+OjKJbJfOoHpl0AXMaXO7KBcEsCpR+2qi0K68pyV83HAaj7WMu5rMJai9zWI79ThIaGcuXKFaZPny4KoAjPvVwl6o8//jj18XiVrzlz5lC+fHk6depE48aNadu2rajh+xRGo4Vf11+jR9/d/LbhOiaTTP26Xgwe2YwzpnL8dkjGaLJ2c88faM/7ORjNncJsNrNwylL6vzUkdU3p5bsW8nb3Nwr0fvTTuLrYMWK4dQTz+k03OHYi+1OoHufjoWBGP3vKlVQQmwgjFutSV+FycXOh/4heAMz7dhFJCdkvggLQt5KKkg5wLxn+d9TI6UhLholn0UUTiSao5CbRxldDP/ULqa+VSvZFum4th/pPUixR5rS/SysfWzlsw01rkk6WH9Uc35oQhdvD+dQxllPIsvWCRJZl7putq9tFSNZW9nnLfWuiBuIfTv+KtlwESNPFnZKob1iisORBIu3Xrx+Ojo6cPXu2QFbgE4TCJFeJesaMGfzyyy/Url07dbL5wYMHGTp0KEajkfbt2zNz5kwiIyOzVAXmeSTLMvv/uUOfAXv4YeF54hOMlA50ZuTohqgr1GTuLiX3omU8XSTGvKthUi8t/sVz/mOLfBDFwI6fMO/bRVgsFt7o3IqVuxdRPqisDd9V3qlXx4t2b5QG4PtpJ4mNy90iEsWcJCb30VK7rAK9Ecat1LPrpDURduzdPrUIyvIf1uTo+FqVxGc1rPV+99210HefgfY7DSwIfrSGdWiCJbXs6NCqKhSSRGtVZapI3jjplQyTmqE2aLHTaTEDOxNiUo9/P0lmZ9ijpLz5lpnf46yt3J6uXiiBc/okooz+KHHERAKHdJ24YVzEA/MedPIdFGhwVTQC4JzlHqWpCsADhbVIhL18BwmorXxUYMVXckONgmSM3JVtPyalWLFi9OnTBxAFUAQh113fv/32G926dUstp5ZStKBr1678+uuvDBo0iG3btrFq1arcnuqZ9L8Jx5jwzTHu3E3CvZiGoYNq8FKHRsza68Dhy2ZrN3djNYsG29O0as67uQGO7D9O52a9ObzvGFoHLRPmjOXLuWOxd7S34TvKe/16V8bfz4nIKD0z55zJddeog0biy65amldXYrbAlPUG1uw3oFKr+HBUXwB+/3lTjhbsAHippJKFTexo7a/AXglhiTILL5ppv9NA77/0fHHMiFmGRt4K6nlZu8pVkoK5qvZ8+I8PDZyd8LYHTax1TvXj3d+rr5kwy1DTQ8JTC5EmE3uTrFXFert509DeOkJ8e2IcgereKNCQJN/iunEB5wzWOsSeypeo/HAVr/Pmezjjjie+JCqsFxgliaKiwgtXSZt6XpWkIPBh13he3aceNmwYkiTxxx9/ZHkRIEF4FuUqUXt6evLiiy+mfr1jxw6OHDmCk5NTmqvgYsWKZXve2PPiwsUYNBol3bpUYNDIZvx2qTi/7DNZu7nLPOzmbmGHfQ67ucHa1f3DpJ8Y8PYwIu5HUrZSaVbsWsibXbK+sEphotWqGPVJbZRKiX3/3OHPPWG5PqZaJTHibQ0dX7Qmp8V/Gpm3zUCz1k1wc3flwd1wDu45kuPj1/JU8GVdO3a20fBVXTUNvRQogLNRMmejZCRgSNW0A9YUkoRSlpAkiSYllalVyvYnxhJrNpFolFn/sHhLjwoq3gxQkuwSixmZIDsHKmocaONsTaZbE6IIVPfkJfs/CLIbj7viBVJ+/Uuq2lJF6Q3ABct9TLKZ0lQlSWGHDLhIybzwcBDZ48pKeXufukyZMrRv3x6A6dOn58k5BKEoyFWiLl68eOq9Z7PZzKhRo5AkiaFDh1K8ePHU7W7dupWjdT+fB82almTylJe5IQXyza+m1G7use9qmNQzd93cAA/uRjDg7WH8OHkJsizTvvsbLN+1kLKVStvoHRSMihXc6PGedarS7B/OcvJ0RK6PqVBIvN/SjgGt7JAk2HTYxNRNMq93agPAhhVbcn0Oe5VEK38lsxvbsa2VhmHVVNT2tC7oUc41859105IK1HotGoMGIzI7E6PZeMtMghECnCQal1DwVqCSZNcYAF7WWhN0K6diSMBxXQJ3jHpUkhMlVW2opZ1NY/tt1NeuxFP5Iv5SMZzRYMDMXvM1SlMVs6QgSbL2lFVTpB9jUubhferr5gc8MO3lpG4w+5NaEG1Ov1JXTn3yyScArFixgoiI3P+MBaEoylUWaNGiBb169WLbtm28/fbbnD59mlKlSvHZZ5+lbmMwGPjwww9zHeizqkS1SoxcKad2c7/7sJu7SS67uQEO7j1C52a9OPbPSRwc7flmwRd8MWMk9g7ap+9cBHR5txxVKhcjMcnEp6MP8OnoA5w7n/vWXfuGaka9o0GthL/Pmwkt0QVJ68r+Hf8S+cB2PUOe9hLdyqv4sYmGXhWfPP2rtqcCRxXYxbgB8EtMOL9ctSbP98opra1vjQm9YwIAUoS1m9xbZUddrXXt8O2PjQQH0EgeOCusxWMUkkQHtbVM7BT9X6gt1ilgiQprXF5y+u9rWYUnfoRTV57MWcNnRFkOYSSaq8bZNhup3bBhQ0aMGMGOHTvw8PCwyTEFITf27duX7+fMVaL++uuvSUpKom3btmzevBlvb2/WrFmDk5P1D8PChQupV68ef/zxh02CfRb9esCC0QS1HnZz981lNzdYl4Wb8/UCBnb8hOiIGCpULccve36i1TstbBR14aBUKvhqXAPebBOISiVx8nQEQ0f8y6jPD3LxUvTTD/AEzaqp+Lq7FgcNXHlgR/HeK7B/aTArfvk328eKCo+m+2v9mDJ21lPnz2fGTinxgrcC+xg3FLLEIV08we4huNrJtAmw3tfeFB8JEtglObD/lgrTwzrjj3d/P0kfdX0qKbyIQ8ds/UmQFSQprC1qnXw13fZlFB404BKOJKKmGP6qrijQEGc5m2Fd8ZyQJInvv/+epk2bFuoZCcLz45VXXuHIkZzfBsuJXCVqR0dH1q9fT0hICMeOHePGjRs0atQo9fXatWuzePFijh49mu9vrKjwcIax72r41gbd3AD3bz+g/1tD+Gn6cmRZ5p1e7Vi2YwEB5fxtEG3h4+pix9CB1Vm28BXavB6AUilx9Hg4A4f/zf8mHObqtYyXa8yKmmWUTO1rT/lSClDYYR/Uim1RzflsSTIHLpgwZ3HBjVULf+XciQusnL+WMf0nYDTkbKpik5JK1AYtlSMCkGRIdotBVS4M9cOPzYZ4a6vXM8GNSD38fdc6Gry1kzVRH06OJ8KU+bnVkpJxmhZoUHHEcpsk2Z7Eh4k6wZJ+NStvyQl/rOcspv6Y8nbDKKl6A4CbxqU5eo9PI+ZUCwXNYrHQuHFj2rVrx6ZNm7BYLE/fKZdsUvDE19eX2rVro9Wm7VKtU6dOmoeQ3rS+apt0cwP8vesgnZv15uShMzg6OfDdTxMYO/VTNFqNDSIt3Ly9Hfh4SA2W/ticFq/6oVDAwcP3+WDwPsZ/fZQbN3M2hahMCQWzP9AysQsYb/yLbDFz+oaFCav09JmZzG//GknUZZ489Do9v/38qFrfzg17+LjHGHTJ+mzH8qK3dQBazH1XioUGgAxnFFEMv3+d6wYdJ3WJKICObtYu4pSBZn5qDTU0jlhI3/39X4EKdwbZWQeIxlu0JErWwXWJ8i3MctrF7k3E4i5Zv693Kc4p9rJDdRZQEGU5lOGymjkVFRXFJ598QsOGDfPlD6MgZMbe3p7169fTtGlTJkyYgI+PDyNHjuTSpUt5dk6xzGU+mzt3LkFBQdSrVw8Ae7vcJ2ij0cSM8fMY0nkEMVGxVK5RgVV/LaFFu6cvjP6sKVXSkZEf12Lx/Oa80swHSYK/D9yl38C/+Pq744SExmf7mJIkUbeyI03cjhG5vCelko/ibA/3omV+3GHgvSlJzNmiJzIufQLZsX4P0RExlPDxYuYv36G11/DProMM7vwpifHZK6LippGo6Wn9vNjHudFSVxolsC4ugo5h1qTY2MGFboHWC+aD9y3cSbTGlNXub4AOquq8oAwg0WKPQVIiowUsJFqupdku1mKdMhUhO3NV1nGYbcQodKC03ve+Zfw5W+/vSVQqFYsWLeLw4cPs2LHDZscVCr+tW7fSqFEjli5dmu19ExIS+OyzzyhdujR2dnb4+voyYMAA7t69m+N41q5dS5s2bRg+fDjHjx9n27ZtJCUl0ahRIxo3bszixYtJTMzekrxPIxJ1PntaCdHsuhN6j75tB/Lz7F8A6NzvHZZun49faR+bHL+o8vN1YsxndVg0rxlNGpdElmHvvtv0/XAvk6ac4PadhGwfs123tlgSwrm4+msW9Iehb9oR4CWhM8DmIybGLten6ZqVZZnVC9cB8G7ft2nS8kXmrpuGo5MDx/45yYC3hxIbnb2WfpOSj+qFjyvtyQ8ly6EE7pishV/aOXvg66SgfnEFMtZKZQBtHnZ//5sUR7TZOh88Ri/z7z1z6r3sFJIk8T+7V/GWfECSMCicAYiX03Z/x5mtiToMTy6aQ7jHDevz6jIAPDDvIdlim9keLi4u9OvXD0AUT3pOrF27lgYNGtC2bdsclaJOSEigSZMmTJ48mdDQUEwmE7dv32bBggXUrl2bK1eu5CiuNm3apPm6Vq1azJ49mzt37jBo0CBWrVpFyZIlef/9921WQlsk6iJs77a/6dKsN2ePncfJxYkpSycyctIw7DRPX6npeREY4MK4MfX4cU5TGr1QAosFdu0Jo1f/vfTst5uPhu7nk1EH+PzLI0yacoKZc8+waEkwK9dcZsPmG+zcHcqBw/dITjZRo341Asv5o0vSsW/rblrXVbNgoD2TemrRqOHGfQsXQh+1qk8fPceF05fRaO1o391677Z2wxos2DALN3dXzp24QL83BxNxP+sj1Vv6KilhD+0DlZR2UfCGswfzHiZrB0mRej+6fWlrQl9+xczhB2bK2Gkpb6fFhMyR5HiidDK9/zIw9ICRjrsM/BlmTnOR4aFwZKDa+gcpXmE9Vvx/7lPHWc4BEIonD6RHr0Uq9DgrKgMy8Q/Lj9rC4MGDUSqV7N69m9OnT9vsuELhVLduXfbv30/58jlbxS9lHek9e/aQlJREXFwc33//PSqVinv37tl8wQ21Wo0sy0RERJCQkMDixYtp1qwZlStXZvLkyTx4kPOSxyJRF0FGg5HJY2bycffRxMXEU7V2ZVb/tZhX3mha0KEVWmXLuPLVF/X5YWYTGtTzwmKRCbudyKUrMZw6E8GBQ/fYtSeMTVtvsmrdVRb/fJHZP5zlu6kn+XzCEXr138O+v+/Qrltb4NGcakmSqFVWyUtVrNOYdp58VL1s1Y+/AtDqnRa4ubumPl+lViUWbZ6Np7cHV4Kv0feNgdwNu5el91HcXmJLKy1ja6tTn3vT2YPt/lXZ4l8FV6U1juY+CpqXUmC0wKcHjZyLslBDY52NcSopkaEHDIQmWhNzaKLMqCNGev1l4GTEowsND0oCEKmwtsofH1Amy3Jq1/d9SuCkDE99LZoHOErWefpJ8q0sva+sCAgI4J133gFEAZTnQZkyZdBoNNSqVSvb+5rNZvbv38/evXt5+eWXsbOzw8nJiREjRjB69GjAWu76+vXr2T72f6dnJScnM3v2bMqVK0e3bt04ffo0/v7+TJ8+naioKBYtWsSFCxeoWLEiw4cPJz4++7ffRKIuYsJu3qZXqw/5ZYG1S7XbR51YvHUePgGlCjiyoqFCeTe+mfACy396henfv8jE8Q0Y+1lthg+uzgd9g+j+XgU6tCvD6y38adq4FPXqFKe4p5aISB1fTTrOyRBf7ByLc/Z4MFcvPPolb1HLmiD3nTOhM8g8uBPO7k1/AdC5X4d0cZStVIbFW+dRyr8kIdfCGPvBl7l6X9W0jlTWPFr1TClJfF1PTX0vBclmGPJ/9s47PKoq/eOfe6dlMpn0Aqn0EnpHUFmVxcK66io2LD+xYXexLbK7WNa1goiCXeyLoOKKoGsBQVEBUTrSkpCQ3ttk6r2/P+6UDOmN5vk8zzwk95577pmQ3O+873nLBicJqlYqdllBDXsqVKJM8O4ZRm4coMOsg13lKjevd3LYW4PcQiRGzNR4c6lrlP2o3mYfdWo2bqqQMRIh9SNGV+G/t40qjLIm8jal84QatEZAAO+//36H9hkFJw5HBim3hoKCAh544AEiIyMbnPMV0QEoLi5ucL4lLrjgAmpqasjNzeWf//wnqamp3H333WRlZTFs2DDee+89Dh48yF133YXFYmHixIm88cYb7Ny5k++//57TTz+9zZU6RUf2E4ivP/2Wh+98nJrqWsIjrTyyaA6Tzjn1WC/rhCSxu4XE7pZWjXU6PSxdfoD3l+1nx64KrIOvxZa3iQ/fWsXfnrgDgCFpMt2iJArKVb7f7Wbv6k/weDyMmjic/oMbd92l9Exi8YfzuXDsFWzbtJO62rpOrbtu1Ek8M97Ard852Vmu8vleAyRBoVRHLz08N8HIgCiZAVEyF/fSc+M6zco+UKWSHAYSEjF0J1+ygbc3da2aRZjUy29NW+X+9JMsVMt2UGVMUggObCiStq9tU7M77f0AjB07lokTJ7JhwwZeeOEFHnvssU6dX3D80Z6MmKSkJJKSGo/TiYiIID4+nqKiIlJT2562WlVVRWxsrL8qp6qqTJkyhfvuu4+zzmo6gDcpKYkbb7yRmTNncu+99/LGG2+0+p5dalHX1NRQV1fXlbf4XeCwO3ji/vncd93fqamuZdjYISxdt0SI9FHCaNRxzfT+vPHSGYwbk4CKjDlxPF9uiWbNt9moqoosS/xxuPa594stLn9K1uU3XNLs3Gm9U4jvHoeiKOze1vnpHaF6iecmGukdLmGr0j4EeExOHhorkx4V+POPDZHoF6k9EPNt9faqSQRJQpa1zlmZrteAwP50uDyYOH0FAHYlmli0h6ND1lICbUrnCjXA7NmzmTVrlj+4THBiUFVVFfRyONqeotgZuN1uKioqGDt2LN27d2/XHE6nE51Ox5VXXsnWrVv54osvmhVpH599pm2Z/fe//21hZDDtsqizsrIoLi4mNTWVhISEJsc5nU4uuugi0tLSuOqqq5gy5eSqjHU0OHQwh7/dMJfftmv7g/9353RuffBGDAbhDDnaJHa38NhDY9nwYz5zH1qLZLDy2FNb+fKbXG6fOYQ/jgjl3W9d7DikUukw0S0pnj+c1/KHqcGj0lnz2Tp2btnNqAnDO33dEUaJFyYauWE9FDsNeIwuLBEOIDjoMDFUE+q82vpCrT3Iao1DMNsPUeT5ijLPhVTWE2pV1qqQ5XnCGCnHkyvtp1rS5nBRiUutwCBFdtr7mTp1aoPIW8HR4cfQFEJCDS0PrIfd7QJ+JSUlJej43Llzeeihhzpvca3ku+++w+l0ct9997V7jlNPPZVXX32V/v37t+m6mhot22Tw4MFtuq5NFvXBgwc59dRT6d27N+PHjycxMZEJEyawYsWKRsdHR0fzwgsv8O6773Leeee1aWEC+OLjr5l+5vX8tn0fkTGRPP/B09w19xYh0scQSZI4dUIifz61lrrDPyChsHlLMTfc8i3/W72foT20PynzgD9y6fV/Qa9v+f9q8MiBAOz8ZXeXrTvOLPHBZCMTwzV3/y57wzxPv1AHWdSahVwsO0nWa96Bvc4nqVG01JZwOZ0CNE9AkScCVM3lXSFVYJK0euFdYVULTjxycnKorKz0v3xBXUeb559/nsmTJ/sDE9tKbGwsq1evbrNIAyxdupTly5ezatWqNl3XaqEuKCjgtNNO48cff0RVVVRVJS4ujl9++YVLLrmEc845h4KChpGrQ4YMwWw2i9J/bcBe5+Bfs55i9o0PUVtjY8Qpw/jg2yWcOvmUY700gZeLr5lKXe73VGx7nSHpEbjcCm+9u5ecrVrhEfPAKVxw1fmtmmvIqHQAdm7pOqEGCNFJjAzVAs52ORoWW+luacz17Y38Jp9ehpkYicamZqPixkAUFZKDOqkaVdVTqVipVDRrq5xCQiVt/6+z96l9bNiwgQsuuICVK1d2yfyCziU8PDzoZTId/YqJ3377Ld9//327iqf4uPHGG/39LJpj/vz52GzBf2fx8fFcfPHFrbq+Pq0W6ocffpiCggJ0Oh3/+Mc/qKiooKCggNraWr7++mtCQ0MZPnx4owneZnPnBcic7GTuO8Q1U27io7c+RZIkbrjnWl755DniE+Navlhw1EjukcTY00bhsZczIO4gs+8bSahZT9HBPFS3C9maQHZl6/4Y04cPQJZlCnKLKC7o2laOg0yaRb2zEaFO8lrUubWq/4O13/VNBR5Jpo/xLv/4CN1gMqUdAISoqajIeMuLU04BoXIaELCoXaqH3Z7CTvvQvnLlSj799FNRAEXQKsrLy7n11lv5+OOPmww0aw3Lly9v1bhbbrmFf/7zn+2+T31aLdSfffYZkiTx+OOP8/DDDxMeHg6ATqfjjDPO4OOPP2bp0qXccMMNfPLJJ0HXiq43reOzD75g+uQb2L/7INFxUSxePp/bHryxVe5TwdHnwqu0fdL/vr+KM07vzr//OQRPdS5quVbYYMF/irDb3c1NAUBoWKi/P3hXW9WDvSlce502XGpwydPuXqGudUO1t3eHiVDCiASgjHy66c4lUh4JQKQ8gr1oFfbS1CEAHPBoAUIVFGOWtD1Jn0U91/EF19s/4GtP+ypCHcntt9+OXq9n3bp1bNmypVPmFJyceDwerrnmGh599FFOPbXrg3CdTic//vgj7777bqfM12qhLioqQpKkZntL/+EPf+D777/njTfeaFPo+e+JI2t9A9TV1vHQHf/mH7f+i7raOsacOpKl3y5h/BljmplJcKw5Y+okrBFhFBwuZNP6Laxf9QWVu94jtPRnAPJsFm6+ewMHM1vu4DXIv0/deY0sGiPVYCJMlnGoKgedwU02QvQSMV5vZHBAmZajX0o+kiQx1PQ0A43/IFI/hRzv/vQE6Q8A7Ffq0Kl6FDwgRwGaRb3Jk81aj1Yr/Bt35wh1cnIyl19+OaC5GQWCprjlllu44IILuPjihjUNWuK7775j6NCh6HQ6dDodBw8e9H/d1MtsNvPHP/6x0Tzu9tBqoU5KSkKWZYzG5stTRkVF8cknn7Bx40ZRPagRjqz1nbnvEFf98Ub++/5qZFlm5t+u58WPnyWuW+wxXqmgJULMJs7z9vhe9voKLSVLVbh9eiJxVgVJpyPXZuG2u7/jk5WZzbp8j9Y+tSxJpHvd343uUzcSUBbt36fW6nYbpHAS9X9mn7QVgCT6kian0E2yoiIRgibQDsmboqVms8CxjlhdGaNDtrNL2Y1LbV9f7iP561//Cmh1oXNycjplTsHJxT333EO/fv244YYbGpwrLS2lqqr5evunnXYa27Zt45FHAkWJfHFaTb1CQkIYNWoU77zzTqe8h1YL9SWXXILH4+GHH35oeVJZ5uWXXyY3N1cUJGiBmRf/lYy9WcQmxPDyigXcfN916HS6li8UHBf4anh/+/l3/i5ZZ0w9lT+P10QqvEcaLpfC8y/u4JkFW5sU68Feod716x48ns4Rsabwub+bCyjLOzKXGs2irs9vbARgIOMBSJe1VM06bwW0asmDhB4FB2XqYXrrC4jVVTAgZDu/KFmd8l5GjhzJH/7wB9xuN88//3ynzCk4vnC7te2jpv4u1q5dy7hx41i4cGGDc/fddx+RkZHce++9Dc7t2LGDiy66qFXPW0mSmDNnDq+++ip9+vRBUZRmX7W1tWzatCnIc9oRWi3Uc+fOZdiwYW2qVfrMM89QWVnZ5nJpvyecdgennDGWD9a9yehTRx7r5QjaSP8hfRk4rJ//+2kzLkKv13PWcD2yDLWEMv3aYciyxBdf5fD5l41HQPce0BOzxUxtjY2s/Z1bdvNIBvmFumGKVlIzudQ+ixqgjmoy0XKpBzIWgIsNQwHI8nXnkkowSprIx1JFok6LCA+T61hD5+zdQaAk5CuvvNKuOsqC45e6ujq2b98OwE8//dTomHnz5rFp0ybmzJnjP6aqKrfeeivz5s3jueeeIzY21v+KiYkhNDSUoUOHkpqaisXSugqFADNmzGjUMu9qWi3UFouF7777jsmTJ3POOefw6aeftuq6p556iptvvrndCzzZueGea3lh2TNEx0Ud66UI2smF07VGHfW7ZMVYZcb00T6pq1HdmXHNAABeeGknh7IbiolOp2PgMC0vc+eWrt2nTvcK9U6HrYGF73N9N6hOhmZRq2jH97IFFYUE0vyu8ZG6ZCbr+mJTtNrMJWo++1UtEDJdUtARqFLo1O3gNzZ1yvs577zzmDp1Kv/+979F4OVJxOWXX05sbCw7dmiZBa+99hoxMTG89NJLQeOuuOIKrFZrUDesv/3tb7z44ouoqkppaWnQq6yszF8xc/r06W1eV1sKpXRW6mCbfqstFgtPPvkkiqI0mjPdFIsXL/ZHiQuCmT7zUmRZ9EY5kTn/ivPYsWU3I04ZRlRMpP/4lJF6Nu7z8PU2N2/f3Ztfthbzy9YS/vXkFl6YfxomU7DLbciodH75YSs7ftnNBdO7rvJWf2MoOqDM46bA7aK7IRB3kuR1fefWE+ooEpCQcVJHDeVYieY3NOtmAOOC5r7DeCq3OTUB/lXZQ4gaQqoE5+jC+UzS+lXnueNJ1BfxpfoeA6SxHX4/siz7SzMKTh6WLl3aqnHTp09vILhPPvkkTz75ZFcsq9XU1dVx9dVXU1FR0eG52vXxU5ZlEhPb1q2pvLy8PbcSCI57zKEhPLr47w2Oj+unIyIUyqpVfs1UmH3vSG68/VsyMqt46bVd3HXb0KDxg0cenYAysyzTx2hmr7OOXY7aIKH2W9TeXGpJktBjIJpulJLH2zzMZK7mAFo/6IFHCHW8bOWPutHkswOdXEMF2r61oh5GRUFCxuAeA/pVVFCAioqESN8UHH/861//YtmyZTzwwANBHwSuv/76FmsBuFwuNm/e3GlbMV3uJ/L1BX3jjTd4+eWXu/p2AsFxg0EvccZQPZ/85ObLX92MvSyEv90zkr/94yc+XZXFqBFxnDoh0BTAF/l9YHcGdTY7ekPXBRUOMoWy11nHToeNyWGBbRefUNd5oMIJUd50rfO4gY95jhJyWcoTAETTjXgadh+6Qn8681mCUXJzquFUcP/gzaU2E0YkPeR0MtRVIHmopdKfp91R7HY777//Pt999x1LlizplDkFv1/mz59PRUUFixcvDhLqgwcP8t1337WqcE9n1RDpkFArisKTTz7JO++8Q3Z2tuiUJRAcwZSRmlD/9JuHKpvKmFHxXHpxb5Z9dJBnFmylb58IEuK1PeP4xDhiE2IoKSzlt+17/ZHgXcFgk4WPq0sbRH4bdRJxIVBs1wLKokzag6YXQ7mdhXzD+/zMl4DKQMY3ag1bJStm1UqdVM1gQ2/2ucGlFiOpKVilKE7V92GPaiREclKg5tHniIYdiupGltr+aKqoqOCWW27B6XRy0003ccopouSuoP0sXbqUTz/9tEHw2MyZM9m5cyf33HMPcXFxGAwNm5Q4nU7Wrl3LBx980Clr6ZBQ33PPPSxcuPCofrIQCE4kenfT0ae7zIF8hbXb3Vww3sCMawaybUcpe/dV8O+nfmH+kxPQ6WQkSWLIqHTWrv6OHVt2Y+g2gD0l3RldoZLUyRVkfZHfu5vIpS62q+TbVAZFB46HYGEqNzKCM8hgB2M5p8n5Y6TuHKaaKuzosOChlhDVhVWKoqcUjaJYACcbPbvpow98ICnz/MxWx530MtxID8N1bXpP3bp1Y/r06SxZsoRnn31WCLWgQ0yZMqXRjo8XX3wx//vf/1psKnLjjTeyZs2aTllLh6KY3nrrLQAeeughCgsL8Xg8jeaUrV27VgRMCX63TBmhfR7+5CcXDpeKwSDz9wdGYQnVs3N3GW+/v88/1mdF/7I1hwffcbP20CBmPO/ixudtvPyFg18OenC6O14r2xf5nemyU6ME56c2FlBWn0T6cCoXYaTpGv7RdAOgTCogVNbc46GKmzCikSSJGO/e9U71QNB1xZ5vUXFx0PUSVZ5dbX5fvgIoH330EZmZmW2+XiBoCYPBwBNPPNGqsbt2tf13uDE6pJ5Go5HY2Fj++c9/EhcX16TVPGnSJP74xz925FYCwQnL5OF6oq0SeWUq76zVimgndrdw9x3DAHhv6T5+3aY14xgyahAAezwjcbjApHMhS5BdrPLxD25mv2XnksdtfLDe2aE1xeoNdNMZUIF5pYfZ5aj1e8bqB5S1F1/KVhn5WCStOYdZdWH1Vi3r5RXvIvKpVh3+62oUn3Ar7HY+gqK27X0OGTKEKVOmoChKowUwBILOICEhodHjRwZNx8TEdMr9OiTUV111FW63u1Wu7//85z8duZVAcMJiCZG463wtsvqjDS5+O6xZsGdOSuKcKamoKvzjkY18tyGPgcP6Y0wcDMmnIKHy536/8P49Bh681MSUEZrgO1zwxtcuthxouoKZ3any5tdOfj3Y9JixZq139EvlBUw+tJNRmb/yaHE2CZqxHVSdrK0EhDrQRcusuLCi+dJTvQ07jJKd9W6tBriqqtR6hVrGSK2awSH3222+96xZswAt77aysuU66wJBW3nnnXcYPnx4gw+D3333Heeff36nBzN2SKgfffRRBg0axPvvv9/i2IEDB3bkVgLBCc34AXrOHKpDUWHeCofffX37zMEMHxpLXZ2Hhx77mf98nE30ZK2V5JC4YuJCqwkzS0warOeei0y8f6+Z88dqrvT5nziotTcupi+udvKf9S6e+siBx9P4mGcSevJEfA/+aIkkRJLJd7tYXJ7PjzqtRkJrhHptrocLvnCwsSj4A0GMz/VNvr8vtVl1+y3qCLRNd7Pk4BtvNy0npbioBGT6GO4AoNTTsG1uS0yZMoVBgwZRU1PDq6++2ubrBYLm+Oqrr7j22mvZvn07X3zxRdC5P//5z7z33nsNIsU7SoeCycxmM19++SU33HAD4eHhRERENBjjqw9eWFjYkVsJBCc8t5xn4teMOrKLVd7/1sX/TTZiDtHz1GPjefn13Xz0SQYfrKlF12MgiqOGuLK1kBrsOpMkiRumGNlywENemcqLnzu59yJT0Jg129x88YtWxrOsRuWXDA9j+jb8U7fq9FwbmcC1kQnYFYV3Kov4Z/EhltnziTJZya8N8edSb66r5suaciJ0euJ0BlIMJnoRxsO/uKhxwdIDHsbFB9LJfBZ1DRXoZU20NYvaJ9Ra05kQ2cF6Tw5Fahm5ilbFKVRKJlzWtgAcalGbf86SJDFr1iyWLVvG2LEdL6giENTnX//6FykpKZx33nncdtttDc6Hh4fz7LPPcvrpp3PKKadw++23d/ieHRLqoqIiZsyYwRdffCFc261k0aJFLFq0qMsbLwiOP8JDJW7/k5FHlzr44HsXE9N19E3UodPJ3HrTYNJ6RLHwW83vrOQeYHf1QfoP14S6psbF1u0lbPm1mN2/lTNybA8KymP56lc3EwfqOGWA9qd8uERh4UptzzfGKlFarfLNNnejQl2fEFnmhsgE1tkq+aa2goqkHPQZfSh1wBZ3OTfk7cdNsIU9pjqVGpcmvJuKFewelRCdtr8dgoVQwrFRhU3SHHcGFMyqHiSI9FrUoTgIo5LP1DdRlC/oCVjkPpgkbQ/QoRajqh4kqW055ddddx0zZsxo0zUCQWvYt28fu3btIjo6uskxvg+IixcvPvZCfeONN7J69WoAevfuTWJiYoPobkVR2LNnD6WlpR251UnDbbfdxm233UZVVVWjHgjByc2p6XpOG+Tmu10e5q1w8vzNIRj0mrjleGJB70Z21kJ5Gdmekaz9Dr5c+wP7DlSiKIF5Cgt3c/H1Z7J8g5sF/3WQnqLDbIR/L3NQ54ShPWRm/NHI3a/a+WGPh1q7iiWk+RRJSZJ4Mr4Hk7K2Uxtqoza6hP9WWHi46gBuVE4LDaeb3shWew37nXZ2uWqIl6MI1UOlE7YUK0zsVt+q7oaNKg5LmTgkHSbVg6qUgS4FE6EY1RDS7RmMllayW+1LN0ULHAuT+2CSYpDQoeLBqZZhktqWnybSQQVdhdVqbVakAQ4fPgzQaZkHHdqjXrNmDZIk8eGHH7J//37WrVvH2rVrg17r1q1jx44dLfaxFgh+L9w+1UREKGQWKnzwnRYFnl2s8OlGzV39wOUWPFVZSLKBHbslftuniXRqShgX/bknRqNMdY2LM/u7SIuXqKiF5z9z8Mr/nBwsUIiwwN8uMTEgWSYlVgs++363u1VrSzKY+Eectqdc1a2Ah6oO4ELl/LBo3k8awMJuvfm/MK18sNvk4OaBes5M1MT5+wIlaC5filY2e6iTtKIQdarWM1pCItmjEqa6MOAhzpOLRdF+FmFSbyRJh1HSvAl2tf3bZnl5eTz44IOtas8rELSGXr16sWXLlibPq6rKAw88AECPHj065Z4dEuq0tDS6d+/OX/7yl2bHJSQk8OCDD3bkVgLBSUNkmMStU7V95ffXucgoUHhptROPAuMH6PjDcAs9w3+j9tAaEiLLmHXnEJa+/UeWvHwmt88cQp/emifm4MFy7vuLCZ0M3+3ysHKTJsb3/8VETLhWQOWsYZrT7JttrRNqgKsj4unuDkOVFdyonGOJYlH33ui9VurOPG8lphAHV/XVcWo37THyfYEnKAPEt099iN3Uydo6ahWthaeqeoh3BdpmxrtrMKuaUIfKPbXp/e7vtu9T+3jkkUd4/PHHeeqpp9o9h0BQn/vuu4+LLrqI5cuXNzj3+eefc9ppp/Hxxx8jSVKndY7skFA/8sgjlJeXY7M1rG50JBMmTOjIrQSCk4pJg3VMGKjDo8Ccd+xsOejBoIObz9E8T0NGDcRR8DMW589MOSuZuNhAcZGB/bV94T17y+mbqOPKSYEShpedZmB0vf1on1Bvy1QorAi2eJtCliQuIRW9w0R/VzQvJ/bBIAUeFbkl2hqdOjd1qoex8TJGGfJtkFHdUKjrqPFb1FrNbyj0fIlercGFjF3SoUf1Orol7N7yob59arva+k59R3L33XcD8Omnn7J///52zyM4dqxatYoJEybw5ptvtnsOu93O4sWL6dGjB1lZWR1az1lnncUtt9zCZZddRmRkJKNGjWL48OFERETwpz/9iR9//BFVVbnkkku46667OnQvHx0S6r/85S/Mnz+fefPmtTj28ssv78itBIKTCkmSuONPRsLMWnctgL9MMJAYrf1J+hp05GbkN7h2gFeof9tbAcDlpxv4wxAdZw3Tcc2ZwXWH4yNlhvbQ5lzTBqt6iMVM/P7+DCpPw1hPpO0elaxKGdmlielBlx2zXmJUrM+qDnwY8KVoAdTJXqFWDqGobjJdr2nvzxBOvt7qH2eTDRRLuQCESPFAxyzqAQMGMHXqVFRV5bnnnmv3PIKjz7Jlyxg3bpxf/NqDzWZj3rx59OvXj9tuu41Dhw51ytpmz57NypUr6dOnD7/++ivbt2+nuroaVVXp1asXixYt4oMPPjg+mnI88sgjAHzzzTdUVVVhtVobjHG73fz888+UlZV15FYCwUlHtFXmlnONPP2xk2irxOWnB0TWV0q08HAx9jpHUOH/gf0jATiYWYnT6cFo1DF7WkiT95k8XM/2LCffbHNz+emGVj08ki0yEhIHKhV/ihbAvgoVjwpml4lag5uDTjvDQ8I4tbvMj0UKGwo8XNtPe6z4LGoAm9dKrlNzyHC9iE3NRiKUfL0VCZU0VwUyYJMMFJLNQMbXs6g7lto5a9YsVq1axZIlS3jkkUdaDAQSHB+MHj2a9evXM2TIkHZ7QzweD9dccw0XXngh/fr1Q1Fa51VqDVOnTmXq1KkUFxeTlZWFoigkJyeTlJTUaffw0SGhXrt2LevXrwe0iiyNIUlS0B+6QCAIMHm4gQiLRGK0TKgp8DfSLSmB6LgoyorLObDnICPGDQucSwglMsJIRaWTAxmVpA9oXnhOTdezaJWTnBKVfXkK/ZNaTnVKj5IwyVDq0NzZvcO1te0q1x50CXIIGdRy0GnX7tFN5ultsK1UpcqpEm6UglK0HJIe0KHg9Fcbizdei0fSskbydeEkeaqo1IVgQHOPmzphjxrgjDPOYPjw4WzdupWXX365xWYKguODXr16ATBixIh2C7XVasVqtRIXF0dsbCxFRR37XWqMuLg44uI6uWvOEXTYop40aRJXXHEFaWlpmEymBmNcLhcbNmzwC7pAIAimsRxnSZLoO6g3G7/9mf27goVakiQG9I/ip02F7PmtokWhtoRInDJAx7c7PHyz1d0qoTbpJIbHymwsUthUpNA7XHNt7/YKdT+jmQzgoFNrbZtkkelplcisVtlYpPDHZO0evhQtJAmDFI9L1Vz5qfqriNefD2hCvVHuzXj6UaT7EY9XqH2u745a1L4CKNdccw3PP/8899xzj8hCOYEICWnaW3Qs5vFx+PBhnn76aVatWkV2djbh4eEMGTKEyy67jBkzZnTq71iHhPq0005j+vTpvPPOO82OUxSF+Pj4jtxKIPjd0Tc9INRHMtAr1L/tLW/kyoZMHq7n2x0evt3h5sazjf7c7eYYF68J9cYihSv6aMd2lWv76SPDQvjCpu1R+xgZK5NZ7WFfRbBQH0brDmaWe+Dy5BMlj6G34Ta0JC0ZFYVSJZJs+oL0E2UU4Mbpt6idagke1U6OeylxuklYvFHhbeGyyy7j0UcfZcqUKdhsNiHUJxCd5Y3tTK/u6tWrueKKK6ipqfFnOpSVlbFu3TrWrVvH/Pnz+eCDDxgxYkSn3K9DQg1aOTWXy9Vo82wfsiyzbt26jt5KIPhd0W9QbwD2724o1AO8+9R7WinUI3vpiLRARS38dlhhSI+Wreqx8ZoVvaVYwa2o2NyQXaM9lE6LMoMNDjrtKKqKLEmkhGkPwsO2hpHfAL0MN1MlDydZfwmyd886liSKyaFMieQwTnoSRh01FHOYblKav+hJhutFst3vU+bZxMiQxa16z/UxGo3s2bMHna5tFc4EnUdVVVXQ9yaTqVEv7PHO7t27+ctf/oLT6WTs2LFMnTqVgQMHEhUVhdvtJicnh9WrV3PeeeexefNmkpOTO3zPVgv1+++/z5VXXtngeFpaWquuHzRoUJvmFQh+7/RN18zYA7szUBQlqOrfgH5a5Hd+gY2KSgeREc0/8HQ6ib6JOjbv95Bd3Dqh7hchEWmECifsKFNxeJt7JFskBoWGoEfCrirkuZ0kG0wk+/pY1wSEOsYr1DJ6ouV0YuTg58Cl3MtOz0G+ULaSLVUyjlQOsZsicugu9cIoxeJQC8l1/xeASmU7iur2C31bECLdcb6unYhe1zYXsrvWDnxKSkpK0PG5c+fy0EMPdd7ijhKPPvoocXFxvP3225xxxhmNjrnhhht47rnneOqppzql3Wqr07O66gd6Iv5HCQRHg7Q+Kej0OmprbORlB6dphYUZSEkOAwJpWi2REuu1eEtan089xmtVbyrysNvr9h4UJWGQZNIM2ocDX0CZT6gP1+tjnYD2QT6G7kg0dD3GksQYeRwAZaqNKFWLmC06Yp/aQy0ACg6qlb2tWn9T/PTTTzzxxBMdmkPQdnJycqisrPS/TtSgvm+//ZZPP/20SZH2cccdd3RabFarhbo1PafbQ1fNKxCc6OgNeuKTtC5Te3ccaHC+re7vZG+u8+GS1v/NjfMK9cYixR/xnR6lHetj1CwrX0BZoleoq1xQ5dTuEUcKV/A3pjGryXtYJBMxktaMxKBq+9JZ7AICkd/1qVS2tXr9R5KTk8OECROYPXs2e/bsafc8grYTHh4e9DoR3d4AYWFhrdp7liSp06LMWy3UXZVeJdK2BIKmSUjR0j727Woo1AP9hU/aJtQ5pa3PJfW1rtxVrrLVe90gb1GW3katWlqGN6AsVC8R43321req+zGaOILdnkeSIkUC4FE0izqPA9RQ7reoAcySNkeFsrXV629wn5QULrjgAgCeffbZds8j+P0SERFBTU1Ni+Oef/75Tvsw0uqNnqysLH9eW2eSm5vb6XMKBCcL3VI0odq3sxmh3leBoqjIcvMfepO9ru/CchWnW8XYisjv7qESqWES2TUqlU7QSTAgQruut9eiPuAMRH4nWSRKHSq5tSrpUa14g14S5Qi2KnmUKZBIb/I4yD5+IdZvUcv0MdzODucDVHq2dag2wz333MMnn3zC22+/zWOPPdblObCCk4tLLrmE6667jiVLlhAWFtbg/N69e3nuued45ZVXuOOOOzrlnq0Warfb3eEaqY0hLGqBoGmas6h79QzHaJSpqXGRm1fr37NuiugwiVAT2ByQV6bSI751f3tj42Sya7T+6b3DJUL0PqHWLGqf6xsgOUxie5kaZFG3hnA0y6MaB0MYTR4H2c8WespnARAjn0KMbiISBpyUUaceJlRq3kpviokTJzJmzBg2b97Miy++yD//+c92zSP4fXL33Xdz2mmnkZKSwplnnkmPHj2QJInc3Fz27t3Ltm3a1kxycnKn/W612vWtKEqXvDweT6e8EYHgZMRnUedl51NdFexu0+tl+no7abXG/S1JUr196ra4vwOPCd/+NEBvg2ZR57qd1HlLMyZbvPPXtE2orZI2V7XqoB+jADjIdqy6IYwyvcYg06PoJBPh8kCgY/vUvgIoAIsWLcJut7dwhUAQICQkhC+//JJzzz2XFStW8Oyzz/Lss8+ybNkytm7diqqqjB8/ng0bNhAV1Qa3UjN0qCmHoO0sWrSI9PR0xowZc6yXIjgBMFtCSEjSxLqxwicD6nXSag1tjfwGGB0n+x8Ug6ICVniMTk+ErEMFMl1NR363BqvktahVO93oiZVoXNjJYheRumEYJK2PQISsVWirVHa2af4jueSSS0hNTaWoqIh33323Q3MJuha3W2sm05RRt3btWsaNG9diGlRL87SFqKgo3n//fXbt2sWcOXO48MILmTJlCrfeeiuff/45GzZs6JT8aR9CqI8yt912G7t372bz5s3HeimCE4S+6Vrhk2b3qVuZopUc0/bIb6tRYlKiTKgexicEcpElSfLvUwdKiXpzqWvb1vwg3C/UTiQk+nqt6l38EDQuVE4FwK60v/UlgF6v58477yQtLY3Q0NAOzSXoOurq6ti+fTugpdU1xrx589i0aRNz5sxpcp7MzEx/BHZT87SHgQMH8uijj/LRRx/x+eef88ILL3D22Wd32vw+hFALBMc5fb0Vyhrbpx5wRCetlkiJ80Z+t8GiBvj3WAOfn2uie2jwvrZvn3qfV6h9FnVhHTg9bfgwgNf1jWaZD0brX7+VtWzjW/+4zmh96eO2227jwIEDouDSccrll19ObGwsO3bsAOC1114jJiaGl156KWjcFVdcgdVq5dprr210nrS0NPr164fL5QLgqquuIjExka1bt3bp+kHrsNUZdLiEqEAg6Fr6DdIqlDVmUdfvpLX/YCWDBjbfoKP+HnVbIqcNsoShkY/1o0LCWF5Vwtc1FdwTk0y0Ccw6qPNAnk2lh7V18wdc3w4AejKEiVzEBlbwKS8RSTxppNdrfdlxoe7sJg2CzmXp0qWtGjd9+nSmT5/e5PnO6kHdFjweD2vWrOHLL7/slPmERS0QHOf4LOoDew7699l8+DppQesCyhKjJSQJauxQWdvxtZ0XFo0MbHXUcshp1wLWwiQ8ehdrKqtbPc+RQg1wFleQzikouFnHMgBCvELtphKP2jlBYE6nk3fffZfdu3d3ynyCkwOr1YpOp2vXy2g0cs4553Ra/2sh1ALBcU5yj0TMFjMOu5Psg4cbnB/oDyirALRqf+UVDg5mVGK3Bwu7ySAR782Dbqv7uzHi9AYmhoYDsLKmDIBECxT3PMDfbb+x1d5yYQgAqzc9qwYHirdaoYTMKZwPQAl5AOilMHRYAHB0sP2ljzvuuIOrr76ap59+ulPmE5wcXHnllaiq2qFXZyGEWiA4zpFlmT4DtWJDze1T/7ixgGtu+IbzLlrFJVf+j5tuX8cDf/8JRQl+YKT43N9tqFDWHOeHxQDw3+pSACqt5XhMTlTgE++xlvBZ1CpQi9N/PJpuAFRThgvN2jZ1Up9qHzNmzADgvffeIz8/v4XRgt8Lt99+O+PGjSM/Px+Xy9WmtGOn08nXX3+NXt85u8tCqAWCE4B+g5vepx7QPwqTSYfd7iE3rxanUxNgWYadu8v44qvsoPG+CmU5xZ0j1OdZo9ABOx02Djjr2GIICOhn1WWtsiyMkh6TN2Smup5L24wVE1pUdgXavrTP/d0ZAWUA48aNY8KECbhcLhYvbnsLTcHJyZAhQ7jyyitJSEhoc+c1vV7PmWeeyW233dYpa2m33DudTr744gvWrVtHRkYGNpuNqKgo+vXrx1lnncWkSZM6ZYECgaBeQFkjFnWYxcCzT04kO6ea+HgzcbFmYmND+O/KLF56bRevLdnDqRO6E241Au1rztEcMToDp4ZGsM5WyayCDAqwI3lkJEkrhrLVXssIc/NV00Czqh2qO2ifWkIiingKyKKMQuJI6XSLGmDWrFn88MMPvPjii8yePVukbAkAOlwCdP78+Z2yjnYJ9auvvsrcuXMpLGz8D+Wxxx5j0KBBLFiwgDPPPLNDCxQIBM1b1AD9+0XSv19k0LGL/tyTL77KJutQNUve/o27bhsKdL7rG+ACazTrbJVs9u5JW0pjUU1OaiMq+KymrHVCjYkSaqnCEXQ8im4UkEU52vOmM1O0fFx44YX07NmTzMxM3n77bWbOnNlpcwtOTjIyMlixYgVFRUU8+eSTAKxbt478/Hz+/Oc/d+qHvTa5vhVF4aqrrmLmzJkUFBQ0u4m+c+dOpkyZIjrUCASdQN+BWuR3cUEJ5aUVrbpGr5e589YhAKxcncW+A9p1vupk+eUqLnfnWNXnhkVj8PabDpFkIspiMVVq5U0/q2md+9u3T12jHinUmqu7HK3IiUn2pmgpnWdR63Q67rrrLkDrqtVZ0bqCk5NHH32U/v37c//997NkyRL/8UmTJuFwOBg1ahQ//PBDMzO0jTYJ9d///nfef/99VFWlR48ePPHEE2zcuJHi4mKcTielpaX88ssvLFiwgPT0dBRF4d577+XDDz/stAULBL9HLNZQUnppJQmbsqobY9iQWM6clISqwsLFO1AUlWirhNkIiqKJdWvYv/sgX3z8dZPnI3V6Jlk0YZ4eEUeS0YipOhwTMtkuBzscthbvUb+MaH18AWVdaVGDFlQWERFBUlISJSUlnTq34ORhyZIlzJ07F4/H0+gH0GuvvZbrrruOyZMns2XLlk65Z6uFOjs7m3nz5iHLMnPmzGH//v3cf//9jBkzhpiYGPR6PVFRUQwfPpw777yTnTt3Mm/ePPR6PbNmzcLpdLZ8E4FA0CTN7VM3x803DMJs1rHnt3L+93VOu5pz3H/dP5h940Ns39x0je1/x/dgTmwKs2NTSAgFWZUZImvi/X5lESVuFzbFww+2Kl4qy2ebPTiR29eYo6pJi1oT6s4sehJ0f6uVvXv3smbNGuLj41u+QPC7ZMGCBQwfPpzNmzdTV1dHTExMgzEXXXQRdrudv//9751yz1YL9dKlS3G5XDz++OM8+uijrYqC++tf/8qSJUs4fPgwH3zwQYcWKhD83vHtU+/dsb9N18XGhHDN9P4AvPrGbmptrkDkdyuEurighKwDWuT43mas+RSDidujE7HIOrp5S42mOTShfquyiCEZv9D7wM9cfHgPD5dkc2t+8Fz1W13WJyDURagoXVL0xEdCQkLLgwS/azIyMvjss88YNWoUJpOp0ep+BoMBgA0bNnTKPVst1N9//z0TJ07kvvvua9MNrrzySi6//PJOK6UmEPxeaa9FDfCXP/eie7dQKqucbNteGggoa0Xk99ZNO/xfHzqQ3czIAAlm7eGl5IcTkRWBoda3gw0JOu0hluGyU+kJFGRprDoZQASxyOjw4KKKsi4penIkRUVFfPTRR10yt+DEpkePHiQmJjY75n//+x+g1UDoDFo9y/79+/3BFm3l7rvv5ueff27XtQKBQMNnUWfuO4TL6WrTtXq9zOB0rQ54ZlZVm1zf2zYGhDqrjUKdXy2R9n0KA1f05/OQkWzrNYJfe40gSa+liu2ut3cd1kgwWaFSzWW2d5FUrc1lwP3d+SlaPg4fPkxqaiqXX345hw83rAQn+H0zZMgQfvzxxybPZ2ZmMnfuXCRJYsKECZ1yz1YLdWFhIX/4wx/adZOxY8dis7UcTCIQCJqme3IC1ogw3C43Gfuy2nx9r55aqc+MzKo2ub63bmy7Rd3NK9SlzoDFnpUP8XojkiQxyKSlrtQXal8HrSoC7uyfPIc4rFZS6NHm80V+hxwh1J1ZrjE5OZnx48fjdrt54YUXOm1ewcnB3//+d6ZPn86HH36IwxH4UFlVVcVrr73G+PHjKSoqQq/XM3fu3E65Z6uF2uFwEBsb2+4bdVYpNYHg94okSfRtppNWS/iFOquKpGjtT7+6DiprVRwulYwChaKKYOGus9nZu2Of//u87AKcjpYDQxO8e9R19bbv9ucF5k5vRKjDG3F9F6laXrZN1UQ8S9U6IZllLQK+VjmIW63lR/tf2Gq/s8V1tZZZs2YB8PLLL1NT07p65YKuYdWqVUyYMIE333yzXdcXFBRw880306tXL3r27Mlll11GdnbrPnC++uqrDY6lp6fz4osvMnPmTCIiIjh48CDdu3cnOjqam2++meLiYiwWC++++y7jxo1r15qPpNVCbbfb/f0820N1des76QgEgsbpyD51rx6aUB/OrUFSFX9zjpmL67jgXzZuWVzH1fPr+PiHwN/5rl9243Z7iO8eR5jVgqIo5GS27A72ub5VvYTqFev9uYF+2T6Leld9i/oIoVZV1S/UdkXre71V+Q2AMHkgABXKNso9P1OnHqZU+RG32jmi+qc//Ym+fftSUVERlCcrOHosW7aMcePG8ac//alZV3NzZGZmMnr0aCoqKti1axcHDhwgMTGR0aNHs3fv3havf+ihhygoKGhw/Oyzz2bfvn08+uijnHXWWcTExNCnTx9OP/10/vGPf/Dbb78xbdq0dq25MVot1Kqqsm/fvpYHNkJ5eTmlpa0rzi8QCJqm/xBNqD9c8gnnj7qUSyZezZVnXs91593C6/PfbtYFHBVlIjLCiKLAoexq+iZpf/5l1SqqCqGaTvLyF05e+tyBoqj8+tN2AIaPH0pan1QAsvbntLhOqwEMXoHumaLdJ7tYxe51haebtGCwvU4bblVlfW0l/yzMBbQ86h32WgYd/IWfndpzI1nqAYBH0r7fIWcCUKXsoVQJPMRrlawW19YaZFnmr3/9K6Cl43g8nhauEHQ2o0ePZv369fTt27dd13s8HqZNm4bT6eSNN97AbDaj0+l45plnCAkJ4dJLL23R+MzPz2fEiBEsXryYurq6oHPR0dHcd999rF69mp07d/Lbb7+xdu1aHn74YZKSktq15qZokz/6sssuIzq6+cb0jSH2pwWCzmHMqSMxGA3Y6xwczsoLOrd14w4iYyK4+NoLGr1WkiR69Qznl60lZGRWcfvUcCYO1CzrlFiZCAt8uMHFa1+6WPGjm5IqldzNewAYPnYIBr2eXb/uaVVAmSRJmBRwSdCnl0xVuUpZtcrBfIVBaTp6GEyESjI2VSHDaefh4mz2uu2kREA1ThaX51GuuClSakCGFHpRyhr0UhVuXBySckhDhxEP+e7P/PetVTOJYHAHfsIBrr32Wv7+97+TkZHBf//7X/7yl790yryC1tGrl9YxbsSIEezf37aURID//Oc/bNmyhVtvvRWLxeI/rtPpuOKKK3jqqad4/fXXWywXO3LkSF5++WXmzJnDNddcw8yZMxk4cGCb19MR2iTUHWms3liumUAgaBtJaYn8b+cKCnOLcDicOOocOBxONn+3hXcWLeWZvz/PmNNGkeqtYnYkPXt4hTqrinOmyJw1LNipNu1UIzHhMvNWOPhulwe3+WxgA8PHDaGmSnMrtyagTFVVlDoVQiXCImT6Jar8tNfDfq9Qy5LEQFMoW+w1LK8qZrfThiRpjyMPCp/XlgAyHtmOBPSVe1Cg6jFIbgrJolg6TJTORKzHhlIv79rWSRY1QGhoKLfccgvPPPMMmZmZnTavoG2EhIS067r33nsPoNHI6/HjxwPaHnRzQn3uueeyatUqAHbu3Mkrr7zCxIkTGTp0KLfeeit/+ctfjkr8VavvIEkS06ZNo0+fPv5k7tbgdrs5cOAAy5Yta9cCBQJBMFExkUTFRAYdm3jWOPZs28vP3//KP279F69/9kKjDxBfQNnBjKom5z9zqJ7oMIkH366D1HGE9T2FvoN6czhLc01n7T/U4hqLK1U8XqGWTNA3UeanvR725QYHlG2x1/BKubYHqKoyqiohSSpuyYUk6ZBkzeXcR45jtWIhWlfJDr5HwUOVrAl1fWqVjBbX1hZmzZrFnXfeKSqVHUPaY+TZbDa+/fZbIGCZ12fIEK0G/q+//kplZSURERGNzvP444/7vx48eDALFy7kySef5D//+Q/z5s3jzjvvZMaMGdx8882kpaW1eZ2tpdVCffnll/s/obQHs9nc7mtPJhYtWsSiRYvEnpegU5FlmYdfmMNlp13L9s07efO597jhnmsbjKsf+a2qapMPweG9dAwMy2ZnVRoRp92MJOsCe9QHspu9FmDPYQXZGxxe4oQRiZrlvj/Pg8ej8vU2N3ExmqXkRNu3Di2PRummQ6dzI0seZJ32N2LBSLwURrXHK9TqdyBBlWzy3y9U6oFNzaJWzWrDT61l2rPVJ2icqqrgD4cmkwmTydTE6I6xZ88e7HYtzS85uaF3KTIyEtA8P9u2beP0009vdJ6hQ4c2OGY2m5kxYwYzZszgl19+4eWXX2bYsGFMnDiRW265halTp3a6B7nVwWSnnnpqh27U0etPFm677TZ2797N5s2bj/VSBCcZiSndeOBJLQDq5afeYM+2hlGtPVKtyDJUVTkpLXM0OF8fw8FVKPZqXObufL3VTWqvFCRJorqyhvKSimav/S3Hg+yN0ym0qfT1CnVOicrst+3M/8TJhrUBO0F264nMS0ZRNG9diM5DjEGzvsMJxYKRakXbZ7RJ2gO/Vjbi8dY7S9Jr+8d1al6DsqKq6mGP4zEyXK+iqu3vivXLL7+Qm5vb7utPBrLzR5OVO65Nr+z80QCkpKQQERHhf9W3Vjub4uJi/9c+Ua5PfQu6Iw1YfPvXOTk5TJ06lb///e/07NmTf//73022gW4PrRbqW265pUM3mjFjRoeuFwgELTP10rOZ/Oc/4HZ7mDPzUex1wWJsNOpITtJ6Q//w3X7eXvSfJquc7dy4idot/wHgrW9coDPSPUXrZNVUQFllrcry7118s92N7I3wLqxTibbKxIZLqCpsy9TEsiY7YE2l2KOQVBnJoVnZEy2hxBu1cWY1FFmS8ChRQfdSJYkcQwQWeTiJ+gvQYwUUbGrw2iqUreR5PiHT9Qp7XU+1S6wfeOABRo0axbx589p8rUAjJyeHyspK/2v27Nlddq/6WUaN9YWuX9rTZ3l3BKvVypQpUzjttNPIz8/nH//4B6mpqVx22WUdnhva2Oaytfz4448sW7aMTZs2dcX0AoGgCSRJYs68+4hNiCFzXxYvPfl6gzE+9/f7S77m2X8u4uuV3zYYU1xQQu6hfBw7PyM+HEqrVT76wUWPPilA40L9wx4305+x8dqXTiprIcLbt6ewThPsgd40rW5REtFWCdmtI8QWCorEvd3jiTGBXKdZzX8Oj8Ci1+qAy4om6Do1hvrZZ2asHDZEEBbyf+ilUCxyT6Bhila58ov/61z3R5R41jf3I2wUX1XG1157jcrKyjZfL4Dw8PCgV1e5vQGMRqP/68ZSFut3c+zo9saXX37J1KlTGTBgAIsXL8blcmEwGLj88st54IEHOjS3j1YL9erVqxt91Wfnzp0MHjyYU089lSuuuIJTTjmF0aNHk5HRuQEeAoGgaSKjI7j/ca0u/1f/XdvgvE+oSys1t/HBPQ3/Pn1u8159k7j+bO2Buux7F9379AMaj/x+71sXLg/06iZz15+NLLlFi0updUONS+X6Pxq5YYqR5282M6ynjGKEyEM9Sc7oz4UJFnpYZXBr97JLTgx67WHq8WgP3TDJgk3V5tRjpDfDgED9b4ukCbVNCY7QrvD8EvR9tdL2ehDnnHMO6enpVFdX89prr7X5esHRpVu3bv6va2trG5yvqKjwf92eips2m40XX3yR9PR0zj33XL744gsURSE+Pp65c+dy6NAh3nrrLUaOHNmu9R9Jq4V6x44dnH/++Zx//vk8/PDD7N+/P8jPn5OTw5lnnsmePXtQVRWr1crIkSPZs2cPZ5xxBmVlZZ2yYIFA0DIjxmsiVnC4sEHJT1+FMhdao4usAw0LmBw6qB3r2S+NSYN1pMVL2J2g7z7Ee02wUBdVKhzIV5AkePyaEM4bbSAqVCbCa9gU2FS6R8tMO9VAeKhEv0Qd7lAJnUfPIHMIelkizSqhugLVyVRZc9vb3dq+tRWTf586nlRi6A4EhDpU1qJufa7vUs8P1CgZVCparfIE3dnafGo+HtVOgfsL9jufxaa0XMBFkiR/AZTnnnuuQ1UaBV3P4MGD/QFdeXl5Dc779o+NRmOzOdEPPfRQ0PeHDh3i3nvvJTk5mdtvv53ffvsNVVUZMWIEb731FtnZ2cydO7fT26W2Wqh94eyLFy9m48aN3HXXXUycONF//pZbbvFvyl900UXk5OSwefNmMjIySEhI4KmnnurUhQsEgqaJiY8m1GJGUZQGhVF8FrUcEg2S3Kh1nH1QKxOa2isZSZIYnKb5sZ2hmuv70P7ga376TYvQTk+RiQwLRLz6SokW1Kl8n+/h1u+d5NUq9E2UcXu3DtOjtMdQD6sEfqG245C0vcNKl3Zvq2Si3KOtPYX+/j7VFRQBYPL2qXaoxdQoB9nquIuN9stQcGAgkhjdKQDY1QK2O+5jl/MfZLvfZ79rQWt+pFx11VXEx8eTk5PDxx9/3KprBMeGqKgoxo4dC8CuXbsanD9wQCvBe/rppwcVQzmSpUuXsnPnTj7++GMuuOAC+vTpw7PPPktFRQWyLHPJJZfw3Xff8fPPP3P11Ve3KXW5LbRaqFeuXMmsWbO4+eabG5z7/PPPWb16NZIkkZ6eztKlS7FatU/rCQkJvPrqq3zyySedtmiBQNA8kiSR5t1P9lnHPuLjzISYJCRZhy4khuyMwyhKcIBVtvea1N5aSlY/b9R2uTsSgNxDebhcgV7SPqE+ZYAu+F7eWhWrv9/LQ1tcbCpSeP+Ahz7dZdzexh1p3szNHmESOLSH5hbPYaolLUe61OkT6hCy3YlEu8/nDC7zC7XPonZJ2rga9XCDfepI3QhCJM0Ct6v5VChb/efKPBsbRIo3RkhICLfeeisA8+bN69SOXYLO56abbgJg/fqGMQm+2uFXXnlls3Ps27ePYcOGMW3aND777DM8Hg+RkZHcf//9ZGRksGzZsiCDtatotVB/++23jW6MK4rC/fff7/9+4cKFDT5VDBs2LGhPQCAQdD0pvTShzskIFmpJkoiyasKsC43D6XBScDg4lSQ7wyfUWg6qL73qUJkOs8WM2+3hcKaWqlRrV9mWpQn1+AHBpRmMtRUAfOlIoMLrgV+T68FgAMVrUYd4A9PTrBJKfm9wGclUy6hDu6DYJeNUFcIlEyoyHk9PTIT6hbqSEjy42SlpLm6nWorjiD7V0fIYv1DXqbko2JHQY5LiUHBQ5mld4Ostt9yCyWQiNze3U9NvBE3jdmsfCJuqPbF27VrGjRvHwoULg45fffXVDBkyhGXLlgVFdjudTpYuXcrgwYO56qqrWry/qqqoqsrAgQN56aWXOHz4ME888QQpKSkdeFdto9VC7XK5Gt10f/3119m1axeSJPGnP/2JM844o9Hrw8LC2r9KgUDQZtJ6N25RA5hkLcBGFxoHBO8519nsFOQWBc2RFi9j0EOtHVIGjwi65ucDHtweSI7VaobXJ8Th7WZl1ixlnQRFdvgs24MiS+BRqfT2xO4WKmFSTHgODfFfryg6FFVHoduFFa9b3FsyNIxI9BhRUaikhEzpIAAyCmXefel43WT6Gx4gUX8hJikOiYDFHyqlEKf7AwAlnu9a8yMlPj6eb7/9lszMzKCAJUHXUFdXx/btWmOYn376qdEx8+bNY9OmTcyZMyfouMFg4P3338ftdjNr1izcbjc2m40ZM2agKAoffvhhq1zVEydO5Msvv2Tnzp3cdNNNx6R4V6uFuqampsEnmpKSEn8unF6vb3IfuqCgoNFcNoFA0HX46n1nZzRsS+mp0wpC+IW63p6zr1RoeKSVyGgtYFSvk+iVoD0uIvtokawZe7MA+Ok3zeI5pX/DQoemukAq0wCTjTO9Hbte3aNdo6+DA3maC1knSaRaJZRDQzCrmij7UrNyXQ6skuZHr/a6qSVk4tDe4y98TbGUj8v7SCtTfgUgQh5CsuESZMmALGkWtI9QuQexOq0iVamyoeEPsAnGjx8flP4j6Bouv/xyYmNj2bFD+9D12muvERMTw0svvRQ07oorrsBqtXLttQ0r8Q0ePJgff/yRwsJC+vbty/Dhw4mMjGTbtm3079+/xTUMHjyYNWvWMHny5M55U+2k1SVER44cyXPPPedvqK6qKv/3f/9HWVkZkiRxxx13NPnGn3/+ec4888zOWbFAIGgVPmvYFxhWn5ribAjpiSm8OzXAoQM5bNtRgtutUp7jdXt7A8l89EuS2ZurYE7UomR3btmN26OyaV/j+9MAalkpxAOqymlVO+k9fCJfHVYo9HYM1NtU9lep/pKkPcIk9lcaGVo9nI3hGwnxRnnnuZ1EGIP7VQMM4w/kk8EPfAqAU9JhUBVUVSt44ZJM/Mz/GM4Z6DESInXHrmq1xS1STyJkrdOWQy3GrdrQS603KNxuNzt27GDEiBGtvkbQepYuXdqqcdOnT2f69OlNnu/bty8fffRRu9Ywc+bMLgsQawutFup7772XKVOmsGfPHkaMGMHy5ctZv349kiTRp08fHnnkkUav++ijj3j66adFlKRAcJRJ9Qp1UX4xdbV1mC2ay05VVQoz92IcOAlVNmNOmsi63Yl8/cAPAJw9VnNXp3kDyQBefn0X3+9UwNoLp1nrtbv9553sPOShxg4RFhiQ0tBBV3cgD0NFHnJxGfbwXUycdhomHTi8zjlDHZTVqJRUqcRFaClaADH5w3kwNoxPqz38Rh35bifJkibUVUFCPYlveB8XmpUdIiWAGvhg8pn0HhVeK3s0Z2vnvVjkHuilMPSE4aYGh1qI3puL3RK5ublMnDiR4uJiDh8+TFRUVMsXCU44fMGDx5pWu77PPPNM5s2bx5IlS7jjjjtYt24dqqrSq1cvVq9eHeTazsvLY/ny5Vx44YVMmzYNj8cjmlAIBEeZiKhwv+s6OzMgXpXlVdRUVeCxlwNgTp6ISw38/e7er0Vbp3gDyersblb8N5PibM1dnl9jRm8wUFZczuc/aXW3x/bTo5MbNiIoLXURun4nIXvyyNiXi1kvMSEh8Njp4d3uO5Cv7VMnW7Rz+bUS5xsG0VOvCWCe20k4Xtc3gcCgFa591LoDHyiipD5B97dJ2rzZ/AbgDygDzfWtHdP2mn2WdmtITEwkIiICm83GK6+80urrBIL20KYSonfddRdbt25l9uzZzJw5kxdffJFt27bRu3fvoHHvvPMOGRkZnHLKKTz++OP8+9//Zu/ehg0CBAJB15Li26euF1CW682r1ju1vWhXdS41B1dzyw0DACgs1yxXn+t82/ZSXG4F6mqRUbA5oO/YU5AMIfywT3N3Tx7WuHOusjqQwpR1qAKAs5K0ayKMkB6vPYIO5PmEWhP73FrtukS9thec63JilRq6vpe5trLJaQVVIpRwoqTAs0hFYoD0B+169gMQIgcCwCxSDwBMXqGuPqJGeHNIkuTfBly4cGFQSUqBoLNpc8frwYMH869//avZMZ1V31QgEHSMtN4p7Ph5V9A+9eFDmlCnhB/m+eX38adhF+AsryKtu+b1chKBZLD4hXrzliLvlSoGtw2HPozuQyeSWW7BqehJipEY1rPxz/w1dYFHTFFxHW63m7OSdGwr1TEsRsaRq/D1Vg/7vUKdZAkUSHErKgl6bX+wxOPyC7UdNy7Vg0HSUa06qMVCnPtyLjGMxSUHutKFSPFMlK5nO99TRgF1VBMiJXnPdUcnaea8U9aDAuuU17Fyur/iWUtcfvnl/O1vfyMvL49ly5a1KtVHIGgPXdKUQyAQHB/4Ir/rp2j5KpUl90gkzGLw95kuL8yjTy+tUJEhoiep3jzsTT8H8oXtZZq73NStP+bBUwE4b7Shyf67dk+g8YKqs5CXXYBBlnhguIFzUnT06e61qL2u75gQMMrgUTWxjpI1oS/3uAnDhO8u1ThQVBWbN9f6kMdEPCmYpHj//UKkBMxYifYKby4HiJJHkaS/hFrDMBZxN6Xks0vaqb1n1ckBfm3lT1brp3zHHXcAMH/+fFEARdBltFmoFy9ezODBg7FYLPTp04eHHnoIh6P5vrYCgeDY4KtOVj9FK/dQQKgh4OLOOpBDnzTNgg3rNgCLNZTcvBry8m3o9RKRkUaU2moADtQkYIjri+p2clq/xuteu1wKSr0oap0pokG50t7dZSRJ685VVq0gSxKJXqs6r1YlShcQalmSCMMXUGbHhhOfNO5TtP3z+ulXPtFOpi8Ah9mPLOnpa5zFZv1BSjjMFr6izqv+JtVNLm1r2HHzzTdjNpv59ddf+fbbb9t0rUDQWtok1DfffDN33HEHe/bsoa6ujoyMDB599FGmTp3aoAShQCA49vis4uyMhnvUSWleofZa1NkHcoi2aBHfkiUFt1th8xZNAAenxzBscCyqTQseq7Rpjw7Hwe/I2ftbo/cuKLSBFHjEyKbwBs08QowSKbGaUvqs6qTQwD61T6grFDceVQ3ap65VA/vCBWo1lar9CIta+zrJK9S+feo8DuL2WeLsxuEtPWpSPRz2jmktMTExXHfddYBWSlkg6ApaLdRff/01r776KqqqYjQaGTVqFL169QK0Em5LlizpskUKBIL24XN9l5dUUF2pWcOHj7Coe3iFOutANs6qXBSXDRUDu/eUs+lnbX96zKg40gdGQZ0NmcCH8rpdq9i2aWej987Kqgj6Xm7EooZAeVLfPnVivYCySK9Qq0CV4iGsnlDXEBzAtU8pxkAkEppXwNekIwktEjyXA6ioHGKP/5p8MnBI2j1MqptytYAnuZZveK/R99QY999/Pz/++KNoPCToMlot1G+++SagBVDk5uayefNmDhw4wPr160lISGDZsmVdtUaBQNBOQsNCiU2IAbTCJy6X21/X22dR9+jrLTV6IJvsjBxclVo/5+9+yGfbdq0j3tjRCQwcEAWoUKdZ3ZH6alz5u9j+c+NCfeCA1trWU6cVH5GNDS1qgD7dNYvWb1H7hNqmYpRkwmRvQxCPu14ZUTs1avCW2z6lGEmS/O5vn1An0AMZPXVUU0ERh9jtv0ZF8VrUEjJgwIOdWr5nBQqtSylNS0tj/PjxrRorELSHVgv1pk2b6N+/P++88w7R0dH+4xMnTuTFF19k3762N2MXCARdT2q9mt/5OQUoioIpxOgX8OQeSUiSRE11LVt/2o6rIgOAlauzsDs8xMSE0LOHlb59IjDoZVylmpV99mAtn3n7z7sbDaTKztHKh8qOfO1fQyiZBxr2BvYFlO1vIkUrStYs5HKPi/B6RU/qu74B9nk0N70sT8RNDOGy1pNbj4FuaL2qD7PPn1PtR5KQJK19ZogSEOdiWu5TfSRlZWVUVla2PFAgaAOtFuri4mL+8pe/oNM1LBN43nnntXi9cI0LBMcGfynRjBx/IFlSWqI/UtsUYiIxVcslLsgtwlWZiSRpwWAAY0bFI0kSRoOOPr0jUAsOcfMplVz9pySMJiMVpRWN1hPPy9cKp5j1NVgsmnu5sspDdVVN0LjeXqEurlSpqFVJDA0W6kjvM6fc465X79tBrdf1rfPGgu9TitjlqGWeJ4GH1PPYrdb575HodX9v4Suc1AHBUeohkvYzivFYcKva/bJpW+2HZ599lpSUlAZdnASCjtJqoa6uriY+Pr7RcwaDocWWXw8++GDbViYQCDqF+ila/tSsnklBY3wBZQB4HAzoF+n/duyowN99+kCtUlhuVikGo4GBw7T6/o3tUxeVaEIablHplqBFf8vGCA7tD3Z/W0IkkmK8AWV5Hv8edaUTalz1Ir8Vd71gsoDrO91bxCRLLWdq/o/kqppFW6ra/Pfw7VP73N79GBW0hmjdBAASPDoyXdrP66DauEu/KRISErDZbLzwwgtBbRUFgo7SaqFWFIW8vDwURWnwKi0tJSUlBVVVG5yrqqrixRdfpKioqOWbCASCTqd+cw5/apZ3f/rIMQDdkhMYP1YTP1mWGDUikPI0sL8m1Ht+0/Kph4/TWlJu/m5L0HwOh4eqGs0ijo6USYj3CnUjkd8QcH9nFCiEGSQivc2p8mpVonU+17ebCG8Z0T2uKl4o11zTyXIEg2RtPzo64pB/zio1IJY+i9rHaKYQRqT/+2TdFAD06gHq3No9GrjIW2DatGkkJydTVFTE+++/36ZrBYLmaFN61jPPPIPBYGjwio+PZ+nSpej1+gbnoqKiuP3227tq/QKBoAVSewfKiOZkamVDk44Q6h71LOq03ilMOi2REJOOiad0Iyws0D3IZ1EfyKjE4fBw6mQtiOr7r37E7Xb7x+Xla/2uFbed6KhQEuK1KmCyKYK8nIY1tROjtUdRQYUm7kn19qnrFz2J8uZl73RVkKdoFrNBNTDaW7fbZKz1z1lZT6hjScTgFXkLkUQofbCoMf7vw+Q0LFJvJBTi1RpCPE4ktZAqSpv4qTbEYDBw5513AqIAiqBzaZNQq6ra7pdAIDg21A8W27llt/fYERZ1PaFO7ZVMSnIYH7wzhTn3B7uI4+PMxESb8HhU9h2oYPj4oYRHWqkoq2T75l3+cbl5XqG2lxMZEx5kUfuizutTdkgLRt2XobmtE+tFfkfWK3oS7RVqG3ZkSQv8+qG2FsUe02DO+l22ZHQkoqWTFrkSuKDuTbZ5tHS1CGIBiNGdAkBPChnmKGSovYCcNrq/b7zxRsLCwti1axdfffVVm64VBON0OnniiSfo378/vXv3ZtKkSaxfv77N8yxZsoRx48bRq1cv4uPjmTZt2gnXe6JNtb5vuukmLrjggqBOWS1RW1vLsmXLeOedd9q8OIFA0HFMISa6JSeQn1NAUb4WGd2sRe2tZlbfkvYhSRLpA6L57od8fttbwZBBMZz2xwmsWv4/vv38O0aeokVaH87VAsY89nIioxLplqBZ1DpTBAWHG2aIHPj5J4jryf6sKmqqLCSHeptx1KpExwaKnkR5o7N1OhfhOs0A2OdwsaesjMh4EwZ9QJyrCN4nPoPL+Vz5hP84tblrFW2/O9Ir1BZZa3HZh3wM3lzxPGUjg3STGv/BNkJkZCTXX389zz33HPPmzWPKlCmtvlYQwOFwcO6551JYWMhXX31Famoqy5cvZ/Lkybz33ntMmzatxTlUVeW6667j22+/5eOPP2bkyJEUFRUxffp0xowZwxdffMGECROOwrvpOK0W6oiICF566aV23eScc85hxYoV7bpWIBB0nLTeKeTXczknpgY3nojrHktIaAh2m52UXs0HhiYnWQAoLNJcz5POnegV6u/568O3IUlSkEUdET0gYFEbwynIbRiv4izPgzhQzTEsePhFBt9+NwCZ1Sq9dQ1d3zrZTYpJryVQKXpqVRVjXRQR1gJUFSQpeI8aII10zO5anPwIQIEnjsGqk6HSHwAwext2REiBILRKZTc0THRplrvuuovnn3+etWvXkpeXR2JiYssXCYJ44IEHWLt2LRs3biQ1VfsQOW3aNFasWMF1113H6NGj6dmz+d7hixcv5q233mL16tWMHDkSgPj4eD788EN69+7NZZddxo4dO4iMjOzqt9NhWu367kgDbVmWxT61QHAM8UV+A8QmxGAODQk6L8syf778XFJ7J/sDxJoiLk6zjouKtfSnCWeOx2A0kJNxmCxvRLdPqD32ciKiwknwR32HUZBX0mA7zFZ8GFXxIOmNrFi2Hv0hLZBra4mC2ZsuVeZxo3g00ZYkFVmnWc+3RCUTJst0d/bGY+tGRbUmuEcKNWiR4T6qlTCS3NfTn9EAmKXkBuNdyuFWFz7x0bNnT95++20yMzOFSLeDrKwsFi1aRHp6OmPHjg06d/XVV1NbW8vs2bObnUNVVf7973+j1+sbeDUiIiK47rrrOHz4MC+88EKnr78raLVQP/bYYx26UUevFwgE7cfnzoaG+9M+Zj99D//dtBRreFizc8XFakJdUqIJocUayphTRwDw7effAd4634DiqCAiKoJwq4GQEE1wHW6Dv5ypj5rKSpQazS2vC+/Gd+8uJy1Mwq1CTkWgMtk6WzWKos1TpGp1x8eZovi110hWJ48gri4du0Nzjzcq1IpWLa2bpHUJq6yXa22S4nAfYT6b1TqKaZgj3hLTp08nKSmp5YGCBnzwwQe43e5G3dLjxo0DYMWKFZSWNh3o99tvv5GXl0d8fHyjtT8mT54MwNKlSztp1V2LaHMpEPwOqO/OPnJ/uq34LeqSgMhNOudUANZ9sQGA6mqto5bishERHY4kSUHu7/wjAsqqKqrxVGnH5PBuZO7N4nRvytbuEu3fCo+bX+y1eBRt77wO7R4WyUSYrMMky8TrjCiKZnUfKdSKqvqFepic2GCMJMlUqtagayyKkwq1YZR6WygrK+vQ9b83Vq1aBeDvJVGf6OhokpKScDqdbNiwock5fD/zqqqqRs+npWmV6nbv3o3NZmt0zPGEEOqjjM+lM2bMmGO9FMHviPp50k1Z1K0lPlZzm5eXO3C6NLewT6i3b95JYV4JtjotVUt124mMigAICigrrLdPraoq1ZU1eKo1QdSFdyPrQDaneuusbC3QIsBrVYUd9lo8nuDQGotk9H/dTW8ICLW3Z7WPQrUaO270yKTrtLzrinpCraoqJViC5paBRDWqTT8fH0VFRZxzzjn079+furq6li84yamqqgp6NdUe+ddftZ7gyckNtyIA/57y1q1bm7yXz5tRU1PDnj17Gpz3bb2oqtqsZX68IIT6KHPbbbexe/duNm/efKyXIvgdkZjaDb1ecwF21KIODzdiNGqPjtJSTegSkuIZOKwfqqryzedasJaqqqgeBxHRmlBHRWpR1pLBHJSiVVttQ1EUPFWaUBujknA5XURVFxBlglqHzv+g2uEIWNQ+wggIdbw+YFErqP4yoxBwe6dKkf40r/qubxtOSglY1KWqFaeqx6a0z6KOjo5m7969lJSUnDRZL4m7B5O0c1ibXom7BwOQkpJCRESE//X44483mN9ut1NT42360kSQV0SE9vtUUlLS5Dp79OjBiBHadkxj+9C5ubn+r41GY4PzxxtCqAWC3wF6vZ5eA7zpRwMbuhTbgiRJ/n3q4uKARTpxspaHvOl7LfdY9dgxhRgIMWsCbbVqD0RJZw5yfVd596slb5et0HgtyvfQvixO66ZDQsKk+sQXVM8RQn2ERa0iI6nao62+aztT1YS6hxxNhGRucL5KdVCGtj8vYeQ9zudRLqNCGtCWH48fvV7PXXfdBWgFUBRFaeGKk5ucnBwqKyv9r8YCwupbt02lAcvebmotlWl9/fXXCQ8P56WXXuKpp56irq4Ot9vNqlWruP/++/33iI2Nbe9bOmoIoRYIfic8/spDPL3kX/763B3BJ9T196nHna4VR9nx60FAc3tHeN3eAOFeoZb1IRTmBVzf1RWaUJtV7V/ZqrmlM/ZmcWaS9ohyOwMBQT6RBa21hvkIixoAr9VdX4h9FnVPOdpfirSiXq51teqgBG29FimV3rpeJElRVNK8IDTH9ddfT3h4OHv37uXzzz9v9zwnA+Hh4UEvk8nUYEx967apQllOp+Ylqd/FsTFGjBjBzz//zJVXXsnixYsZM2YM06dPp7q6GqtV85yMHTu20WCz4402FTwRCAQnLr3696BX/x6dMlecd5+6uJ5QDx0zGFOIkepqF1a8Qh0d7j9vtWriKelDKDic4T9e5RVqi1xLHeDSWUGSydyXxYwEmdFxMp97Ag/T7nKYPw47FCOyFOiE1U2v3cOt6NDpgoW6QNHukyRFEOntwlWp2lFVFUmSqMbOQbrxM+O5yTiDJ+QhGKWOPSKtVis33XQTzzzzDPPnz2fq1Kkdmu9kJzo6GqPRiNPppLa2ttExFRUVAK2yhPv27dtg26GkpISrrroKgMsuu6xjCz5KCItaIBC0GV/kd3FxQKiNJiPDxw1F0msiqLjr/IFkELCoJb05qOiJT6jDzQoGPajIyGFxZOzNQpIk/jZcj65eAFmaPpA+Vt/tDZCg0753elO46lvDpar24I+RLYR7rXIPCjbvPnaV6kBF5qB0OlG6ER0WaR933HEHOp2ONWvWNBsAJQCdTkd6ejoAeXkNe5cDFBZq2ybDhg1r1z0WLFiAx+MhISGBa6+9tn0LPcoIoRYIBG0mYFEHu4XHnj7KL9TNWdRFecV4PFrEeHWVt+Z2ZBgJEZp1rAvvRub+QyiKQg+rTD9LQDTtlYGALwvB7tNonR49UqMpWr62lzGShRBJj8nrUPRFfld7//W10uwsUlNTufTSSwF45ZVXOnXuk5Gzzz4bgF27djU4V1JSQmVlJRaLhUmTWl/a1UdWVhbz5s0D4LnnnsNsNrdwxfGBEGqBQNBm/MFkJcFpR+NOH42s085pe9T1hdq3R23G4/FQWujNdfVZ1BFWEiK1R5IhKhG7ze63vMdEBQLINhyoJ9RHWNSyJBFfP0XL25jDpXr81nWMN+K7vvu7/thwKbhqW2fwt7/9jddff5358+d3+twnG9dffz2yLDfagOPHH7WMgosvvrjN0dpOp5OrrroKu93O7bfffsK4vUEItUAgaAfxjbi+AQYM64cxVBPSBsFk3iYfskG7Nj9Xc2H6gsmskVYSojSLOjq1LwAZezMBiPHuPRtVGbk2INRHur4BUg2mBhZ1udea1iET7g0kC/cLtfYeqvEKNZ1rUQMMHTqUGTNmEBLS+R8CTjb69u3LTTfdxI4dOxpsFbz11luYzWbmzp3rP7Z27VrGjRvHwoULm5yzrq6Oyy67jA0bNnDLLbfw3HPPddXyuwQh1AKBoM3Eei3qikonTmegFrZOpyO6m9bwQ/HUHeH69oqqpANZ78+l9lvUkVYSozWhNidoKWQZe7MAzaUN0NdgRnKbQNEeXWGNiOrokDA8XqH+xrOf2fZV7FO0nNtoyewPPotAew8+S9tnWXeFRV0fRVFwuVxdeo8TnWeeeYZRo0Yxc+ZMysrKUFWVhQsXsnLlSt5+++2gqmXz5s1j06ZNzJkzp8E81dXVvPnmm4wYMYK1a9eyZMkSFi9e7E/xOlE4sVYrEAiOC8KtBkwmLWCrpDR4nzosUkubqV+VDMBs1qHTaSIp6UMo9FrUvjxqa0QYfRO1OZ0WLZc6c98hACZbIjnVHM6dsd0xyhKqUxPZ0EYs6jFmq9+iLlFr+dZzkFddPwHa/rSPhq5vzbLuSqH+4IMP6N+/v9irbgGLxcLatWsZP348o0ePpm/fvqxZs4bNmzdzySWXBI294oorsFqtDQLD0tPTSU5OZvHixVx11VUcOHCA//u//zuK76LzEOlZAoGgzWhFT0I4nFtLUXEdid0DAqg3WYA6VHcd4fX2qCVJwmo1UFHhRNaZyT+s7T/X36PunyQjS1CnWpAtsRw6mANAosHE8pSBAHwU4WCvwwwhtY26vkeZw1DKgh9t+xWt4YevIhnUd30HW9QRXSjUpaWlHDhwgGeffZaZM2eeEDm8xwqr1cqCBQtYsGBBs+OmT5/O9OnTGxzfvXt3F63s6CMsaoFA0C4C1cmC96mdLs1qVt124rsH57oGUrQCFnV1pVYyMjzSitkk0aubN6Cs28CgmuA+0qNkv0XdmOs7Rmegmxxc1cpXOiOmnlBHelO0fHvUfqGm64T62muvJSoqioMHD7Jy5couu4/g5EIItUAgaBeNddECqK7R9l9n3HlpgypowbnUDYPJAAamBIS6KL+4QenN9CgJtVpzr/eQG2+YMUafRE1tLD3cweVSg13f2vrLfUKNz6LuupQdi8XCzJkzAUQEuKDVCKEWCATtIv6IvtQAHo9KjVeor7jhfKR6VcMgkEst60PIycxDVVX/HnW4X6g1d7ChWzpul5vSouA2kQMjZZQDY9D/NI1TZU2Id5YpZFUHBH2sOZySit7UVfVAJrCG+q5v39dlqk1bx1FwfQPcfvvtGAwGvvvuO9GcR9AqhFALBIJ2EestelJUz/VdUxuIZraGGRpc42/MYTBTU1VDaVFZUNQ31LOo4/qAbGjg/u4ZLhEiy9RVRpFTAyV1Kjesc3LVGif7KjSxHhmiVS/b7bCTJAUC2mKaEOqny7JxokWvd3XUd2JiIldccQUgrGpB6xBCLRAI2oU/l7qe67u6WivHaQnVo9M1fLz4xDs8KgaA33bsw+3SeldbwzWh7h4lEWEBdAb0cX2Cyo0C6CSJ/t4KZrvKVfZWKrhVsHtg1o9OyuwqvYwh6IBqxUM36gt1wPVdX6j/U6W1PZRVmVAafsDobP76178CsHz58qCWiwJBYwihFggE7SJQnaxeB6pqzaL250wfgW+P2hKpCfWOn7XIXJ1OR2iYNp8kSQzwds0ypY4N6rTlw1OlhYet/s1NZnWgy1JBHSzZ68YoyfQ0apaxWQ3UBq9vUfu+rsVJueQtiKIaGrjru4Lhw4fzz3/+kzVr1pCY2LH+4IKTH5GeJRAI2oWv3ndVlRO73U1IiJ4qr0Xt24s+Et/xEIuWtrXjZ62eszXSGiyQtiogjNBBf2LH3i8azFNdrECUzNYihWivdR0XAsV2yKnVhLu/0cwBpx3FHep/0tXfo7ZgxIgOJx4Mes0r4FaO3iPx4YcfPmr3EpzYCItaIBC0i7AwAyEhWuCXz6r2C3Uj+9MQsLR1Rk0wd/6iWdThkWFB46pzclDdLiRLOL/oz+Xn7ZX+c3UOlaoiTYxdJvgxR9tb7hOqCXaZQ8XmVtmdp92r0qGlcIViCCqQIkmSX7gNBk2o6zwyNiVQae1ocWRku0BQHyHUAoGgXUiS5N+nLvHuU/tc3+FNur41AVfQzvtzqCMC9bttNjd7thXg+W0LqsOGZLby6DInHo8mzgfyFSQ7oKqoeolKryF+8DdNYMsdKhsLFSoqNYHOrjNykX4IM40Tgtayx2GjSPtcgdFrUXsUPS+VF1DqOTolPisqKpg1axYjRozA7XYflXsKTjyEUAsEgnYTG+ON/PYLdfOub5+AO93B+8C+iG+AX7YW43IrxIY6KV9xP6rbhV0O5cPvtaYZe3MVJBXCVe8csgSqiqNUE/IyB9S6wWDX1rbPYec+4x+YZgjuX/zvkhxq3N5UMK9QK4qep0sPc372Lqo8XS+cJpOJd955h+3bt/Pxxx93+f0EJyZCqAUCQbsJdNHy9nSuaT6YzCfgtTY3oZZAYRFrPaH+cZNWCGXMyFjcpftxZ+4A4N1v3RRVKOzL1SznlHp1SWQn6LxGsMMDubUKeqcJVKjDQ4G7oYVc6nHhUbT16PXaBwxF0SMDmS4Ht+QfoMDtbP0Pox2YzWZuvfVWAJ599tkuvZfgxEUItUAgaDeJiVq6U1a2lgvdcjCZJuAOh0Jqnx6B497ULEVR2bhZE+o//CEVvUGPY/+3qNUVOD0Sz33qZG+utp9b/usm//UhbpAUMHmfaPsrVSRV1sQa2FZnC1qHqqoccjnweILXeV9UDz5LGYQBiTW2Sk7J3Mqn1aVt+6G0kVtvvRWTycRPP/3EDz/80KX3EpyYCKEWCATtpm/vSAD27a8A6u1RhzVuUVtC9ciy5rJO7tXTf9zn+t63v4LycgehZj3DhsQR3z0Od+UhPIf2gKrw8wEPBeWai/vwl//1Xx/mzdAK8wZt76/UDui97u+PSwLBaKqqUuRxUeZx+y1qH7FyKCPMYXyUMpAxIWF4VBgREhzo1tkkJCRw1VVXAaIAiqBxhFALBIJ206+vVkwkN6+WmlpXQKjDGxdqSZL8EeFxySn+4z6h/mWr1jd61Ig4DAaZhKR4XFXZYLfhOXzAP162FaJm7vJ/H+V9knkDv8m1aUJtqYwEYJ27FLeqUuFQOf8LB4/+VgVApBoogAKB8qFjzFb+m5LOV2mDSTE0bPzR2fgKoKxYsYKMjIwuv9+JgNPp5IknnqB///707t2bSZMmsX79+jbPs2TJEsaOHUv37t3p3r0748aN4+233+6CFXcdQqgFAkG7iYww+fepDxysbNH1Xf9cTEJC4JhXqA9mapZv//6RAHRLikd124iyelALc0iJ1AK8XIW/ga0GNT9bG2fQFPrI4p99lQhkt54qXHxdW87WUoWCOvipWnOFxyoBa1n16Onmivd/L0kS/U2hHA0GDRrE2WefjaIoPPfcc0flnsczDoeDc845h3feeYevvvqKgwcPcvvttzN58mSWL1/e6nnuvPNO7rjjDubMmUN+fj55eXncc889XH/99dx7771d+A46FyHUAoGgQ/Tto1nV+w5UtBhMVv9cWFSgBaYvPSszS9vr7tVDK4iSkKgJZ7hJO96DbC45Bcq/fwMA5eVHucy1g1SzJtSGQJEyANLCdISWax223q0sJt9raVd6o7xj3IHyop5dp5FZEhDm915axqLHXiEn8+iU+HzggQeYNWsWs2bNOir3O5554IEHWLt2LUuWLCE1NRWAadOmcckll3DdddeRmZnZ4hxbtmzh+eefZ86cOVxwwQWA9uHr0ksv5ZprrmHevHknTM9qIdQCgaBD9OsTCcC+/ZXU1GgWdXgTBU8gkEsdYgn3VyMLj7TidHnIOazlVff0CnW3JE2o9U5NLDduyOHUpEKUqgJtstxMKtZ8ToTX5607olZJSphEaIUm1BtsleTZtEA0u0kT6lhHLJ6DI/DsOQU1vy/7KwOFRz5661Nem/82BYcL2/gTaR9nnHEG8+bNIy0t7ajc73glKyuLRYsWkZ6eztixY4POXX311dTW1jJ79uwW51mzZg2glWs9kpEjRwKwc+fOji/4KCCEWiAQdAifRb11ewm+Althzbm+vYFmdgf0HqAFlCWmdiMnpwZFUbFY9P7ypPHd4wCoK8skJTkMW52b/32tubv1ei0H+qd1m7H6UrXqZWEZZUgwS+gdIUgq2FWVjDoXHr0Ld4gDCYhwhKEcGIO1YAgA+yoDJnltXCokpmEMado7IOh8PvjgA9xuNxMmTGhwbty4cYC2l19a2nw0vsWixR9s3Lixwbnq6mokSWLYsGENzh2PCKEWCAQdol/fSADKy7WCJCEhOowGXZPjfYFm1dVOFrz3BK+tfIHkHklkZGkBXr16BCztqFht7orSCv48tQcA32/Sxo2aOAKzxUxZcTmOKi0ITXEEhDYmBCx6kJAIVbR7HnLZcVg0q72vPhS7Q1vnuHjtUVjfoq486wp0D7/OJkdk238oHeCHH37gggsu4D//+c9Rve/xwqpVqwDo1atXg3PR0dEkJSXhdDrZsGFDs/NMnToVnU7H/Pnz2bdvX9C5FStWcMMNN9C/f//OW3gXIoRaIBB0iKhIk98ChqbLh/rwBZNV1bhISktk1IThQGB/2uf2BoiKiQSgvKSCKZNTCAnRUV4FemsKKT2T6ZbkDUhzaOLtDnTcJMYkYdZrgm92a2vKddXhCNPuM1gXjvezBWPitEdhsR0qHCqHaxXcKX1RFQ8jI49u7e81a9bw6aef8swzz6CqassXnCBUVVUFvRwOR6Pjfv31VwCSk5MbPR8ZGQnA1q1bm71fWloajzzyCNXV1Zxxxhls27YNgKeffpoxY8bw4osvtu+NHAOEUAsEgg7T17tPDc1HfENAyH3lRn1k1rOoffgs6toaG0a9yh/P1B7epoQRdEtOwByqfUBQXZpC220BYYsNkbB486oNTm9FNIPbb1FHV4exK18T4USLRLJFE/V9lQr/y/Fa1nt+Jd5ydJsMzpw5E7PZzC+//NKudKSuJHqHh5itbXtF7/BWkktJISIiwv96/PHHG8xvt9upqdH+f3yCfCQREdpWS0lJSYvrffDBB/nHP/5BXl4ep59+OrNmzSI+Pp4XXngBna5pr8/xhhBqgUDQYfr1CURPW5sodhI4r4mmL+faR0amJtQ9ewTKiVojrP696PKSCv50bg8AjFF9iIyNJyQ0BL01mfeWFwNgq6nv+pYI9VrUtmLNerOHVeMxukCR2L4lBJ9NF2mU6BvhE2qV/3k7cqmb1mI0Nv/Bo7OJjY3l2muvBWDevHlH9d5dSU5ODpWVlf5XYwFh9fedQ0MbT42TZU227HZ7o+eP5OGHH+avf/0rU6ZM4dlnn2Xu3Lls3769He/g2CGEWiAQdBjfPjW0bFFbG7Goq6udlJRqD94e9SxqSZKI9Lq/y0rK6dM7AslViiTrOVwaisfYnfD0K3HYNNH31POmakKtfS07tHu6QrX8aaPNgssjoXrPR5kkBnmrpnyY4SGjWkV1OVF//f6YBJPdfffdAKxcubLB/uqJSnh4eNDLZGpYSMZoDPysm3L7O53a7010dHSL97Tb7Vx33XXcddddLFu2jLvvvptDhw5x2mmn8eOPP7bznRx9hFALBIIO07eeRd3SHrWv41Zevs3futK3P50QbybMEiz0Pvd3eWkFiqJgy98KwHebajhcN0gbpHhQFQ+Sit/dHRuCX6h1SnAFspCaMFSTBN6gtUgjnJWkPQ4P13oFYucmqKsNEo+jRf/+/Tn//PMBWLBgwVG//7EiOjra//Oura1tdExFRQWgeR6aQ1VVLr30Urp160ZaWhqSJPHss89yzz33UFVVxQUXXEBlZWWzcxwvCKEWCAQdJjoqxC/ALVnUaalWQs16bHVusg5p7m5fxHf9QDIf9QPKSovKsBftRFVclFe4UJFxlu3VBno7ZIV7xTnGFHB961Rr0JymWiteIxvJo4ICKWEy6ZGB9pvqprUAxyw9y1f45M0332wxFelkQafTkZ6eDkBeXl6jYwoLtbz2llKrPvjgA1auXMnUqVODjj/99NOcf/75FBcXs2jRok5YddcjhFogEHQKPvd3RETzwqbTSQxK14qQ7NhVBsDBDM2yaVSo61nUBYcLUT0OdHVaZar48Cpq9n+K0aD4hXpStMyYOJlRcXLAosaI7N0Sl10ShjozNm9zEMkNxVWaFT0lRdsPD5FV1O0/IUmSf4/8aDNp0iSmTZvGvHnzmtyvPRk5++yzAdi1a1eDcyUlJVRWVmKxWJg0aVKz8/j6e8fHxwcdlySJRx99FIBNmzY1uO54RAi1QCDoFK6Z3p+p56Yx+Q+Np9XUZ3B6DAA7d5ehqiqbfi7yHm+47xgVo4l6eUkFBbmaNZVoyWLB0xMZ1accUNHLCqpXqEeYZV48zUiYQcLsFWoJyR/5bcp1ICHh9hrPshuKvYVOzk/TMT5e5urkOnA6MJoM/pzuo40kSSxbtoxbbrkFs9nc8gUnCddffz2yLDca8e7bV7744otb3JLw7WUfPny4wbm+ffsCHJNtjfYghFogEHQKfXtHMOuOYURHH9kaoyGDB2mCvGNnKfsPVFJSaifEpGPk8Ib7jvUt6vwcrXRo96QYhgyKIdSiCZhO8oBLezBX1gaCkGRJQnZpEWYGh7ZPHfJbTdD8khuKvIVOIowSL5xq5OwIbYzRdGI8yE8m+vbty0033cSOHTsa5Eq/9dZbmM1m5s6d6z+2du1axo0bx8KFC4PGXnjhhQCNFo756aefAE3wTwSEUAsEgqPOgH6R6HQSJaV2PlmpubFHj4rDaGzoZo72CXVJBTmZ2r5lcloiACFmLXJYxuV3fVfZjogWdmg51mGFScRk9ST6t4ig07Jbpagi+BqfNXY8CLXD4eD111/n0ksvPakKoDTHM888w6hRo5g5cyZlZZrXZeHChaxcuZK33347qGrZvHnz2LRpE3PmzAma45prruGiiy7izTffZMGCBbhc2u/HL7/8wk033cT06dO59NJLj+r7ai9CqAUCwVEnJETvb+bx5Tc5AJwyrlujY/2u79IKsg9qY1N7ax2VQsya9S7h8ru+V25y8chSO3aniqIoKHWaUOs8ekJqwtFXBuffGqoDrm8fTrsm1IajnEPdGDabjbvuuovly5fzzTffHOvlHBUsFgtr165l/PjxjB49mr59+7JmzRo2b97MJZdcEjT2iiuuwGq1+nPPfciyzPLly5k/fz5vvfUW8fHxpKamMnPmTB544AHeeeedY7at0VaEULcDRVF48MEHSUhIIC4ujpkzZ1JXV9fyhQKBwI/P/a2qWpbU+LEJjY7zub7LSsrJzvAJtbYPbva6vlGcUFOBhEqNHTbs9vDLQQ/lJRXgDi4BqiN4v9dYpVJYoQQdczo10TcdBxZ1VFQUM2bMAE6uAigtYbVaWbBgARkZGRw4cIBPPvmEoUOHNhg3ffp0qqqqeOGFFxqc0+l03Hnnnfz666+Ul5eTnZ3Npk2buPHGG08YkQYh1O3iqaeeok+fPnz11VfceuutvPzyyzz22GPHelkCwQlF/cCxQQOjiYxoWAADAulZxfnFFORqQWdpvVOAgOtbdTtQq8s5P/UwY/pq7vO8MpXCvKIgoZbcKlJomP97XZ2KpDRiUTuOH9c3aAVQJEniiy++aDQaWnByI4S6jaiqyuTJk5kxYwZDhw7l4Ycf5rTTTmuxQLxAIAjGZ1EDnDKucWsaAha1vU4LCrNGhBEZre0zm0M161hxa+5st8NJr27aYy2/TKEwrxipnkEtuYF6qU6mMk2gfelZPo43oe7VqxcXXXQRAM8+++wxXo3gaCOEuo1IksTo0aODjsXGxnLBBRccoxUJBCcmkREmBg+KJsSk4/RTE5scFx5pDWqgkNorxe+29FnUHqe29VRb6yIxWjuXX6ZSlFeErAZcnLIb5PB4ev2whtBchZAizeXtcIHDFRBrp0NzfRtNx36P2oevAMq7777rL/oh+H0ghLqDZGVlER8fzw033HCslyIQnHD8++FxvPnqmSR2tzQ5RpZlIqIDhVB8bm8I7FG7nVoN75paF92jtcdaXrnXolYDIi853UiSjKtCxVysIrsd6LxPweq6+kJ9/AST+ZgwYQLjxo3D4XCcUC0aBR1HCHU7qaysZNGiRYwfP56vv/7an5cnEAhajyXUQFxsy8U8omOj/F/7AskgYFG77JpQ19a66e61qIsqVArzSpCkgNjqvNHcNcYkABSXC6v39lW2wP186VmmkMb3zY8FkiRxzz33cPbZZ3PGGWcc6+UIjiJHt9HqccwDDzzAhg0bmh0zY8YMf/SlxWLhvPPOw26388gjjzB16lQyMzP9vVIFAkHn4QsoA0itZ1H70rOcdTUY0FzfsVYJgx5cbiiuBlkK7DNbcaEQghyrVabC4yHUCBW1Wv61zaHyyhdOnGXaB4PjyaIGmDZtGtOmTTvWyxAcZYRQe3nyySfbNF6v19OzZ0/uuecef6ebb7/9VuxVCwRdgC+gDLQ9ah++YDKHrRoDmutbliW6RUrklKhUOs3IukDwWIJZIb/evKrHTYheAWSq61QWrnSwdrsHGA6A6Rg15BAI6iNc353A1KlTiYyMbLS/qkAg6DjBFnXA9W0O1f7m3A5fMJkbwL9PXSvHItezR3rGHJE763FjkLWw8MMlilekAxiPM4vaR25uLrNnz+brr78+1ksRHAWEUHcCHo8Ho9HImDFjjvVSBIKTEp9FHR0XhTU8kAcd4rWoVY+WumWrc+PxqP7Ib6e1J1K9WiZ9uoUQF14vFcvjRqdq4rx8gyvonpLJiuE4bdrw7LPP8sQTT/DEE08c66UIjgInrFCvWrWKCRMm8OabbzY7zul08sQTT9C/f3969+7NpEmTGu3K0lpqa2t56qmn2Llzp//YP//5Tx5++GFiYmLaPa9AIGiaKG8wWWqv4M5cBoMevV7nF2oAmy0Q+a3G9AclIMwDks30SKi346d4/DXCa4Mri6ILiztuXd933HEHOp2Ob775hh07dhzr5Qi6mBNOqJctW8a4ceP405/+5G951hQOh4NzzjmHd955h6+++oqDBw9y++23M3nyZJYvX96u+1dXV/P+++8zevRozjjjDG688UZOOeUUZs6c2a75BAJBy5w25RSGjxvC5Tde0uBciDkEVA8Gg2ZF19rcdI/SvpZNYUEFT1JiTKTEBdzfqseN2xvhfSRyWNxxF0zmIy0tzV/zWqRqnfyccMFko0ePZv369QwZMoT9+/c3O/aBBx5g7dq1bNy4kdRUrYj/tGnTWLFiBddddx2jR4+mZ8+ebbp/t27dRBUygeAo0z25G0tWNy5IIaEh1FTXYjbJuFweamtdDEg2Y9KrONxSkOs70ghpcfXsE48bV50jaD6lrgLZHInOGnfcVCZrjFmzZvHBBx/w8ccfH+ulCLqYE06ofe3NRowY0axQZ2VlsWjRItLT0xk7dmzQuauvvpr//Oc/zJ49m6VLl3bpen04HA4cjsADoaqqCgCXy+VvvyYQ1Mf3eyF+P5rHl0ttMklQA5VVdlJTQjk7vZpPt4fjjRVD73YjKToSo+opt8eNrcoG9eqtuAt2Y+w5AeukO9jozOO0LAf9k44/5+OIESOYOHFii2mlghOfE06ofYSENN+c/oMPPsDtdjNhwoQG58aNGwfAihUrKC0tPSp7y48//jgPP/xwg+Nr164ltF7tYYHgSL766qtjvYTjGpd3j9nlqAFCWLfuJ3IOgTszD7gG2QGmvcWkSfmsXp2P3a0H/uC/vqyk0i/UqscN5Qehp/bcyHcn8t33P3HQWnE031KrOe2004RQ/w44YYW6pRZlq1atAghqMO4jOjqapKQkcnNz2bBhA3/+85+7ZI31mT17tr9WL2gWdUpKCmeccYYIQhM0isvl4quvvuKPf/wjBsPxuVd6PPDholUUHi4mMtJCRY2HAQOHMfmMJL43/Mg7t19H3KQ7CCmu5NzpfTjvvBEAvLHNty8t4bC5/cE6Sm0JFtmGz4cRIju4btop6OTjsyXi2WefzX//+1/27NlzrJfS6TidTubPn8+SJUtwu90kJyfz6KOPcvrpp7f6+qSkJEpKSpodV1RURFxcXGcsucs4YYW6JX799VcAkpOTGz0fGRlJbm4uW7duPSpCbTKZGs2zNhgM4iEsaBbxO9I8od563764L4dDxWAwYKupw1OZh674ICjRdIu3+H+Oo6xb+GGXE115JarO6BdqT00xFp2dCu/3PcJKCTFFc7xiMBhYt24d8fHxx3opnYrD4eDcc8+lsLCQr776itTUVJYvX87kyZN57733WlWdbcWKFS2K9Lhx4457kYYTMOq7NdjtdmpqagBNkBvDV+qzpf9IgUBwfBMSqm2D6b2b0TU1mj1cXak9AxRJE/LYejXFx3QvoXLlg+hVuz89C0C1V4O91P9936jyrl18JyDLJ99j3BcIvGTJkqBA4EsuuYTrrruOzMzMFud47bXXuOuuu9i2bRsFBQUUFxf7X3l5eVit1hOmHOvJ9z8MlJYG/tCa2v/1/XLb7fZGzwsEghMDX71vGa0qWa1NE96qymoAXIrmyYqLDcS1hIVrm9KyWgdqILhMddtxlhci15Xgqcynd0y9Th2Co0JLgcC1tbXMnj272TkyMjI488wzWbBgAUOHDiUhIYHY2Fj/a+vWrVRXVwuhPpYY61UTUlW10TG+7jjR0cevW0sgELSMOTRYqAMWdTWSzoSiao+5+l26fNXNVFdt0Fyqq446uwfnrm2oB/agk3UIji5tCQRuiqSkJB544IEmzy9fvpxx48b5rfXjnZNSqKOjo/1iXVtb2+iYiooKAGJjY4/WsgQCQRfgs6h1kvbhu7RM85JVV1QjG60AhIcbMZkComuN0I57HFVBczmzf8GheEuUqio2x0n5iDyuaU0gsNPpbDba3WQyNbkl4HK5+OSTT7j00ks7Z8FHgZPyt1Cn05Geng5AXl5eo2MKCwsBGDZs2FFbl0Ag6Hx8FrVR1tzUuXnah/Pqyhq/UNd3e0PA9e2srQAgMutLKr98AkfG97jlcP84m/2kfEQeE6qqqoJe9etK1Kc1gcBAuwtPffPNN1RUVPgru50InLRR32effTZbt25l165dDc6VlJRQWVmJxWJh0qRJR3VdixYtYtGiRXg8npYHCwSCFvEFk8mKJtAFhTY8HoWqyoBFHRtjDrrGGqFZzfaaMsISwF5RjWP/WgBUfZR/XHXjDrnfLe5f1oGhbXUf3C7tA1RKSkrQ8blz5/LQQw8FHTsagcAnmtsbTlKLGuD6669HluVGG3D4aoRffPHFQfvZR4PbbruN3bt3s3nz5qN6X4HgZMXsrUymOmswGGTcbpWi4jqvRa1Zx/FxwRa1b49acWqiUOcMPAp1lgT/19W1CoLOIScnh8rKSv+rsYCwrg4EdrvdfPLJJydMEJmPE1ao3W4tcKQpy7Rv377cdNNN7Nixo4GL5K233sJsNjN37tyuXqZAIOhifK0u7XV2unfTHu65ebVUVVQjGzVBrh9IBmAwGggxm1CcWmS4GzNIMkgyOnOgAFFllRDqziI8PDzo1Vhdia4OBP7mm28oLy8XQn00qKurY/v27QD89NNPTY575plnGDVqFDNnzqSsrAxVVVm4cCErV67k7bffbjRYQSAQnFj4gsnsdXaSErW957z8Ws2iDtHc2PHx5gbXhYWHodjLCbPISLIBQ0RPdCHRSHJgR7Ciyn0U3oHAR1cHAvvc3ke64Y93Tjihvvzyy4mNjfX3YH3ttdeIiYnhpZdeajDWYrGwdu1axo8fz+jRo+nbty9r1qxh8+bNJ1QggUAgaBqzRRPqOpudxO6aUB/OraGmqgadV6hTk60NrtPc3yrJMXUAhCePJCw2OICprEI0RDmadGUgsM/tfSJFe/s44YLJ2trtymq1smDBAhYsWNA1CxIIBMcUv0VtC1jU2TlVSDqT3/WdkhzW4Lowb0CZWr0fGAyWVPSeGlTAVZWDITyFsjInqqq22FtA0Hl0VSDwmjVrKCsrOyGNtBPOohYIBIL6+NKz7HUOv1Dn5tUih2h7mDEx8414CQAAHyVJREFUIYSGNrRJrN4Urcxdv+CpK0VFhxrWFwB3dQ4ATpdCZZWzwbWCrqOrAoGXL1/O+PHjTzi3NwihFggEJzhms8/1Xed3fRcVO/xBYamNWNMAYd6iJwU5Bbirc7WDsjaXx1bir1pWVFzXZWsXNKStgcBr165l3LhxLFy4sMk53W43K1asOOGCyHwIoRYIBCc0IaFa9LC9zkFCvBmdTsLtVjFEpAGNu70hkEsN4LYVBp3zOCq0OuBASYnoB3C0aUsg8Lx589i0aRNz5sxpcr61a9dSVlYmhFogEAiOBWFWTXBrKqsBlW4JWoqWIbI30IxQWy3+rz21RUHnFHs5cWzlv8vPZcL4bl2wakFztCUQ+IorrsBqtXLttdc2OZ/P7d1UtbPjnRMumOxER1QmEwg6l9huMRiMBlxOF4W5RUw8pRvLPjqIrNfc2KkpjQt1VFygApnbVoQkgaqC4rKhehzExpoIs4g+4MeK1gYCT58+nenTpzc75pVXXunElR19hEV9lBGVyQSCzkWn05GU2h2AnMxcLr6wNxKBQiUpSY0L9QVXTuWS/7uQuG6xnHPRJJK94xRHBQDRsVGNXicQHG2EUAsEghOelF6aS/NwVi6xMSGE6woA0OsgLq5hsROAiKhw5sy7ly93fcLjrzxEn95aDWmPvRyAqNjIrl+4QNAKhFALBIITnuQeiYBmUQMo5b+iuGwM6BOCLLcuB/r0id2RJQVXRQYAUTGRXbJWgaCtCKEWCAQnPMk9koCAUJcezqLi1xe5a2a/Vs9x+qmJnDc6D2fpHgCihOtbcJwggskEAsEJT0pPTagPZ+VSU1VLjbc/ZUJifJvmCbUEumwJ17fgeEFY1AKB4IQnpad3jzozl6L8YgDCrBYs1rb1TvaVIwWIFq5vwXGCEGqBQHDCk5jaDUmSsNXWsXfHPgDiE+PaPI8pJNB6sX76lkBwLBFCLRAITniMJiMJSZqb++cNvwJtd3sDKEogrUsEkwmOF4RQCwSCk4IUb0DZlg1bgfZZ1HW1gbrevmYfAsGxRgi1QCA4KUjppQn1oYNa56v2WNR1NtGAQ3D8IYT6KLNo0SLS09MZM2bMsV6KQHBS0at/z6Dv47vHtnmOKRedBcCAoa1P6xIIuhoh1EcZUUJUIOgaLrrqT5xyxlj/991T2t5Mo9+gPqze9iFvfv5iZy5NIOgQIo9aIBCcFISGhbJo+Tw+//ArDuzJYMxpo9o1T/dk0S1LcHwhhFogEJw0SJLEedOmHOtlCDoBp9PJ/PnzWbJkCW63m+TkZB599FFOP/30ds9ZXl7OkiVLWL9+PfHx8SQmJjJnzhwMhuO7S5oQaoFAIBAcVzgcDs4991wKCwv56quvSE1NZfny5UyePJn33nuPadOmtXnO999/n7vvvpubbrqJd999l7CwxruqHY8IoRYIBALBccUDDzzA2rVr2bhxI6mpqQBMmzaNFStWcN111zF69Gh69uzZwiwBHnzwQZ599lk++eQTzj777K5adpchgskEAoFAcNyQlZXlz44ZO3Zs0Lmrr76a2tpaZs+e3er5nnjiCR5//HHeeeedE1KkQQi1QCAQCI4jPvjgA9xuNxMmTGhwbty4cQCsWLGC0tLSFuf63//+x4MPPshll13GJZdc0ulrPVoIoRYIBALBccOqVasA6NWrV4Nz0dHRJCUl4XQ62bBhQ7PzuFwu7rrrLlRVZe7cuV2y1qOFEGqBQCAQdDlVVVVBL4fD0ei4X3/VarUnJyc3ej4yMhKArVu3Nnu/ZcuWsXfvXsaOHcv+/fu54oorGDlyJGlpaUyfPp2MjIx2v5ejjQgmEwgEAkGrKN+yAJ3UNtnwqG4AUlJSgo7PnTuXhx56KOiY3W6npqYGCAjykURERABQUlLS7H2XL18OQHFxMTU1NbzxxhvodDqee+457r//fv73v/+xfv160tPT2/R+jgVCqAUCgUDQ5eTk5BAeHu7/3mQyNRhTf985NLTxXuKyrDmC7XZ7s/dbt24dAPPnz+fCCy/0H7/vvvvYtm0b7733Htdddx0bN25s9Xs4VgjX91FG1PoWCAS/R8LDw4NejQm10Wj0f62qaqPzOJ1OQNuvbora2loqKioASEpKanD+1ltvBWDTpk3s2rWr1e/hWCGE+igjan0LBAJB40RHR/vFura2ttExPgGOjW266UpVVZX/6/pWvI8JEyb4Xeu7d+9u52qPHkKoBQKBQHBcoNPp/HvGeXl5jY4pLCwEYNiwYU3OExsbiyRJQLBo18cXrNaU5X48IYRaIBAIBMcNvqIkjbmkS0pKqKysxGKxMGnSpCbnMBgMDB06tMl5AEJCQgDo1+/4b2kqhFogEAgExw3XX389siyzfv36Bud+/PFHAC6++OKg/ezGuPzyywFYvXp1o+ezsrLo3bt3s5b58YIQaoFAIBAcN/Tt25ebbrqJHTt2NMiVfuuttzCbzUEFTNauXcu4ceNYuHBh0Ng77riD5ORkVqxYwYEDB4LOffbZZ5SUlPDYY4/5XeTHM0KoBQKBQHBc8cwzzzBq1ChmzpxJWVkZqqqycOFCVq5cydtvvx1UtWzevHls2rSJOXPmBM1hsVhYuXIlZrOZiy++mOzsbEBzhd9xxx3ce++9XHbZZUf1fbUXkUctEAgEguMKi8XC2rVr+cc//sHo0aORZZnBgwezefNm/96zjyuuuIL169dzzTXXNJhn+PDh/PTTTzz44IMMGzaM+Ph4YmNjeeKJJ04YkQaQ1BMh5O0kpKqqioiICEpKSoiJiTnWyxEch7hcLlavXs1555133De2Fxw7SktLiY2NpbKystFUpM7A97waEjWuXZXJdpRv7NL1newI17dAIBAIBMcxQqgFAoFAIDiOEUItEAgEAsFxjBBqgUAgEAiOY4RQCwQCgUBwHCPSs44RvmD76upqEdEraBSXy4XNZqOqqkr8jgiapLq6GjgxalYL2ocQ6qPMokWLWLRoEQ6HA4CePXse4xUJBIKTgdLSUiIiIo71MgRdgMijPkZUVFQQFRVFdnb2cf3HNWbMmC5tydkZ87d3jrZc15qxLY1p7nxj56qqqkhJSSEnJ+e4zj/t6t+RzrpHe+Y43n9HACorK0lNTaW8vNzfurGzEXnUxxZhUR8jZFkLD4iIiDiuf3l1Ol2Xrq8z5m/vHG25rjVjWxrT3PnmzoWHh/+uf0c66x7tmeNE+R2BwDNFcPIh/mcFzXLbbbcd9/O3d462XNeasS2Nae58V/+cu5KjsfZj9XsifkcExwPC9X2M8LmShDtI0BTid0TQGo7G74lwfR9bhEV9jDCZTMydOxeTyXSslyI4ThG/I4LWIH5PTn6ERS0QCASCZhEW9bFFWNQCgUAgEBzHCKE+AamtreXOO++ke/fuxMfHc9VVV1FYWHislyU4DlFVlQ8//JChQ4eSlZV1rJcjOMZs2bKFyy67jFmzZnH11VeTm5t7rJfUJE6nkyeeeIL+/fvTu3dvJk2axPr169s111133YUkSQ1eixcv7uRVdw0iPesE5PbbbycsLIwFCxbwww8/8MIL/9/evQdFVb5xAP8uBAIrl5aLF0BFlIy0KBXUzAuKjI2JpEimhvdgmDB1kFGnvP3SrPCaaMIAolZSQaUEYoBZgZiajaAI3kkNQbxxWXR3n98fzJ5hPQvCyrKLPJ+ZnYH3fc97ngMvPLvnvOc9X+Ls2bM4duwYzM3NDR0eMyIpKSnYu3cvzpw5Y+hQmIFduHABEyZMQG5uLtzc3JCVlYWxY8fi77//hoWFhaHD01BXV4fx48ejrKwMhw8fRo8ePfDdd99h7Nix2LdvH4KCgprdV0VFBeLi4kTl9vb2mDVrVitGrT+cqNuZ8vJy9O/fH0uWLAEABAcHw8bGBv/73/+Qm5uLUaNGGTZAZlQmT54MqVSKn376ydChMANbtmwZXn/9dWE1xDFjxkAul2Pbtm2IjIw0cHSaoqKikJOTg/z8fPTo0QMAEBQUhNTUVMyePRuDBg1q9qqOmzdvRmhoKObPn69R3rlzZ1hZWbV67PrAp77bGYlEIrqfcvLkyQDqlxBk7HHG9mmJtb3q6mocOHAA3t7eGuU+Pj7Yu3evgaLS7sqVK9i+fTs8PT1F8c6cORPV1dVYtmxZs/p68OABEhMTsXz5cvTr10/j5eLioo/w9YITdTvj4OAg+serUChgYmKCIUOGGCgqxpgxO3nyJOrq6uDo6KhR3q1bNxQWFgrPHjAG+/fvh0KhwLBhw0R1Pj4+AIDU1NRmfTCJiYmBjY0NMjMz2/U8Hk7Uz4D09HTMnj0bzs7Ohg6FMWaEbt26BaD+umxD1tbWUCqVqKysNERYWqWlpQEAevfuLaqTyWRwdnbGw4cP8eeffzbZj1wux6ZNm3Du3Dm8++67cHFxQWBgIM6fP6+XuPWJr1EbiaioqCcOvDlz5mDOnDkaZXfu3EFKSgoyMzP1GR4zErqOE8YAiK7JKpVKAGj2Y1SVpGzxPtXb3L9/X6O8U6dOWhdp+fvvvwGg0VPTdnZ2uH79Ok6fPo2JEyc2ut/c3Fz06NEDFhYWuHr1KhQKBX788UdkZGQgPj4e06ZNa/GxGAonaiOxYcMGnbZbtGgRvvrqK9EpLfZs0nWcsI5Nfbbtzp07GuX379+HqakpZDJZk9ubm5uja9euOPvfCZ3237lzZ7i6umqUrVy5EqtWrdIok8vlqKqqAoBGnwSmftpgRUVFk/v09fXF8ePHAQClpaWIjY3F559/DrlcjpkzZ8LBwQF+fn46HE3b40Tdjn366acICAgQTbhgjLGGPD09YWFhgZs3b2qU//vvv/D29n7ik7csLCxw+fJlPHz4UKf9ExEkEolGmbZP0w2vOzc2I1sdq1wub/b+XV1dsWbNGrzzzjvw9fVFWVkZwsPDcf78eVFcxogTdTsVGxsLJycnBAYGCmXl5eWwt7fnx90xxjTY2toiMDAQR48eRUREhFB+6tQpLFq0qFl9WFhY6P0OgobrQDS2urX6zcKTzgJo4+npiV9++QWDBw9GSUkJTp48iUGDBukWbBvi/+g6SktLw7Bhw5CYmNhku9ZcXUctLi4OGRkZ6N69OzIyMpCeno6kpCR8+OGHnKSNjCHHidqjR48A1N8dwNoHfYybjz76CL///rvwqTUzMxOdO3dGWFhYa4evM5lMJiTr6upqrW3u3r0LoP4OGF289tprwvXpixcv6tRHmyPWIvv37ydvb28CQAAoISGh0bZyuZxGjx5Nnp6edPXqVSIiSk5OJjMzM0pOTtZp//Hx8SSRSIT9N3xFR0fr1CdrfYYeJ2rZ2dk0adIkAkALFiygEydOPFV/TL/0PW6ys7Np6tSpFBkZSXPnzqWbN2/q4zCeipeXFwGgmJgYrfW2trYEgDIzM3XeR0JCAgGggwcP6txHW+JE3UIXL14kuVxOffv2feIf0sKFCwkA5efna5RPmzaNpFIpXbp0Sc/RMkPhccJ0weOGKCoqigBQeHi4qK68vJwAkFQqpbq6Op33kZGRQaamplRWVvY0obYZPk/aQr1790anTp3w6quvNtmuNVfXYe0PjxOmCx43wNy5c2FiYqL1FH5eXh6A+tUYn+a5BgUFBQgODoaTk5POfbQlTtQ6etKkitZcXYe1XzxOmC468rjp27cvFixYgDNnzuD06dMadbt374alpSVWrlwplOXk5MDHxwdbt27VaFtTU4Pa2lpR//fu3cOPP/6IjRs36iV+feBEraMnTelvrdV1WPvG44TpoqOPmy+++AIDBw5EaGgoKisrQUTYunUrDhw4gKSkJI3jjo6OxvHjx7FixQqhTKlUwsXFBd26dcOOHTuECZWFhYVYsmQJdu/ejS5durT5cemKE7WeNGd1HQCid4ysY+FxwnTxrI8bqVSKnJwcDBkyBIMGDULfvn2RnZ2Nv/76C1OmTNFoO23aNFhbWyMkJEQoMzU1xdq1a+Ho6IhFixbB3d0dM2bMQH5+Pnbu3Kn1DY4x4/uo9aA1V9dhzy4eJ0wXHWXcWFtbY/Pmzdi8eXOT7aZPn47p06eLysPDw0VPGmyv+BO1HuhrdR32bOFxwnTB46bj4UStB/peXYc9G3icMF3wuOl4OFHrQVusrsPaPx4nTBc8bjoeTtR6YGpqCk9PTwDAjRs3tLZRP8T8lVdeabO4mHHhccJ0weOm4+FErSf+/v4A6m8HeFxFRQXu3bsHqVSKkSNHtnVozIjwOGG64HHTsXCi1pO2WF2HtX88TpgueNx0LJyodaR+EpFSqdRa39LVddiziccJ0wWPG6bBsEuNt081NTU0YMAAAkDz5s1rtF1VVRUNHDiQfHx86Pbt26RSqWjLli1kbm5O3333XRtGzAyBxwnTBY8b9jhO1C0UHBxMVlZWGo+XlMlktGPHDq3t79+/TwsXLiQ3Nzdyd3engIAA+ueff9o4atbWeJwwXfC4YdpIiBq5EY8xxhhjBsfXqBljjDEjxomaMcYYM2KcqBljjDEjxomaMcYYM2KcqBljjDEjxomaMcYYM2KcqBljjDEjxomaMcYYM2KcqBljjDEjxomaMcYYM2KcqBljjDEjxomaMcYYM2KcqJnepaWlYeHChbCzs4NEIoFEIoGdnZ3Gy9zcXKgbNWqUoUNmjzly5AgkEglsbGzQp08f4VVSUoKYmBg4OjoKvz/1y97eHqtXrxb6SExMRJcuXUTt7OzsEBUV1eKYgoKChDicnZ0hkUgwa9asVjxqxoyEoR/fxTqOuLg44dF9jx49EtUXFhaSr68vjRw5su2DY03KyckhABQSEqK1XqVS0SeffCL8fiMjI0mlUmlt+9VXXwntQkNDtY6F1o6PsfaMP1GzNtOzZ88m6z09PfH999/Dzs6ubQJirUYikSAwMFD4fsaMGZBIJFrbBgcHC18HBATgueee03t8jLVnnKhZm2nOP+Tnn38eixcvboNoWGuztLQUvraysmq0nVQqFb62sLDQa0yMPQs4UTOjM2LECEOHwBhjRoMTNTMaCxYsEJUVFRVh/vz56NevHwBg69atsLe3x4gRI1BdXS20y8vLw1tvvYUXX3wRUqkUPj4+OHDggNb9KBQKfPnllxg6dCheeOEFuLq6Ys6cOYiNjYWzszMA4OrVq3ByctI6wS0pKQlSqVSoS0xMFO3j7NmzmDZtGvr374/OnTvj5ZdfRnx8vEYbIkJKSgq8vLyEPrZt24ZevXrB1tYWoaGhePTokdZjyMrKgr+/P/r27YuuXbtixIgRyMzMFOoHDx6sMWHLysoKe/bsEepPnz4NGxubJo/BEGbNmgWJRIKuXbtqTFpzd3cXYp0wYYKhw2SsbRn6IjnrONQTfqBlMllSUhKNGjVKo2z+/PlkaWlJAKhnz560b98+srW1Ffr49ddfiYgoISGBXnzxRSosLCQiooKCAurZsydJJBJKSEjQ6PPOnTs0fPhwmjp1KlVUVBAR0c2bN2nMmDFCvw0tX76cAIgmuNXU1FD//v0JgGgfGRkZ1KtXL/r999+JiKi0tJS8vLwIAK1atYqIiP766y/y8/MT9pmQkEDz588nqVRKXbp0EcpXr14t+jmuW7eOnJ2dKT8/n4iIysvLydXVlQBQYmIiERHJ5XIKCgoS+lH/bBo6c+YMAaDk5GRR3eOaM1nr8uXLwv5KSkoabffo0SOhXU5OjkZdSEgI7d27V7TNli1bCABZW1vTpUuXdIqPsfaKEzVrMw0T9QsvvCC8nn/+ea3JkIjo0KFDBIAcHBwoLCyMFAoFxcTE0Ny5c6m2tpbOnTtH5ubmdOzYMY3tkpOThX/sd+/eFconTJhAAwcOJIVCodG+uLhYa6LOyspqNLYZM2aIEnVFRQXJZDL69ttvNdoeP36cAJCJiQmVlJRQXV0dERENHTqUAJCPjw9FR0dTbW0tERF9/PHHws+poYMHDxIA+uabbzTK33//fQJAAwYMEMrKy8vJzs6OAAhvGhr64YcfNNo3pa0SdXh4OCmVSo2yc+fOCW/YHn9T1JL4GGuv+NQ3M4iCggIUFRWhqKgIt2/fxqZNm7S26927NwCgtrYWq1evhqmpKcLCwhAXFwcLCwts27YNjo6O8PHx0dju5ZdfBgA8ePBAOCWclZWFgwcPIiwsDKamplr38zgTk8b/RB7vAwDi4+Px4MEDTJw4UWs8KpUKqampMDc3BwD06tULADBlyhQsXrxYmFw1b948AMC1a9c0+lm5ciWsra01Zk4DQHh4OPz9/TF79myhzMHBAeHh4QCAnTt3imLdu3cv5syZ0+jxPQ1/f3/069dP66t///6NbhcREaHxM1coFJg5cyZqa2sxefJkvk+adUh8XwQzOIlEgoULF+LYsWOiOvVMcQcHBzg6Oorqs7OzUVlZKVzDVlOpVLC3twcA/PfffwCAb7/9FgDw2muvifrRlnR1kZ2dDSLCq6++KqpTx3Pr1i2hzMzMDED98TXUrVs3APVvUNRu3bqFkydPwsvLS3Tr04ABA5CRkSHaZ0REBKKjo7F//36sW7cOPXr0EPrKzMzErl27dDnMJzp06BD69OmjtU6hUAjH/TgPDw+N79esWYMTJ06ge/fueouVMWPHiZoZBYlEAjc3txZvd+3aNQwYMAD5+flPbHv69GkAgI2NTYv305J4ZDIZioqKmtW+sXuNtd3KduXKFQCAUqlsdjxOTk547733sGvXLmzatEk4c5GUlITx48eL3iAYk/z8fKxbtw4SiQQJCQmQyWSGDokxg+BT38xorF+/vsXbKBQKXLhwAUT0xLZ3794FUH86XF8UCgXKy8uFfbUmlUoFALh8+XKzjldtyZIlMDExQVxcHO7cuQOg/hS9vk57t4aamhq89957UCqV+OCDDzBu3DhDh8SYwXCiZu1at27dUFlZicOHD2utr62tFT5tqz9Jnzx5stn9N/aJt6l4iAjJycla64kIR44caVGfai4uLgCAqqoq/PLLL1rb/PTTT7h9+7ZGmYeHByZOnIiqqirExMQgLy8PDx48gL+/v05xtIXIyEgUFxfD09MTGzZsMHQ4jBkUJ2pmEC35RNgU9eIoH3zwgShBAcCGDRuEU8Xq68YxMTGi08eNnU5Wr7ZVWVkpqrt37x4A4OHDh6J4VqxYgUuXLom22b17N27cuNH0QTXCxcUF7u7uAIBPPvlEFPP9+/cRGxsrXAtvKDIyEkD9fdrbt29HSEhIkxPlDOnQoUOIiYmBubk59u3bJ1q97NdffzVQZIwZhnH+pbJnUk1NjfB1VVVVs7ZRn+5tuG1D6lnCxcXF8Pb2xtdff43S0lIUFhYiKioKGRkZGDJkCAAIM6JPnTqFd999FxUVFQDqE25ERITW/tXrkxcWFuLo0aMA6pN2aGgoCgoKAAAXLlwQ2i9YsABSqRQVFRUYOnQodu7cicuXL6O4uBifffYZ1q9frzEjXC6XA6g/Zd6YhoueqJdXzcvLQ3BwMC5evIi6ujr88ccf8PX1xaRJk7T2MWzYMAwbNgxlZWX4+uuv9XLau+HEt4ZfN9VOffxqlZWVQmxr166Fl5eXaNvmzEdg7JliyHvDWMehVCpp7ty5wv2zW7ZsadZ2e/bsEbY5fPiw1jbR0dFCm4YvOzs7On/+vEbbiIgIod7MzIzc3NzIwcGBcnNztd5HTUQ0fPhwAkASiYRcXV2pU6dOtGvXLgoJCRHKAwIC6NatW0REtH//fnruuedE8XTq1ImOHj0q9FtbW0seHh4EgGbPnq2xzxMnTgjbZWVlCeUqlYqmTJmi9XiDg4MbfWIVEVFqaioBEC0s0xzNuU957dq1QiyrVq1qNJbY2NhGn541depU4b71x++nVqlUtHbtWlq5cqVO8THWXnGiZnq3dOlSsrGxESUWR0fHRhewICLy9vYWbTN69GitbdPS0uiNN94gKysrsrW1pbfffpuKiopE7VQqFW3cuJF69epFlpaW5OfnRwUFBUREjSbq0tJS8vPzI0tLS3rppZfohx9+ICKiWbNm0bhx4+i3334TbZObm0v+/v5kbW1NUqmU/Pz8hJXEiIjS09PJ2tpa49icnJzozJkz9NZbb5GZmZlQbmpqqpHIFQoFRUdHk4eHB5mbm5OHhwdt3rxZlNi0HXv37t1pz549TbbTpqlEuH37dpLJZKLflUwmE1ZiI6pfQc7R0VHUztbWlpYuXUoZGRkaPwt3d3fh5ebmJowhTtSso5EQtdLFQsbaOfXEsWf1T6K0tBSvvPIKrl+/rvGkq+Y4cuQIRo8ejZCQEKNZF7whY4+PsafB16gZ6yDi4+MRHBzc4iTNGDMsXvCEsQ6guroaO3bsQHp6uqFDYYy1ECdqxgDU1dUJXysUCq0rg7UntbW1eOedd1BdXY3AwED8/PPP8Pb21rq0KWPMuLXv/0aMtZKGi5D8+eefGDlypOGCaQWFhYX4+eefAdQ/jMTZ2Rl5eXkGjooxpgu+Rs06vHHjxuHNN98Uvvf19cX48eMNGNHT8/LywqRJk2BtbY2AgAD88ccfcHV1fep+U1JS0KdPH+FVUlLSCtHqJigoSIhj+vTpBouDMX3jWd+MMcaYEeNP1IwxxpgR40TNGGOMGTFO1IwxxpgR40TNGGOMGTFO1IwxxpgR40TNGGOMGTFO1IwxxpgR40TNGGOMGbH/A6TCU4DhAlOWAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib as mpl\n", + "\n", + "plt.rcParams.update({\"font.size\": 18, \"font.family\": \"Times New Roman\"})\n", + "\n", + "\n", + "def plot_spectra_by_color(auto_spectra, U_mag, ax, fig, cbar_max=4.0):\n", + " U = U_mag.values\n", + " U_max = U_mag.max().values\n", + "\n", + " # Average spectra into 0.1 m/s velocity bins\n", + " speed_bins = np.arange(0.5, U_max, 0.1)\n", + " time = [t for t in auto_spectra.dims if \"time\" in t][0]\n", + " S_group = auto_spectra.assign_coords({time: U}).rename({time: \"speed\"})\n", + " group = S_group.groupby_bins(\"speed\", speed_bins)\n", + " count = group.count().values\n", + " S = group.mean()\n", + "\n", + " # define the colormap\n", + " cmap = plt.cm.turbo\n", + " # define the bins and normalize\n", + " bounds = np.arange(0.5, cbar_max, 0.1)\n", + " norm = mpl.colors.BoundaryNorm(bounds, cmap.N)\n", + " colors = cmap(norm(speed_bins))\n", + "\n", + " # plot\n", + " for i in range(len(speed_bins) - 1):\n", + " ax.loglog(auto_spectra[\"freq\"], S[i], c=colors[i])\n", + " ax.grid()\n", + "\n", + " # create a second axes for the colorbar\n", + " cax = fig.add_axes([0.8, 0.07, 0.03, 0.88])\n", + " # cax, _ = mpl.colorbar.make_axes(fig.gca())\n", + " sm = mpl.colorbar.ColorbarBase(\n", + " cax,\n", + " cmap=cmap,\n", + " norm=norm,\n", + " spacing=\"proportional\",\n", + " ticks=bounds,\n", + " boundaries=bounds,\n", + " format=\"%1.1f\",\n", + " label=\"Velocity [m/s]\",\n", + " )\n", + "\n", + " # Add -5/3 slope line\n", + " m = -5 / 3\n", + " x = np.logspace(-1, 0.5)\n", + " y = 10 ** (-3) * x**m\n", + " ax.loglog(x, y, \"--\", c=\"black\", label=\"$f^{-5/3}$\")\n", + " ax.legend()\n", + "\n", + " return ax, sm\n", + "\n", + "\n", + "# Set up figure\n", + "fig, ax = plt.subplots(1, 1, figsize=(5, 5))\n", + "fig.subplots_adjust(left=0.2, right=0.75, top=0.95, bottom=0.1)\n", + "\n", + "# Plot spectra by color\n", + "plot_spectra_by_color(ds_avg[\"auto_spectra_5m\"], U, ax, fig, cbar_max=2.0)\n", + "# Set axes\n", + "ax.set(\n", + " xlabel=\"Frequency [Hz]\",\n", + " ylabel=\"PSD [m2 s-2 Hz-1]\",\n", + " xlim=(0.01, 1),\n", + " ylim=(0.0005, 0.1),\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the figure above, we can see the energy-producing turbulent structures below a frequency of 0.2 Hz (one tick to the right of \"10^-1\"). The isotropic turbulence cascade, seen by the dashed f^(-5/3) slope (from Kolmogorov's theory of turbulence) begins at around 0.2 Hz and continues until we reach the Nyquist frequency at 0.5 Hz (1/2 the instrument's sampling frequency, 1 Hz). The instrument's noise floor can't be seen here, but will show up as the flattened part of the spectra at the highest frequencies. For this instrument (Nortek Signature1000), the noise floor typically varies around 10^-3, depending on flow speed and range distance." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 7.3 Instrument Noise\n", + "\n", + "The next thing we want to do is calculate the instrument's Doppler noise floor from the spectrum we calculated above. (We are making the assumption that the noise floor of the vertical beam is the same as the noise floor of the other 4 beams). This gives us a timeseries of the noise floor, which varies by instrument and with flow speed, at that depth bin.\n", + "\n", + "We can do this using the `doppler_noise_level` function. The two inputs for this function are the power spectra and \"pct_fN\", the percent of the Nyquist frequency that the noise floor exists. Because in this particularly dataset we can't see the noise floor, we'll just use 90% or pct_fN=0.9 as an example. If the noise floor began at 0.4 Hz and ran til our maximum frequency of 0.5 Hz, we'd use pct_fN = 0.4 Hz / 0.5 Hz = 0.8." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "ds_avg[\"noise_5m\"] = avg_tool.doppler_noise_level(ds_avg[\"auto_spectra_5m\"], pct_fN=0.9)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 7.4 TKE Dissipation Rate\n", + "\n", + "Because we can see the isotropic turbulence cascade (0.2 - 0.5 Hz) at this depth bin (5 m altitude), we can calculate the TKE dissipation rate at this location from the spectra itself. This can be done using `dissipation_rate_LT83`, whose inputs are the power spectra, the ensemble speed, the frequency range of the isotropic cascade, and the instrument's noise." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "# Frequency range of isotropic turubulence cascade in same units as PSD frequency vector\n", + "f_rng = [0.2, 0.5]\n", + "# Dissipation rate\n", + "ds_avg[\"dissipation_rate_5m\"] = avg_tool.dissipation_rate_LT83(\n", + " ds_avg[\"auto_spectra_5m\"], U, freq_range=f_rng, noise=ds_avg[\"noise_5m\"]\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have just found the spectra and dissipation rate from a single depth bin at an altitude of 5 m from the seafloor, but typically we want the spectra and dissipation rates from the entire measurement profile. If we want to look at the spectra and dissipation rates from all depth bins, we can set up a \"for\" loop on the range coordinate and merge them together:" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "import xarray as xr\n", + "\n", + "spec = [None] * len(ds.range)\n", + "e = [None] * len(ds.range)\n", + "n = [None] * len(ds.range)\n", + "\n", + "for r in range(len(ds[\"range\"])):\n", + " # Calc spectra from each depth bin using the 5th beam\n", + " spec[r] = avg_tool.power_spectral_density(\n", + " ds[\"vel_b5\"].isel(range_b5=r), freq_units=\"Hz\"\n", + " )\n", + "\n", + " # Calculate doppler noise from spectra from each depth bin\n", + " n[r] = avg_tool.doppler_noise_level(spec[r], pct_fN=0.9)\n", + "\n", + " # Calc dissipation rate from each spectra\n", + " e[r] = avg_tool.dissipation_rate_LT83(\n", + " spec[r], ds_avg.velds.U_mag.isel(range=r), freq_range=f_rng, noise=n[r]\n", + " )\n", + "\n", + "ds_avg[\"auto_spectra\"] = xr.concat(spec, dim=\"range\")\n", + "ds_avg[\"noise\"] = xr.concat(n, dim=\"range\")\n", + "ds_avg[\"dissipation_rate\"] = xr.concat(e, dim=\"range\")\n", + "\n", + "del spec, n, e # save memory" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we have a profile timeseries of dissipation rate, we need apply some quality control (QC). Since we can't look at each individual spectrum to ensure we can see the isotropic turbulence cascade, we want to QC the output from `dissipation_rate_LT83` to make sure what was calculated actually falls on a f^(-5/3) slope. We can do this using the function `check_turbulence_cascade_slope`, which uses linear regression on the log-transformed LT83 equation (ref. to Lumley and Terray, 1983, see docstring) to calculate the spectral slope for the given frequency range. \n", + "\n", + "In our case, we're calculating the slope of each spectrum between 0.2 and 0.5 Hz. We'll use a cutoff of 20% for the error, but this can be lowered if there still appear to be erroneous estimations from visual inspection of the spectra." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "# Quality control dissipation rate estimation\n", + "slope = avg_tool.check_turbulence_cascade_slope(\n", + " ds_avg[\"auto_spectra\"], freq_range=f_rng\n", + ")\n", + "\n", + "# Check that percent difference from -5/3 is not greater than 20%\n", + "mask = abs((slope[0].values - (-5 / 3)) / (-5.3)) <= 0.20\n", + "\n", + "# Keep good data\n", + "ds_avg[\"dissipation_rate\"] = ds_avg[\"dissipation_rate\"].where(mask)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we plot the dissipation rate below in a colormap, we can see that the profile map has a lot of missing data. One of the reasons is that the 1 Hz sampling rate doesn't provide enough information needed to make dissipation rate estimations, and the other part is that turbulence measurements push the boundaries of what ADCPs are capable of.\n", + "\n", + "Also, 1x10^-4 to 3x10^-4 $m^2/s^3$ is reasonable for a dissipation rate estimate for the 1 - 1.5 m/s current speeds measured here. They can be a magnitude greater for faster flow speeds, typically increase closer to the seafloor, and depend heavily on bathymetry and regional hydrodynamics." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAngAAAHuCAYAAAAMQHH5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAACjy0lEQVR4nOzdd3gUVdvA4d/uphJISOgQuhGk9w6hB1FBepcqRZH+ioCAIBALIOKriErvAcFPBWkSWugoBHhBQULvARJISNnsfH8Mu8mS3bRJCBuf+7rmYnfmtNmdnTzMzDlHpyiKghBCCCGEyDH02d0AIYQQQgiRuSTAE0IIIYTIYSTAE0IIIYTIYSTAE0IIIYTIYSTAE0IIIYTIYSTAE0IIIYTIYSTAE0IIIYTIYSTAE0IIIYTIYZyyuwGOwGQycePGDfLkyYNOp8vu5gghhHiBKYrCo0ePKFq0KHp91l1HiYmJIS4uTnM5Li4uuLm5ZUKLxItEArw0uHHjBsWLF8/uZgghhHAgV69exdfXN0vKjomJIb+7O1GZUFbhwoUJCwuTIC+HkQAvDfLkyQOoP1ZPT89sbo0QQogXWWRkJMWLF7f87cgKcXFxRAGjnHS4aignFph36xZxcXES4OUwEuClgfm2rKenpwR4Qggh0uR5PNLjrgM3DfXoZTr6HEs6WQghhBBC5DByBU8IIYRwUE46dclw/sxrinjByHcrhBBCOCiDTl0ynD/zmiJeMHKLVgghhBAih5EreEIIIYSDkit4wh4J8IQQQggHZdApGgM86UWbU8ktWiGEEEKIHEau4AkhhBAOyqCxF63cos25JMATQgghHJRBr/EZPLlDm2PJLVohhBBCiBxGruAJIYQQDkp60Qp7JMATQgghHJQEeMIeCfCEEEIIByUBnrBHnsETQgghhMhh5AqeEEII4aCkF62wRwI8IYQQwkHp0Rbg6SXAy7HkFq0QQgghRA4jV/CEEEIIB6W5k4WGvOLFJgGeEEII4aD0enXJcP7Ma4p4wch3K4QQQgiRw8gVPCGEEMJByS1aYY8EeEIIIYSDkgBP2CO3aIUQQgghchiHDfA2b95MgwYNWLp0aYrp/vjjD1577TVKly7NSy+9xPjx43ny5MnzaaQQQgiRhQx67YvImRzuqw0KCqJu3bq8/vrrHDx4MMW0v/zyCw0aNKBFixaEhYVx/PhxQkJCaNGiBVFRUc+pxUIIIUTW0Ou0LyJncrgAr1atWuzduxc/P78U0129epVevXrRvHlzxowZA4CXlxeLFi3i0KFD/Oc//3kezRVCCCGyjF6vw6Bh0UuEl2M5XIBXpkwZXF1dqV69eorppk2bxqNHj+jfv7/V+nLlylG7dm2+/fZbzp49m5VNFUIIIYTIFg4X4Jm5ubnZ3RYfH8/69esBaNCgQbLt9erVQ1EUfvjhhyxrnxBCCJHV5BatsMdhh0nR6ewflfv27SMyMhJXV1eKFSuWbHvlypUBCA4OzrL2CSGEEFlNa0cJQ+Y1RSQxffr0LCt7ypQpaUrnsAFeSv78808Am8EdQN68eQE4deoUCQkJGAzWh3hsbCyxsbGW95GRkVnTUCGEEMJBxcXFMXfuXJYsWYLRaMTX15ePP/6YJk2apKucW7duMXXqVHbs2IGiKNSpU4fPP/+cEiVK2M2zYcMGPv30U8LDw8mdOzcjRoxg0KBBmVrHrVu3KFWqlFU8AGpsERYWhrOzs928H330ETqdDkVRUtjz9NPpdP/uAO/u3btAYiD3LC8vLwCMRiMRERH4+PhYbQ8MDGTatGlZ2kYhhBBCK623WTOaNzY2lldffZXbt2+zY8cOSpQowfr162nZsiWrVq2iS5cuaSonLCyMxo0b07BhQ86cOYOLiwvjxo2jVq1a7Nu3j3LlyiXLM3HiRL766it+/fVX/P39OXfuHE2aNCE0NJT58+dnSh0Ac+fOTRbcAYwYMSLF4A6gYMGCfPrpp2n6DNJKURQmTJiQ5vQ5MsALDw8HIFeuXDa365PMzBwTE5Ns+4QJEyw9b0G9gle8ePFMbqUQQgihTXbdoh0/fjzBwcEcPnzYchWsS5cubNq0if79+1OrVi1Kly6dYhkJCQl06dKFuLg4Fi9ejLu7OwCzZ8/mxx9/pGvXrhw7dswqmPrpp58IDAzk008/xd/fH4Dy5cszY8YMhgwZQqNGjejataumOgAePHjA6tWrOXHiBK6urlbbSpUqlern4+npSd++fVNNl16zZs1Kc1qH7WSREhcXFwC7l0bj4uIsr5+9egfg6uqKp6en1SKEEEIIuHTpEl9//TUVKlSgTp06Vtv69OlDVFRUmq40rVmzhuPHj9OlSxc8PDws6w0GAz169CA0NJRFixZZ1ptMJt5//310Oh39+vWzKqtnz54YDAbGjBlDQkJChusw++9//0vv3r2pWrUq5cuXt1pS6uT5IsmRAV7hwoUB7A5m/PDhQwA8PDwc5osSQgghnqXXqWPZZXhJocOiPevWrcNoNNocpaJu3boAbNq0yXI3zZ5Vq1YB9ke7APj+++8t644ePcr58+cpW7YsBQsWtEqfO3duKlasyPXr19myZUuG6wA1dpg/fz4mk4mQkBBMJlOK+2FL/vz5050ns8vNkQFelSpVALhx44bN7bdv3wagatWqz61NQgghRGbLjmFSNm/eDKjj0j7Lx8eHYsWKERcXR0hIiN0yoqOj2b17t91yzKNd/Pnnn0RERKRab9I85hEyMlIHqAHfvXv3+Pzzz2nUqBGlSpXi66+/troymJoDBw6kOW16pKfcHBngNWvWDBcXF+7cucO9e/eSbb9w4QIAbdu2fd5NE0IIIRyaeaQKX19fm9vNHRxPnDhht4yzZ89anoG3VY65DEVROHnyZIbqzUgdAMeOHaNSpUqWW7pXr15l+PDhtGzZkgcPHtjdpxdNjgzwPD096datGwB79+5Ntv3gwYPo9XqrBzGFEEIIR2PuZKFlAbUzYdLFVu9RUDsmPn78GEh9pApbF1jMzKNd2CvHXEbSctI6Qsaz6dNTB8DKlSs5deoU9+/fZ/v27dSqVQuA3bt307Fjxwzdss0ODhvgGY1GALuXTKdOnYqHhwfLly+3Wn/69Gn++OMPBg0alOp8tkIIIcSLTKfl+Tu9Dt3Te7TFixfHy8vLsgQGBtqsL+lzdamNVGFrlIq0lmNrtIu0jpDxbPr01JGUi4sLrVq14vDhw4wcORJQg7zVq1fb2SvbbD2LGB0dzeTJk3nppZfIlSsXZcuWZezYsdy5cyddZafEIQO8J0+eEBoaCsChQ4dspilbtiwLFy5k8+bNrFy5EoArV67Qu3dvGjZsyBdffPHc2iuEEEJkhcx6Bu/q1atERERYFnu9YM2jVEDqI1XYGqUireXYGu0irSNkPJs+PXXYotfrmTdvHh06dABg7dq1dtMm9d1331GgQAEKFixIyZIlWbx4MZA4huCsWbO4ePEiiqLg7e3Nzz//TLVq1Thz5kyayk+NwwV43bt3J3/+/Jw6dQqAH374gXz58vHtt98mS9urVy+2bNnCN998Q5kyZWjbti19+vRh165ddv8HIIQQQvzbPDs02LNjv5n5+PhYAqfURqpIqcenebQLe+WYy0haTlpHyHg2fXrqSMknn3yCTqfjn3/+STXtsmXLGDp0KOHh4SiKQkxMDO+88w7vvPMO//3vf9m3bx8AY8eO5datWxw7dozz58+zfv163n77bZ48eZJqHalxuABv7dq1REVFoSiKZQkPD2fo0KE207dq1YoDBw5w8eJFTp8+zdixY62ieiGEEMJR6fXal/QwGAxUqFAB0DZSRaVKlSxzytsqx1yGi4sLr7zyCpD+ETIyUkdKXn75ZUqUKEHu3LlTTTt37lxAHTbmn3/+4fbt2zx8+JCXX36ZyZMno9PpeOutt/j888+tngVs2LAhM2fOtHnRKr0cLsATQgghhErTGHhPl/QKCAgAsHkr8d69e0RERODh4WGZacIWb29vyyDJtsoxj3bRpEkTS2/WlOpNmsc8QkZG6khNkSJFLOPnpeTvv/9Gr9cTFBRkmdHDzc2NUaNGWWajmDx5ss28zZo1s9lBNL0kwBNCCCFEmg0cOBC9Xm93lAqATp06pXq3bPDgwYD90S5AnaHCrGXLlpQuXZqzZ89a9ZAF9Xbr2bNnKV26tFUAlt46UmI0Grl48SLDhg1LNW2RIkUoVqyYzWlO33vvPRo1amR3PD/A8hiaFhLgCSGEEA7qed+iBfDz82Pw4MGcOnUq2Vh3y5Ytw93dnalTp1rWBQcHU7duXebPn2+Vtk+fPlSuXJmgoCCrXqxxcXGsXbuWSpUq0bt3b8t6JycnAgMDMZlMlhkqzFauXInJZGLmzJkYDIYM1wH2h3f56quvGDlypOUWdUpef/11wsPDbQ43YzAY+OCDD+zm3bVrF1euXEm1jtRIgCeEEEI4qOwI8ABmz55NzZo1GTp0KPfv30dRFObPn88vv/zC8uXLra5OzZkzhyNHjjBp0iSrMpydnVm9ejVGo5ExY8ZgNBqJjo5mwIABmEwmNmzYgLOzs1Webt26MWTIEGbMmGEZTWPfvn1MmjSJ0aNH06NHD011zJ07lwIFCvDqq69y7tw5QO31On/+fBISEpg4cWKaPp/p06dTtmxZy7N4z3r11Vft5g0MDMTd3T1N9aREAjwhhBBCpIuHhwfBwcHUq1ePWrVq4efnx65duzh69CidO3e2StujRw/y5MlD3759k5VTqVIlDh48yO3bt/Hz86NatWrkzZuXkydPUq5cOZt1L1iwgI8++oju3btTtmxZxo8fz/Lly+0GU+mpo0uXLrz22mscOnSI6tWr06RJE6ZOnUrr1q0ZN25cmj+fvHnzEhISwo0bN/jmm2/SnA/g+PHj1K5dO115bNEp9gaUERaRkZF4eXkRERGBp6dndjdHCCHEC+x5/M0w13GkhjO5DRmYUPapxwkKdf6Il79vWejJkyfpuiL3+++/U758eYoVK6apXidNuYUQQgiRbfS6jN9mBdA7xqxbDi29t1tbtGiRKfXKLVohhBBCiGwwe/Zspk+fniVlyxU8IYQQwkFldCy7xPyZ2BiRbp9++in3799nypQpmV62BHhCCCGEg9Jp6Alrzi9yJgnwhBBCCAel0+vQabiCJwFeziVfrRBCCCFEDiNX8IQQQggHpWWwYnN+kTNJgCeEEEI4KOlk4dgaNGhAZGRklpQtAZ4QQgghRDb4v//7vywrWwI8IYQQwkFJJ4uc4cqVKxw5coRixYpRv379TClTAjwhhBDCQckzeI5jzJgxltd58uRh2rRpAPz3v/9l7NixGI1GAF599VU2bdqEs7OzpvrkqxVCCCGEyGLz5s1j9erV1KhRg0mTJgFw8OBBRo4cSXx8PB06dODLL78kPDycOXPmaK5PruAJIYQQDkpu0TqWH3/8kYYNG1rejx49GoBevXqxYsUKy+umTZvywQcfaKpLAjwhhBDCQel1GnvRZjyrSKf8+fNbBXfbtm3jyJEj5MmTh7lz51rWe3t7c//+fc31SYAnhBBCOCidXttVOLmC9/wUKFCA+Ph4nJ2dSUhI4IMPPkCn0zFy5EgKFChgSXf58mVu3LihuT75aoUQQgghsljr1q3p168fW7ZsoWPHjpw8eZKiRYvy/vvvW9LExcUxbNiwTKlPAjwhhBDCQekNOs2LeD5mzJhBdHQ0r7/+Or/88guFChVi3bp15M6dG4Dvv/+e2rVrs3Xr1kypT27RCiGEEA5KOlk4Dg8PDzZt2sS1a9e4c+cOFSpUwM3NzbK9Ro0aLF68ONPqkwAvHVrUfJ+j579Ntr5JndkA7D0yDoDq+RoB8Gf4fgAaVBxnSXvgjJq2bpl+ALh4lwPAGHUTgIPn5mdBy4UQQgjxIvD19cXX1zfZ+po1a2ZqPRLgCSGEEA5KZ9Ch03CbVWfKxMaIF4oEeEIIIYSj0niLVp7Ez7nkqxVCCCGEyGHkCp4QQgjhoLT2hNXLLdocSwI8IYQQwkHJM3jCHrlFK4QQQgiRw8gVPCGEEMJB6XRoGwdPp2Ria4QWjx8/xmAw4O7uninlyRU8IYQQwkGZb9FqWUTWunTpEkePHuX27dsppouLi6NNmza89dZbbN++XXO9EuAJIYQQDkoCvBfXP//8Q6NGjShbtiz16tWjaNGiNGjQgE2bNtlM7+Pjw3//+19WrlxJ27ZtNdcvAZ4QQgghRCa6desWjRs35uDBgyiKgqIoFChQgD/++IPOnTvTpk0bbt26lSxf5cqVcXd3R1G03zqXAE8IIYRwUDqDXvMiMt+0adO4desWBoOByZMn8/DhQ27dukVUVBQ7d+4kV65cVKtWjYMHDybLK8/gCSGEEP9ycov2xfTrr7+i0+kIDAxk2rRpeHp6AmAwGGjWrBkbN25k7dq1DBo0iJ9++skqr06XOd+JBHhCCCGEEJnozp076HQ6hg0bZjdN06ZN2b9/P4sXL2bx4sWZ3gYJ8IQQQggHJVfwXkzFihVDr9fj4uKSYjpvb29++uknDh8+zBdffJGpbZAATwghhHBQOr3GAE/DGHrCvs6dO5OQkMCBAwdSTavX61m4cCHXr19n5syZmdYGCfCEEEIIITLR1KlTqVq1KqNHj+bRo0dpyjN79mwiIiK4f/9+prRBZrJIh9+Pf2ZzfdyD81bv3QvXs3ofH3HRbpn7jk8AoE7JHgDULdMPAOPja5Y0x+/sTFP7Wry+JbGtv2Z8DJ3mAT8CEHX+FwAM7vkBOHBmdobLFEKIpJr6LwJg956BNrebz4kARy6vsbvN1naASc7qn7eZ8UYAmjVbAUBwcB8A6vkNAeDQ+YWptrXNh+of6IT/HQdgx8amdttrqy1ZSWtPWJ0hExsjLDw8PNi3bx/Tp0+nTZs2jB8/nnbt2qWa77PPPuPx48csXJj6cZkaCfCEEEIIB6X1OTp5Bi/reHh48Omnn2IymWyOeWfPN998Y+l1q4XcohVCCCGEyCJ6vZ6iRYumK8+DBw+016u5BCGEEEJkD4NO+yJeGAkJCQQHB2fKsClyi1YIIYRwUHKL1nGYTCY+/fRTVqxYwZUrV3jy5EmW1icBnhBCCOGgpJOF4xg7dizz589P0zyzmTGbhdyiFUIIIYTIYsuWLQPgo48+4vbt2yQkJGAymZItwcHB6PXawzO5gieEEEI4Kr3G5+hkoOPnxsXFhfz58zNlypQU0/n7+9OqVSvN9eX4K3j79++nbdu2FC5cGF9fX8qVK8fUqVOJiYnJ7qYJIYQQmshUZY6jd+/eGI3GNN2iXbNG+3iKOTrAW79+Pf7+/tStW5erV69y7do11q5dy5IlS2jRogVxcXHZ3UQhhBBC/At8/PHHVKxYkdWrV6ea9pVXXtFcX469RRsbG8uwYcNo2bIlU6dOtayvXr06M2fO5K233mLRokUMGzYsG1sphBBCaGDQgYZOFhhSv5okMoe7uzvbt29n0KBBeHp64uXllSyNef7a27dva64vxwZ4oaGhhIeHU61atWTbatSoAcCpU6eec6uEEEKIzCPDpDiOO3fuMGDAALZu3Zopt2BTk2MDPA8PDwAOHz6cbJt54l9bwZ8QQgghRGZ7++232bJFnTO+bNmyFC1aNFlvWZPJxNmzZwkPD9dcX44N8F555RX8/PzYs2cPa9asoUePxMmpN23aROXKlenbt282tlAIIYTQSOtsFHIF77nZtWsXOp2O9evX07FjR7vpbt++TalSpTTXl2M7Weh0Or777jtcXFzo16+f5aHGkJAQjh8/zu+//46rq6vNvLGxsURGRlotQgghxIvGPNCxliWj4uLi+OSTTyhXrhxly5bF39+fvXv3prucW7duMWTIEMqUKUPp0qXp1q0bV65cSTHPhg0bqF27NmXKlKFKlSr88MMPmV5HUteuXcPb25t+/fqlOc+zSpYsSZEiRVIM7gAKFSrExIkTM1yPWY4N8ACaNm3Kjz/+iMFgoHfv3owaNYpNmzaxbds2ChQoYDdfYGAgXl5elqV48eLPsdVCCCHEiy02NpY2bdqwYsUKduzYwT///MPw4cNp2bIl69evT3M5YWFh1KpVi4cPH3LmzBkuXLhA0aJFqVWrFn/99ZfNPBMnTqR///7Mnj2bixcvEhQUxMSJExkxYkSm1ZGUoigMGDCAhw8fpnm/bJk+fToPHjwgOjo61bQNGjTQVBfk8AAP4PXXX+ezzz5jxIgRzJ8/n2+++SbVg2/ChAlERERYlqtXrz6n1gohhBDpYB7oOKNLBgc6Hj9+PMHBwSxZsoQSJUoA0KVLFzp37kz//v0JCwtLtYyEhAS6dOlCXFwcixcvxt3dHYPBwOzZs3Fzc6Nr167Ex8db5fnpp58IDAxk8uTJ+Pv7A1C+fHlmzJjBV199RVBQkOY6nvXNN99w8ODB9Hw8NnXs2JG5c+cyZ86cVNN2795dc306JS0j7jmwzz77DD8/Pzp06EBQUJBloMH58+czfPjwNJURGRmJl5cXEREReHp6JtvetNG3AERd2g7A0Wsb09y+WkVeA8C1QFUAQkJnAVCnZOIzg85epa3ymNOYtWj7MwC/b2lnt56GVdTLvfER6o/uyOWs78EjhMh65nNF0t90g4rjAHArUssq7a6d9v9otO57GgDj9dNWac3rty+rBECrbocseXQubuq2FdWsyqrnNwSAQ+cXpnk/zG0+cGZ2mtOY63Hx9gNg75FxqdZTt0w/AA5fXJrmtqWkqf8iAAwe6l2h37e0S/VvRmYw1/FwTnk83TM+oWzkkwTyjj2XrrZeunQJPz8/Xn75Zc6cOWO17bfffqNt27Z069aNtWvXpljOypUr6dOnD++88w5ff/211bbx48fz2WefsWDBAoYOHQqoHRDKly/PhQsXuHXrFgULFrSkf/z4MXnz5qVw4cJcvnwZg8GQoTqedf78eVq2bMmwYcOYMGECffv2ZenSpWn6nJ41ffp0AH7//Xfq1KlDnjx5kqUxGo0cO3aMbdu2kZCQkKF6zHJsJwuA2bNns3HjRg4dUk9IXbt2xcXFhc6dOzNixAiqV69Ow4YNs7mVQgghRAZlQyeLdevWYTQabd5GrFu3LqB2ZgwPDydfvnx2y1m1ahVg+3ZkvXr1APj+++8twdfRo0c5f/48L730klVwB5A7d24qVqxIaGgoW7Zs4Y033shQHUklJCTQt29f5s6daxl9Q4vg4GDLM4r79u2zmUan06EoCjqd9s4vOTbAu3z5Mh9++CGTJk2yWv/mm2/yySef8J///Idp06axffv2bGqhEEII4Xg2b94MQJkyZZJt8/HxoVixYly/fp2QkBDatbN9Zyk6Oprdu3fbLady5coA/Pnnn0RERODl5ZViveY8oaGhBAcH88Ybb2SojqQ+/fRTXnrpJTp16pThq3ZJTZ8+HX9/f3r06EHJkiVtdvSMj48nJCQkQ51VnpVjA7zNmzcTGxubLMoHGDVqFJ999hlHjhzJhpYJIYQQmUSf8efoLPkh2WgRrq6udkea+PPPPwHw9fW1uT1v3rxcv36dEydO2A3wzp49a5kT3lY5efPmBdQODidPnqRJkyZpqhfgxIkTGa7D7OTJkyxZsoRjx47ZrCsjGjduTK9evVixYkWK6Uwmk83YJb1ybCcL8zyz165dS7bNycmJUqVK4eLi8rybJYQQQmQeg177AhQvXtxq9IjAwECb1cXExPD48WMgMUB6lvlK2L179+w2++7du5bXtspJejXNXI45T1rrzUgdoMYPffv25bvvvrM5nZgWM2bMSLVTh16vZ8+ePZrryrEB3uuvv47BYGDDhg0YjUarbREREZw7d45OnTplU+uEEEKIF8fVq1etRo+YMGGCzXRJZ1jIlSuXzTTm2RnMV88yUk7SGR7M5ZjzpLXejNQBMGXKFJo3b06zZs3stj815rF3n1WyZEmcnZ1TzV+xYsV0lWtLjg3wXnrpJT7//HPOnTtH//79iYiIANTBDrt3707JkiWZNWtWKqUIIYQQLzAtQ6Qk6aDh6elptdi7PZv0zpe9QTjMd9B8fHzsNju1csxlJC3HnCet9WakjgMHDrBlyxbN8cFHH32kKX9mlJtjAzyA0aNHs3nzZm7cuEHp0qUpWbIk/v7+1KhRgwMHDuDt7Z3dTRRCCCEy7jmPg+fj42MJnKKiomymMQ8InD9/frvlFC5c2PLaVjlJBxU2l2POk9Z601tHVFQUgwYNYunSpbi5udlte1pk1Qh06Sk3x3ayMGvbti1t27bN7mYIIYQQDs9gMFChQgVOnDjBjRs3bKa5ffs2AFWrVrVbTqVKlSxDgty4cSPZs27mMlxcXHjllVcAqFKlCrt27UpzvemtY+PGjZw9e5aaNWvabfeyZctYtmwZJUuW5NKlS3bTZcYwJ1rLzfEBnhBCCJFjZcM4eAEBAZw4cSLZIMegdlaIiIjAw8PDMtOELd7e3tSpU4fDhw9z5swZSxBnduHCBQCaNGmCh4eHpd558+bZrDdpHvNFnfTWkTt3bsqVK2ez7IiICG7duoWnpydFihShWLFidvcN1MGg7Q3nosX169fTnFYCPCGEEMJRZdIwKekxcOBAPv/8c5tjtZmn9OrUqVOqI1UMHjyYw4cPs3fvXjp37myznJ49e1rWtWzZktKlS3P27Fnu3r1rNaf8w4cPOXv2LKVLl7YMYJzeOjp06ECHDh1stnXp0qX079+fDh06pGlMPKPRmOIVvoxKzxW8HP0MnhBCCCEyl5+fH4MHD+bUqVOWMefMli1bhru7O1OnTrWsCw4Opm7dusyfP98qbZ8+fahcuTJBQUFWvVjj4uJYu3YtlSpVonfv3pb1Tk5OBAYGYjKZLDNUmK1cuRKTycTMmTMt05RlpI7MYjKZsmRJz/RlEuAJIYQQDkox6DQvGTF79mxq1qzJ0KFDuX//PoqiMH/+fH755ReWL19udXtyzpw5HDlyJNnMUs7OzqxevRqj0ciYMWMwGo1ER0czYMAATCYTGzZsSDakSLdu3RgyZAgzZswgNDQUUKf9mjRpEqNHj6ZHjx6a68gp5BatEEII4aiy4RYtgIeHB8HBwUyePJlatWqh1+upVKkSR48epUqVKlZpe/Towd69e3nrrbeSlVOpUiUOHjzIBx98gJ+fH87OzrRu3ZqTJ0/anc1hwYIFVKpUie7duxMbG0uhQoVYvnw57du3t5k+I3XkBBLgCSGEEA5Ky1U4c/6MypMnD/PmzWPevHkppuvVqxe9evWyu93Pz48ff/wxzfXqdDqGDx/O8OHD05wnvXU8q1+/fvTr1y/D+bOD3KIVQgghhMhh5AqeEEII4aj0aLtUI5d5ciwJ8NKhWcUBHL+6Idn6hCcPADh6bSMAdcv0A+DwxaXJ0tYvPwIAnUHtPn7s5mabdeWp3MfyOvba0RTb9fuWdik3HAgJVaddaVBxXKpphRDpV89vCACHzi+0uT3gncuW19u+KZnu8lu0/RmAhCh1AnW9W14ATHGRydIa3PIB4Fy2jlrfQvWB96aNvgVg9/6hapvePm/Js31ZJTWN/2EAGlaZCCSeO/zrqz0gXV9qkphnRTWrepsHqLfA3ApVBxLPhV71Em+lGcPVz2HXNnUu8FZd9gPg4v0SkHiOMr8HcC6m1mN8rI4B1rhmIAAefq8BEHU++Xm0SJg6WfvN0tZjsT17Xq7t29Hy2nwOTw+XUnUBiDm7Nd15M4Ni0HabVTGknkY4JondhRBCCCFyGLmCJ4QQQjgqncZetFk0pZbIfnIFTwghhHBQil6neRHPz5MnT5g2bRqVK1emVKlSlvXBwcG89dZb/Pbbb5lWl1zBE0IIIYTIYg8ePKBp06acPn0aRVHInz+/ZVuzZs2oVKkSzZs357fffks260dGyBU8IYQQwkEpeu2LeD4+/PBDTp06RYUKFejevTtubm5W2wsUKMCsWbP4+uuv+e9//6u5PvlqhRBCCAclAZ7j2LRpExMnTuTUqVOsXr2a3LlzJ0tTvXp1FEVhwYIFmuuTr1YIIYQQIouZTCamTZuWYpq7d9VhkC5evKi5PnkGTwghhHBQ2TlVmUgfX19fdKn0Wv7uu+8AMmWOXLmCJ4QQQjgouUXrONq3b8+MGTPsbv/6669ZuHAhOp2OTp06aa5PruAJIYQQDkprkCYB3vMzbtw4GjduzOHDh+nUqRPR0dFs376dv/76i6CgIA4cOACAn58fU6ZM0VyfBHhCCCGEEFnM3d2d33//nREjRjBkyBASEhJ49dVXAVAUBYB27drx3XffkTdvXs31SYAnhBBCOCi5gudYvLy8WLZsGZ9++il79+7lypUrGI1GihQpQuPGjSlTpkym1SUBnhBCCOGgTDowaQjSTNLH4rn55ZdfeOONNwAoXLgwXbt2tZlu7dq1dO/eXXN9ErsLIYQQQmSxsWPHpildnTp1ZKBjIYQQ4t9MetHmPD4+Pnz77beay5FbtEIIIYSDMuk13qKVAC/L7Nu3j5kzZxIXFwfA9evXad68eYp5YmJiOHv2LM7OzprrlwAvHZzz+lm9r+3bEQCDewGr90evbbRbxsFz863SmtUp2QOAI5fXJMuz/8RUAJo2so7omzVbAUBwcB8AWrbfYdkW9dcvVvU1qDgOgANnZtttm0id78n/WV5fq1oBgE7xkwD40XmmzTzFzpy0vL5esarNNK3nmADYPtb+2Tbg41gAtk12VfN8nqDm+Y8BgKb+iyxpd+8ZCEDzlmsB2LXT9vMcjaoljqru7K0+3Gs+nprUUY+VvUfG2W2TPa17HgNAX6AYAFu/LJLuMpKq5zcEgEPnFwLQcKW6726rNwMQdV7919mzlCVPfOQlqzwZUavIawAcu7nZan3AO5ctr7d9UxIAJ4+iQOLvMubmUSDxN2hOZ4v5s9a7ewOJ319SOmd3AJ5c3QfA4YtLn25JPl7WvuMTbNaze/9QIPH72b66lmXbs5+xed8D3j4PwJ6DI9T3U6KSlWs+jlyLVreqB6zrA9i1zbq9pqj7AMTc/hMAg3s+AJSEOEuaHevqAdCwys9W+1e3TD8g8bNoHvCjJc/Np/Wkdu4zxUXaXG+Lrd9E1J+rAXD2LJHmcsS/Q+PGjVm0aBGDBg1i27Zt6HQ6du/enWo+Z2dnuYInhBBC/JtJL9oXW7Fixdi8eTODBw9m27ZtrFy50m5anU6Hu7s7L7/8Ml5eXprrlgBPCCGEcFCKxlu0EuBlPb1ez8KFC+nevTv+/v7Pr97nVpMQQgghxL+QwWBg/fr1qabbtGkTISEhmVKnBHhCCCGEg1L0iuZFvDjatWtHly5d2Lx5c+qJUyG3aIUQQggHJb1oHcuiRYvYsmULERERmEwmq20mk4l79+5x69Yt3n33XV577TVNdUmAJ4QQQjgoCfAcx/z58xk1alSa0hYrVkxzfRLgCSGEEEJkscWLF1O7dm3effddihUrxsyZMxk7diy5c+cGQFEUPv74Y95++22705ilhwR4QgghhIMy6RVMGp6j05JXpM/ly5e5ePEi3t7qeJfh4eHcvn3b6lasl5cXnTt3pnXr1vj4+GiqTy7OCiGEEA7KpEu8TZuhRZfde/DvUbx4cUtwB9CxY0eCgoKs0lSvXp24uDiGDx+uuT4J8IQQQgghspiXlxc//pg424qTkxPNmzfn888/t6y7evUqd+/e5ddff9Vcn9yiFUIIIRyU3KJ1HKNGjaJLly7odDqqVavG8ePHee+996hatSpHjx6lRIkSrF27lvj4eHx9fTXXJwGeEEII4aCkF63j6NSpEzNnzuSzzz7DyUkNv9zd3Vm3bh0BAQHcu3cPUAdFnjZtWkpFpYkEeEIIIYQQz8GECROYMGGC1brq1atz6tQpNmzYgMlkokWLFlSoUEFzXRLgCSGEEA7KpNPWUUI6WbwYChUqxLvvvmt536JFC37//XdNZUqAJ4QQQjgo9RatlmfwMrExIlOcPXuW3bt3ay5HArx02B5ifVn16LWNVu/rlx8BQJ2SPQA4cnlNsjKa+i8CwCm3+gBl45qBAOT2a29VxsFz85PldcpX1uq9Eh9lVebuPQOTbG1llfbAmdm2dgn/+on17Dk4wmaaZ7Vo+7Pl9e9b2qUpT1ZruDLB8jqktyHL6rlWNfll8x+dZ9pM27L9DgCu/1/id9Hia/Xfq5VuAfC3f2EA9PcePU3hBUCrbocsefTVawEQn9/Vqvzt/7HeT+vvX+VU8CWr923GPwBg66dqV/39J6ZatgUMv2aVdu+RcVbv65bpB8Dhi0uT1WPWuu9pAJ78pe77k+D96oYvE+dVbNZsBQDBwX3slgPQsMpEy2u9Sx4g8ffh2fg9AJR8JQDw0Ku/n9hrRy15Dp1faFXes79LW+1oUFHdZyUhDoBcxZvZbFvC9b+TvCsJJH6Wjaqpz86Yf8P1/IbYbE9Sz37WNuuMVI8Z8+dv/nxci9RU2xwXbUnr7FsZgPhrp4DEfWweoPbgM3gWSla+uX3mz+DYTfU7S/y9+wGwbbpHsryuRasDiecD87G/8+mxH3U66bmyllX7zZ/1s/XbOh8Z3Hys8nr4vQFAwDuXAdi1rZONPPmSrYPE4/n4nZ02tydlbpP5PGr+HAFCQmdZpa3nNwSjKS7VMoWw5+OPP86UciTAE0IIIRyUorGThSJX8LLctWvXuHfvHuXKlcPd3T3FtGPGjGHt2rXodNrvnctXK4QQQjgok07RvIiscfHiRfz9/SlZsiQ1a9bE29ubSZMmkZCQkCztrVu3aNmyJV9++SWQOXPRSoAnhBBCOKgEvfZFZL4HDx7QvHlz9u/fj6IoKIpCXFwcn3zyCSNGWD9+sHnzZqpWrUpwcDCKotCtWzdCQ0M1t0G+WiGEEEKITPT1119z5coV3Nzc6Ny5M+PHj6djx47o9XoWLlxIWFgY8fHxjBw5knbt2nH37l28vLxYtWoVa9asIW/evJrbIM/gCSGEEA5KBjp+Mf3222+ULFmS7du34+fnZ1l/8OBBAgICCAwM5OjRo4SGhqIoCs2bN2fp0qWZMoOFmQR4QgghhIPS+hydPIOXNS5evMi3335rFdwB1K9fnw8//JAPPvgAADc3N2bNmsWoUaMyvQ0SuwshhBBCZKKIiAiaNbM9zFKPHuqQTdWqVePYsWM2g7t169ZpbkOmXMHbs2cPGzZsIDw8nNWrVwMQHBzMkSNHeOuttyhSpEhmVKOJ0Whk3bp1/Prrrzg5OeHr68vgwYMpXbp0djdNCCGEyBCtHSWkk0XWMBqNeHp62txWvHhxChcuzJEjRyxz0j5r1KhRdOvWTVMbNAV4iqIwaNAgli5dCkC+fIkDSjZr1gydTkfDhg357LPP6Ny5s6aGavHHH3/Qu3dvypcvzxdffEHJkiWzrS1CCCFEZjGhcaqyTGuJSMpoNHLp0iVKlCiRbJuiKOTJk4ebN2+iKNa3yJ88ecKmTZu4c+eO5jZoCvDmzJnDkiVL0Ov1FCxYMFlDmzZtyvjx4+nevTtbt26lZcuWmhqbEf/3f/9H9+7dmTBhAlOmTHnu9QshhBDi36ds2bIpbi9VqlSW1q/p4uz3339P69atuXHjBjdu3LDZrbd169aYTCamTZumpaoM2bNnD926dWPgwIES3AkhhMhxTBrHwJNetFnHPP5dRpbMoOkK3q1btzh8+LAlsLM1tYZ5xOY//vhDS1Xpdvv2bTp06ECRIkWYPdv2PKxCCCGEIzPpNN6i1T4jlrAhT548fP7555QtW9buc3a2REdHs27dOlasWKG5DZoCvFKlSqU6GN+mTZsAUp1/LbN98MEHPHjwgFmzZuHm5vZc6xZCCCFyuri4OObOncuSJUswGo34+vry8ccf06RJk3SVc+vWLaZOncqOHTtQFIU6derw+eef23x+zWzDhg18+umnhIeHkzt3bkaMGMGgQYMyrY5z584xYcIEDhw4QFRUFLVr12bWrFnUr18/Tfs0cOBABg8enKa0zwoICLDETlpoujhbt25dfv31V7vbjx07xscff4xOp6NFixZaqkqXa9eusWzZMtzc3PDz82PIkCH4+/tTvHhxWrZsya5du55bW4QQQoiskqDTvmREbGwsbdq0YcWKFezYsYN//vmH4cOH07JlS9avX5/mcsLCwqhVqxYPHz7kzJkzXLhwgaJFi1KrVi3++usvm3kmTpxI//79mT17NhcvXiQoKIiJEycmmwIso3WcOnWKOnXqsGfPHgCioqLYvXs3zZs358SJE2naLy19DvR6PcOGDctwfks5WjJPmTKF4cOHWz5kUCP6U6dO8eGHH+Lv78/jx4/x8PBg+vTpmhubVhs2bEBRFJydnTl06BAzZ85kz549fPfddxw7doxWrVpZhnOxJTY2lsjISKtFCCGEeNGYZ7LQsmTE+PHjCQ4OZsmSJZarYF26dKFz587079+fsLCwVMtISEigS5cuxMXFsXjxYtzd3TEYDMyePRs3Nze6du1KfHy8VZ6ffvqJwMBAJk+ejL+/PwDly5dnxowZfPXVVwQFBWmqw2Qy8c4777BkyRLCw8O5ffs2e/fupUCBAsTExKQ5lmnbtm2a0tnzySefaMoPGgM8X19fNm3axHfffYefnx/nzp3D3d2datWqERgYyJMnTyhSpAhbtmyhXLlymhubVuaoe8CAAUyaNIn8+fMD8OqrrzJ79mxMJhODBw/m7t27NvMHBgbi5eVlWYoXL/7c2i6EEEKkVXZcwbt06RJff/01FSpUoE6dOlbb+vTpQ1RUFBMmTEi1nDVr1nD8+HG6dOmCh4eHZb3BYKBHjx6EhoayaNEiy3qTycT777+PTqejX79+VmX17NkTg8HAmDFjLM/+Z6SOI0eOMGPGDDp16mTpV9C4cWNLwGXvquKLSPNAx9WrV+d///sfmzZtIjg4mCtXrmA0GilSpAhNmjShe/fuz/35u2vXrgFQrFixZNt69erF2LFjiYyMJCgoiHfffTdZmgkTJjBmzBjL+8jISIoXL07z6iM59s8Su/UePDcfgNq+Ha3WN6qW2IN4/4mpVuuir/4OgEtUBQDcitROVm6DiuMAUBLiAKhTcjEAOoMrAIcvLrXbptTsOWj7knZKft/SLsP1aVX60CUAwuqVslof0tvw/BtjR5sPHwGw8/9aAdD688STTXQxtXdU6YPqfzpQ/wPK1kAvqzJ0brktr7d9YP0zbTVPLWPHKOszc8CAs4l5Fr8CQGzYAQBavK6OqfQkTH08oU38+2q9cwsm1pknj1V5dcv0AxKPL48ybQBo1izx4d/g4D7W7c6TF4B9x+2f3J/NY4+zd+IQA7v3DLTa1qrLfgCUuCd285vbn6uk+niIi3d5AJrUUTtd7T2i/q7qlOxhyWNOs/+M+jutX36EVVnmz8L83SZl/p0eOKOW37zlWgAOnV9ot40Nq0wEwKNqVwC2r6hms40AOoOzWm7AjwCEhM6yKsucBwD1FIhTfuuB3A151XOi8c75p2saWbaZ99UUp96xaN3zGABKXDQALV7fAoDePXHw1h3r1fxOha2nY9J7eFu/d7Y+tgDcSjR6mtbHen2RWgA0rhloWRdz+ygAHqVaAxB77zQAIdvUz8D8WdfzS/xMzJ/7s8eiOa2Ld/KLDubPwHwuN0t4cg9Ifi5WdbJKe+j8QiIjI/HyWpqs/Jxi3bp1GI1GGjRokGxb3bp1AfX5+/DwcKvxcZ+1atUqAJvl1KtXD1BH6xg6dCgAR48e5fz587z00ksULFjQKn3u3LmpWLEioaGhbNmyhTfeeCNDdZjX2UtbrVo1u/vzosmUmSycnJzo0qULXbp0yYziNDPfUrU1irS7uzvNmzfnp59+4n//+5/N/K6urri6umZpG4UQQgitsqMX7ebNmwEoU6ZMsm0+Pj4UK1aM69evExISQrt2ti8IREdHs3v3brvlVK5cGYA///yTiIgIvLy8UqzXnCc0NJTg4GDeeOONDNVhz61bt3B1dbXMIesINI+A06FDhzSl++WXX+jWrRsdO3bk+++/t7qEmtkKFCgAYPfZOV9fX4BMG2tGCCGEyA4JOp3mJb3+/PNPIPFv6bPMo2uk1CHh7NmzxMTE2C3HXIaiKJw8eTJD9WakDnu++eYbFi1aZAkKHYHmAO+vv/4iPj6ePXv2sG7dOvbu3YvRaLRKs2rVKt58800KFizIjBkzuHz5Mo0bN+bhw4daq7epVi31Ev+ZM2dsbjcPm/Lyyy9nSf1CCCGEI3m2Y2FsbKzNdDExMTx+/BjA7jBp5ith9+7ds1tf0mfgbZWT9GqauRxznrTWm5E6nvXgwQP69+9PSEiIww25pjnAi4iIwNfXl+bNm9OzZ0+aNWtGmTJl2LlzpyXN3LlzAbXXTYUKFZgxYwZNmjRJ89W/9OrevTsAO3bsSBZsgtplWq/X8+abb2ZJ/UIIIcTzYL5Fq2UBKF68uFXnwsDAQJv1hYeHW17nypXLZhq9Xg0tzFfPMlKOuYyk5ZjzpLXejNSR1Lx586hVqxZLly7l1q1bdO7cmVGjRtndp8yUGbN/aQrw/ve//3Hv3j3u3r2Lt7c31apVo2rVqkRERPDGG29YLnmae50UKVLEknf06NGWq36ZrV69enTo0IEbN26wcuVKq223b99m69atDB48OMvngRNCCCGykknj7VnT01u0V69eJSIiwrLY6wXr4uJieW3vMae4OLUTio+Pj83taSnHXEbScsx50lpvRupIatSoUVy4cIG9e/daBjj+8ssv2bFjh529yhwXLlzI/mFSJkyYQMWKFfn999+5d+8ex48f548//uDmzZv07dvX8j+AJ0/Unm4GQ2JPx0KFClG4cGGWLVumpQl2LVmyhEqVKjFixAj27dsHwP379+nbty/Vq1fniy++yJJ6hRBCCEfj6elptdjraOjj42MJnKKiomymMT9+ZR6izJbChQtbXtsqJ+kjXOZyzHnSWm9G6niWTqejcePG7Nmzx9KTds2aNTbTpsXKlStp27YtlSpVomzZspQpU8ZqKV68OK+88opV8JlRmnrRhoSEcO7cuWQfTK5cuZg3bx7VqlWzTJxray62PHnyZNkctV5eXuzbt49JkybRtWtXXF1dyZs3L127dmXcuHFWkb0QQgjhiLTMRmHOnx4Gg4EKFSpw4sQJbty4YTPN7du3AahatardcipVqoROp0NRFG7cuJGsB6u5DBcXF155RR32qUqVKuzatSvN9WakDnucnZ2ZMmUKbdu2tVt/aqZOncqMGTPS1MFTl4HOL8/SdAXP3d3dbtT7+PFjjEYjJpPJkvZZkZGRPHjwQEsTUpQ3b16+/vprbt68yaVLlzhx4gQTJ06U4E4IIUSOoD5Hp9OwpL/OgIAAwHZHxnv37hEREYGHh4dlpglbvL29LYMk2yrnwoULADRp0sQyQHFK9SbNY55FIiN1pKRRI3XsxqSPm6XHN998A0Dfvn3Zu3cv58+fJywsLNmyfv16q+cDM0pTCSVLlmTevHnJ1l+4cIEuXbpQtWpVyxQgz/ZguXfvHrdv305x3BkhhBBCvFgGDhyIXq9n7969ybYdPHgQgE6dOqV6MWXw4MEAKZbTs2dPy7qWLVtSunRpzp49m2wmqocPH3L27FlKly5tNVhxeutISUREBADt27dPU/pnOTk5kT9/fpYsWUKjRo0oW7YsJUuWTLZ06tQpU4Zj0RTgjRkzhjFjxvDKK6/QuXNnOnfuTO3atXnllVfInTs3u3fvtuqJY/5wAJYvXw5A7drJZ24QQgghROqyYxw8Pz8/Bg8ezKlTp5KNdbds2TLc3d2ZOnWqZV1wcDB169Zl/nzrGUL69OlD5cqVCQoKsurFGhcXx9q1a6lUqRK9e/e2rHdyciIwMBCTyWSZocJs5cqVmEwmZs6cafW8f3rrSMny5ctp2rRphgO8IUOGEB8fn6ZbtMHBwRmqIylNAV7Hjh2ZMWMGFy5cYOPGjWzcuJHjx4/TsWNHNm3axJdffsmnn34KQP/+/enSpQuffPIJs2fP5sMPP0Sn0zFgwADNOyGEEEL8GyWg07xkxOzZs6lZsyZDhw7l/v37KIrC/Pnz+eWXX1i+fLnVzBFz5szhyJEjTJo0yaoMZ2dnVq9ejdFoZMyYMRiNRqKjoxkwYAAmk4kNGzbg7Oxsladbt24MGTKEGTNmEBoaCmB53n706NH06NFDUx0ff/wx3t7e9O/fn3PnzgFgNBpZsGABe/bsYePGjRl+Pm7y5MnUr18/2egetlSsWDFDdSSleaqyiRMn0q1bN3777Tfi4uKoX7++pTtx79698ff358qVKzRs2JCoqChGjx7NokWLUBSFLl260KlTp1RqEEIIIYQt5mfptOTPCA8PD4KDg5k8eTK1atVCr9dTqVIljh49SpUqVazS9ujRg7179/LWW28lK6dSpUocPHiQDz74AD8/P5ydnWndujUnT55MNt+s2YIFC6hUqRLdu3cnNjaWQoUKsXz5crtX1tJTR6NGjQgKCmLNmjWsXr2aV155hfLly9OhQwe2bt2qqfNDSEgIo0ePZtasWeTOndvmPL1Go5GQkBBu3ryZ4XrMMmUu2rJlyzJ8+HCb24oXL07x4sUB9YD47rvvGDNmDGFhYbRu3TozqhdCCCHEc5YnTx7mzZtn81n8pHr16kWvXr3sbvfz8+PHH39Mc706nY7hw4fbjTu01NGsWTNOnTqV5nLTY8CAAYSFhQGwZ8+eLKkjqUwJ8NJi0KBB/PDDDwCUL1+e8uXLP6+qhRBCiBwpAT0JGp620pJXpM/EiRMZNGgQvr6+FC9eHGdn52RXBGNiYjh37hyRkZGa68vyAC8hIYG9e/eyfPlyS4AnhBBCCO1MGewokTS/eD769u3L999/b+m9a8/9+/cpUaKE5vo0BXgJCQkEBgayevVqrly5YpmxQgghhBBCJDIYDEyfPh2j0Whz8gczHx8fvvzyS831aQrwhg8fznfffffcRmXObkrcI6v39fyGAKAzqFO6HDyndgE/em0jAHVKqr15PKsl7yns7K32MIqPVO/HJzxRx/SJf3AxWVrT03oPnV9otb5++RGptrlRNXXC4v0nptrc3rzlWsvrXTu7W21r6r8IgN17BqZaT0YEfBwLwLbJtqfEsSWsXqksaUtmiqhgPah3VJIxMQ/2tP7JlT1wFYB/GhS3Wh/Ztpzldcv56u/L6fpDAKIrez7dYrDKE3/9f5bXbcaoD+8ao24BoHNRB/E8cGa23XZvDbQekzJ3+Y5W7589PmzZ9l9fm+tbtP3Z8vr3Le2stjWuqQ6ltO+49dyXSY+72r7Wbcnb8H0Adv5fKwDajFQfSI6+sNWS5vDFpQA0qDgOsL/vRy4nn3bI3Cbzbzoldcv0A8C9eGOr9ebPq8XrWwD4/de2yfKGhM6yem/+ze09orY54O3zlm0JUXeAxO+y4nZ1kPgzrb2t8qRkxzrz+GDqvwHvXE6WxqNMG7WePOrcnE68BEDUafW85uRROElqdeDXbYvVWQBa9zwGwPbVtQBo1e0QAIbciQ+ym79Ln1fVERa2fe+npu2yXy2/oFpf7J1QSx73og0AiHtwweZ+OZdX22E8syLZNv/66ne456B6vjR/LzULtnyaIvG4s/d9m+LU22XmYyqp1M6xWc2EHpOG26xa8or0a9VKPWfFx8dz+PBhrly5gqenJ5UqVaJUqVKWdAMHav+7q+mbNc/HNmXKFK5cuUJ8fDwmkynZcvTo0WRdnYUQQgihTXaMgye0mTdvHr6+vvj7+9OnTx/at29P2bJlqVevHrt27cq0ejQFeHnz5qVQoUJ89NFH+Pr6Wg0umFTNmjUtU4wIIYQQQvwb9e3bl7Fjx3L37l0URSFXrlwULVqUggULcuzYMVq1asWMGTMypS5NAd7YsWN5/PgxcXFxqaZNOqOFEEIIIbQz96LVsojnY/ny5axYsYKXXnqJb775hsuXL/Po0SOuXr3KzZs3iYqKYtOmTfzwww/s2LFDc32avtn33nuPHj16WCbQTUmLFi20VCWEEEKIZ0iA5zi+/fZbunbtyunTpxk6dKhljGAzV1dX2rVrx08//cTcuXM116epk8Xy5ctp2LAh3377LSaTifz58ydLYzQaOXDgAHfu3NFSlRBCCCGEw7pw4QLbt29PtU9CtWrVuHbtmub6NAV4X3zxhWUuuMOHD9tNpyhKjuhFK4QQQrxIjDoDRp3t59/Tlj/1UTBE5ihSpAi5c+dONd3du3e5fv265vo0BXiTJ0+mc+fO1K9fn1KlStkdlfmPP/7gwgXb3duFEEIIkTEmdJpus5qQiy/PS9GiRfnjjz+oUaOG3TSPHj2iT58++Pn5aa5PU4DXsWNHWrVqxbZt21JMFxMTQ6FChbRUJYQQQohnGNFj1BDgackr0mfkyJG88cYbBAYG8uabb+LpqY5pGhsby19//cWaNWtYtmwZt2/fZvHixZrr0zxV2axZs1IclfnEiRNUqFCBoKAgrVUJIYQQQjikNm3aMGTIEPr164der8fLywudTseDBw8saRRFoV+/fvTt21dzfZpD95o1a6Y45UaePHlo1qwZ1atX11qVEEIIIZJIwKB5Ec/PlClT2Lp1KzVq1ODBgwfcv38fRVFQFIWiRYvy7bffZsrVO8iEK3j3798nJCSEiIgITCaT1TaTycS9e/c4ceIEffr0SfVWrhBCCCHSzogBo4YgzYgp9UQiU7Vu3ZrWrVvzzz//8L///Y/o6GjKli1LjRo10Osz75a5pgDv6NGjBAQEEBERkWI6RVH4448/tFQlhBBCCJFjlC1blrJly9rcdufOHQoWLGhzW1ppCvCmTZvG48eP8ff3x9fXl127dlkm0jX77bff6NSpE3369NHUUCGEEEJYk04WOVOVKlW4deuWpjI0BXhHjhxh+/btNG3aFICZM2fi7+9Po0aNLGmWLFnCnj17qFevnqaGCiGEEMKaSeNzdCa5RZvpdu7cyc8//8zAgQOpWrWqZf3y5ctTzRsfH8/u3bu5e/eu5nZoCvBy585tCe4ABgwYwIQJE6wCvD59+jB69Gi++uor3nvvPS3VCSGEEEK80Lp27UpERATHjx8nJCTEsn7mzJlpGhM4syaH0BTgeXl5ce/ePcsUZUWKFEFRFP78809Lr1m9Xo+TkxOzZ8+WAE8IIYTIREbFgEHR0MlCkSt4mW3UqFEEBQUxdOhQq/VDhgxh/PjxNG/enAIFCticsiwuLo7Dhw8TFhamuR2aArxXX32VunXr0qRJE2rUqMF7773HhAkTeO211/jqq68oUaIEc+bM4f79+8l62Dqi4DPWXZcPnV8IQN0y/az+jYtQI3T3wupt6UenVlny1C2jvj58cSkA9fz2W72vX35EsnrN9Tzr4Ln5qbbZKbc6wHSLtj8D8OTyXgAOnJmdal7TkwepptFi22TXLC3/eSl26hQA1ytXBiAy/6OnW7wBCOmd/OT7yu/3AJjZtPvTNSFW2w91S/zhFztzUi2/YlWrNAFDLgKwbWEZAAx5i1m2bZ2rPpzbsn0zAHb+n/psbLNmKwAIDlafiW0z8qYlT/z5owCYnkRYpTEfk+4l/QHYta2TJU+jatMA2H9iarJ9TOrRmTWW182aWZe/7/iEFPMCOOX2VdsY8Y/67/UTALRoq85xnRCl3s7QuyROA9Q84Ecg+bEeMCUKANNpdX93bGyarD63Mo0BqFXkNQCO3dxst23uxdW0u/cMtFrvX1/9fbqWbgBAkzqJ7dh7ZJzNsp4tQ+eTOL/3noPJzw2pafad+q/+5y3qvx4+AOxYp56bdM4ulrTOniUA2LVTPSbNx8a2hbUA8K9/INV2bF9dy7r9Lm6A9X41qaOeV0yR4QC06nIbgPibp5+2yQOAkNBZljytex4D4MlfO4DE79R8/Jni1d+cre/J3F7zcezi/RIAx+/stLsfzzp6bSMA9fyGAKAkxFq2mc/d2cWIHoOmXrQJmdgaAepQKFOmTEm2vn///hw4cIANGzakmD86OpqiRYtqboemAO+DDz5g8+bNLFu2jLVr1/LOO+9Qvnx53nnnHV5//XWrS4wdO3bU3FghhBBCCEfk7e3N6NGjU02XK1cuVq1alWq61GgK8J48ecKQIUPInTs3lStXxmBQ/xcxduxY8ubNy7fffovJZCIgIIAPP/xQc2OFEEIIkciIQeMVPBno+Hn59ttvk922tWXhwoW8/fbbmuvT1D+6VatWvPfee+zcuTPZTBUDBw7k6NGjHD9+nFmzZpErVy5NDRVCCCGEtYSnAx1ndJGZLJ6fuXPnpild586dmTlzpub6NAV49+6pzxG1a9dOc0OEEEIIkT5GxUnzIl4sDx8+zJTpyjR9s/PmzePdd9+lffv2qab18/Pj/PnzWqoTQgghhHAI+/btY9y4cZYx7a5fv06ZMmVSzBMTE8OdO3eyv5NF165dKVKkCO+++y5jx46lXLlyydLExMSwatUqLl68qKUqIYQQQjzDiAG9PIP3QmrcuDHBwcGMHDmSRYsWodPpuHTpUqr5ChYsyLfffqu5fs3j4D1+/BiARYsWaW6MEEIIIdLOqBjQaxoHTwK8rJQrVy6+//57ihUrxvLlywkODrabVqfT4e7uToECBTKlbk0B3ttvv53mhwYzY1RmIYQQQghH89FHH/HgwQNKliz53OrU1Mli1KhR+Pj48PfffxMfH4/JZEq2JCQksHfvXgnwhBBCiExmRK+pF61RWxgg0uHLL79MNc369etZt25dptSn6Qqer68v7777Li+99JLdNDqdjkaNGslAx0IIIUQmS9DYEzZBkZksXiQdOnSgaNGiREVFMWDAAE1lae4fPW3atDSlCwoK0lqVEEIIIYRDMhqNTJs2jS1bthAREZFsCleTycTDhw+JjIxkwoQJ2R/gCSGEECJ7GBUDOulk4RBmzJiR5gGMmzZtqrk+ufkuhBBCOKgEnDQv4vlYu3Ytr7/+Ort37+b8+fO0b9+e48ePExYWRlhYGBcvXqRz58788ssvmfIcnnyzQgghhBBZ7M6dO5w4cQI3NzcABg8ezN69exk5cqQlzaxZs2jYsCFHjhzR3ONWruAJIYQQDsqoGDQv4vkoUaKEJbgDaNOmDZs3byY+Pt6y7qWXXsLNzY133nlHc30S4AkhhBAOyqjoNQZ4EgY8LwULFmTOnDlcvnyZuLg4dDodnTt35v3337ekOXnyJDdu3GDPnj2a65NbtOlUz2+I5fWh8wsBOHxxaZrzt2j7s9V7Jw/r+eZ0BpdkeRpUHAfAgTOzrd67l2wCwO9b2gHQsMpESx7XglUA2L1/6DOltbN6Z/D2tdvWvUfGWb1vuFLtTp/rXuIJYccodXzDNh8+AmDrjDxWedpMiLC83hroBUDAx7EAhFdUADjWUf0fTevP1fK3/yf1/1GWvvsjAGEFOqWaNi1qbYyxakt6XK9c2ep9Kf/5T19NTZbW9+T/ALjWosLTNSFW29uMf6CW2SzxM77epqpVmlbdDgHwuH0tAPzrq/W5FKmSrD6dwdnqfXBwHwBaz1F7b23/sohlW8DwGgBs+696TJiP1YPn1PITj6/Ez3z/ieT7aIspLjJZG8zlR53fDCT+nmwxuOWzasuzGtcMBCB3o8Tf57ZvStpMk+u1EQDs2NgUgJoFW1rSHL+zU922vhEAtX1dAWhUTR0twNb+6t3yWr1v1XE3AHsOjrB67/ZKm2R524y5A0D8OfU7darbCgBdhPp7elJB24j2Tr+r5e74tS0AVTc/stq+Nen3P+A1AOqtU68mHHq6rcXXT8vKl3w4rOYB6u8w/t7fADjnfxmAXdvUY2T7imrJ8riWrAdAQvglNe3O7gA0rrlPLcND3edmzVZY8ri8op7r9h2fYHs/PQrbXJ+U+dhJeg63x5zm2WNSSVDPXbbO+ebfR0jorFTLz0wJOKHT8KdcnsF7fiZMmEDLli15//33KVKkCFeuXGHgwIHUq1ePOnXqUKJECbZt24bJZKJUqVKa65PQXQghhBAiizVr1owVK1ZQpUoVGjRogF6vx2AwEBQUxMOHD9m4cSNRUVHkzp2befPmaa5PQnchhBDCQSVoHCYlQZ7Be6569uxJz549rdaVLl2aU6dOsXPnTkwmE/Xr1yd//vya65IATwghhHBQRsUAMg6ew3N1deW1117L1DIlwBNCCCGEeE6OHDnCsmXLOH78OA8fPiRPnjy88sorvPHGG3Tq1Am9PnOenpMATwghhHBQCYoTOk1z0UoY8LyYTCbeffddvvvuOwAURbFsO378OKtWraJixYqsXbuWChUq2CsmzeSbFUIIIRyU3KJ1HDNnzmThQrVndpEiRejVqxe1atXCx8eHu3fvcv78eRYtWoS/vz9Hjx7V3JP2XxXg/frrr7zxxhssWbKEfv36ZXdzhBBCCPEv8cMPP6DT6Xj99ddZs2YNuXLlSpZmwoQJDBkyhA8//JCVK1dqqu9fE+Ddu3ePt99+O7ubIYQQQmQak6LX1BPWJAMdPzf379/HycmJlStX2gzuAJydnfnvf/+Ln5+f5vr+NQHesGHDePz4cXY3QwghhMg0CYoTyDN4DqFZs2acOHGCPHnypJguV65cODs729xmNBpxckrbd/avCN1XrVrF7du36dChQ3Y3RQghhBD/QvPnz0en06U6Ddnp06cpVKiQzW3peS4vx4fu169fZ+LEiezevZtp06Zld3OEEEKITJOgsZOFDHT8/Oj1etavX8/HH38MqAMcJxUXF8fZs2cZN24cU6ZM4cqVK5ZtsbGx7Nixg5s3b6a5vhwf4A0YMICpU6cm+yCFEEIIR5edAV5cXBxz585lyZIlGI1GfH19+fjjj2nSpEm6yrl16xZTp05lx44dKIpCnTp1+PzzzylRooTdPBs2bODTTz8lPDyc3LlzM2LECAYNGpRpdQQHBzNjxgyOHDmCyWSiatWqjBgxgu7du6dr35Jq0KCBJUDbsmVLimnfeuutDNdjlqNv0S5YsAB3d3cGDBiQ3U0RQgghMp1JMWheMiI2NpY2bdqwYsUKduzYwT///MPw4cNp2bIl69evT3M5YWFh1KpVi4cPH3LmzBkuXLhA0aJFqVWrFn/99ZfNPBMnTqR///7Mnj2bixcvEhQUxMSJExkxYkSm1LFy5UpatmzJrl27iImJITo6moMHD9KjRw/Gjh2b5n171siRI1EUBTc3N3x9fSlRokSalyJFiqR7AOQcG+BduHCBzz//3DKgYHrExsYSGRlptQghhBBCNX78eIKDg1myZInlKliXLl3o3Lkz/fv3JywsLNUyEhIS6NKlC3FxcSxevBh3d3cMBgOzZ8/Gzc2Nrl27Eh8fb5Xnp59+IjAwkMmTJ+Pv7w9A+fLlmTFjBl999RVBQUGa6rh79y7Dhw9n0qRJ3Lx5k/j4eI4fP06tWrUAmDt3Ltu3b8/QZzZ06FBKlizJrVu3uHz5MmFhYWlerl27xunTpzEY0h6Q58gAz2Qy0bdvX+bNm0fBggXTnT8wMBAvLy/LUrx48SxopRBCCKFNwtNhUjK+pD8MuHTpEl9//TUVKlSgTp06Vtv69OlDVFQUEyZMSLWcNWvWcPz4cbp06YKHh4dlvcFgoEePHoSGhrJo0SLLepPJxPvvv49Op0s2lm3Pnj0xGAyMGTOGhISEDNexevVqZs6cyfTp0ylcuDAANWrUYMuWLfj4+ABkeHy6PHnyMGXKlFR70dpTrlw5WrVqleb0OfIZvM8++4zy5cvTrl27DOWfMGECY8aMsbyPjIy0BHmHzi9Mczn1/IYAkLf9TMu6mGuHnr5S27b/xFQAGlVTO4A4eyZ/HkBJiLN6f+DMbAAaVpkIQN0yGwFwL1rPkmbXTvU5gfrl1UvWucq0BCDq/Gar/Yi5uC9JyY2s2q0zuALgml+dMiVk/1C7+7p1hnrAtmy/A4Cd/6cehFsDvZKl3TbZ1WYZ+pvhT18lBuUBU6IAuOL/BICzLfIDEFagk9221Hyk7tvxPEPspgFYldDY8vpYx31W27Y/sT5ptXY/YrecylsjADjVRt3XITr12Ypqv4wDIPd9d0vaa33Vz7LJEnWKmr39dVZlbf3UG4A/wmtb1gVM2wtAaK8/Abi5roF1A3qq33GdDbGJed4+D0D8nXMANG95CwCXiur/eHVenk9TJp7wdC4u6r72PQ3A71usfz8hobPIqGM3N1teN2+5Fkg8Rs2/hWe1Gf/A8tr8O2lcMxCAfcfVPx6tOu4GwL3SGwAkXP87ST0Hrepx9VX/B75turrPLdr+DMDxOzsteZo2+haA3U+Pdafcvlb1t3hd/W4THiY+/GxO6/+D+p3u2djUaj92PH1v/lwBmjVbAUBwcB8AAj5pq7btA/MpOfGYeVabcfcAUB6pdxZ0edVjJubQRksaY8Q1q3aXD74DQKnt6h++Nr+rvydjqQKWPE+OqW3Km+c9dUW3IgAYjqjt1pdXfxOtuuy35HH2q6tuc1OPJyVBvRLy7HkgKX0B9Vwaf/O01XqdQR0WYte25L/tBhXHPX1lfe5z9i6bLK1ZrSLqxO2eVQZYlWtwzwdAbd+OAJjiEu/QmI8F8/nRnOboNfWzPXxxqd36tPw+tDApBnQmLePgpT/vunXrMBqNNGjQINm2unXVY2LTpk2Eh4eTL18+u+WsWrUKwGY59eqpf8++//57hg5Vf2NHjx7l/PnzvPTSS8ku3uTOnZuKFSsSGhrKli1beOONNzJUh4uLC0OGJP/bUaBAAfr27csXX3zB3bt37e5Tavr375+mdBMnTmTWrOTH1ObNm22kti3HXcELDQ1l6dKlzJs3L8NluLq64unpabUIIYQQIjHIKFOmTLJtPj4+FCtWjLi4OEJCQuyWER0dze7du+2WU7lyZQD+/PNPIiIiUq03aZ7g4OAM1zFs2DC7z7qZBx8uWbKk3f0yu3//fqpp7Pn777/54osvMpzfLMcFeF9++SV//fUXnp6e6HQ6q2XZsmWAGkHbusQrhBBCOBKTptuziZ0snn3uPDY21m6df/6p3k3w9fW1uT1v3rwAnDhxwm4ZZ8+eJSYmxm455jIUReHkyZMZqjcjdaTk3j316nn79u1TTNemTRsKFChgdScQ1GcFy5Qpk+JSvHhxKlasSFxcnJ3S0y7H3aItWLAg5cqVs7nt5s2bREZGUrhwYby8vChSpMhzbp0QQgiReUyKHjRMN2aequzZZ82nTp3KRx99lCx9TEyMZVYoc4D0LC8v9XEVc0BkS9LbnLbKMZeRtBxznrTWm5E6UrJz504qV65MQEBAiun++usvFEVJ1kO3evXqrFu3LtV6AHQ6XeqJUpHjArzAwEACAwNtbuvXrx/Lli0jMDBQrt4JIYQQT129etXqcSRXV9vPSoeHh1te25tP1XyL03z1LCPlJL1Nai7HnCet9WakDntOnjzJ/v372b17d6rDlRw4cICQkBBat25ttf6dd97hzz//ZMmSJRQoUMDmdGRxcXEEBwfzzjvvpFhHWuS4AE8IIYT4t1AUA4qGwYrNedP6vLnL085Yal7FZhrz7UVzr9OMlJP0FqW5HHOetNabkTrsGT16NOPHj6dx48YppgMoUqQInTt3Tra+cePGvPHGG9SvXz/F/H5+fqxduzbVelKT457BE0IIIf4tTCaD5iU9fHx8LIFTVFSUzTQPHz4EIH/+/HbLMQ9BYq8ccxlJyzHnSWu9GanDli+//JI8efIwY8YMu2nS6vPPP09Tul27dmmuSwI8IYQQQqSJwWCgQgV1uKcbN27YTHP79m0AqlatarecSpUqWZ4zs1WOuQwXFxdeeeUVAKpUqZKuejNSx7P27NnDpk2bWLNmTbpnkkiPK1eusGHDBg4ePJhpZf6rArylS5eiKIo8fyeEECJHUBS95iW9zJ0Mzpw5k2zbvXv3iIiIwMPDwzLThC3e3t6WQZJtlXPhwgUAmjRpYhmgOKV6k+Zp27ZthutI6vTp00yePJlNmzbZfe4vPcaMGWNZpk6daln/9ddf4+fnR7du3WjUqBGvv/56shk8MuJfFeAJIYQQOYnJpNe8pNfAgQPR6/Xs3bs32TbzFahOnTpZPQNny+DBgwFSLKdnz56WdS1btqR06dKcPXs22WDDDx8+5OzZs5QuXdoygHFG6jD7+++/eeeddwgKCsLb2zvZ9rRMxfasefPmsXr1amrUqMGkSZMsbRgxYgTx8fF06NCBL7/8kvDwcObMmZPu8p8lAZ4QQgjhoNSrcAYNS/rDAD8/PwYPHsypU6eSjXW3bNky3N3dra5QBQcHU7duXebPn2+Vtk+fPlSuXJmgoCCrXqxxcXGsXbuWSpUq0bt3b8t6JycnAgMDMZlMlhkqzFauXInJZGLmzJlW87Wmtw5Qg7sBAwawcuVKq+f4AJ48ecLcuXNZsWJFGj8taz/++CO9e/e2BL+jR48GoFevXmzYsIHhw4ezZcsW1qxZk6Hyk5IATwghhBDpMnv2bGrWrMnQoUO5f/8+iqIwf/58fvnlF5YvX241c8ScOXM4cuSI5aqVmbOzM6tXr8ZoNDJmzBiMRiPR0dEMGDAAk8nEhg0bkg0l0q1bN4YMGcKMGTMIDQ0FYN++fUyaNInRo0fTo0cPTXWEhobSpEkTTpw4QY0aNcifP79l8fb2Jnfu3IwdO9bmVb/U5M+fn4YNG1reb9u2jSNHjpA7d27mzp1rWe/t7a1pJgwzGSZFCCGEcFQaBzrOaF4PDw+Cg4OZPHkytWrVQq/XU6lSJY4ePWrpDGHWo0cP9u7dy1tvvZWsnEqVKnHw4EE++OAD/Pz8cHZ2pnXr1pw8eTLZfLNmCxYsoFKlSnTv3p3Y2FgKFSrE8uXL7c4wkdY6bty4QdOmTXnwQJ0H215v3Tp16vDSSy+l6XNKqkCBAsTHx+Ps7ExCQgIffPABOp2OkSNHUqBA4rzQly9fttuRJD0kwBNCCCEclGLSo2TgObqk+TMqT548zJs3L9W533v16kWvXr3sbvfz8+PHH39Mc706nY7hw4czfPjwNOdJSx1FixbNlCtn9rRu3Zp+/frRq1cvFi5cyMmTJylWrBjvv/++JU1cXBzDhg3LlPrkFq0QQgghRBabMWMG0dHRvP766/zyyy8UKlSIdevWkTt3bgC+//57ateuzdatWzOlPrmCJ4QQQjgqk0FdtOQXz4WHhwebNm3i2rVr3LlzhwoVKuDm5mbZXqNGDRYvXpxp9UmAJ4QQQjiqbHoGT2Scr68vvr6+ydbXrFkzU+uRAC+dGlWbZnm9/8RUq211Sqq9dwzu6sOSh84vBKDNuHuWNCGhswCoX34EAEpCrFXamgVbAlDPL3FQRreidZ6uG2KVNubWEQCO39lpt72muEgAos5vBsDJo2iq+6h3yaPuh1s+AFxfVgerbN5SnRtv187ulrQBw68BsO2/6sEaf+fs0y2tAGjd93RiufnUh1m3zlX/bTPmjtX7+HOHAKi/uq0lz8Hp6uCT5YOtH3ZtNU+dV/B0e3Vso6qLali2+fxVUX2x3nq/gowNAOjqdACAXoZ9NvZe1dr9iM31dR5/bXl99W4lAG62UT+fUkcuAnDGpP6sRudTn+XI3yppd/4PAHDvOevpe+teZS3nq/tV5b2KlnXxBd0BqPrty+qK2dZtCvjECMCRDxInB2+zT73k71bv6XyI5l5iJhMA255+rgFvn7fk2fa9HwB1y6jPgzSsoh4rbr7qmFKxN/4Ekh/3ap5+AORtOl4ta7H1qPAt2v5seZ30+AFoXDMQgH3HJ1itf/Rb4pQ+rc5bT9ptLs/44BIAujvqkAO79w+1pGkeoD5v06rjbjWNi7tVGb9vaQdA00bfWtbpnK0HO3X3bWCd59e2PKthlYkAmOIeqysGqUNBBAxQfwvGO+p4WTFX9lvyOI2YaVXG7YrqeaB1zxNqO/Ko82Lqkjx4faGN+lt+yaR+l9sWqr0U24y8CYBry8ShHnZPVo8F82/s3NPfGM2wynOz/ENLnjNPz03mdvv/oA4P4VayNABPSqgDvbp51bbk2TbZfMypv3/zZ27+nAKGqL+JuJqJPSqDvyn59JX6XZnPj+5vjkz6kVjOLQAHzqgHvfm7Mp9Hzcdv5L6veNaxm5uTrQNIeBJu9d7W+dN8nncrVNtqvb1jVQitVq9ezYEDB/D19eXtt98mX758msuUAE8IIYRwVHKL1mHUqKFeiHBycqJ58+Z88skngNrLOCgoCEVR/4O/YMECjh49arcXcVrJtVkhhBDCUSmGxCAvI4siAd7zcuLECdzd3Vm3bp0luFu+fDnr1q3D2dmZ+fPnExoaymuvvcaHH36ouT65gieEEEIIkcV0Oh1r166lePHiAMTHxzN58mR0Oh0fffSRZdiX+fPnU7VqVc31SYAnhBBCOCqTDjSMZYdJl3ltESkqVqyYJbgDWLRoEVevXqVkyZKMHTvWst7JyYlbt25prk8CPCGEEMJB6UwGdBqeo9OSV6SPt7c3d+7coWDBgty5c4ePPvoInU7H1KlTraZLCwkJ4eHDh5rrkwBPCCGEcFA6xYBOw3N0WvKK9Bk6dCjNmzenbdu2bNiwgTt37lC/fn369etnSXPx4kUGDBiQKfVJgCeEEEIIkcWGDRtGXFwcX331Fffu3eONN95g4cKFlu1Dhgzhp59+Ijo6mly5cmmuTwI8IYQQwlGZ9BqfwZPBNJ6nkSNHMnLkSJvbFi5caBXwaSUBnhBCCOGg5Bm8nMn8rJ4WEroLIYQQQrxAqlSporkMuYInhBBCOChdggFdgoYreBryCtt27tzJzz//zMCBA63Gs1u+fHmqeePj49m9ezd3797V3A4J8IQQQggHpTfp0cszeC+Url27EhERwfHjxwkJCbGsnzlzJhcuXEg1v6Io6HTaxyeUAE8IIYQQIpOMGjWKoKAghg4darV+yJAhjB8/nubNm1OgQAGrse/M4uLiOHz4MGFhYZrbIQGeEEII4aB0Jr3GThZyBS+zTZkyhSlTpiRb379/fw4cOMCGDRtSzB8dHU3RokU1t0MCPCGEEMJB6RS9piBNp0iA97x4e3szevToVNPlypWLVatWaa5PvlkhhBBCiOegYcOGaUr32muvaa5LruClQ5My7XBy9rC73RQXCcCRy2sAaFRtGgCx905a0tT7vwJWeZSEWKv37kUbA7D/xFQbNQy0eufT6EO7balZsCUAOoMrAMdubgagTskeVukM7t6W17V9OwLgVqg2APuOTwDAv/58APYcHJGsHiXiHgDNW+5/Wp+L1fbtyyrZbSMJCQC06rgbAKf6AQDkuZn4/4424x8A4FtM/dza/HRTzVq+CABV570MwNYv81jyBMyqC0C9dfHqPsar5YX0PgBA2QNXAfinQeKkz0XC9lg17WZpf5tNfnS4W2KaFvkB8P9BASC/j3pJvetrrQF4zeUjAObrFlnyVNyu7o9PI3WU8lbz1LxK8E4AzsxTP78ySuIo5ruGqf+26mZ+ODe/daOi1WPIv/43llVu7d8BIKK0Wn7eoxHqBoP1rZxt3/sl20eDu1p+SOisp+Wq37/exf6xbylv8Ss21/++pZ3ldeuexwDYvroWkHicPUvvnPid7tjY9Okr9d+GVSYCkOul1s9sTxR9cTsAnrXfBiA2TP3+24xRjxljKfWY2r1/aLK8bcbcAWDXzu7q+3Hqcb51dv5kafO8+h8AIn+daZVXiYkC4Pdf2wLw8p4aljyFL6r/lr77IwB+f3dQ97lwCTVvQR/139h4Sx6vqr+qLzaqaUsdUQu59GWZZG1q2X6H+qJFS6v15R+oVwWKXy0GQEyNpD31uli1+0L9ULUeN/U37L5ePUb/+U8FS47WfdXj2fw7d6nWHICAIWrbwnqqx3GpYyZLntdiPwYgqrUvAK7lmwGgsxyb6jlJl9fLksdyjshXFoCmjb4FwLlYNfVfzxJW6wESnqhtc6/wqtrGFWpa83n66LWNQOLxDYnnONvnX/vHanbSmwzotYxlJ+PgPRdxcXFs3bqVPXv2cPHiRaKjo/H29ubll1+mRYsW+Pvb/pujhQR4QgghhINSn8HTcItWnsHLct9//z1Tp07l9u3bNrfPnDmTihUrMm/ePJo3b55p9co3K4QQQjgoXYIBvYZFxsHLOiaTid69ezN06FBu3bqFoih2l9OnT9O6dWu++OKLTKtfAjwhhBBCiEz24Ycfsnr1ahRFoVSpUnzyySccPnyYu3fvEhcXR3h4OH/88Qfz5s2jQoUKmEwmxo0bl2ov27SSAE8IIYRwUOaBjrUsIvNduXKFOXPmoNfrmTRpEufPn+f999+ndu3a5MuXDycnJ7y9valWrRojRozg9OnTzJkzBycnJ8aMGUNcXJzmNsg3K4QQQjgo8zN4WhaR+dauXUt8fDyBgYF8/PHHGAyp3wofPXo0S5Ys4dq1a6xbt05zG+SbFUIIIYTIRPv376dhw4b85z//SVe+nj170r17d7Zv3665DRLgCSGEEA5Kn6DX1MlCnyBhQFY4f/48I0eOzFDeUaNGcezYMc1tkGFShBBCCAel9Tk6RW7RZonbt2/TtGnTDOWtU6cO0dHRmtsg36wQQgghRCaKjY0lf/7kA6OnlZOT9utvcgVPCCGEcFB6k17TbVa5gpc1YmJiiI+Px9nZOUP5Hz16pLkN8s0KIYQQDkp60b6YFEXh77//zlDeBw8eEB4errkNcgVPCCGEECKTdevWDR8fn3Tny4zn70ACPCGEEMJh6RN06BN0Gc6vaMgrUva///0vw3l1Ou3fiwR4QgghhIOSXrQvJp1OR5cuXXjppZfS9Rye0WjkwoULBAUFaW6DBHhCCCGEg9KbdOhNGq7gacgr7OvevTurVq3KcH53d3fNbZDQXQghhBAiEzVq1Chb84NcwUuXvRd/plW1EcnWN6o2DQC3QnUAqF9eTaN3yQ3A0WsbLWlbddwNwI6NTW3WoTO4JFvXsMpEAEJCZwEQMPyaVRmte6ojXm9fXcuS5/idnVZl1C3TD4Ajl9dYrXcuWN7y+uj+oVbbAoZcBGDPweT7bGaKvGuzvDbjHwAQc2hjsjyuLXsDcHrwHQAqzSumbjCo/9/YPjbx/x0B09wA2DnC/L/MIgC8vOcWAGUuuSVvVIw6SbPXP+pn+aSIWl6z79TNhXMVBeCdekMsWfJenAlAh+bqvhb/ozAA+a77AnDiDQ8AHhYLS1KROsbRnkFq2ypufwLA+UNquTX91VHMmy9IzFF0x0kAdKdGPt1XNW9AhPpjvlna/L82/2S7tWNdvaf1qJ/tfb9QNc/0p2mn2/+eXnk6HFOJTVEAVPvFxWq/AAIGnAXgwJnZADRrtkLdv6ffv/kYSsp8rB++uFTd14AfAdi1rZPdtug8vKze+9efb1WP+ffk7F3Gkqap/yIAXIpVBcC1SE0g8TfQap4CQIRv4gTdR84vtKqnzZgSACj5vYGkx1SiFl+r/xpuXXm6pqD6j8lkd3+IiQESPzezitutb8v87V/Y8jrgoBGA3MdbAnCplvpbKHnkEgDXXlOP2bMtko6jpR5XAbnV7/BSHbVtrfueBiDu0mFLyt17BqppZ8U/XaO25Zx3L/Vt8p8lrbodAiChqXqcmXLtASCk99M5NHu3AqDNhAhLnoRo9ffQcr76+e/81PvpFvXfgHcuq29LJH5+5t/H33sSPw9I/OzN5zfiE79L8/fc4vUtALhWeRWAbd+UBKBpoxPqfic5hzWoOA6AyEPmH6B6POQqbv3bSnp+e/Zcaz6+4yP+AeDYzc08y/y7MP8GnjddgrZhUkwyk0WWGDZsmKb8AwYM0NwGCfCEEEIIB6VL0KHT0FFCS17xYpPQXQghhBAih5EreEIIIYSD0ivaOlnoFbmCl1NJgCeEEEI4KLlFK+yRW7RCCCGEEDmMXMETQgghHJTWcfC05BUvthx9BU9RFBYuXEjVqlVxc3PDx8eH9u3bc+zYsexumhBCCKGZLkH7IrLfuXPnGDRoEKtWreLx48eZUmaODvCGDBnC0KFDCQ0NxWg08uDBA37++WcaNGjAxo02BoISQgghHIj5Cp6WRWS+AQMGMGDAAN5++222bduWavry5cszd+5cfv/9dwoWLEiHDh00tyHHBni//fYbmzZtYtmyZURGRhITE8NPP/1EgQIFiI+Pp3///ty7dy+7mymEEEKIHGbp0qVEREQwa9YsAgICALhy5YrNxczT05PFixczZMgQfv75Z81tyLEB3tKlS9mxYwdvvfUWefLkwcnJifbt27NmjTqTQ2RkZKZ8gEIIIUR2kVu0L64FCxZQoEABy/v169fTtm1bSpcuTbVq1ZgzZw5bt25Nlm/atGnodNqvrObYAK9x48ZUq1Yt2foWLVpQvXp1AO7evZtsuxBCCOEodCbtS0bFxcXxySefUK5cOcqWLYu/vz979+5Ndzm3bt1iyJAhlClThtKlS9OtWzerK1u2bNiwgdq1a1OmTBmqVKnCDz/8kOl1AISGhtKjRw8GDhyYrn3KlSsXBQsWtFo3duxYtmzZgqIo/Pzzz3z55ZcMHjw4WV5PT08KFy6cbH165dgAb/jw4Xa3+fn5AVCyZMnn1RwhhBAix4iNjaVNmzasWLGCHTt28M8//zB8+HBatmzJ+vXr01xOWFgYtWrV4uHDh5w5c4YLFy5QtGhRatWqxV9//WUzz8SJE+nfvz+zZ8/m4sWLBAUFMXHiREaMsD0fd0bqOHLkCF26dKFatWqsXbuWhIT0Xep0cUk+rzxAiRIlKFCgAI0aNUoxf65cudJVny05NsBLyb1793B1daVNmzbZ3RQhhBAiw3QmBV2ChsWkZKje8ePHExwczJIlSyhRogQAXbp0oXPnzvTv35+wsLBUy0hISKBLly7ExcWxePFi3N3dMRgMzJ49Gzc3N7p27Up8fLxVnp9++onAwEAmT56Mv78/oHZQmDFjBl999RVBQUGa6wAoUKAA69at46233srQ55MSHx+fTC/Tln9dgBcdHc3BgwcZNGgQefPmtZkmNjaWyMhIq0UIIYR40WTHLdpLly7x9ddfU6FCBerUqWO1rU+fPkRFRTFhwoRUy1mzZg3Hjx+nS5cueHh4WNYbDAZ69OhBaGgoixYtsqw3mUy8//776HQ6+vXrZ1VWz549MRgMjBkzxupqW3rrMCtdujR6vZ66deumuh/plRnP16XFvy7A++GHH8iTJw/Tp0+3myYwMBAvLy/LUrx48efYQiGEEOLFtW7dOoxGIw0aNEi2zRwQbdq0ifDw8BTLWbVqFYDNcurVqwfA999/b1l39OhRzp8/T9myZZM935Y7d24qVqzI9evX2bJlS4breJabm1uK+5BV4uLiNJfxr5rJIjw8nJkzZ7Js2bIUL5FOmDCBMWPGWN5HRkZKkCeEEOKFY77VqiV/em3evBmAMmXKJNvm4+NDsWLFuH79OiEhIbRr185mGdHR0ezevdtuOZUrVwbgzz//JCIiAi8vrxTrNecJDQ0lODiYN954I0N1PCujV9tiY2NZsmQJipL8842IiLC7zWQycf78ea5evZqhepP6VwV4b7/9Nv/5z39SffbO1dUVV1dXm9sOX1xqeV2zYEsAjt/ZaZXGv/58AGJu/5Esf+QJc/6mVusbVBwHgM6Q/MHMkNBZVu/jz+0HoGX7fADoPdVu2I2qTbOk2X9iqlUbdQbr/Wnqr16SNuQpkqw+s8cHzb2S1Pob1wwEYN/xxEvvSvwTAHbt7A4k7nvsKXU4GmfPUpa0Hq3fAWDrZLUtAVNeUst4Wf0fUvyW1QC08OpjyeN0+87TV2qHmCLnjqr77KPmUbxfAaDN+AeWPPGlvNU2DVPfV938CACf63kAyP13DADf6Bda8rzfXK1zlk5twzLnU+oGf3U/Amb1BeCHsYmddxotOwjApWrnABjfWv1Pwacn5wIwnXVqm9vsseS5OawpAC/vuQVA8T8iAPArWI6kKm5P3J8zrb2xpUbR3QDUX90QgIM97f+cI14+AYDppRYAFN6p1s8bibcsti1+xSqP3iOf1XuPMurvpp7fEMu6Q+fVz9B8/B44M9tuGyz1fK92cmrRVh2maM9B9cHo2r4d1XrKvgaAk3fy/1TFhh1Qt+VTj51W3Q4BsGOd+j/xNmMiEhN3Vv+HHzDkolrvQtt/FNpMSMyjL+QJQMyF3eq2kcUAeHJEfWg84O1XAVCiEvP8Pcr2fxZ916vjbLY+pf7R2D428YaJ6Yj6Gy5qUr87r/+ov7Eg/0/VeqZEAVD/ttGSx/z9bpuufmfH7tcG4PQM9XeZ70xnS9o6G2IB8LmnttP/B/Uc8U/tswD4Ha4AQHCSDnzeKzepbXBWP8uHf0xUN5QOUdsUO1Mt47V+ljwXnj4oXm+d+gxTkaffz83S6rNRykN1pILCX31hyfN4zRwAGi1T7w3m/uM2AL9/qZ6LAqapx92tWon73rrvaTXNr21Jyrx+9/6hADRt9K1lm2vBqgDEP7iILfXLq8fdwXPzLeuePde6+6pXfdyK1LZZBlj/TcgWJkVdtORPpz///BMAX19fm9vz5s3L9evXOXHihN0A7+zZs8TExNgtx/wIlaIonDx5kiZNmqSpXoATJ05kuI7M8uTJEwYNGmR3e0rbMsu/JsCbNWsWJUqUYNy4cdndFCGEEOKF8uyz5vYudMTExFim0rL3HLv5SlhKkwkkHabMVjlJr6aZyzHnSWu9GakjMzk7O1OwYEEMBkOa8xiNRsLDw4mNjdVc/78iwFuxYgV//fUXS5cuze6mCCGEEJkms27RPvsY0tSpU/noo4+SpU/6XJ29oTz0evVqtfnqmS2plWMuI2k55jxprTcjdWSWunXrsnv3brt3A1NiHoJGqxwf4G3cuJH/+7//Y+3atcnupSckJHDjxg15vk4IIYRjyqRbtFevXsXT09Oy2l5gknR8N1vPkEFiB4GUnnVPrZyknQzM5ZjzpLXejNSRWdq0aZOh4A7Uz75Lly6a25Cje9H+9NNPLFu2jFWrVuHkZB3L3rp1i379+nHxou3nM4QQQogXXoJJ+4I6e0LSxV5w4uPjYwmcoqKibKZ5+PAhAPnz57fb7KQzNdgqx1xG0nLMedJab0bqyCxan7FLrQdyWuTYAG/VqlV06dKFvXv3UqxYMfLnz29ZPD09KVKkCHv27MnUhyqFEEKInMxgMFChgtpJ58aNGzbT3L6tdpypWrWq3XIqVapkuatmqxxzGS4uLrzyitoBrEqVKumqNyN1ZJZixYplOG9cXByzZs1KPWEqcmSAt3nzZvr06YPRaOThw4eEh4dbLY8eqb0qe/To8dwGHBRCCCEyncmkfUmngIAAAM6cOZNs271794iIiMDDw8My04Qt3t7elkGSbZVz4cIFAJo0aWIZoDilepPmadu2bYbryCw7d+5MPZEdP/74Y6aMg5cjA7zXXnsNk8mEoigpLp9++ml2N1UIIYTIOJPG27MZCPAGDhyIXq9n7969ybYdPKgOH9WpUye787GaDR6sjtOTUjk9e/a0rGvZsiWlS5fm7NmzVj1kQb3devbsWUqXLm0ZwDgjdWSW9u3bp3v+WlDHyHv//fczpQ05MsATQgghRNbw8/Nj8ODBnDp1yjLmnNmyZctwd3dn6tSplnXBwcHUrVuX+fPnW6Xt06cPlStXJigoyKoXa1xcHGvXrqVSpUr07t3bst7JyYnAwEBMJpNlhgqzlStXYjKZmDlzptWwJOmt41lGozoeY3qDtSdPnrB69ep05YmLi6Njx45cv349XfnskQBPCCGEcFA6k0nzkhGzZ8+mZs2aDB06lPv376MoCvPnz+eXX35h+fLlVjNHzJkzhyNHjjBp0iSrMpydnVm9ejVGo5ExY8ZgNBqJjo5mwIABmEwmNmzYgLOzs1Webt26MWTIEGbMmEFoaCgA+/btY9KkSYwePZoePXporiOpw4cPA3Dy5Ml0D6UyduzYNM9IkZCQQM+ePS0zb2QGCfCEEEIIR5VJvWjTy8PDg+DgYOrVq0etWrXw8/Nj165dHD16lM6dO1ul7dGjB3ny5KFv377JyqlUqRIHDx7k9u3b+Pn5Ua1aNfLmzcvJkycpV65csvQACxYs4KOPPqJ79+6ULVuW8ePHs3z5cubOnWszfUbq+PLLL8mXLx8//KDO6HTq1Cny589vcx/suXfvHq+++ioPHjxIMZ3JZOKtt95i06ZNdoeAyYgcPw6eEEIIITJfnjx5mDdvHvPmzUsxXa9evejVq5fd7X5+fvz4449prlen0zF8+HCGDx+eeuIM1jFy5EhGjhyZ5vTPcnZ2ZsWKFaxZs4YWLVqwa9cum7NpKIrCwIEDWbNmDTqdjg8//JDOnTtTt27dDNdtJlfwhBBCCEeVDb1oRerefPNNunbtyqZNm2jcuDEtWrSwGnfPbMiQISxbtgydTsekSZOYPn06VapUYdmyZZrbIAGeEEII4agSTJCQoGGRAC8rrFu3zvL6yy+/pF69erRs2dJqzt/hw4fzww8/oNPpGDVqFNOnT7ds69q1q+Y2SIAnhBBCCJGFvv76a8qXL09AQACPHj1i9OjRfPPNN+h0OgYNGsScOXMyvU4J8IQQQghHJbdoX0hjxoxJtm7p0qV4enpSvnx5y5Ax3bt359tvv01T/vSSThYa5Hmlh831CU/UHjMeZdoA0Dwg8cHO3OU72sxz4MzsVOtrVG0aAPtPTLW5vWGVIMtr//rqwXP8zs6n2yYCUKek2uYjl9cA0KLtz5Y8rfucACAu7BAArgWrWJW/7/gEAALeuWxZF3fbPDp4OwD2HBxht/2tuqnlBgzwAmDbYnVqmOYL1O3BwX3U7R/HWvIoj9TPMmBWUQCcB9wCoNiuV9XtoWqb/xqVOFF0+bXxADT7riAAJwfnUcuY8nQuwvvmHk2JI5d/pluhppn2BADPRkUAcC8TrbZ1orkb/WFLnsG1TgLwysQ7AAwspr7/tUhZNcHTWXp0T/JY8pjbUOax+n+r663VuRLPBux7mqIxACZD4phLDVeqr0N6q2M7FTmXF4CEveoJ4OCM5D/jpo3UE4ZLiVoAVELNs321eeYWdf9att9hybPz/1oB0GaMuj+//9rWqsz4B2EAHDq/MLFtT48rJUEddd18bGz7piQArTruBmDHxqbJ2vjksjrwaPOW6md89NpGqzzRF7Zb0oaEqtP2tO6ZGwDjHXUE+rjwC09TPB3YNJe7JU+TOupvyjn/y0/XqMM2tBmvfv+hfdX9uRFYI1keg0chAB42UOen9LzbQE2QoI6JpfNJnOMywUn9Tv1/UHu/7RmkfsYJdy4BcP8185RFuRLzRKnzTOqf3h6LnPYhANXqqmWdmK4emxW3J+195w0k/j62TT6qtv/poV/+wh1Lysj86mvnGHWfL9ZTB3T1uvoSAPGu5j/qif/HD3K2Hvi96XX18z/x9OPZ5qoOcdFmY2I9bTZHAJDnwikAbnaznrlA56H+1s+vSzy/HXx6HJvPPUr9AKs8od1Oq2WVr21ZF/Cjmsf8+9n29PPZvqySuv7pcedcsHxiQc5uALhUbAYknod37x9qVZ/5vASwY109q216j3wAPDq16mmb1f1JiEocZHf3noFqGwacVdu2OHOnvEqV+Varlvwi0y1ZsoTZs2ej1yf+xpycnNi4cSP+/v7cvHmTN998kxUrViSbUctoNLJkyRK7vYLTSgI8IYQQwkEppgQUDUGaYpIALytEREQwYMAAunbtipubm9W2MWPG8PHHH/P2228nG/fuyZMnbNq0yepZvYySAE8IIYQQIpOtWLGCFStW2N3++uuvZ2n9EuAJIYQQjsqUoC5a8ossoWXQ4mdv22aEdLIQQgghHJWmIVI0Pr8nUrRq1Sqio6MxmUxpXqKjo1m+fHmm1C8BnhBCCCFEJipcuDA9evRI9vxdatzc3OjduzcFCxbU3Aa5RSuEEEI4KpNJ4y1aGSYlK9ga+iQ9Fi5cmHqiVEiAJ4QQQjiqBKNl+J4M5xeZbvfu3ezevRuDwUD9+vXp2NH2EGn2tGvXTnMbJMATQgghhMhE8+bNo1GjRqxevRpfX99saYMEeEIIIYSDUhI0joMnnSyyhF6vZ82aNRQrViz1xFlEAjwhhBDCUZmM6qIlv8h0hQsX1hTc3bx5kyJFimhqg/SiFUIIIYTIRLly5Uo9UQoaNGiguQ1yBU8IIYRwVCaNnSzkCt4L56+//uLatWuay5EATwghhHBQSkICij7jQZo8g5c1rl27RpMmTdKdLzo6mrNnz2LKhOFrJMATQgghHJU8g/dCiomJYf/+/RnOnxlTlUmAJ4QQQgiRiby9vRkxYkS68z1+/Jjt27dz+vRpzW2QAE8IIYRwVAlG0HCLVgY6zho+Pj5MnTo1Q3k//PBDChcurLkNOkVRFM2l5HCRkZF4eXkRERGBp6dndjdHCCHEC+x5/M0w1+H/6iacnD0yXI4xPoo9v3WQv2+ZzM/Pj/Pnz2c4f+vWrdm+fbumNsgwKUIIIYQQmejBgwea8msN7kACPCGEEMJhKQlGlIR4DYvcos0K9+/f5/fff8/WNkiAJ4QQQjgqcy9aLYvIEm+++SYTJ07k8OHD2VK/dLIQQgghhMhEYWFhltdubm7Z0gYJ8IQQQggHpZjUW61a8ovMV7JkyexuggR4QgghhMNKiAedhiBNQ3AoXmzyDJ4QQgghRA4jV/CEEEIIB6UkGFE0XMGTXrQ5lwR4QgghhINSTHEoJoOm/CJnkgBPCCGEcFQJ8aDT8KdcnsHLseQZPCGEEEKIHEau4AkhhBAOSkmIR9FpuEUrV/ByLAnwhBBCCAelmOJQEjJ+M06ewcu55BatEEIIIUQOI1fwhBBCCAelJMSjILdoRXIS4AkhhBAOSkmIQ9FwM05JkFu0OZXcohVCCCGEyGHkCp4QQgjhoBRTHIpOpym/yJkkwBNCCCEclHqLVkOAJ7docyy5RSuEEEIIkcPIFTwhhBDCQam9aLVcwZNetDmVBHhCCCGEg1JMsSgoGvLLLdqcSgI8IYQQwlElxKIoGQ/wkAAvx5Jn8IQQQgghcpgcH+DFxcXxySefUK5cOcqWLYu/vz979+7N7mYJIYQQmikJcSgJsRoWuYKXU+XoW7SxsbG8+uqr3L59mx07dlCiRAnWr19Py5YtWbVqFV26dMnuJgohhBAZpiTEoiimjOc3SSeLnCpHX8EbP348wcHBLFmyhBIlSgDQpUsXOnfuTP/+/QkLC8vmFgohhBBCZL4cG+BdunSJr7/+mgoVKlCnTh2rbX369CEqKooJEyZkU+uEEEII7bTdnlUXkTPl2Fu069atw2g00qBBg2Tb6tatC8CmTZsIDw8nX758z7t5QgghhGZKQpzGW7TGTGyNeJHk2Ct4mzdvBqBMmTLJtvn4+FCsWDHi4uIICQl53k0TQgghhMhSOfYK3p9//gmAr6+vze158+bl+vXrnDhxgnbt2llti42NJTY28bJ1REQEAJGRkVnUWiGEEDmF+W+FpvHp0ig+IQqTyZDh/AlKQia2RrxIcmSAFxMTw+PHjwE1kLPFy8sLgHv37iXbFhgYyLRp05KtL168eOY1UgghRI726NEjy9+azObi4kLhwoX5361jmssqXLgwLi4umdAq8SLJkQFeeHi45XWuXLlsptHr1bvTMTExybZNmDCBMWPGWN6bTCbu379Pvnz50OkyPuff8xIZGUnx4sW5evUqnp6e2d0czWR/XmyyPy822Z/nT1EUHj16RNGiRbOsDjc3N8LCwoiL0z6OnYuLC25ubpnQKvEiyZEBXtL/idi7RG7+Ufj4+CTb5urqiqurq9U6e1cCX2Senp4v7AkwI2R/XmyyPy822Z/nK6uu3CXl5uYmgZmwK0d2svDx8bEEeVFRUTbTPHz4EID8+fM/r2YJIYQQQjwXOTLAMxgMVKhQAYAbN27YTHP79m0Aqlat+tzaJYQQQgjxPOTIAA8gICAAgDNnziTbdu/ePSIiIvDw8MDf3/95Ny3Lubq6MnXq1GS3mR2V7M+LTfbnxSb7I8S/k055Hv24s8H58+cpX748FStWJDQ01GrbL7/8Qrt27XjrrbdYtmxZNrVQCCGEECJr5NgreH5+fgwePJhTp05x4sQJq23Lli3D3d2dqVOnZk/jhBBCCCGyUI69ggdqBwt/f3+cnJzYsmUL3t7efPXVV/znP/9h1apVdO7cObubKIQQQgiR6XLkMClmHh4eBAcHM3nyZGrVqoVer6dSpUocPXqUKlWqZHfzhBBCCCGyRI6+gieEEEII8W+UY5/BE0IIIYT4t5IAT4gMCgsL4/jx4yQkOP5k3eYL+XJBXwghcgYJ8F5AJpMpu5uQqaKiovj444+TDVfjqJ48ecInn3zCrFmzMBqNGAyG7G6SJtHR0URERAA4xFzLqTEajdndhEwl5wMhREbk6E4WjmjJkiUcOHAANzc3qlatSrNmzShbtmx2N0uTn376ialTp2IwGChdujR58uTJ7iZpsm7dOuLj41mwYAFOTo79E5o1axbr168nV65cREREMGLECNq3b0+hQoVQFMXhAr7PP/+ckJAQvL29qVmzJgEBAfj5+QE45P7I+UAIkWGKeCEcPnxYqV69uqLT6ayW0qVLK7/99ptiMpmyu4kZ9vHHHys6nU6pXr26snv37uxujiZ//vmnUr16dWXfvn2KoihKQkJCNrcoYw4dOqRUqFBBefXVV5WjR48qS5YsUQICAhSdTqdMnDjR4fbr+vXrStOmTZX27dsr27dvVwYOHKgUKFBAyZs3rzJ16lTlyZMn2d3EdJHzgRBCK7lF+wK4c+cOI0aM4MSJE1SqVIl3332XGjVq4OXlxaVLl5g3b16ywZodgfnW0oMHDyhWrBgnT55k7dq13LlzJ5tblnG//PILFStWpFGjRgDo9Y75E1qyZAmdO3dmy5Yt1KpVi379+rFs2TKqVKnCr7/+yt27d7O7iemye/duPD09+emnn2jVqhU//PADq1evpmTJkkyfPp1Ro0Zx79697G5mmsj5QAiRGRzzr1MOoTx9oH3r1q0cPXqU6dOnExoayldffUVISAhLliyhQIEC7Nmzh9OnT1vlcQTm22FRUVE0atSIWrVqsX79evbv3+9Q+2EWGRnJwoULqVatGgAxMTHZ26AM+uOPP/juu+9o0qQJkLgfhQoVYtiwYYSFhZE7d+7sbGK6ffXVVxQsWBBI3J+WLVvy7bffotPp+O677/jss8+4fv16djYzRXI+EEJkJgnwspH5hBcSEkLDhg2ZNGkSAAkJCbi6uvLmm2/ywQcfEBsby969e7OzqRmi0+l48uQJ9+/fZ9KkSbz++uvcv3+f5cuXc/HixexuXrr99ddfhIeHU79+fQDc3NwAuHTpEg8ePHCYh/v//vtvnJ2diY2NBcDFxcWyrVChQvj7++Ph4eEQD/ebTCYePXrEjRs3ku2PoijUq1ePGTNmALBy5UrWrVuXbW1NjZwPhBCZSQK8bGIymSx/QIsUKcKIESMsJ3iDwWDZ1q1bN/z8/Lh8+TKxsbEv7EPitoIBk8mEu7s79+/fJz4+nu7du9OgQQN+++03tm/fbvmD/CL+793W/vz999/Exsbi4eEBQHBwMI0bN6Z58+ZUrlyZnj178vvvvz/vpqZJ0uOtXLlyxMfHs2rVKq5fv251m1lRFMssL45w+1mv1xMbG0tkZCRHjx617I+iKJbjatSoUbRo0YJbt24RFBTEoUOHsrnVtpnbmxPOB7Y48vlACEf04p/Bc4CwsDCmT5/O4sWL+emnnzAajej1essfUMVG7z69Xo/JZKJo0aJUr16duLg4XF1dX4iTn739eZZer+fhw4c8evSIYsWK4efnR8+ePXFxcWHZsmWW20zZ/Ucqtf0xf+Y3btwA4ObNm8yZM4cvvviC9u3b07p1a9zc3NiwYQM9evRg/vz5xMXFZcu+QOrHW9myZenWrRtr1qyhV69eLF++nP/97388ePCAyMhI2rZtm21tt+XWrVscOHAAINmYg4qiWHrM3r1713JlS6fTodfrSUhIwN3dnVGjRpEvXz5Onz7Njh07iI+Pf+77YWZvf5L+DhzpfJDS95OUo5wPhMgxnnevjn+bwMBApUSJEsrYsWOVVq1aKW5ubkrlypWVxYsXK0ajUVEURXnw4IFy5syZZHnNPeWmTZumvPXWWy9Ez7mU9sfM3E6TyaRERUUpb775pnLx4kVFURTlzp07SseOHRWdTqdMmTLFkic0NPT57shT6dmfcePGKTqdTgkMDFTWrFljtf3KlStKvXr1FJ1Op5QvX17ZtGnT894VRVFS3p+kx8/du3eVpk2bWvXQLF++vFK4cGHF29tbadq0qTJmzBglODjY0gM1O3rWxsXFKZ06dVLKlCmjxMXFKYqiJPsdPHnyROndu7ei0+mU9957T7l3757Nsvr06aPodDqlRYsWytmzZ7O87baktD/mfyMiIhzmfJCW78fMEc4HQuQkEuBloUuXLimvvvqq1cl68+bNire3t6LT6ZRRo0Yp169fT7WcoUOHKiNHjszClqZNWvbn5s2biqIoluD1woULSrly5azK+fHHHxVfX1+lbNmyyvjx45UiRYooTZo0UW7duvX8dkZJ3/4oiqIsXLhQ0el0Sv78+ZWgoCBFURQlNjbWEvicPn1aadWqlaLX65VBgwYpERERL9z+3Lhxw7Lt0aNHysGDB5W5c+cqLVq0UAYNGqT06dNHqVGjhuLs7KzodDrF2dlZ6dWrl/Lo0SNFUez/8c4qX331lZIrVy5Fp9Mpn3/+uaIo1oGmuT0LFixQdDqd4ufnZxnCxsx8LB46dEhxcnJSXF1dlYMHD1rlf15S25+0eFHOB4qS/v15kc8HQuQ0EuBloQkTJlhOZnFxcZY/JosWLVLKlSun6HQ6ZeDAgXbzm/8wDRs2TFm/fr2iKOofJHM5Dx48yMLWJ5fe/TEajcrZs2eVXr16KXFxcUp0dLRlW+fOna2uHo0ePVoJDw9/ofdn69atSsGCBZVy5cpZrjA8GyAEBQUppUqVUqpUqfLcA7z07k/Sth88eFAJCQlRFEUN/P766y8lMDBQqVmzpqLT6SwBxfMMiIKDg5WuXbsqHTp0UHQ6nVK4cGHl6tWriqIk/jbM7UlISFCKFi2q6HQ6Zdy4cXY/+x49eig6nU758MMPn89OJJGW/UnJi3Y+SO/+JCQkvNDnAyFyGgnwsojRaFQCAgKUxo0bK1FRUYqiJP7PNioqSlmwYIHi4eGh6HQ6ZfXq1YqiJP/jaT5JDhgwQNm1a5fVtsePHyu//vqrEhMTk9W7YmlLevdHURRl//79SuPGjS3vb968qQwaNMhyIndxcVEmTJjwXPYhqfTsz6pVqxRFUZQTJ04o5cqVU9zd3ZVPP/3U6g+U+buLjIxUBgwYoOh0uud6G1Dr8TZp0iTl8OHDVvkURVGuXr2qVKhQQfHy8lLCwsKe096oLl++rCiKegu2a9euik6nU4YNG5Ysnfl38u233yo6nU7Jly+fsnXrVqv9MKc5ePCgotPplD59+ijx8fHPYS8SpXV/7HmRzgeKkrH9eVHPB0LkRNLJIgsoioLBYCA+Pp779+/z+PFjILFXYq5cuXj99dfp06cPABMmTODOnTvodDqrh6YNBgMPHjwgKirKMjSH2W+//caCBQtwdXV9YfcH4Pr165aH9qdPn07x4sVZtGgRfn5+tGvXDpPJxJkzZ/j777+zfD+07o95qqiYmBi2bt3KqVOnLGWav7s8efJQs2ZNPDw8nst3o2V/dDodCQkJxMTEcOzYMY4ePWqVz2g04uvry5AhQzCZTJZejs+LeVw7Nzc3Jk6ciJubGwsXLkz2QL95LuA+ffpQp04d7t+/z3f/3969x8d05/8Df39mJJJIyEVELiIERazbg10Wdatrl2ot3Wx3de1uaShabdeXtqRqCaqufWxRsd3HQyPurIeqy64KUpd12boEwTYuJUQiyOQ28/r9kd+cZGRyn2Qmk9fz8fBoc+acM59Xhs+8z/mc8zlr1khSUpK2L71eLwAkMDBQmjdvLgaDocYfM1fePCVxlP7ArDJ57t6963D9AZHTsmNx6dQMBgP69u0LpRT27t0LAMXOGJw4cQKtW7eGUgqffPIJgOJDG0lJSZg0aZLFsj179qBly5Zwd3fHxYsXqzFFoYrmiY6OBlAwZBkUFIQWLVpAKQUvLy/MmDEDWVlZSE9Px8CBA+Hm5obly5dbnBFztDxz5swBUHDxd9OmTaGUwsSJE/G///1P2zYnJwcAEBcXh7CwMO26NUfMY/77BhQM7QUEBFgMbZpMJm377du3w8/PD/fu3auhNNZ98MEHUEph6NCh2rJnb1A4fvy4xTDfrVu3ABT+LrKystC8eXPMnTu3hltfXGl5SuIo/YE15fl8tm/f7pD9AZEzYoFXCWV1wuahoXnz5kEphX79+lld7+nTp4iJiYFSCu7u7trdf0Wvq9m8ebNWXFy6dAm/+c1vtC+wwYMH2+RLt7rypKenY9euXfD29oZSCpGRkThz5ozFNuvWrYOLiwtCQkLwww8/VDlLdeZJTU0FACxbtgxBQUHQ6XR47bXXil1U/n//939YuHBhudpSHtX99y03Nxf9+/dHWFiY1bt/33//fYs7HKuqsr+Tu3fvomXLlhbD5kUPiMz7Xbp0KYKCguDi4oIpU6ZY7OPevXsWzxK2herKY+09HKE/KEl58sTFxcHPz69G+wOiuooFXgU8evQI8+fPx/fff1/qeuYOcv/+/fD19YVSCrt27QJQvMM7ffo0unXrBqUUli1bVmwfMTExiI+Px+LFi7U7G319fbFu3TqHz7N27Vo8fPgQ7733HrZt22axnnlKhQcPHuBPf/oTvvjiC4fPs2TJEgAFZ4Hi4uLQrFkz7Yt12bJluHDhAiZOnIhf/OIXOHfunMPnWbp0KYCCz2LhwoVwc3NDcHAw/vGPf+Cnn37Co0eP8Oc//xkdO3bEyZMnayxPadatWwelFCIiIvDkyRMAhQWu+b85OTnYu3evVmxMmDAB3333HXJzc/HHP/4R48aNK9dNDfbOU5Qj9QelKSmPuf0pKSn4y1/+UiP9AVFdxwKvnD7//HO4u7tDKVXuOZqSkpIwfPhwKKUwbNgwbZio6BFyZmYmZs6cCb1ej7feeksb5gMKzrgMHToUAQEB2lH6+++/b5MLqWsij3koqejr1s642OIsV019PuY54YCCYmnmzJkIDg5GaGgoQkNDERUVZbFObcmTlpaGZcuWoUmTJlBKoWPHjvD398ebb75ptzzWGAwG9O/f32KYuaRpOZKSkjB//nyEh4eje/fuaNeuHaKiouz278eaiuRxtP7AmvLkqYn+gIhY4JVp//79aN++vdah9uzZE1euXCn39osWLYK3tzc8PT3x5ZdfAije4e3cuRNeXl4YMGAAgMIO7vLly9r7Dh8+HFevXq2VeYpmsjV7fj5mT58+xe3bty3mmKsse30+ZtevX8eRI0ewe/duXLt2rWphUPU81hw8eBBKKfj4+CA5ORlA6dOMZGVl4c6dO+Wac7Is9szjiP2BNeXJwyKOqPqxwCvF6dOntaklwsPDsXr16nLPNWXuwC5cuIBBgwZBKYVOnTppXzL5+fnaOhkZGWjdujXatGmDjIwMbR8LFy6Er68vvv3221qbpzrn5nKkPLb4wnKkPLZQlTxlMU9F84c//AFA2b9/e38+ZSlPHkfqD8pS0c+HiGyPBV4pUlNT4enpialTp1bp6H/Dhg2IiIiw6PDMzEe2Y8eOLXZxvPkOQFuxV57q6tyZxzpny2NNUlISGjVqBKUUDh48aNN9l8TeeRy1P7DGHp8PEVligVcCo9GItLQ0jB8/XhtmqCjzF+fjx4+xbt06uLq6QimF1atXa9NR5ObmIj8/H927d9fuVLTFBeDPsmee6niGKfMU52x5yvLXv/4VSin88pe/REZGBpYvX47z589Xy3sxT8XVZB4iKo4FXikyMjLQtm1bnD9/HkajEcePH8eePXtw7NgxXLt2zaIQK8+X5Nq1a+Hj44P69evj3Xff1a7ZOnToEIYNG4aUlJRqywIwT1mYx7Zsnacoo9GIu3fvao9g0+l0aNOmDS5fvmzrGBrmKT975CEiS3W6wDN3YNY6L/OyV199FQMGDECfPn20C4eVKnjg/OjRoxEfH1+h9/zvf/+LsWPHwsfHBx06dMALL7yAiIgIbN26lXmYh3kq4NixY/Dw8EBYWBi2bNlS6f2YMY9j5yGiiqlzBZ55GGvDhg3a0xZKYjAYMGTIEO0OM/OcU0V/Vqrg2Z4VmXU9NzcX165dQ2JiIjZt2sQ8zMM8FXxqwZUrV9C6dWu88847lc4CMI+j5yGiyqtzBR5QMON6165d0b17d6sPWC/68/Tp0+Hj44Np06YhMTERBw8exMWLF/Hpp59ixIgRUEqhVatWOHToUI3nMGMe5qlJjpDHYDBo1xUyj3PnIaLKqXMF3s2bN7VpJFxdXTFlyhSrE8KaJSYmIikpyeq+srOzMWfOHHh4eGD69OkAqueC9dIwD/PUJOZhHiKqHepUgWc0GvHvf/8bu3fvxuLFixEYGIiQkBDtsU6lTRdhMpm0zq3o/6elpWH69OkIDAys/gDPYJ5CzFP9mKcQ8xCRo6tTBR4Abb6ntLQ0zJo1C0opjBkzBvfv3wdQuSPUM2fOYNSoUfjxxx9t2tbyYJ6yMY/tME/ZmIeIHIFO6pigoCAREfH19ZWXX35ZunXrJnv37pVt27aJiIhOV/FfiZeXl6Snp0toaKhN21oezFM25rEd5ikb8xCRI6hzBZ6ICAAREfnZz34mr7/+umRnZ8uGDRvkypUrIiJiMpkqtD8PDw8ZMWKEzdtZXsxTOuaxLeYpHfMQkSOokwWeUkpEROrXry9DhgyRoUOHytGjRyUuLk5ESj/KtdY5JiQkSKdOnaqnseXAPIWYp/oxTyHmISJHVScLvKLCw8Nl3Lhx0qhRI4mPj5cjR46ISMlHuebO8cmTJyIisnnzZrl165YMGDCgZhpcBuZhnprEPMxDRA7Kjtf/VcmzFwtX5YHpd+/exZtvvgmlFCZMmACDwVDiPnft2oU2bdqgS5cuCAoKQmRkJG7evFnp9zZjnpIxD/OUhXlK5gh5iKjm1bN3gVlRly9floULF4q7u7sAkFdeeUVeeOEFbViiMgICAuTVV1+VgwcPys6dO2XQoEHy61//2uq6N2/eFADi4eEhK1eulFdeeaXS7yvCPOXBPMxTEuYpmz3zEJEd2aOqrIz8/Hy8/fbbCAkJwYwZM/Dhhx9qz01cvHgxgLKnACj68Gwz81FsZmYm5s6dC6UURo4ciZ9++kl73fzH7N69e8zDPMzDPMxDRA6r1hR4ixYtwosvvmjR+Zw/fx4RERHw8vLCkydPStzWaDRadGDWOkIAOHv2LHr16gUPDw8sX75cW56Tk6Ptx1aYpxDzME9FMU8hR8xDRPbn8AWe0WhEamoqnnvuOSxatAhAwcPTzR3ap59+ioYNG+I///lPsW1NJpNFZ3fy5EmMHj0ae/bssXr9icFgwJo1a+Dh4YFmzZrhww8/RP/+/bF161bmYR7mYR7mIaJaw+ELPAC4ePEiXFxc8N133wEo6BTNR5tJSUnw9/fHnTt3Stw+NTUVU6ZMgVIKSilMnDgR2dnZFuuY93ft2jW0aNECSikEBARgzZo1zMM8zMM8zENEtUqtKPCOHTsGNzc3jB071mK5yWTCvn37EBUVpQ0zPGvhwoUIDAyEUgp6vR5z584t9b2mTZsGpRSio6Nt1v5nMU8h5mGeimKeQo6Yh4gcg8MUeAcOHMC5c+dw48YN5OXlASg86kxPT8eAAQOglMK4ceNw9OhRPHr0CABw6NAhnDt3zmJf5uGJ06dPa0e1v//977ULiwHr16kcPnwYb7/9tk2eucg8zMM8zOOseYjI8dm9wDt79iz69OmDHj16YODAgfDy8sLIkSNx5swZi07qwIEDGDJkCJRScHNzQ1BQEH71q18hIiICffr0wZQpU7By5UqkpKRY7H/mzJna0AdQ0PGVNKeULS4yZh7mYR7mcdY8RFR72LXAe/r0KUaPHo1Vq1YBKLiVPyYmBr6+vnB3d8fs2bMt1s/IyMCCBQswatQotGjRAk2aNEHHjh1Rv3596HQ6KKXg5+eHefPmITU11WLbZy9IZh7mYR7mYR4iclZ2LfC2bt2KkJAQ3L59W1uWnZ2Nf/7zn9rQw9KlS4t1ZgDw6NEjfPPNNwAKLlKOi4vD+PHjte0+/vhjZGZmAih52gDmYR7mYR7mISJnZJcCzzyE8O6776Jdu3YWy8z/nTdvHpRSaNasGVauXKltax5miIuLs5jLyeybb75B79690bx5c1y6dKlac5gxD/MwT+Uxj2PnIaLayW5n8IxGI8aOHQu9Xq91VEWnB8jJyUHfvn2hlEKPHj1w+PBhbR0AiIyM1OZvys/P145i8/LysGXLFiilkJCQwDzMwzzMwzxEVOfo7PR4NNHpdNK0aVMxmUzy7bffioiITqcTnU4nRqNRXF1dZebMmdKkSRM5c+aM7NixQ3JyckSnK2jyjRs3ZMOGDdp2er1eRETq1asn/v7+0qRJE3Fzc2Me5mEe5mEeIqpz7FLgqf//4Ozw8HDR6/Xy/fffy61bt7TXzZ3ZkCFD5KWXXpLc3Fw5cuSInDp1SkREsrOzxdXVVXbs2CEnT57U9pefny8iIqmpqdK+fXtp164d8zAP8zAP8xBR3WPHs4fYuXMnlFIIDQ3VLig2Mw9JnDt3Do0bN0a9evWwdu1a7RqWpUuXQimFDh064PTp08jKygJQMN3Az3/+c3z11Vc1GwbMwzw1i3mYh4ioJHafB69t27ZQSmHy5MlIS0uzuk5UVBSUUvjtb39rsTwyMhIeHh7Q6XQYOnQoevfujfDwcMTHx9dE061inkLMU/2YpxDzEBEVUgBgzzOI8fHxEhkZKQ0bNpSNGzfK4MGDtetQjEaj6PV6uXHjhoSHh0vTpk3l1KlTEhQUJCIiWVlZcunSJTlw4IAYDAbx9/eXyZMn2zMO8zBPjWIe5iEissreFWZubi569+4NpRRGjx6N5ORki9dNJhNMJhNGjRqF4OBgPHnypMSZ2h0B8zBPTWIe5iEissYuN1kU5eLiIjExMSIism3bNtmwYYPcv39fRAqOcJVSopSSZs2aiVJKcnJytIuOHRHzME9NYh7mISKyxu4FnohIr1695KOPPhIRkdWrV0tsbKyIFNxtlp2dLSIit2/flnbt2om3t7e9mlluzOPYmMexMQ8RkQ3Y+xSimcFgQHR0NBo2bAilFFatWqXdaZadnY0xY8bgyJEjdm5l+TGPY2Mex8Y8RERV4zAFntnu3bvRtWtXKKXQs2dPfPzxx2jfvj3eeOMNPHnyxN7NqzDmcWzM49iYh4iocux+F601eXl5snv3bklJSZGUlBQZPny4DBw40N7NqjTmcWzM49iYh4io4hyuwAPgVBcZM49jYx7HxjxERJXjEDdZFFW083Ow2rNSmMexMY9jYx4iospxuDN4RERERFQ1DncGj4iIiIiqhgUeERERkZNhgUdERETkZFjgERERETkZFnhEREREToYFHhEREZGTYYFHRERE5GRY4BERERE5GRZ4RERERE6GBR4RERGRk2GBR1SLrV+/Xho2bCjr16+3d1MqJT8/XzZv3ix9+/aV8ePH27s5REROgwUeUS22ZcsWefz4sWzdutXeTamwe/fuyYQJE2TixIly+PBhqcxjse/evStubm6ilLL4ExISInl5edXQaiKi2oEFHlEtcfjw4WLLpk2bJt27d5epU6faoUVVExAQILGxsfLee+9Veh+fffaZ5OTkFFs+depUcXFxqUrziIhqtXr2bgARlc1kMsnkyZPlhx9+sFg+ePBgGTx4sJ1aZRtNmjSp1Hbp6eny9ddfy9mzZ6V+/foWr4WFhdmgZUREtRcLPKJaYMGCBXL+/Hl7N6Na1KtXuW5o1apV8rvf/U46depk4xYREdV+HKIlcnCxsbHy0Ucf2bsZDuXp06eyYsUKMZlMcvToUTGZTPZuEhGRQ2GBR+TAFi1aJAsWLNBuQGjVqpW0atVKZs2aJU+fPpW1a9dK165dJTo62mK7zMxMmTt3rnh7e4uIyMOHD2X8+PHSsGFDad68ufz973/X1j106JD06tVLPDw8pEuXLpKYmGi1LRcvXpTIyEjp0KGDeHp6SseOHSU2NtameY1Go3zyyScSHBwsnp6e8tJLL0lycnKx9dauXSsPHjyQxYsXS+/evSUsLEw+//xzMRqNNm0PEVGtBSJyeCKCov9cL1y4gMjISHh4eEBEMGfOHO21NWvWoEWLFto2aWlpaN++PYKCguDm5gYRgU6nQ2JiIrZv3w5XV1c0a9YMer0eIgI/Pz9kZGRYvP/evXsRFhaGhIQEAMDNmzfRuXNniAiio6OrlG39+vUQEYwbNw5jx45Fo0aNEBgYqLW/cePGuHr1qsU2r732Gjp06IAGDRpo64kI+vXrh4cPH1apPUREzoAFHlEt8GyBZ/bGG28UK/AMBgMuX76sbTNp0iQcOXIEAPD48WP07NkTIoIBAwZgzJgx+PHHHwEUFG0hISEQEcTFxWn7e/DgAXx9fbFx40aL9z5x4oRWLD5bgFWEucDz9fXFihUrkJeXBwDYuXOnVsAOHjzY6rY5OTnYt28funXrZlHkGY3GSreHiMgZcIiWqBbz9/cvtszNzU2aN2+u/RwTEyO9evUSERFPT0+ZNGmSiIhkZGRIfHy8hIaGiohISEiIjBgxQkREUlJStO1jY2Pl8ePHMnLkSIv36dixo4gU3OG7ffv2KmcZPny4TJkyRbvpYuTIkdrQ8759++T27dvFtnF1dZVBgwbJ8ePHZdq0aSJSMOT89ddfV7k9RES1GQs8olqspLneik4b4uXlZfFaUFCQtlwpZfFa48aNRUTEYDBoy/71r38JAOnSpYu0bdtW+9OpUyfx8/MTPz8/SU1NrXIWvV5fbNnkyZPF1dVVRETOnj1b4rY6nU6WLVsmL7/8soiIbNy4scrtISKqzThNClEdo9OVfFxnfg1FniqRkpIivr6+kpSUVO1te5aHh4eEhoZKcnKyZGRklLl+TEyM7NixQ65du1b9jSMicmA8g0dEpcrPz5f79++Xq8CqDuaJkM13BJemTZs2EhoaKp6entXcKiIix8YCj4hKFRgYKABk06ZNVl8HIIcOHaq2909PTxcRkc6dO5dr/cDAQOnRo0e1tYeIqDZggUdEpXr++edFROSDDz6Q69evF3v9q6++kjt37lTLe2dmZsrVq1fl+eefl+Dg4DLXz8/Pl+vXr0tUVFS1tIeIqLZggUdUC7i7u4uISHZ2tsXy3NxcERHJy8uzWF705/z8fIvXzE99sDYpsPnau6LbT5gwQRo0aCAPHjyQnj17yhdffCE3btyQK1euaBMxP3uHbWUUve7PbM2aNaLX62XJkiUWyx88eGB1HytXrpRp06ZJ+/btq9weIqLajAUeUS0QEREhIiJHjx6VrKwsWbJkiZhMJklISBARkYSEBIuCzbxcROTEiRMW+zIPpyYnJ1sUSvn5+XLs2DEREUlMTNT2FxISIrGxsVKvXj1JTU2VqKgoadmypTz33HMye/Zs+fLLL6t0zVtwcLC4uLjIpk2b5G9/+5tWXG7dulXmz58vGzdulG7dumnrf/bZZ+Lv7y/Dhg3TbvzIycmRFStWiNFolFmzZlW6LURETsOek/ARUfkcP34crVu3hr+/P9555x0kJCTA19fX4ikOPj4+OHXqFMaPH689lUJEoNfrMXToUGRmZiIgIMBim/r162P27NnYv38/vL29LV7z9vbGxYsXtTYcO3YMQ4YMgZeXFxo0aIBBgwbh+PHjNsl39epVvPXWWwgPD4ePjw86d+6M119/HVeuXCm2bkpKCl588UV4e3vDzc0Nffr0wYwZM3Dp0iWbtIWIyBkowMq4CBERERHVWhyiJSIiInIyLPCIiIiInAwLPCIiIiInwwKPiIiIyMnwWbREZBP9+vWTW7duVWib5OTkamoNEVHdxrtoiYiIiJwMh2iJiIiInAwLPCIiIiInwwKPiIiIyMmwwCMiIiJyMizwiIiIiJwMCzwiIiIiJ8MCj4iIiMjJsMAjIiIicjL/DwHySTIxJTeAAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ds_avg[\"dissipation_rate\"].plot(cmap=\"turbo\", ylim=(0, 11))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 7.5 Noise-Corrected Turbulence Intensity\n", + "\n", + "Now that we've calculated the noise floor for each ping, we can recalculate TI and include subtracting instrument noise using the `turbulence_intensity` function. If we subtract this from the non-noise corrected function, we can see there's a large difference\n", + "at slower slow speeds, but the average difference is about 0.008 (0.8%). Notice this will also remove measurements where noise is \n", + "high." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'TI Difference')" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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AwYMwNq1a7Fv3z589dVX6NevH9LS0nDfffdp6hUUFFyxXQC477771Fvcz549i+7du2PmzJnYsWMHtm3bhldffRUDBgzA7NmzNfWcl4ecTkmc50+nTp0wYcIEtY1evXph/vz52L17N3788Uc8+eSTbqdX3nlARFXIe89pJKp+TCaT2LNnj/r6BTheibB69WqRnZ0tbDab23pms1kcP35cDBo0SPMKhnfeeUdkZGS4PNn4Ss6fPy9CQ0PVdhYuXCgOHjwoLl26JHJzc8WJEyfEJ598Ivr37y8AiICAAPHggw+qr8kozmq1itOnT4suXbqobT733HPi8uXLmv5v375dNG7cWC0zcuRIcf78efV1GDabTVy6dEnztOOIiAixYcMGYTQaXWJcsmSJ0Ov1mqdYy0/79u1FamqqWjY3N1d89913IjAwUI3p008/FVlZWW5jSktLEz169HDbtqIoYuHChWpZm80mUlJSNPHPnDlTbdtisYi//vpLdO7cWR3/8ssvi+zsbLWN/Px8MXjwYLfTCwgIEIsWLXLbz7LMAyKqekyCiBwuX77s9peV86f4axOkoKCgK9abOHHiVae/du1a8eijj2reZeXuF269evVE27ZtxdChQ8XChQvFyZMnr9jukiVLSmzvyJEjQggh6tevf8X+nz59WnzwwQdljnHfvn3i/vvvF/Xq1RMGg0G0atVKTJ8+XZNgCCFEq1atSmy3JCaTScydO1d06dJFhISEiMjISHHbbbeJTZs2acpdqd8HDx4U48aNK3G8fK2GEPZkctGiRaJbt24iJCREREdHi3vvvVfs2rXrivO/tPOAiKqeIkQZLj4gIiIiqiF4TRARERH5JSZBRERE5JeYBBEREZFfYhJEREREfolJEBEREfklJkFERERUZmazGbNnz0abNm3QqlUr9OvXD1u3bi1XW0ajEe+//z6aN2+OkydPXrFsUlISBgwYgPDwcISFhaFPnz744osvyjXdgHLV8jM2mw3nzp1DeHg4FEXxdneIiKgaE0IgJycHjRo1Up8aXhmMRqPmVTflZTAYEBwcXKY6JpMJgwcPRmpqKjZu3IimTZti9erVGDhwIBITExEfH1+qdvLz8/HBBx9gwYIFOH369FXLf/bZZxg3bhxsNhsCAgJgsViQnJyM5ORk7Nq1C3Pnzi1THHxYYimcPn36qg/R44cffvjhhx/nz+nTpyvt91JBQYGAQVch/WzQoIEoKCgo0/T/9a9/CQBix44dmuEjR44UYWFh4q+//ipVO9nZ2SItLU2cOHFC6HT2eFJSUtyWTUtLE5GRkeKll14S58+fF0IIsXv3bs3T4//3v/+VKQ4+LLEUsrKyEBUVhdOnTyMiIsLb3SEiomosOzsbTZo0QWZmJiIjIyttGpGRkcBNDYAAD442WWzAzxeQlZVV6t9vJ0+eRFxcHFq3bo1Dhw5pxn3//fcYMmQIRowYUeZTVPXr10daWhpSUlLQvHlzl/ELFixAQEAAHnvsMc3wixcv4tprr8WlS5cwduxYLF++vNTT5OmwUpCnwCIiIpgEERFRqVTJ5RMGnWdJUDmqrly5EhaLBX369HEZ16tXLwDA2rVrkZGRgdq1a5e63audkjMYDHj44YddhtetWxfjxo3DvHnzcPHixVJPD+CF0URERFQG69atAwC0bNnSZVxMTAwaN24Ms9mMbdu2landqyWNkydPLvEaq7i4OABAs2bNyjRNJkFERES+SlE8/8B+es35YzKZSpzk3r17AQCxsbFux0dFRQEA9u3bV6GhXkl6ejoA4O677y5TPSZBREREvkzx4OPQpEkTREZGqp9Zs2a5nZTRaERubi6AomSnOHkdlExMqsKPP/6Ijh07YtCgQWWqx2uCiIiI/FzxG3+CgoLclsvIyFB/Dg0NdVtGnrIyGo0V2MOS7d+/H7/88gs2b95c5kcSMAkiIiLyVU6ntMpdH6W/8cdgMKg/l3RzuXx2UUxMTPn7VQZPPfUUpk2bhptuuqnMdZkEERER+SodPLuwpYx1Y2JiYDAYYDabkZeX57ZMZmYmAKBOnToedKx0FixYgPDwcMycObNc9XlNEBEREZWKXq9Hu3btAADnzp1zWyY1NRUA0Llz50rty5YtW7B27VqsWLGi3E/mZhJERETkqyro7rCykBcfF39QImC/GDorKwthYWHo16+fx+GV5Pfff8dLL72EtWvXlnhtUmkwCSIiIvJVntwZVuwOsdKaOHEidDqd25elJicnAwCGDh2quX6oIh0/fhyPPvooVq1ahejoaJfxKSkppW6LSRARERGVWlxcHCZNmoSDBw+6PAsoISEBISEhmDFjhjosKSkJvXr1wrvvvnvFdi0WCwDAarWWWOb48eOYMGECPvvsMzRo0EAzrqCgAO+88w4+/fTTUsfCC6OJiIh8lU6xfzypXw5z5szBrl278Mgjj2D9+vWIjo7GwoUL8e233yIxMVHzNOm5c+di586dOHz4MKZMmeK2vZSUFKSlpQEAtm/fjlatWrmUOXDgAG677Tbk5uaiW7dumnFWqxXZ2dmw2Wz4448/Sh0HjwQRERH5Ki+cDgOAsLAwJCUloXfv3ujRowfi4uKwadMm7Nq1C8OGDdOUHTlyJMLDwzFu3Di3bTVr1gytW7dGYWEhAGDMmDFo1KiR5ijTuXPn0L9/f6SmpiIvLw8ZGRmaT2ZmJmw2G3r27Ilrrrmm1HHwLfKlIN/WW5a37BIRkX+qit8Z6lvk/9EMCPTgeEahDfj2b7/9/cYjQUREROSXeE0QERGRr/LglJZa348xCSIiIvJVXrowuqbg6TAiIiLySzwSRERE5Kt4OswjTIKIiIh8VQW9Rd5f8XQYERER+SUeCSIiIvJVvDDaI0yCiIiIfBWvCfIIT4cRERGRX/LZJGjdunXo06cPPvnkkyuW27NnD+644w60aNEC11xzDaZNm4aCgoKq6SQREVFlUlB0cXS5Pt4OwLt8LglatWoVevXqhTvvvBPJyclXLPvtt9+iT58+GDBgAFJSUrB7925s27YNAwYMQF5eXhX1mIiIqBJV8ctTaxKfS4J69OiBrVu3Ii4u7orlTp8+jdGjR+OWW27B1KlTAQCRkZFYunQptm/fjmeffbYquktERFR55IXRnnz8mM8lQS1btkRQUBC6du16xXKvvvoqcnJyMH78eM3wNm3a4LrrrsOiRYtw5MiRyuwqERERVWM+lwRJwcHBJY4rLCzE6tWrAQB9+vRxGd+7d28IIfDRRx9VWv+IiIgqnSenwnhKzHdvkVeu8JTLn3/+GdnZ2QgKCkLjxo1dxnfs2BEAkJSUVGn9IyIiqnR8YrRHfDYJupK9e/cCgNsECACioqIAAAcPHoTVaoVer9eMN5lMMJlM6vfs7OzK6SgRERF5jc+eDruSixcvAihKdoqLjIwEAFgsFmRlZbmMnzVrFiIjI9VPkyZNKq2vRERE5aargI8fq5HhZ2RkAABCQ0PdjtfpisI2Go0u46dPn46srCz1c/r06crpKBERkSc8ekaQh6fSaoAaeTrMYDAAAIQQbsebzWb155iYGJfxQUFBCAoKqpzOERERUbVQI5OgBg0aAECJD0TMzMwEAISFhV3xLjMiIqJqje8O80iNTII6deoEADh37pzb8ampqQCAzp07V1mfiIiIKhzvDvNIjbwm6Oabb4bBYEBaWhrS09Ndxp84cQIAMGTIkKruGhEREVUTNTIJioiIwIgRIwAAW7dudRmfnJwMnU6H4cOHV3XXiIiIKg7vDvOIz4ZvsVgAAFar1e34GTNmICwsDMuXL9cM//3337Fnzx489NBDV33/GBERUbXGu8M84pNJUEFBAQ4cOAAA2L59u9syrVq1wocffoh169bhs88+AwCcOnUKY8aMwQ033IB58+ZVWX+JiIgqBV+b4RGfS4Luv/9+1KlTBwcPHgQAfPTRR6hduzYWLVrkUnb06NFYv3493n//fbRs2RJDhgzB2LFjsWnTphKfIURERET+wefuDvviiy/KVP7WW2/FrbfeWkm9ISIi8iKdYv94Ut+P+VwSRERERA68Rd4jPnc6jIiIiKgi8EgQERGRr+IToz3CJIiIiMhnKVA8OKUl/DwL4ukwIiIi8ks8EkREROSjFMWzI0FQFIiK647PYRJERETkozx+6LMCv06CeDqMiIiI/BKPBBEREfkonYenw4SiwFaB/fE1TIKIiIh8VEVcE+TPmAQRERH5KCZBnuE1QUREROSXeCSIiIjIR/FIkGeYBBEREfmoirhF3p/xdBgRERH5JSZBREREPkqeDvPkU15msxmzZ89GmzZt0KpVK/Tr1w9bt24tV1tGoxHvv/8+mjdvjpMnT161/JdffonrrrsOLVu2RKdOnfDRRx+Va7o8HUZEROSjvHVNkMlkwuDBg5GamoqNGzeiadOmWL16NQYOHIjExETEx8eXqp38/Hx88MEHWLBgAU6fPl2qOs8//zwWLlyI7777Dv369cPRo0fRt29fHDhwAO+++26Z4uCRICIiIiqTadOmISkpCcuWLUPTpk0BAPHx8Rg2bBjGjx+PlJSUUrVjtVrxwAMPICkpCTrd1VOSr7/+GrNmzcJLL72Efv36AQCuvfZazJw5EwsXLsSqVavKFAeTICIiIh+lVMB/ZXXy5Em89957aNeuHXr27KkZN3bsWOTl5WH69Omlais8PBx169ZFq1atUKdOnSuWtdls+L//+z8oioIHH3xQM27UqFHQ6/WYOnUqrFZrqWNhEkREROSjvHFN0MqVK2GxWNCnTx+Xcb169QIArF27FhkZGWVqNzg4+Irjd+3ahT/++AOtWrVCvXr1NONq1aqF9u3b4+zZs1i/fn2pp8kkiIiIyEfJW+Q9+ZTVunXrAAAtW7Z0GRcTE4PGjRvDbDZj27ZtZYzlyp250nQBoGPHjgCApKSkUk+TSRARERGV2t69ewEAsbGxbsdHRUUBAPbt21ftp8u7w4iIiHyUTrn6EZQrEY6q2dnZmuFBQUEICgpyKW80GpGbmwugKOkoLjIyEgCQnp5e7n65c/HixQqfLo8EERER+aiKuiaoSZMmiIyMVD+zZs1yOz3n63xCQ0PdlpF3eRmNxgqNVU67IqfLI0FlcMmUhpz8S+r3EH0YAECn2Ge82WYCAPVqe4POnkU7Z+kRgdEAgJzCLEdd+ziLzQIAiDTEVFr/iYio9C4azwMA/s75CwBQN6Q+AKBZrWvUMj9f+BEAUCsw3F4muB5y8nKqspsV4vTp04iIiFC/uzsKBAAGg0H9WQjhtozZbAZgvz6oIslpV+R0mQQRERH5qIp6WGJERIQmCSpJTEwMDAYDzGYz8vLy3JbJzMwEgKve8l5WDRo0wOHDhyt0ujwdRkRE5Ks8vTOsjPmTXq9Hu3btAADnzp1zWyY1NRUA0LlzZ08ic9GpU6cKny6TICIiIiq1QYMGAQAOHTrkMi49PR1ZWVkICwtTn+hcFdMFgBMnTgAAhgwZUuo2mQQRERH5KG88LHHixInQ6XRuX5aanJwMABg6dKjm+qGKMHDgQLRo0QJHjhxR7xSTMjMzceTIEbRo0QK9e/cudZtMgoiIiHyUN5KguLg4TJo0CQcPHnR5Jk9CQgJCQkIwY8YMdVhSUhJ69ep11ZebWiz2G4RKeu1FQEAAZs2aBZvNhsTERM24zz77DDabDa+//jr0en2pY2ESRERERGUyZ84cdO/eHY888gguXboEIQTeffddfPvtt1i+fLnmqc5z587Fzp078cILL5TYXkpKCtLS0gAA27dvL7HciBEj8PDDD2PmzJk4cOAAAODnn3/GCy+8gKeeegojR44sUxy8O4yIiMhHKfDs7rDyvEAVAMLCwpCUlISXXnoJPXr0gE6nQ4cOHbBr1y71AmZp5MiR2Lp1Kx544AG3bTVr1gznzp1TjwSNGTMGzz77LNavX48uXbq4lP/ggw/QoUMH3H///TCZTKhfvz6WL1+Ou+++u8xxKKKkG+5JlZ2djcjISKSk/YHAsKK8kc8JIiKqucr9nKDsHLRr1BlZWVmluu28POTvpbrTr4cuuPzHM2xGCy7OSq7UvlZnPBJERETko8r7ElTn+v6M1wQRERGRX+KRICIiIh/l6ROjPXradA3AJIiIiMhHMQnyDE+HERERkV/ikSAiIiIfpVMU9S7jcvHzI0FMgoiIiHwU7w7zDE+HERERkV/ikaAykg81BICAQPvsK7SZAQBhAfaHZVmFvYx8MGK+JVetk2W+BKDoAYsyD5UXp6UWnAEABOtD1TrFH6AoH7QYHhjpdri9fcXRp7I//CrPkmPvk+Ohj1ZhdTs9IiJn2YWXATg/hdj+r9xHAkBIQKimTKGtEMCV92dynGzfJmwAAL2i13y3iaJ3Thn0wQCK9sdyegL25wPnW/IAOO+LgXrBjTR9qBvc0NGGvd0Qp/2yZLFZNTHmW/JQYMl3KVdZeGG0Z5gEERER+SjF8Z8n9f0ZT4cRERGRX+KRICIiIh/F02GeYRJERETko5gEeYZJEBERkY/iLfKe4TVBRERE5Jd4JIiIiMhH8XSYZ2r8kaBffvkFQ4YMQYMGDRAbG4s2bdpgxowZMBqN3u4aERGRR2QS5MnHn9XoJGj16tXo168fevXqhdOnT+PMmTP44osvsGzZMgwYMABms/nqjRAREVGNVGOTIJPJhMmTJ2PgwIGYMWMGAgMDAQBdu3bF66+/jl9//RVLly71ci+JiIg84OlRID8/ElRjrwk6cOAAMjIy0KVLF5dx3bp1AwAcPHiwintFRERUcXh3mGdq7JGgsLAwAMCOHTtcxuXk2N+N5S5BIiIiIv9QY5Ogtm3bIi4uDlu2bMGKFSs049auXYuOHTti3LhxXuodERGR53hhtGdqbBKkKAoWL14Mg8GABx98EJ9//jkAYNu2bdi9ezd++uknBAUFua1rMpmQnZ2t+RAREVU39tNhniRB3o7Au2rsNUEA0L9/f6xZswbDhw/HmDFjsHPnTgQEBOB///sf9Hp9ifVmzZqFV199tQp7SkRERFWtRidBAHDnnXfirbfewokTJ/Duu+8iODgYPXr0wP33319inenTp2Pq1Knq9+zsbDRp0qQquktERFRqfFiiZ2p8EvTWW28hLi4Ojz/+OPr06YMxY8Zg1KhRSE9Px+OPP+62TlBQkNtTZTFB9SAMhep3q80CAAjUGezfhf17RGA0ACC78LJLG5GGGABAmvGcfVo6+3QCdIGatvRK0ZGqfIv9Qm4BAQAID4zUtJlbmOV2uHMfFMeZzwCdfZGH6MNcykphAeEljiOi6kVu/7Wctn+53esV+/Yuf82FFtu2cwoz1Z/lvkfuZ+Q+Qu5/FMW+D7HYivaBcr8lyyqOKck2Ah3jraKojixbYM0DABTaTJrvcr/qvD+T/QxwxBMaaI8jy3zJ0b4VABATVBfFybo6R/9lWbnvtcGmls1zxFp8H9ggJBYA8EfWIQBF+3EAiItsDaBon30672/kFua59KOyKPDw7rAK64lvqrHXBAHAnDlz8NVXX+Hee+8FAAwfPhyrVq2CTqfDlClTsG3bNi/3kIiIqPx4YbRnamwS9Pfff+PFF1/EHXfcoRl+zz33YPbs2RBC8LofIiIiP1Zjk6B169bBZDKhXr16LuOefPJJ1K1bFzt37vRCz4iIiCoGjwR5psYmQfK9YGfOnHEZFxAQgObNm8NgMFR1t4iIiCoMkyDP1Ngk6M4774Rer8eXX34Ji8WiGZeVlYWjR49i6NChXuodEREReVuNTYKuueYavP322zh69CjGjx+PrCz7HRQXLlzA/fffj2bNmuGNN97wci+JiIjKT747zJOPP6uxSRAAPPXUU1i3bh3OnTuHFi1aoFmzZujXrx+6deuGX3/9FdHR0d7uIhERUbnxdJhnavxzgoYMGYIhQ4Z4uxtERERUzdT4JIiIiKjG8vScFo8EERERkS/iazM8U6OvCSIiIiIqCY8EERER+SieDfMMkyAiIiIfxdNhnmESRERE5KOYBHmG1wQRERGRX+KRICIiIh/FI0GeYRJUBhnGVNQy1FK/B+rsL2DVOQ6o2WADAFwypQEAYoLsb7DPMKWqdfIsOQCAEH2YY4gAAJisJm2bStFBOpuwue1PbqH9VSC1AiNdxsnpRARqn4qdb8ktMb4s8yUAQKQhBgBQYM0r1tfSy7NkAwDCAiLKXJfIF2WZMwAABn2wZrjcfuQ2CQBhAeFlbj/fUV9x7BvkfkF+l/sDoGifpMD+Cy40oJamjNxn6JWiXwHB+lAARdt98W1YTt9531R83xCgCwQACCEcfbQCAAJ1QU5x2PdBVmHRTFf2VbbvvK9y7qdzXwx6e7uFNvsLs+UysE9TviBbcUzP6uibTTMdndMJEblciu8LpZjgOiguJMDe/8sm+7Rjw5ohx5rjUq6y8MJoz/B0GBEREfklJkFEREQ+ypvvDjObzZg9ezbatGmDVq1aoV+/fti6dWuZ27lw4QIefvhhtGzZEi1atMCIESNw6tSpEsv//fffGD9+PGJjY9G0aVM0adIEEyZMwOnTp8s8bSZBREREvsrTBKicSZDJZMLtt9+OTz/9FBs3bsSff/6Jxx9/HAMHDsTq1atL3U5KSgp69OiBzMxMHDp0CCdOnECjRo3Qo0cPHDt2zKX8H3/8ge7du+PSpUvYt28fTp06hd27d+Pvv/9Gjx498Ndff5UpDiZBREREVCbTpk1DUlISli1bhqZNmwIA4uPjMWzYMIwfPx4pKSlXbcNqtSI+Ph5msxkff/wxQkJCoNfrMWfOHAQHB2P48OEoLCzU1Jk6dSpsNhs+//xz1Kljv0arXr16+OSTT5CWlobp06eXKQ4mQURERD7KG6fDTp48iffeew/t2rVDz549NePGjh2LvLy8UiUjK1aswO7duxEfH4+wsKKL7PV6PUaOHIkDBw5g6dKlmjqbNm1CXFycpjwANGnSBHXq1MHBgwfLFAuTICIiIh/ljSRo5cqVsFgs6NOnj8u4Xr16AQDWrl2LjIwMl/HOEhMTAcBtO7179wYALFmyRDM8LCwMhw8fRm6u9k5nm82G/Px8dOnSpdRxAEyCiIiIqAzWrVsHAGjZsqXLuJiYGDRu3Bhmsxnbtm0rsY38/Hxs3ry5xHY6duwIANi7dy+ysooe/3DXXXchNzcXTz/9tKb8//73P+j1esyYMaNMsTAJIiIi8lHy2mZPPgCQnZ2t+ZhMphKnuXfvXgBAbGys2/FRUVEAgH379pXYxpEjR2A0GktsR7YhhMD+/fvV4TNnzkSTJk2wePFiTJkyBTabDWlpaZg1axZ++ukntGnTpsRpusOHJRIREfkoBR4+MdrxMMkmTZpohs+YMQOvvPKKS3mj0aieipKJSnGRkfaHcaanp5c43YsXL6o/u2tHtlG8nQYNGiApKQkDBw7EwoULcebMGURGRuKbb75BdHS0SztXwySIiIjIR1XUazNOnz6NiIiiJ/wHBQW5Le98nU9oaKjbMjqd/SSTPNJTnnZkG+7aadWqFRITE7Fy5UokJCQgKysLtWvXxltvvaWpVxo8HUZEROTnIiIiNJ+SkiCDwaD+LF+PUpzZbH+NSUxMjNvxpWlHtuGunR9//BHff/89FixYgG3btqFRo0aYO3cuRo0aBZvN/WumSsIkiIiIyEdV9d1hMTExagKTl5fntkxmZiYAqM/xcadBgwbqz+7akW0Ub2fbtm0YNmyYemF0+/btsWXLFtSvXx8rV67Em2++WepYACZBREREPquiLowuLb1ej3bt2gEAzp0757ZMaqr9peGdO3cusZ0OHTqoCZi7dmQbBoMBbdu2BWC/DX7SpEno3r275jqia665Bl9//TUCAgIwe/bsK56GK45JEBEREZXaoEGDAACHDh1yGZeeno6srCyEhYWhX79+JbYRHR2tPmjRXTsnTpwAAPTt21d9MOLRo0dx+PBh1KtXz6V87969ceeddyI7OxtHjx4tdSxMgoiIiHyUNx6WOHHiROh0OrcvS01OTgYADB06VHPdjzuTJk0CgCu2M2rUKHWYvE7ozJkzbtuLi4sDgKtO1xmTICIiIl+lwMPzYWWfZFxcHCZNmoSDBw+6PAsoISEBISEhmocWJiUloVevXnj33Xc1ZceOHYuOHTti1apVmlNYZrMZX3zxBTp06IAxY8aowzt16oSWLVti586dbl+UumPHDrRt21Y9XVcavEW+DIIDQlE3uKH6PdNsf3aB0VoAADDo7VfTxwTZD9VdNJ4HUPQcBgAwWe0LWsB+BbteCdB8FxCafwHAJscJ7VXvxa+nz7cUPUZcUYflaNoLC4hASSIN2ivwQ/RhJZS8uitNx5flOeYnAIQFhAMomu+hAbXc1imwFl30V9I8lW1YhRUAYHP8a2dfdjpFr6kj1x053TxLtlPf7PM/tzDL0YK9jfDAKE0bOYWZ6s9F01QcdWyOb/bvkYbabvsOAH/l2N/23Pn1sQCAzc8scNSxTy9AV7SrWX/yewDAsGuG2eNy/C1WJ9h+oWR24eUSpxOgBGrisQqLZrjrVgGEOpaTJJehjLf4PHEm+6J3zHs5X90t0yB9iKNduZ1q+yL76k6OYznJ+STXh9pB9dUyimKfTxabxdHvSE1ZxWn9kOuE8/IFgFqOOkX9L+qjnC8y1kKb/cWVxdch5/WwaP7Y+y3XFTl9OR2b076raH3NcfRb0UxPX2w9d65TFKt2Xsg6Ol3REQC5XOS8jQi0P0MmzWi//kSud+6OhBRY8wEAxgL7vyar/cGBQXrXO6YyjPbn3dQNti+ri8ZU5BXmupSraebMmYNdu3bhkUcewfr16xEdHY2FCxfi22+/RWJiouYp0HPnzsXOnTtx+PBhTJkyRR0eGBiIzz//HP3798fUqVPx7rvvwmw2Y9KkSbDZbPjyyy8RGBioltfpdEhISMDtt9+O+Ph4fPHFF4iLi4PJZMIrr7yCffv24aeffipTHDwSRERE5KO8cToMsL/DKykpCb1790aPHj0QFxeHTZs2YdeuXRg2bJim7MiRIxEeHo5x48a5tNOhQwckJycjNTUVcXFx6NKlC6KiorB//363T3++8cYbsXPnTrRu3Ro33ngjYmNj0bp1a5w/fx579uxBjx49yhQHjwQRERH5KJ1i/3hSv7zCw8Mxf/58zJ8//4rlRo8ejdGjR5c4Pi4uDmvWrCn1dNu1a4cVK1aUuvyV8EgQERER+SUeCSIiIvJRFfXaDH/FJIiIiMhH6RQFOg8SGU/q1gRMgoiIiHwUjwR5htcEERERkV/ikSAiIiIfpYNnRzP8/UgIkyAiIiIfpXh4TRBPhxERERH5IR4JIiIi8lG8MNozTIKIiIh8FG+R9wxPhxEREZFf4pEgIiIiH8XTYZ5hEkREROSjeIu8Z5gElUFuYRYyTEWzTK/Yfw7QBWrKZZozAACBOgMAwDnPDnAMM1uNAACdonO0Fez4bi9ttBaodWoH1QcA5FlyNNPRO+rmW3IBAKEBtVz6nFOYCQAID4xyG1NOYZb6c3hgpGZcrmNcrRKGuxvnLflO8yY0ILzSphPmpm138x0A0o0XAAB1ghuow2Q/RbH2hGOIXAZZ5ktqHbmeFf+Lrfh0hRAoTq5fJsf6Jqcv55HzelF8XcmzZDv6GFFiPFLL8DYAgI7tWwIAAnT2PmeaLwMAzuedV8s2qmVfn+sFN7KPyz+laSsiMBoAkF14WR1mtVkAAIEB9u2n0GpyxCe3R3vsilK0Sw/RhznisMdsE1YATvMTrn8BF1jzNN8DHGUFtPPWJmwudWX7cpysI6cv43JPaPpssRW6lii2fOV+xqALcumjjEPGKPvgGrHzEHu/Cx3TNjj2VbLVWlfYrtT2HeuonH5Rn4v6lq8uD+08lD2Rbcj56dyebEc2q9Zx/Co3O9YLoGheyjJyv6VX9I74gl2mU1Q3FAAQaYgBAJzJS9H0+Vz+32rZWoH2+XI2/zQAICaoDkSgfx9d8SVMgoiIiHwUL4z2DJMgIiIiH8VrgjzDJIiIiMhH8UiQZ/z9migiIiLyUzwSRERE5KMUuLvgvWz1/RmTICIiIh/F02Ge4ekwIiIi8ksVciRoy5Yt+PLLL5GRkYHPP/8cAJCUlISdO3figQceQMOGDStiMh6xWCxYuXIlvvvuOwQEBCA2NhaTJk1CixYtvN01IiKictHBwyNBfn5CzKMkSAiBhx56CJ988gkAoHbt2uq4m2++GYqi4IYbbsBbb72FYcOGedRRT+zZswdjxozBtddei3nz5qFZs2Ze6wsREVFF4S3ynvHodNjcuXOxbNkyKIqC+vXrQ6/Xa8b3798f06ZNw/33348ff/zRo46W1zfffIMbbrgB999/P7766ismQERERATAwyRoyZIluO2223Du3DmcO3cOUVFRLmVuu+022Gw2vPrqq55Mqly2bNmCESNGYOLEiXj55ZerfPpERESVSXFcGF3ej78fCfLodNiFCxewY8cONflxNzOtVvt7Wfbs2ePJpMosNTUV9957Lxo2bIg5c+ZU6bSJiIiqAm+R94xHR4KaN2/u9uiPs7Vr1wIAQkJCPJlUmT333HO4fPkypk2bhuDg4CqdNhEREVV/HiVBvXr1wnfffVfi+N9++w3//ve/oSgKBgwY4MmkyuTMmTNISEhAcHAw4uLi8PDDD6Nfv35o0qQJBg4ciE2bNlVZX4iIiCqLJ6fCPH3GUE3g0emwl19+GTfeeCOOHj2K++67DwBgNptx7NgxrFy5EvPmzUNBQQFq1aqF1157rUI6XBpffvklhBAIDAzE9u3b8frrr6NOnTr4/vvvMXLkSNx666349NNPMWrUKLf1TSYTTCaT+j07O7uquk5ERFRqfFiiZzw6EhQbG4u1a9di8eLFiIuLw9GjRxESEoIuXbpg1qxZKCgoQMOGDbF+/Xq0adOmovp8VVu2bAEATJgwAS+88ALq1KkDABg8eDDmzJkDm82GSZMm4eLFi27rz5o1C5GRkeqnSZMmVdZ3IiKi0lKUotvky/fxdgTe5fHDErt27YrDhw9j7dq1SEpKwqlTp2CxWNCwYUP07dsX999/f5VfD3TmzBkAQOPGjV3GjR49Gk8//TSys7OxatUqPPbYYy5lpk+fjqlTp6rfs7Oz0aRJEwTqgiCEUIdbYQEABCj22ag4LjHLLbQfOYoJsidfVmFV68gyOkWbf+rV7/bxZmvRkah8Sw4AQAgbACCnMEvTRlhALQCA0Zqv1gnWhwIAwgOjNHXCAyM10y3+3VmtEsaVNLwqXDbZE9fooLqa4aEB4d7oDgDgZO4fAIDmteIAALmOeR2oMwAA8ixFRxLluqAU+/sjrFj/ndcP+bOMMbvwstt+CLdD7YL09uviCm2FAIACax4AIEQfppbRK9rdgSwrBejs4zNMqeqw2kH1ARTNgxtbNrf30WyfB3Lb6F73OrXOwUv7AQBpxnOOuGpp4ooIjHbpj15v/9lqs29zumJ9lfPV+SEdcjkojvlnc2w/esU+p+R6nOfYvuzt6jTTkTd76BTt4z+KLy87RdNuviVXE5+79UCuI8XbL/7duW/y33C9djuU8QKu64Lsr+yT2mPn34BCcUShrS33O3I+6Z36ps53xzA5j2UfBWxySs5TBVC0PkkWR125j7U57WuFkMtDLkurpn2LY3kF6gJRnE3tg5y6XKaOfa3Tei7nYaQhRlMnNCBME69wmkf1ghsBKNpezDYTzDazSz+oeqqQJ0YHBAQgPj4e8fHxFdGcx+Tpq4iICJdxISEhuOWWW/D111/j8OHDbusHBQUhKCioUvtIRETkKZ4O84zH7w679957S1Xu22+/xYgRI3DfffdhyZIl6q3zlaFuXftRgpKu5YmNjQUAzVEdIiIiX6NUwMefeZwEHTt2DIWFhdiyZQtWrlyJrVu3wmKxaMokJibinnvuQb169TBz5kz8/fffuOmmm5CZmenp5N3q0aMHAODQoUNux8tb5lu3bl0p0yciIqLqz+MkKCsrC7GxsbjlllswatQo3HzzzWjZsqXmNRnvvPMOAGDatGlo164dZs6cib59+5b6KFJZ3X///QCAjRs3uiRkAJCSkgKdTod77rmnUqZPRERUFXiLvGc8SoIOHz6M9PR0XLx4EdHR0ejSpQs6d+6MrKws/OMf/8D+/fYLII8dOwYAmrfJP/XUU+rRo4rWu3dv3HvvvTh37hw+++wzzbjU1FRs2LABkyZNQvPmzSt82kRERFWFSZBnPEqCpk+fjvbt2+Onn35Ceno6du/ejT179uD8+fMYN24cZs2aBQAoKCgAAM0LVuvXr48GDRogISHBky6UaNmyZejQoQOmTJmCn3/+GQBw6dIljBs3Dl27dsW8efMqZbpERETkGzy6O2zbtm04evSo+hweKTQ0FPPnz0eXLl0ghIAQAgEBrpMKDw+vtHeKRUZG4ueff8YLL7yA4cOHIygoCFFRURg+fDieeeYZGAyGSpkuERFRVZHP+/Gkvj/zKAkKCQlxSYCk3NxcWCwW2Gw2tWxx2dnZuHzZ/TNPKkJUVBTee+89vPfee5U2DSIiIm/RwbNTOh5fGOzjPIq/WbNmmD9/vsvwEydOID4+Hp07d0Zhof0BUsVftJqeno7U1FRERnrvwXtERETkvzw6EjR16lQMGzYMH374Idq3bw8A+Pvvv7Fv3z7cfvvt2Lx5s3pdEGC/k0wmPcuXLwcAXHfdda4NExER0dV5eDrM39+b4VESdN9992HmzJmYMWOGegcYAMTHxyMxMRFffPEFHnroIQDA+PHjER8fj1tuuQUBAQF4+eWXoSgKJkyY4FkEREREfopPjPaMx6/NeP755zFixAh8//33MJvNuP7663H99dcDAMaMGYN+/frh1KlTuOGGG5CXl4ennnoKS5cuhRAC8fHxGDp0qMdBEBER+SMmQZ6pkHeHtWrVCo8//rjbcU2aNFHfwh4WFobFixdj6tSpSElJwW233VYRkyciIqIqZjab8c4772DZsmWwWCyIjY3Fv//9b/Tt27dM7Vy4cAEzZszAxo0bIYRAz5498fbbb6Np06alqr9lyxYkJiYiIyMDLVq0wB133IGbb765VHUrJAkqjYceeggfffQRAODaa6/FtddeW1WTJiIiqpG8dYu8yWTC4MGDkZqaio0bN6Jp06ZYvXo1Bg4ciMTExFK/UD0lJQU33XQTbrjhBhw6dAgGgwHPPPMMevTogZ9//hlt2rQpsW5aWhoeeughnDx5EosWLUKfPn3KHEel3x1ntVqRlJSkXghNREREFUMHxeNPeUybNg1JSUlYtmyZesQmPj4ew4YNw/jx45GSknLVNqxWK+Lj42E2m/Hxxx8jJCQEer0ec+bMQXBwMIYPH67eYV7c8ePH0bNnT9hsNmzfvr1cCRDgYRJktVoxc+ZMtGvXDrVq1YJer3f5GAwGDBw4sFLfGk9ERERV4+TJk3jvvffQrl079OzZUzNu7NixyMvLw/Tp06/azooVK7B7927Ex8cjLCxMHa7X6zFy5EgcOHAAS5cudal34cIFDBo0CHXq1MGXX36J0NDQcsfi0emwxx9/HIsXL4YQ4qpla8JTKYWwQacUvfojUGd/6rTRmu/4HggAqBUYDgCwCPvLWxWnXDPfkgsA0DvaCVDsi6DQVqgZ3jC06FxopjkdABBl0D6YMt+So/kerA91GmefjoB92YQHun8eU25hlvpzrWJlZPuhAfZ4sgvtD7aMCIx221ZZlae96KC6FTLt0pLzxyIcz7syuD4ctHmtOM13ua5HBsYAAHIKM9VxQtgfHmq2meQQAEB4YBQAIMt8CQAQoHPdNC+bLgIADPogt30124zqz5lm+7qnU7R/50QaYtzWBYDQgFoAgDxLNoCi9VtyF7sk58G5XO06mWfJc+mHTVgd/9rnhYw1LCBCU1fOKwDIt+Y5yoQ7RtrHWR3bmOyrVRT9sSW3JTlMxp5XbLtR23SSL+zbj5wnV1Lg6JtcliWNd45PXa8c273sf0GxOJ23ccUxD+V8kWXld73TOhOiD9PUl2VlPEV9diX3W4GKQTNdm9PyKK7QZtbEIfdFRf0vmjey/QAEasbJ9UD+PnH+jSHXn6K+FFuHHPtROT8B7XbnXFbuE+U+t3ZQfZd40o0XHPEEOvpm/zcmsJ5L2XP5pwAAYU7riqiyC028czps5cqVsFgsbo++9OrVCwCwdu1aZGRkoHbt2iW2k5iYCABu2+nduzcAYMmSJXjkkUfU4UIIDB06FKdOncJ3332H4ODgMvffmUdHglasWAEAePnll3Hq1CkUFhbCZrO5fHbt2oXAwMCrtEZERERl4Y0XqK5btw4A0LJlS5dxMTExaNy4McxmM7Zt21ZiG/n5+di8eXOJ7XTs2BEAsHfvXmRlFf2xvnz5cvz666+Ij49Xn0/oCY+SoKioKNSvXx+vvPIKYmNjNS9Idda9e3cMGjTIk0kRERFRJcnOztZ8TCZTiWX37t0LAIiNjXU7Xr4hYt++fSW2ceTIERiNxhLbkW0IIbB//351+MyZMwEAAwcOxIsvvojbb78dTZs2RY8ePbBo0aJSnZly5lES9PTTTyM3Nxdms/mqZZ2fHE1ERESeUyrgP8D+OJvIyEj1U9LvbKPRiNxc++ni4q/DkuSbIdLT00vs98WLF9Wf3bXj/Eot2c6+fftw4sQJKIqC5ORkPPDAA9iwYQN++OEHmEwmTJ48GY8++mjJM8sNj5KgJ554AiNHjsT7779/1bIDBgzwZFJERERUjLwmyJMPAJw+fRpZWVnqp6QLmzMyMtSfS7ogWaezpxbySE952pFtOLezZcsWAECnTp2wdOlStG7dGoD9sTtr1qyBTqfDokWLsH79+hKnW5xHl28tX74cN9xwAxYtWgSbzeb2jfIWiwW//vor0tLSPJkUERERVZKIiAhERERctZzBUHTDREmnnuTZoZiYkm/EuFo7zmeYZDtnzpwBADRu3NilfOvWrTFgwABs3LgRy5Ytw5AhQ64UhsqjJGjevHk4cOAAAGDHjh0llhNC1Ii7w4iIiKqTqn5tRkxMDAwGA8xmM/Ly3N9lmJmZCQBuD4xIDRo0UH/Oy8vTnP5ybsO5nexs+52rJSVrd9xxBzZu3IjDhw9fNQ7JoyTopZdewrBhw3D99dejefPmCAwMdEl2jEYj9uzZgxMnTngyKSIiIipGPvLQk/plodfr0a5dO+zbtw/nzp1zWyY1NRUA0Llz5xLb6dChAxRFgRAC586dc0mCZBsGgwFt27YFANSta39EikyGipMXWJfl4miP3yJ/66234n//+98VyxmNRtSv7/osBiIiIio/HTw8ElSOJ0YPGjQI+/btw6FDh1zGpaenIysrC2FhYejXr1+JbURHR6Nnz57YsWMHDh06pCY6kjxw0rdvX/VBij169AAAt9MFoD4zSF4rVBoevzbjjTfegMViKXH8vn37oNPpsGrVKk8nRURERF42ceJE6HQ6bN261WVccnIyAGDo0KGa637cmTRpEgBcsZ1Ro0apw2699VbExMTg77//dnvKS76q47777itlJBWQBHXv3h0BASUfUAoPD8fNN9+Mrl27ejopIiIicqZ4dodYeV4dFhcXh0mTJuHgwYMuzwJKSEhASEgIZsyYoQ5LSkpCr1698O6772rKjh07Fh07dsSqVas0d5KZzWZ88cUX6NChA8aMGaMODwsLU9t96623XPqVkJCAjh07ahKnq/H44d6XLl3Ctm3bkJWVBZtN+1h1m82G9PR07Nu3D2PHjr3qaTMiIiIqPedn/ZS3fnnMmTMHu3btwiOPPIL169cjOjoaCxcuxLfffovExETNU6Dnzp2LnTt34vDhw5gyZYo6PDAwEJ9//jn69++PqVOn4t1334XZbMakSZNgs9nw5ZdfurxtYsqUKfjtt9+QkJCAbt264YknnoDVasXLL7+M06dPY9u2bVc8MFOcR0nQrl27MGjQIM0jrd0RQmDPnj2eTIqIiIiqibCwMCQlJeGll15Cjx49oNPp0KFDB+zatQudOnXSlB05ciS2bt2KBx54wKWdDh06IDk5Gc899xzi4uIQGBiI2267Dfv370e9eq7vagOATz75BJ07d8Z//vMfvP7666hTpw5uuukm7N+/v8zXH3uUBL366qvIzc1Fv379EBsbi02bNuHWW2/VlPn+++8xdOhQjB071pNJERERUTFVfYu8s/DwcMyfPx/z58+/YrnRo0dj9OjRJY6Pi4vDmjVrSj1dnU6Hp59+Gk8//XSp65TEoyRo586d+OGHH9C/f38AwOuvv45+/frhxhtvVMssW7YMW7ZsUd8IS0RERBXDG2+Rr0k8ujC6Vq1aagIEABMmTMBHH32kKTN27Fh8/fXXWLhwoSeTIiIiIqpQHiVBkZGRmhekNWzYEEII9Q2zgP2wVUBAAObMmePJpIiIiKgYXQX85888Oh02ePBg9OrVC3379lWv0p4+fTruuOMOLFy4EE2bNsXcuXNx6dIllzvHfJFFFKLQZlK/B+mDAACBOvuzEORBRauwOobbx1tsRe9ACdTZr3RXFPuKJ2CfLzpF7xhubyXLfEmtI6/ezzTbXzind5QVKPmpmKEBtQAA+ZYcAECB1f54c5ujb2EBEZrpuVO8/YjAaJcy2YWXSxx3NeWpUxIZJwCEBoQDALIc80tGEWWoXeZ2awVGXrVMhsn+ZNPaQfYL8iw2+3OzcgrtNwyEB0a51JF90ynaHVCkwf6OnHxLrjpMLofooLqacTmFmZrxBsf65kyuV2GOeSLXIbkeOjNb7et2vmNdaRzaHEDRMtYrAZq2AOCi8TwAoG5wQ3ufHO/7uZBvnyd1gu2Pu08ruKDWCdaHAAAahNif7ppacNbRrvZR+M7zXm5Tks2x3QQ4tj25jJ3XWfmznP9yHZFrfJ4l2+107XVtmjqhTjG7lBVy36Y46uRqxtsc4+U26NxfuT0G692/iFJxWj9kO3J6cozsW57TNiBjk/sO+QTdonUy0qVPktyfWYXF7fAQfZjLdOS6Ief5ZZP9DeEGfbCjraLlJ/dfxWO02izFhhftm9Tl6ohDbjdy/ZZ9dZ5fcrnLPhZN376dFNoKARSt3wBgtBZo+phhsv+RXytQ7lMuO+ZB0fJqFNpU03668QKqEk+HecajJOi5557DunXrkJCQgC+++AKPPvoorr32Wjz66KO48847NTO3LA8vIiIiIqpsHiVBBQUFePjhh1GrVi107NgRer09e3766acRFRWlvl1+0KBBePHFFyukw0RERGTHI0Ge8SgJuvXWW3Ho0CGMHj3a5f7/iRMnYuLEiR51joiIiEqmc7xC1ZP6/syjJEheFH3XXXdVSGeIiIio9HgkyDMeXRY+f/58xMTE4O67775q2bi4OE8mRURERFShPEqChg8fjq+++gqPPfYYjh075raM0WjE0qVL8ddff3kyKSIiIipGPjHak48/8+h0WGRkJHJz7beDLl26tEI6RERERKXjrReo1hQeHQn65z//CSFEqT5ERERE1YlHSdCTTz6JmJgYHD9+HIWFhbDZbC4fq9WKrVu3+v3FV0RERBVNp+g8/vgzj06HxcbG4rHHHsM111xTYhlFUXDjjTfyYYlEREQVjHeHecbjFPDVV18tVblVq1Z5OikiIiKiCuPRkSAiIiLyJs8ujIafXxjNJIiIiMhHeXqbu7/fIu/fV0QRERGR3+KRICIiIh/F5wR5hkkQERGRj9Ipnp3S0vl3DsQkqCyC9aFwfuxjhvEiACA0IAwAoFP0AIAAXSAAwCosAACL41/ZBgAIYQMAFNrMAIDooLoAgJzCTABApCFGrZNnyQYAhAVEaMrolQDH9yx7m7CpdRTHmU45LEBd1EqxNvRXjVtO352IwGgAQL4lBwAQGhBeYl3Z/3yL/SnjVmEFAIQHRgIAsgsva9q8EhmzrCvg+kDOSEPtq7YjlWXaxdUOqg8AyHX0KdCx/IvPC+fpyP7KeVJ8vLNAnQEAkOeYx3K90jmWsfyu/YvO/rNcR2TdKMc8kcvLJorWmSB9iGa6ch7LeZJlvuTSt7rBDbXfQ+3rd4BjvaobUtfRR6taJjLIvswumdIAAAZHfFJqwVkAQP2Qxuowiyi0xyPs7cp5YrU5Yle08QJF80Ou6/K78/YIAJdNF9Wf5XYo54vN0e+S1m+gaFnK563IbVuuke7+0pbbpYxD9lHuO+R0dU7bp2wlzLHOy/Wt+LbgTC73sIBajjjs216BNU8Tp3M/FUfP5UNuZZ8sjnmdbStaR2U/A3VBbuvIdVPzwFzHspLzzWKzL1udus/Stg0AAY7lKtcDWVYu9+LbgjNLsXVEtiv3vTGOZW7vp31+mGwmAECkIcr+3WoEANRyLH+TzegyndSCM47p6GBz2hdXNkXRQfHgWT+e1K0J/Dt6IiIi8ls8EkREROSjeE2QZ5gEERER+SjeIu8Zng4jIiIiv8QjQURERD6K7w7zDJMgIiIiH6WDAp0H1/V4Urcm4OkwIiIi8kt+lQR99913UBQFn3zyibe7QkRE5DF5OsyTjz/zm9Nh6enp+Oc//+ntbhAREVUYPizRM34T/eTJk5Gbm+vtbhAREVE14RdJUGJiIlJTU3Hvvfd6uytEREQVRl4Y7cnHn9X4JOjs2bN4/vnnkZCQAJ2uxodLRER+hNcEeabGXxM0YcIEzJgxAy1atPB2V4iIiCqYZ6/NgJ8fCarRSdAHH3yAkJAQTJgwoUz1TCYTTCaT+j07u+S3qBMREZFvqrFJ0IkTJ/D2229j+/btZa47a9YsvPrqq5XQKyIiooqjwMMnRvNIUM1js9kwbtw4zJ8/H/Xq1Stz/enTp2Pq1Knq9+zsbDRp0gRWYUOQ0+2EwQEhAIA6wQ0AAFnmS5p2dI5LrgKUotlstOYDAGoH1deUvWS6CAAI1Blc+mOy2o9KhTmasdgKHWXtK69NWAEAekWv1im67dH+r84xrtBmtvdJFwgAEMKm1sktzLK3B5uj3/YyBdY8t30GgOzCywCAiMBoAEBOYSYAIDwwytFXi0ud0IBaLsNKkm/JsbcjLJrphAdGasqFBUSU2KeS5DnadldWtmF2zHu5jN3JMmcAACINtTV9zrPYjyA6z4NIQ4ymTnFF8zFLHSaXt1y+cr2SyynKUMclHllHOMoojjr5llzHcLtaTvNRrr96XYCjDfu6IueF7LtcV+190mlirx0SCgB49YcvAABv3jERANC5dhe1zmWTfToxQe63zfohjTX9AQCDLsgeh6Jd5+U80Dt2ZTan9Vm+GFKui3K5KELRtBXh6DtQtMzk9iKnExoQ7hjvWB8d8xco2pYks2O+yT7L9V22DRRtd46uOG2PQvsviuKR24BcN3SOeW9zDHde/lah3e7kOHVfAXt8zr/+rOp+xN5uoOyTura4CnTEKKfnvD9xjsv5NmwZk5yeXDfldzlezgMAsCnadmXHdUK2CZfpZJrT7WWKLUs5vQDHeu68PsuWDI79sOyTjKNQ2Jd7jrloWTaw/xpA/ZBYAEBKznHkFeahqvCJ0Z6pkUnQW2+9hWuvvRZ33XVXueoHBQUhKCiogntFRERE1UmNS4IOHDiATz75BLt27fJ2V4iIiCoVH5bomRoX/YIFC3Ds2DFERES43AaYkJAAABg/fjwURcGDDz7o3c4SERF5QKmA//xZjTsSVK9ePbRp08btuPPnzyM7OxsNGjRAZGQkGjZsWMW9IyIiouqixiVBs2bNwqxZs9yOe/DBB5GQkIBZs2bxKBAREfk8RYFnd4f594GgmpcEERER+QtPT2n5++mwGndNEBEREVFpMAkiIiLyUd58d5jZbMbs2bPRpk0btGrVCv369cPWrVvL3M6FCxfw8MMPo2XLlmjRogVGjBiBU6dOlbr+mTNnEB0dXa7LXPwqCfrkk08ghOD1QEREVCN46y3yJpMJt99+Oz799FNs3LgRf/75Jx5//HEMHDgQq1evLnU7KSkp6NGjBzIzM3Ho0CGcOHECjRo1Qo8ePXDs2LGr1hdCYMKECcjMzCxXHH6VBBEREdUk3joSNG3aNCQlJWHZsmVo2rQpACA+Ph7Dhg3D+PHjkZKSctU2rFYr4uPjYTab8fHHHyMkJAR6vR5z5sxBcHAwhg8fjsLCwiu28f777yM5OblcMQBMgoiIiKgMTp48iffeew/t2rVDz549NePGjh2LvLw8TJ8+/artrFixArt370Z8fDzCwsLU4Xq9HiNHjsSBAwewdOnSEuv/8ccfeOutt/DCCy+UOxYmQURERD7K85NhZU8DVq5cCYvFgj59+riM69WrFwBg7dq1yMhw/45EKTExEQDcttO7d28AwJIlS9zWtVqtGDduHN555x00aFDyux2vhkkQERGRj/LG6bB169YBAFq2bOkyLiYmBo0bN4bZbMa2bdtKbCM/Px+bN28usZ2OHTsCAPbu3YusrCyX8W+++SauueYaDB06tMz9d8YkiIiIyM9lZ2drPiaTqcSye/fuBQDExsa6HR8VFQUA2LdvX4ltHDlyBEajscR2ZBtCCOzfv18zbv/+/Vi2bBkWLlxYYvulxSSIiIjIR1XUu8OaNGmCyMhI9VPSmxeMRiNyc3MBFCUqxUVGRgIA0tPTS+z3xYsX1Z/dtSPbKN6O2WzGuHHjsHjxYk2Z8uITo4mIiHyUTlGg8+BZP7Lu6dOnERERoQ4PCgpyW975Op/Q0FD3bersx1fkkZ7ytCPbKN7Oyy+/jFtuuQU333xziW2XBZOgMrEhRF90BXuhTXu4UEAAAHSOA2wW4Xprn17RAwCyCy8DAKw2CwAgJqguACDNeA4AYLTmq3WC9MEAgIvG8wAAg84AADDbzACAYMd4m7CpdXSKvQ/CMUztm2O42Wrve4Au0Ck6e9niF8oF60MAADmF9vOy4YFF2Xegoy/F54GMT+eIFwDyLNmaslZhBQBEBEY7pqtopuM8Ldlepll7oV2AYl+Fnc9rFzrmS5ajrCjW17CAcM2/zu3rHe3JPiFQO96ZXJY6R50s8yV7nxzzVMZjc8TpTKi90pKxO9cJ0AVo6tQK1P71k2+x/1Um43aetlyWsq6ijtdOzx6HTjNW75iubCOnMFNTFwAiDbUBAOnGCwCAM9n29vb/egQAsLHDLwCA9tEd1DoGvXbnKuetXFdlm87LVPZfruNyOSmO4VZh0fTVWdFyCdDEGR4YBQAosOY5ldYuswDHOiPXuyhH3/ItOWoNuR5bbHJ7F5o+58pliqLtU7ZbtH06pu7oW6HVviydt6+imBVHHUddIVzal8NkzEXxBDr6atH0FXDaZxT1ptj07G3onOax7H/RembTxuFYJ/VK0X5GTlP2Qe5f5C9j2XfnFc1WLFZdseUsl7+cRwBgcMRqthkdZayOMormO1C0rWUY7UcnGoc11fRb7ruCdMHF6rpqEd4a2SK7xPHVVUREhCYJKonBULROqsuqGLPZvtxjYmLK3Y5sw7mdX3/9FevXr8fOnTuv2s/S4ukwIiIiH1VRp8NKKyYmRk1g8vLy3JaRDy6sU6dOie0439Hlrh3nhx/WqVMHeXl5eOihh/DJJ58gODi4TH2+EiZBREREPqqq7w7T6/Vo164dAODcuXNuy6SmpgIAOnfuXGI7HTp0UKftrh3ZhsFgQNu2bfHVV1/hyJEj6N69u0v/x48fDwBISEiAoiho3rx5qePh6TAiIiIqtUGDBmHfvn04dOiQy7j09HRkZWUhLCwM/fr1K7GN6Oho9OzZEzt27MChQ4fQtm1bzfgTJ04AAPr27YuwsDDUqlULbdq0cdtWVlYWLly4gIiICDRs2BCNGzcudSw8EkREROSzPH1QYtnTgIkTJ0Kn07l9Wap8hcXQoUM11/24M2nSJAC4YjujRo0CANx77704evSo24+8k02W+emnn0odC5MgIiIiH+WNhyXGxcVh0qRJOHjwoMuzgBISEhASEoIZM2aow5KSktCrVy+8++67mrJjx45Fx44dsWrVKs0dYGazGV988QU6dOiAMWPGlLl/ZcEkiIiIyEd56y3yc+bMQffu3fHII4/g0qVLEELg3Xffxbfffovly5drngI9d+5c7Ny50+UdX4GBgfj8889hsVgwdepUWCwW5OfnY8KECbDZbPjyyy8RGBhYfNIVikkQERERlUlYWBiSkpLQu3dv9OjRA3Fxcdi0aRN27dqFYcOGacqOHDkS4eHhGDdunEs7HTp0QHJyMlJTUxEXF4cuXbogKioK+/fvL/EaoIrEC6OJiIh8VHlPaTnXL6/w8HDMnz8f8+fPv2K50aNHY/To0SWOj4uLw5o1a8rdjwcffBAPPvhgueoyCSIiIvJR5XnWT/H6/oynw4iIiMgv8UgQERGRj/Lm6bCagEkQERGRj7KfDCv/SR2eDiMiIiLyQzwSRERE5KN0igKdB6e0PKlbEzAJIiIi8lG8O8wzPB1GREREfolHgsrAZDUh35Kjfjda7e86iQmqBwBO+bT9J52iBwDYhE0dY7EVOsYJAIBA0ThndYMbugzLsKXaW1fsuWuA41+rsDr+tahldULmt4rj/0qxvgjNcPvP9jp6R78l2b4cn+c0D2R9OSxACXS0Llz6JFc32Qe9Yv9+yXRRM71gfbD6c5b5kiNm+3QCdfYX8sn5aHPMv6J4i8pIOke/ZZ08S7amH86x2Ryx5ltyAQAma0GxeKwu05H/ysPKsg1ZJ8CpPzmFWY6y9nmcbrzgaEM+Gl5x1Cl6VLzJsZ7JJRXmstUKl3gCdAGOMTbHOLm87WoFRgIAch39sZe1j7XYzJp+W4V9vsnlZXNaZ9OM5xzt2utGBTuWXZ69Tvva9kfnBzkt0zzHvJXk+hYWGK0ZLpcXnHou4yq0mQAUzUeLzeKYTpBaQy4rWab4epxTmOkYXrSOGnTBmjpyfukUue7b152wgAi1TtE8FJq6cj2Qyy80IAzFyW250DHPdY55bHDEIZebvS9yn6Gdjl7dlzi3K5el3N/I+eaYjlzf4dy+o45jfqjL27FeCce/VqflL8vIqRdfR3TF9iXO1G3ZsX7J6chtQbt9Ko6p2IeZHcs/UBfkmK6c50XLsuhnRROz3KblvNc5HQvQF1ufMh37n2B9iGa6+dZ8l3h+u7gNANAyojWyTTku4ysL7w7zDJMgIiIiH8XTYZ5hEkREROSjeCTIM7wmiIiIiPwSjwQRERH5KJ3jP0/q+zMmQURERD6Kp8M8498pIBEREfktHgkiIiLyUbw7zDNMgoiIiHyVh6fDwNNhRERERP6HR4KIiIh8FE+HeYZJEBERkY9iEuQZng4jIiIiv8QjQURERL5KUTy7uNnPL4xmEkREROSjeDrMM0yCiIiIfBSfGO0ZXhNEREREfolHgspAARCgC1S/622FAIDUgjMAgNCAcACATVgAp7K5hdlqnVqBEY5hOY46oQCAM3kpjvH2NtKNF9Q6gY52LDZ7u/KFd/nWPABAlCHGPlwJUusICEdfbPa6wt5XIbTDrcKq1tE5/iKQw3SKNkfWK3oAQKHNpA6TMeoc42T7V/rbQrYj/wIJ0GlXQ9k353Zl32yOvhW1odMMt0/bXlbOA9kXOR8LrPkAgBB9qFqn0GZ29MWg6Zu+WN90omieFI8x32JfHqEBYQAAo7UAAGDQFS0Xq2Pd0Cv2vhj09nHCEbNNnfdFdWS/Zd3cwixNH+U8l/PE+WerOr8CHO3bHH3Ntdd1zCPnn2XMMj7Zvslm1EzXeTp5hfb2hra+FQDwftYqAECG0d5Xs9M6I5fPqdw/AQDRQbUBABeN5x2x2+dxgFI0761O64QzOU8CHcvNJoTbckDRdmNRl4Fct4rmm5z/cl7If2VduUyFcJ1vcr2SyzvQabk7T9e5vpyXsv/F27A49jFA0bqptudYHii2vtuHKJpxesc8NTvas8FWrBxghVUTq5y3iuO7nE/O25pcv2QchY725TKU7StKUd/kOujannaLco5H7vtkiYBi24Rs03kbkOOyzJkAgCDHtibnrZwHztOJCapjn55jfyn3x0aLfbkHOvbXrcLj1Donsg8DABqENnK0URcBQdplX5l4OswzTIKIiIh8lALPEhn/ToF4OoyIiIj8FI8EERER+SgFHl4Y7efHgpgEERER+SheE+QZng4jIiIiv8QjQURERD6KR4I8wySIiIjIR/FhiZ6p0afDhBD48MMP0blzZwQHByMmJgZ33303fvvtN293jYiIyGNKBfznz2p0EvTwww/jkUcewYEDB2CxWHD58mX897//RZ8+ffDVV195u3tERETkRTU2Cfr++++xdu1aJCQkIDs7G0ajEV9//TXq1q2LwsJCjB8/Hunp6d7uJhERUbnJ02GefPxZjU2CPvnkE2zcuBEPPPAAwsPDERAQgLvvvhsrVqwAAGRnZ+O///2vl3tJRERUfjwd5pkamwTddNNN6NKli8vwAQMGoGvXrgCAixcvVnGviIiIqLqosUnQ448/XuK4uDj7y++aNWtWVd0hIiKqcDwS5Bm/vEU+PT0dQUFBuP32292ON5lMMJmK3nqdnZ3tthwREZE38RZ5z9TYI0Elyc/PR3JyMh566CFERUW5LTNr1ixERkaqnyZNmlRtJ4mIiKjS+V0S9NFHHyE8PByvvfZaiWWmT5+OrKws9XP69Okq7CEREVHp8HSYZ/zqdFhGRgZef/11JCQkICYmpsRyQUFBCAoKchkeEhCGnMKiU2MGnb2MothzSZO1wD5cbx+eb8kDAOiVotmcW5hjn4Zetq842g7VlA3QB6p1Cqz5AIBAnQEAoHNMr1ZABADAJmyOunq1jnC0q3Os3yarRTNdBfb2zTazWkdxrA4C9vaEsA/XOXJlq7Da+6YLdKqjOPpg1cRjFRa4Epr+Ko52AxR7e4U2+ylIvd6g1rDYCh3/aqdd1IbQ9MMes71duVyELKvI6ck4RVEcso6jHYvNoilb6JhPeqUodjkdKTQgTNNGsD7EpW9Ql4v9X7lc9MXaktN3Jqctey1blYez9Sha/jbHwpPrRPHlYXWM18wDR4syVudxQNH6Z7IZ1WHqfNHZp/Pz2Z0AgIjrGgMAPt+VDAAY02akWkcuwwCdfd6aHcu90LGsQx3bgsWpz3JbK1oO9unJdSffat/WgnRF261ct4P0wY55ItcZOd7kaDtYrSNjE475I7dlOVyuDzbHNmLvS4Cj37UAAAWWfO303JxukPNWrptCjcfelly3tOuY3H6025osUzTceRu217EIWVbvUlaS7chtTsaVa7Hv8+T+xnmtUIqtjTqXbU6vaRMomnfBOrkd2suYrSa3bTgPKz4n5Ty2iEJHOcVlnNznmRzty+FyfZP7aQCoH9IQQNF6ZXTse+V6IOsUOu03M4z2R600rdUcAJBuvIAcYw6qiqeJjL8nQX51JOif//wnnn322RKvBSIiIqLSMZvNmD17Ntq0aYNWrVqhX79+2Lp1a5nbuXDhAh5++GG0bNkSLVq0wIgRI3Dq1KkSyyclJWHAgAEIDw9HWFgY+vTpgy+++KJcMfhNEvTGG2+gadOmeOaZZ7zdFSIioorh6YMSy3lhtMlkwu23345PP/0UGzduxJ9//onHH38cAwcOxOrVq0vdTkpKCnr06IHMzEwcOnQIJ06cQKNGjdCjRw8cO3bMpfxnn32GgQMHYtOmTTAajep1viNHjsTTTz9d5jj8Ign69NNPcezYMcybN8/bXSEiIqpASgV8ym7atGlISkrCsmXL0LRpUwBAfHw8hg0bhvHjxyMlJeWqbVitVsTHx8NsNuPjjz9GSEgI9Ho95syZg+DgYAwfPhyFhUWnUi9evIjHH38cL7zwAs6fP4/CwkLs3r0bPXr0AAC88847+OGHH8oUR41Pgr766it88803WLp0qcu5eavVyoueiYjIZ3njtRknT57Ee++9h3bt2qFnz56acWPHjkVeXh6mT59+1XZWrFiB3bt3Iz4+HmFhYepwvV6PkSNH4sCBA1i6dKk6/PPPP8frr7+O1157DQ0aNAAAdOvWDevXr1ev8/3ss8/KFEuNToK+/vprJCQkIDExEQEB2mvAL1y4gAcffBB//fWXl3pHRETke1auXAmLxYI+ffq4jOvVqxcAYO3atcjIyLhiO4mJiQDgtp3evXsDAJYsWaIOMxgMmDx5skvZunXrYty4cQDK/iaIGnt3WGJiIh588EHUqlULjRs31owzm83IyclBkyZNsHz5ci/1kIiIyDPeuDts3bp1AICWLVu6jIuJiUHjxo1x9uxZbNu2DXfddZfbNvLz87F58+YS2+nYsSMAYO/evcjKykJkZKTbBEgq75sgauSRoHXr1mHs2LGwWCzIzMxERkaG5pOTY799ceTIkX7/tEwiIvJdFfWcoOzsbM3H+a0Jxe3duxcAEBsb63a8fBDxvn37SmzjyJEjMBqNJbYj2xBCYP/+/VebDUhPtz+q4O67775qWWc18kjQHXfcAZvNdvWCRERE5PJmhBkzZuCVV15xKWc0GpGbmwsAJb51ITIyEkBRYuKO82krd+3INq7WjvTjjz+iY8eOGDRo0FXLOquRSRAREZE/qKh3h50+fRoRERHqcHcPDAaguc4nNDTUbRmdzn6SSR7pKU87so2rtQMA+/fvxy+//ILNmzdr6pUGkyAiIiIfZb/J3ZNrguwiIiI0SVBJDIaiJ/rLJ5IXZzbbn6h9pTczXK0d2cbV2gGAp556CtOmTcNNN910xXLu1MhrgoiIiKjixcTEqAlMXl6e2zKZmZkAgDp16pTYjrzFvaR2ZBtXa2fBggUIDw/HzJkzr9TtEjEJIiIi8lFV/QJVvV6Pdu3aAQDOnTvntkxqaioAoHPnziW206FDB/VUnLt2ZBsGgwFt27Z128aWLVuwdu1arFixosynwSQmQURERD7KGw9LlBcfHzp0yGVceno6srKyEBYWhn79+pXYRnR0tPqgRXftnDhxAgDQt29fzYMUpd9//x0vvfQS1q5dW+K1SaXBJIiIiIhKbeLEidDpdG5flpqcnAwAGDp0qOa6H3cmTZoEAFdsZ9SoUS7jjh8/jkcffRSrVq1CdHS0y/jSvLJDYhJERETko6r6dBhgfzDhpEmTcPDgQZdnASUkJCAkJAQzZsxQhyUlJaFXr1549913NWXHjh2Ljh07YtWqVZo7wMxmM7744gt06NABY8aM0dQ5fvw4JkyYgM8++0xzXREAFBQU4J133sGnn35a6lh4d1gZnM8/g7pB9dTvQXr7LYQmq33hhQXUAgBYbPYXvhl0rlmwTrHP8gKr/UIwq7ACKLo6PrfQ/iDHkICiw3tBOvt0jI7pCJ2jDUs+ACA80H5Ff6Gt6Gr6QMe0bcLmmK59RT+T9zcAoH5IQ810AUA4tgWdIzfWKfZ/1RJqW3q1jpym3JACdIGO4fayeqeyNse0ZLvFNz6ro32bY55of5ZlZRv272ar/YFeQfpgp3bsdRRHe7KPweo8dd3o5Xww2uzzNFCnvT1UcfTZuW+yD7KuLGMRFkdZm8vUzI6+BDrmk5w/8l+zY/oBCCzqmyNmm6PdouF6zXed0980Fsd0bJB90C4fq6Mt7bK0r7dyXuZb7OuoXI8totBlHsh+pxXYz983CLNfwNj7Ovs1A6GO19XIddde36ZpP1gf4uiLdn46r896x3Yjl63sd77cjmz2eKxKgFMd7fyR67GlWJxWUfSCRrk+6XXaXaPBsT7IZeE8r+X8kMPkfqDAal+WesdyUpzqWIU9tiBdsCZWud3KOOUyscdj0/RNOOaj2Wbvc4BStM7IeSwFOOaLbM/imF9BjnlvryPnkGPbktuNo4yc187kODnf5HKR64rOEYdc3+39Fpo6Mh55WkYuH+d1Ri7LYMcyyzZnAijaT8p4skyX1To6nb2OXH8zzZc1092dtg8A0LN+d7XOyVz7a5Sa1moOADiRdRwAUDfEvt/PKcy299Vpqz6Td1bTx33pB1CQW4CqUlG3yJfVnDlzsGvXLjzyyCNYv349oqOjsXDhQnz77bdITEzUPAV67ty52LlzJw4fPowpU6aowwMDA/H555+jf//+mDp1Kt59912YzWZMmjQJNpsNX375JQIDi9adAwcO4LbbbkNubi66deum6Y/VakV2djZsNhv++OOPUsfBI0FEREQ+yhtHggAgLCwMSUlJ6N27N3r06IG4uDhs2rQJu3btwrBhwzRlR44cifDwcPX9Xs46dOiA5ORkpKamIi4uDl26dEFUVBT279+PNm3aqOXOnTuH/v37IzU1FXl5eS5vgsjMzITNZkPPnj1xzTXXlDoOHgkiIiKiMgsPD8f8+fMxf/78K5YbPXo0Ro8eXeL4uLg4rFmz5optNGrUCJcuXSpPN6+ISRAREZHPUuDuFH/Z6vsvJkFEREQ+iimQZ3hNEBEREfklHgkiIiLyUd66O6ymYBJERETks3hCzBM8HUZERER+iUeCiIiIfBSPA3mGSRAREZHPYhrkCZ4OIyIiIr/EI0FEREQ+ineHeYZHgoiIiMgv8UgQERGRj/LkJaiyvj/jkSAiIiLySzwSRERE5KN4JMgzihBCeLsT1V12djYiIyORlZWFiIgIb3eHiIiqsar4nSGn8VfqcYRHhJe7nZzsHLSs39pvf7/xdBgRERH5JZ4OIyIi8lG8Rd4zPBJEREREfolJEBEREfklng4jIiLyWZ7dHebv7w5jEkREROSz+AJVT/B0GBEREfklHgkiIiLyUTwO5BkmQURERD6Kt8h7hkkQERGRz+KxIE/wmiAiIiLySzwSRERE5KN4HMgzTIKIiIh8mr+nMuXH02FERETkl3gkiIiIyEfx7jDP8EgQERER+SUmQUREROSXeDqMiIjIRykevkDVs5ev+j4mQURERD6LN8l7gqfDiIiIyC/xSBAREZGP4nEgzzAJIiIi8lG8Rd4zTIKIiIh8Fo8FeYLXBBEREZFfqvFJkNlsxuzZs9GmTRu0atUK/fr1w9atW73dLSIiIo8pFfDxZzX6dJjJZMLgwYORmpqKjRs3omnTpli9ejUGDhyIxMRExMfHe7uLREREHuDpME/U6CNB06ZNQ1JSEpYtW4amTZsCAOLj4zFs2DCMHz8eKSkpXu4hEREReUuNTYJOnjyJ9957D+3atUPPnj0148aOHYu8vDxMnz7dS70jIiLynLw7zJOPP6uxSdDKlSthsVjQp08fl3G9evUCAKxduxYZGRlV3TUiIiKqBmpsErRu3ToAQMuWLV3GxcTEoHHjxjCbzdi2bVtVd42IiIiqgRp7YfTevXsBALGxsW7HR0VF4ezZs9i3bx/uuusuzTiTyQSTyaR+z8rKAgBkZ2dXUm+JiKimkL8rhBCVPq2c7FyPXoKak51bgb3xPTUyCTIajcjNtS/YqKgot2UiIyMBAOnp6S7jZs2ahVdffdVleJMmTSquk0REVKPl5OSov2sqmsFgQIMGDRDXvLXHbTVo0AAGg6ECeuV7amQS5HydT2hoqNsyOp39TKDRaHQZN336dEydOlX9brPZcOnSJdSuXdsnLiLLzs5GkyZNcPr0aURERHi7Ox5jPNUb46neGE/VE0IgJycHjRo1qrRpBAcHIyUlBWaz2eO2DAYDgoODK6BXvqdGJkHOGW1JhyPlihMTE+MyLigoCEFBQZphJR1Rqs4iIiKq7U6iPBhP9cZ4qjfGU7Uq6wiQs+DgYL9NXipKjbwwOiYmRk2E8vLy3JbJzMwEANSpU6equkVERETVSI1MgvR6Pdq1awcAOHfunNsyqampAIDOnTtXWb+IiIio+qiRSRAADBo0CABw6NAhl3Hp6enIyspCWFgY+vXrV9Vdq3RBQUGYMWOGyyk9X8V4qjfGU70xHqKSKaIq7uHzgj/++APXXnst2rdvjwMHDmjGffvtt7jrrrvwwAMPICEhwUs9JCIiIm+qsUeC4uLiMGnSJBw8eBD79u3TjEtISEBISAhmzJjhnc4RERGR19XYI0GA/aLofv36ISAgAOvXr0d0dDQWLlyIZ599FomJiRg2bJi3u0hEREReUiNvkZfCwsKQlJSEl156CT169IBOp0OHDh2wa9cudOrUydvdIyIiIi+q0UeCiIiIiEpSY68JIiIiIroSJkFE5ZSSkoLdu3fDarV6uysekweEeWCYiPwJk6BqyGazebsLFSovLw///ve/XR5V4KsKCgowe/ZsvPHGG7BYLNDr9d7ukkfy8/ORlZUFAD7xbryrsVgs3u5CheL+gKjy1OgLo33RsmXL8OuvvyI4OBidO3fGzTffjFatWnm7Wx75+uuvMWPGDOj1erRo0QLh4eHe7pJHVq5cicLCQnzwwQcICPDtTeiNN97A6tWrERoaiqysLEyZMgV333036tevDyGEzyVFb7/9NrZt24bo6Gh0794dgwYNQlxcHAD4ZDzcHxBVMkHVwo4dO0TXrl2FoiiaT4sWLcT3338vbDabt7tYbv/+97+Foiiia9euYvPmzd7ujkf27t0runbtKn7++WchhBBWq9XLPSqf7du3i3bt2onBgweLXbt2iWXLlolBgwYJRVHE888/73NxnT17VvTv31/cfffd4ocffhATJ04UdevWFVFRUWLGjBmioKDA210sE+4PiKoGk6BqIDU1VfTq1UsoiiI6duwoHn/8cdG9e3cRFRUlFEURgwYNEnv27PF2N8tM/iKdOnWqiI2NFTqdTjzyyCMiNTXVyz0rv9dee02MGTPG293w2MMPPyxefvllzbALFy6Izp07i06dOokLFy54qWflk5iYKO666y7NsI0bN4rOnTsLRVHEww8/LC5evOil3pUN9wdEVYfXBHmRcFyEumHDBuzatQuvvfYaDhw4gIULF2Lbtm1YtmwZ6tatiy1btuD333/X1PEF8tRDXl4ebrzxRvTo0QOrV6/GL7/84lNxSNnZ2fjwww/RpUsXAIDRaPRuh8ppz549WLx4Mfr27QugKI769etj8uTJSElJQa1atbzZxTJbuHAh6tWrB6AonoEDB2LRokVQFAWLFy/GW2+9hbNnz3qzm1fE/QFR1WMS5EVyp7Bt2zbccMMNeOGFFwAAVqsVQUFBuOeee/Dcc8/BZDJh69at3uxquSiKgoKCAly6dAkvvPAC7rzzTly6dAnLly/HX3/95e3uldmxY8eQkZGB66+/HgAQHBwMADh58iQuX77sMxfkHj9+HIGBgTCZTAAAg8Ggjqtfvz769euHsLAwn7gg12azIScnB+fOnXOJRwiB3r17Y+bMmQCAzz77DCtXrvRaX6+G+wOiqsckyEtsNpv6S6Zhw4aYMmWKuhPU6/XquBEjRiAuLg5///03TCZTtb2w090vTJvNhpCQEFy6dAmFhYW4//770adPH3z//ff44Ycf1F9a1fGvQHfxHD9+HCaTCWFhYQCApKQk3HTTTbjlllvQsWNHjBo1Cj/99FNVd7VUnNe3Nm3aoLCwEImJiTh79ix0uqLdgBBCfZq68/DqSqfTwWQyITs7G7t27VLjEfZT/QCAJ598EgMGDMCFCxewatUqbN++3cu9dk/2tybsD9zx5f0B1VzVfy9XA6SkpOC1117Dxx9/jK+//hoWiwU6nU79JSPc3LWi0+lgs9nQqFEjdO3aFWazGUFBQdViB1FSPMXpdDpkZmYiJycHjRs3RlxcHEaNGgWDwYCEhAT1kL63d+RXi0fO83PnzgEAzp8/j7lz52LevHm4++67cdtttyE4OBhffvklRo4ciXfffRdms9krsQBXX99atWqFESNGYMWKFRg9ejSWL1+Ow4cP4/Lly8jOzsaQIUO81nd3Lly4gF9//RUAXJ7JJIRQ7wS7ePGieoREURTodDpYrVaEhITgySefRO3atfH7779j48aNKCwsrPI4pJLicd4OfGl/cKXl48xX9gfkZ6r6IiR/M2vWLNG0aVPx9NNPi1tvvVUEBweLjh07io8//lhYLBYhhBCXL18Whw4dcqkr7wB59dVXxQMPPFAt7gi5UjyS7KfNZhN5eXninnvuEX/99ZcQQoi0tDRx3333CUVRNBfmHjhwoGoDcShLPM8884xQFEXMmjVLrFixQjP+1KlTonfv3kJRFHHttdeKtWvXVnUoQogrx+O8/ly8eFH0799fc+fRtddeKxo0aCCio6NF//79xdSpU0VSUpJ6Z5U37hgzm81i6NChomXLlsJsNgshhMt2UFBQIMaMGSMURRFPPPGESE9Pd9vW2LFjhaIoYsCAAeLIkSOV3nd3rhSP/DcrK8tn9gelWT6SL+wPyP8wCapEJ0+eFIMHD9bs0NatWyeio6OFoijiySefFGfPnr1qO4888oj417/+VYk9LZ3SxHP+/HkhhFATvBMnTog2bdpo2lmzZo2IjY0VrVq1EtOmTRMNGzYUffv2rfI7ksoSjxBCfPjhh0JRFFGnTh2xatUqIYQQJpNJTQ5+//13ceuttwqdTiceeughkZWVVe3iOXfunDouJydHJCcni3feeUcMGDBAPPTQQ2Ls2LGiW7duIjAwUCiKIgIDA8Xo0aNFTk6OEKLkX3CVZeHChSI0NFQoiiLefvttIYQ2GZP9+eCDD4SiKCIuLk59fIEk18Xt27eLgIAAERQUJJKTkzX1q8rV4imN6rI/EKLs8VTn/QH5JyZBlWj69OnqBm82m9Ud7tKlS0WbNm2Eoihi4sSJJdaXO+/JkyeL1atXCyHsO23ZzuXLlyux967KGo/FYhFHjhwRo0ePFmazWeTn56vjhg0bpjkK8dRTT4mMjIxqHc+GDRtEvXr1RJs2bdS/VIv/El21apVo3ry56NSpU5UnQWWNx7nvycnJYtu2bUIIe3J07NgxMWvWLNG9e3ehKIr6S7cqk4akpCQxfPhwce+99wpFUUSDBg3E6dOnhRBF24bsj9VqFY0aNRKKoohnnnmmxHk/cuRIoSiKePHFF6smCCeliedKqtv+oKzxWK3War0/IP/EJKiSWCwWMWjQIHHTTTeJvLw8IUTRX0h5eXnigw8+EGFhYUJRFPH5558LIVx/wcgdyYQJE8SmTZs043Jzc8V3330njEZjZYei9qWs8QghxC+//CJuuukm9fv58+fFQw89pO7sDAaDmD59epXE4Kws8SQmJgohhNi3b59o06aNCAkJEW+++aZmJy6XXXZ2tpgwYYJQFKVKT7l4ur698MILYseOHZp6Qghx+vRp0a5dOxEZGSlSUlKqKBq7v//+WwhhP901fPhwoSiKmDx5sks5uZ0sWrRIKIoiateuLTZs2KCJQ5ZJTk4WiqKIsWPHisLCwiqIokhp4ylJddofCFG+eKrr/oD8Fy+MrgRCCOj1ehQWFuLSpUvIzc0FUHS3TWhoKO68806MHTsWADB9+nSkpaVBURTNhY56vR6XL19GXl6eelu29P333+ODDz5AUFBQtY0HAM6ePateaPvaa6+hSZMmWLp0KeLi4nDXXXfBZrPh0KFDOH78eKXH4Wk88rUFRqMRGzZswMGDB9U25bILDw9H9+7dERYWViXLxpN4FEWB1WqF0WjEb7/9hl27dmnqWSwWxMbG4uGHH4bNZlPv3qkq8rk/wcHBeP755xEcHIwPP/zQ5SJc+e62sWPHomfPnrh06RIWL16Mo0ePqm3p9XoIIdCwYUM0a9YMBQUFVf7Kk9LGU5Lqsj+QyhPPhQsXqt3+gPycFxOwGq2goED069dPKIoiNmzYIIQQLn957ty5U8TFxQlFUcS///1vIYTrYeSjR4+KRx99VDNs/fr1omXLliIkJEQcPny4EqMoUtZ4XnnlFSGE/fRQo0aNRIsWLYSiKCI8PFxMmzZN5Ofni8uXL4sBAwaI4OBgsWDBAs2RleoWz4wZM4QQ9gs2GzRooD6F+OTJk2pdk8kkhBBixYoVonnz5up1NNUxHrm+CWE/jVK/fn3NaSSbzabWX7t2rahdu7bXn+z7wgsvCEVRxO23364OK35R8Y4dOzSnVM6cOSOEKJoX+fn5olmzZuK1116r4t67ulI8Jaku+wN3SrN81q5dWy33B+S/mASVw9V2VPIw/MyZM4WiKKJ///5uy+Xl5YnZs2cLRVFESEiIeleL83n+1atXq7+Ajxw5Iu6//351J3/bbbdVyC+myorn8uXL4r///a/6uP+RI0eKvXv3auosXbpUBAYGitjYWHHw4EGPY6nMeNLS0oQQQsyfP180atRI6HQ6MXr0aJcLQZ977jnx5ptvlqovpVHZ65vZbBY333yzaN68udu72p599lmXV2x4orzz5MKFC6Jly5aaU5TOfzTIdufNmycaNWokAgMDxRNPPKFpIzU1VfPut4pQWfG4m0Z12B+UpDTxrFixQtSuXbtK9wdEV8IkqAyysrLEG2+8IbZv337FcnInsnHjRhETEyMURRH//e9/hRCuO4U9e/aIHj16CEVRxPz5813amD17tli5cqV4++231Tt2YmJixNKlS6t9PEuWLBGXLl0SzzzzjPjqq6805eTttOnp6WLixIli0aJF1T6euXPnCiHsRxNWrFghmjRpov7ymT9/vjh06JB4+OGHRa9evcT+/furfTzz5s0TQtiXxZtvvimCg4NF48aNxfLly8X58+dFVlaWeOihh0SnTp3Erl27qiyeK1m6dKlQFEW0b99e5ObmCiGKkkD5r8lkEhs2bFB/IU+aNEls2bJFmM1mMWHCBPHAAw+U6kJkb8fjrDrtD66kpHhk/0+dOiX+7//+r0r2B0SlwSSolN577z0REhIiFEUp9TMsjh49KoYMGSIURRGDBw9WD8k7/6WVnZ0tpk+fLvR6vXj88cfVUypC2P9yv/3220X9+vXVv/aeffbZCrn4sSrikYftnce7+8u9Io6WVNXycX4b+Z49e8T06dNF48aNRdOmTUXTpk3F5MmTK+SN5VUdT0ZGhpg/f76oV6+eUBRFdOrUSdStW1c88sgjXovHnYKCAnHzzTdrTumVdEv20aNHxRtvvCFatWolrrvuOtG2bVsxefJkr20/7pQlnuq2P3CnNPFUxf6AqLSYBF3Fxo0bRbt27dSdzvXXXy+OHz9e6vpvvfWWiIqKErVq1RIfffSREMJ1p/DNN9+I8PBwccsttwghinYCx44dU6c7ZMgQ8ccff/hkPM4xVTRvLh8pLy9PnD17VvMMnvLy1vKR/vrrL/HLL7+I7777Tvz555+eBSM8j8edn376SSiKIqKjo8WJEyeEEFe+xTw/P1+cO3euVM/kuhpvxlMd9wfulCYeJjpUXTAJuoI9e/aotxW3atVKfPjhh6V+FofcyA8dOiRuvfVWoSiK6Ny5s7ojtlgsapnMzEwRFxcnWrduLTIzM9U23nzzTRETEyP+97//+Ww8lfnskuoUT0Xs1KtTPBXBk3iuRj6G4MEHHxRCXH3+e3v5XE1p4qlO+4OrKevyIfIWJkFXkJaWJmrVqiWmTJni0V+RiYmJon379pqdgiT/Qho+fLjLBa3yzpaK4q14KmsHyHjcq2nxuHP06FERGRkpFEURP/30U4W2XRJvx1Nd9wfueGP5EJUHk6ASWK1WkZGRIcaPH68e0i0r+cslJydHLF26VBgMBqEoivjwww/VW5HNZrOwWCziuuuuU+/AqYiLNovzZjyV8c4pxuOqpsVzNa+//rpQFEX06dNHZGZmigULFojff/+9UqbFeMquKuMhKi8mQVeQmZkprr32WvH7778Lq9UqduzYIdavXy9+/fVX8eeff2qSldL8IlmyZImIjo4WQUFB4umnn1avIdm8ebMYPHiwOHXqVKXFIgTjuRrGU7EqOh5nVqtVXLhwQX0diE6nE61btxbHjh2r6DBUjKf0vBEPUXn4dRIkN3J3G7gcNmLECHHLLbeIm266Sb3YT1HsL9EcOnSoWLlyZZmmeeDAATF8+HARHR0tOnToIAYOHCjat28v1qxZw3gYD+Mpg19//VWEhoaK5s2biy+//LLc7UiMp3rHQ1QZ/C4JkqcMEhMT1acal6SgoEAMGjRIvXNCPpPD+bui2N/FVJanm5rNZvHnn3+K5ORk9W3kjIfxMJ7SO378uIiLixNPPfVUuWMRgvFU93iIKpvfJUFC2J9s2q1bN3Hddde5fWmk8/epU6eK6Oho8a9//UskJyeLn376SRw+fFjMmTNH/OMf/xCKoohrrrlGbN68ucrjkBgP46lK1SGegoKCEt8Uz3hqVjxElcnvkqDTp0+rtxAbDAbxxBNPuH2onJScnCyOHj3qti2j0ShmzJghQkNDxdSpU4UQlXOR6ZUwHsZTlRgP4yGqSfwqCbJarSIpKUl899134u233xYNGzYUsbGx6isGrnSrsM1mU3cAzj9nZGSIqVOnioYNG1Z+AMUwniKMp/IxniKMh6hm8KskSAihPg8jIyNDPP/880JRFBEfHy8uXrwohCjfXzp79+4V99xzj/j7778rtK+lwXiujvFUHMZzdYyHyHfo4GcaNWoEAIiJicG9996LHj16YMOGDfjqq68AADpd2WdJeHg4Ll++jKZNm1ZoX0uD8Vwd46k4jOfqGA+R7/C7JAgAhBAAgI4dO2LcuHEwGo1ITEzE8ePHAQA2m61M7YWGhuIf//hHhfeztBjPlTGeisV4rozxEPkOv0yCFEUBAAQFBWHQoEG4/fbbsW3bNqxYsQLAlf9acrcD+fnnn9G5c+fK6WwpMJ4ijKfyMZ4ijIfIt/llEuSsVatWeOCBBxAZGYmVK1fil19+AVDyX0tyB5KbmwsAWL16Nc6cOYNbbrmlajp8FYyH8VQlxsN4iHyaF69H8kjxC/w8eQnkhQsXxCOPPCIURRGTJk0SBQUFJbb53//+V7Ru3Vp07dpVNGrUSIwcOVKcPn263NOWGE/JGA/juRrGU7LqEA9RdRXg7SSsrI4dO4Y333wTISEhEELgvvvuw8CBA9VDwOVRv359jBgxAj/99BO++eYb3HrrrRg2bJjbsqdPn4YQAqGhoVi4cCHuu+++ck8XYDylwXgYT0kYz9V5Mx6ias8bmVd5WCwW8eSTT4rY2Fgxbdo08eKLL6rvuXn77beFEFe//dPd29nlX0PZ2dnitddeE4qiiLvuukucP39eHS8/UmpqKuNhPIyH8TAeIh/nM0nQW2+9Je644w7NBvr777+L9u3bi/DwcJGbm1tiXavVqtnI3e0shBBi37594oYbbhChoaFiwYIF6nCTyaS2U1EYTxHGw3jKivEUqY7xEPmKap8EWa1WkZaWJtq0aSPeeustIYT9hZByo58zZ46IiIgQu3fvdqlrs9k0O4Rdu3aJoUOHivXr17s9H15QUCAWL14sQkNDRZMmTcSLL74obr755gp54zbjYTyMh/HU9HiIfE21T4KEEOLw4cMiMDBQbNmyRQhh33HIv1qOHj0q6tatK86dO1di/bS0NPHEE0+ob0V++OGHhdFo1JSR7f3555+iRYsWQlEUUb9+fbF48WLGw3gYD+NhPEQ1kE8kQb/++qsIDg4Ww4cP1wy32Wzihx9+EJMnT1YP6Rb35ptvioYNGwpFUYRerxevvfbaFaf1r3/9SyiKIl555ZUK639xjKcI42E8ZcV4ilTHeIh8SbVJgn788Uexf/9+kZKSor71WP71cvnyZXHLLbcIRVHEAw88ILZt2yaysrKEEEJs3rxZ7N+/X9OWPBS8Z88e9a+jsWPHqhcDCuH+vPnWrVvFk08+WSHvyGE8jIfxMJ6aGg9RTeH1JGjfvn3ipptuEr179xYDBgwQ4eHh4q677hJ79+7VbMg//vijGDRokFAURQQHB4tGjRqJO++8U7Rv317cdNNN4oknnhALFy4Up06d0rQ/ffp09TCzEPadQ0nP3KiICwMZD+NhPIynpsZDVNN4NQnKy8sTQ4cOFf/5z3+EEPbbOGfPni1iYmJESEiIePnllzXlMzMzxaxZs8Q999wjWrRoIerVqyc6deokgoKChE6nE4qiiNq1a4uZM2eKtLQ0Td3iFxEyHsbDeBgP4yHyb15NgtasWSNiY2PF2bNn1WFGo1F8++236mHeefPmuWzwQgiRlZUlvv/+eyGE/cLCFStWiPHjx6v1Xn31VZGdnS2EKPmWUcbDeBgP42E8RP7LK0mQPFz79NNPi7Zt22qGyX9nzpwpFEURTZo0EQsXLlTrykO6K1as0DzrQvr+++/FjTfeKJo1ayaOHDlSqXFIjIfxMJ7yYzzVOx6imsxrR4KsVqsYPny40Ov16sbsfGuoyWQS/fr1E4qiiN69e4utW7eqZYQQYuTIkerzLSwWi/rXUGFhofjyyy+Foiji559/ZjyMh/EwHsZDRG555S3yQgjodDo0aNAANpsN//vf/wDY32Cs0+lgtVphMBgwffp01KtXD3v37sXXX38Nk8mkvuU4JSUFiYmJaj29Xg8ACAgIQN26dVGvXj0EBwczHsbDeBgP4yEit7ySBCmOlwG2atUKer0e27dvx5kzZ9TxcoMfNGgQ7r77bpjNZvzyyy/47bffAABGoxEGgwFff/01du3apbZnsVgAAGlpaWjXrh3atm3LeBgP42E8jIeI3PPiUSjxzTffCEVRRNOmTdWLACV5+Hf//v2iTp06IiAgQCxZskQ9pz5v3jyhKIro0KGD2LNnj8jPzxdC2G817dmzp0hISKjaYATjYTxVi/EwHiLyjNefE3TttdcKRVHEY489JjIyMtyWmTx5slAURYwaNUozfOTIkSI0NFTodDpx++23ixtvvFG0atVKrFy5siq67hbjKcJ4Kh/jKcJ4iKisFCGE8OaRqJUrV2LkyJGIiIjAF198gdtuu009L261WqHX65GSkoJWrVqhQYMG+O2339CoUSMAQH5+Po4cOYIff/wRBQUFqFu3Lh577DFvhsN4GE+VYjyMh4g84O0szGw2ixtvvFEoiiKGDh0qTpw4oRlvs9mEzWYT99xzj2jcuLHIzc0t8Ymo1QHjYTxVifEwHiIqP69cGO0sMDAQs2fPBgB89dVXSExMxMWLFwHY/1JSFAWKoqBJkyZQFAUmk0m9ULA6YjyMpyoxHsZDROXn9SQIAG644Qa89NJLAIAPP/wQH3/8MQD7XRRGoxEAcPbsWbRt2xZRUVHe6mapMZ7qjfFUb4yHiKqMtw9FSQUFBeKVV14RERERQlEU8Z///Ee9g8JoNIr4+Hjxyy+/eLmXpcd4qjfGU70xHiKqCtUmCZK+++470a1bN6Eoirj++uvFq6++Ktq1ayf++c9/itzcXG93r8wYT/XGeKo3xkNElcnrd4e5U1hYiO+++w6nTp3CqVOnMGTIEAwYMMDb3So3xlO9MZ7qjfEQUWWpdkmQEKJGXRjIeKo3xlO9MR4iqkzV4sJoZ847iGqWn5UL46neGE/1xniIqDJVuyNBRERERFWh2h0JIiIiIqoKTIKIiIjILzEJIiIiIr/EJIiIiIj8EpMgIiIi8ktMgoiIiMgvMQkiIiIiv8QkiIiIiPwSkyAiIiLyS0yCiIiIyC8xCSIiAMCyZcsQERGBZcuWebsrRERVgkkQEQEAvvzyS+Tk5GDNmjXe7goRUZVgEkTkh7Zu3eoy7F//+heuu+46TJkyxQs9IiKqenyLPJGfsdls6Ny5Mw4ePOjtrhAReRWPBBH5mVmzZuH333/3djeIiLyOR4KI/MjHH3+Mhx56CEIIcNMnIn/HI0FEfuKtt97CrFmz1OTnmmuuwTXXXIPnn38eeXl5WLJkCbp164ZXXnlFUy87OxuvvfYaoqKiAACXLl3C+PHjERERgWbNmuGTTz5Ry27evBk33HADQkND0bVrVyQnJ7vty+HDhzFy5Eh06NABtWrVQqdOnfDxxx9XRthERCUTRORXAAjnTf/QoUNi5MiRIjQ0VAAQM2bMUMctXrxYtGjRQq2TkZEh2rVrJxo1aiSCg4MFAKHT6URycrJYu3atMBgMokmTJkKv1wsAonbt2iIzM1Mz/Q0bNojmzZuLn3/+WQghxOnTp0WXLl0EAPHKK69UyTwgIhJCCB4JIvJz7dq1w+eff47Ro0e7jBs7diw2bNigfn/ppZewePFinD17FhcvXsT1118Pm82GF154AZ9//jn++OMPnDp1CidPnkRsbCwyMjLw/fffq/UzMjIwatQozJ49GzfeeCMAIDY2FosXLwYAvPbaazhx4kQlR0xEZMckiIgAAHXr1nUZFhwcjGbNmqnfZ8+ejRtuuAEAUKtWLTz66KMAgMzMTKxcuRJNmzYFYE9s/vGPfwAATp06pdb/+OOPkZOTg7vuuksznU6dOgGw37m2du3aCoyKiKhkAd7uABFVD4GBgW6HBwUFqT+Hh4drxjVq1EgdriiKZlydOnUAAAUFBeqwTZs2QQiBrl27ukyndu3aAIC0tLRy9J6IqOyYBBFRuel0JR9MluOE011op06dQkxMDI4ePVrpfSMiuhqeDiOiKmOxWHDx4kVkZmZ6uytEREyCiKjqNGzYEEIIrFq1yu14IQQ2b95ctZ0iIr/FJIiIqkzfvn0BAC+88AL++usvl/EJCQk4d+5cVXeLiPwUkyAiPxMSEgIAMBqNmuFmsxkAUFhYqBnu/N1isWjG2Ww2AIDVanWZjrwWyLn+pEmTEBYWhvT0dFx//fVYtGgRUlJScPz4cfVhjsXvHCMiqixMgoj8TPv27QEA27ZtQ35+PubOnQubzYaff/4ZAPDzzz9rkho5HAB27typaUueujpx4gTS09PV4RaLBb/++isAIDk5WW0vNjYWH3/8MQICApCWlobJkyejZcuWaNOmDV5++WV89NFHqFWrVsUHTUTkBt8dRuRndu7ciTFjxiAzMxNjxozBfffdh7vvvhuXLl1Sy0RHR2Pjxo147733sHz5cjWJ0ev1uPXWW7Fq1SrExcUhNTVVrRMUFIRp06bhpptuQnx8vObi56ioKPz6669o27YtAHti9Oqrr+LXX3+FzWZDnz59MHPmTPTs2bNqZgIREZgEERERkZ/i6TAiIiLyS0yCiIiIyC8xCSIiIiK/xCSIiIiI/BKTICIiIvJLTIKIiIjILzEJIiIiIr/EJIiIiIj8EpMgIiIi8ktMgoiIiMgvMQkiIiIiv8QkiIiIiPwSkyAiIiLyS0yCiIiIyC/9PzJbh+JUGwK/AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ds_avg[\"turbulence_intensity\"] = avg_tool.turbulence_intensity(\n", + " ds.velds.U_mag, noise=ds_avg[\"noise\"]\n", + ")\n", + "\n", + "(ds_avg[\"TI\"] - ds_avg[\"turbulence_intensity\"]).plot(cmap=\"Greens\", ylim=(0, 11))\n", + "plt.title(\"TI Difference\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 7.6 Turbulent Kinetic Energy (TKE) Components\n", + "\n", + "The next parameters we'll find here are the vertical TKE component and the total TKE magnitude. Since we're using the vertical beam on the ADCP, we'll directly measure the vertical TKE component from the along-beam velocity using the `turbulent_kinetic_energy` function. This function is capable of calculating TKE for any along-beam velocity.\n", + "\n", + "We can also use the so-called \"beam-variance\" equations to estimate the Reynolds stress tensor components (i.e. $\\overline{u'^2}$, $\\overline{v'^2}$, $\\overline{w'^2}$, $\\overline{u'v'}$, $\\overline{u'w'^2}$, $\\overline{v'w'^2}$), which define the stresses acting on an element of water. These equations are built into the functions `stress_tensor_5beam` and `stress_tensor4beam`. Since we're using a 5-beam ADCP, we can calculate the total TKE as well using `total_turbulent_kinetic_energy`, which is a wrapper around the 5-beam variance function.\n", + "\n", + "#### Quick 5-beam ADCP lesson before we dive in:\n", + "\n", + "There are a couple caveats to calculating Reynolds stress tensor components:\n", + " 1. Because this instrument only has 5 beams, we can only find 5 of the 6 components (6 unkowns, 5 knowns)\n", + " 2. Because the ADCP's instrument (XYZ) axes weren't aligned with the flow during deployment, we don't know what direction these components are aligned to (i.e. the 'u' direction is not necessarily the streamwise direction)\n", + " 3. It is possible to rotate the tensor, but we'd need to know all 6 components to do so properly.\n", + "\n", + "That being said, even if we don't know which direction the 3 TKE components ($\\overline{u'^2}$, $\\overline{v'^2}$, $\\overline{w'^2}$) are oriented, we can still combine them and get the total TKE magnitude.\n", + "\n", + "We'll first calculate the vertical TKE component, using the function `turbulent_kinetic_energy`, inputting our raw vertical beam data and the noise floors we calculated above for each ensemble." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "# Vertical TKE component (w'w' bar)\n", + "ds_avg[\"wpwp_bar\"] = avg_tool.turbulent_kinetic_energy(\n", + " ds[\"vel_b5\"], noise=ds_avg[\"noise\"]\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we can calculate the TKE magnitude using the function `total_turbulent_kinetic_energy`. This method is a wrapper around the `stress_tensor_5beam` function, which calculates the individual Reynolds stress tensor components and takes the same inputs. As an fyi, this function will drop at least one warning every time it's run, primarily the coordinate system warning. This function also requires the input raw data to be in beam coordinates, so we'll create a copy of the raw data and rotate it to 'beam'. If you do not, this function will do so automatically and rotate the original." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\users\\mcve343\\mhkit-python\\mhkit\\dolfyn\\adp\\turbulence.py:401: UserWarning: The beam-variance algorithms assume the instrument's (XYZ) coordinate system is aligned with the principal flow directions.\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "ds_beam = dolfyn.rotate2(ds, \"beam\", inplace=False)\n", + "ds_avg[\"TKE\"] = avg_tool.total_turbulent_kinetic_energy(\n", + " ds_beam, noise=ds_avg[\"noise\"], orientation=\"up\", beam_angle=25\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And plotting TKE:" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Remove estimations below 0\n", + "ds_avg[\"TKE\"] = ds_avg[\"TKE\"].where(ds_avg[\"TKE\"] > 0)\n", + "\n", + "ds_avg[\"TKE\"].plot(cmap=\"Reds\", ylim=(0, 11))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "TKE esimations are generally more complete than those of dissipation rates because they are found directly from the along-beam velocity measurements. Missing TKE estimations exist whenever the noise calculated by the function `doppler_noise_level` is greater than the calculated TKE, as TKE can't be less than zero. Noise levels are affected by the instrument's processor and working frequency, water waves and other sources of \"interference\", instrument motion, current speed, intricacies in the spectra calculation, the ability to see the noise floor in the spectra, etc.\n", + "\n", + "You may also note that high TI doesn't always correlate with high TKE. TI is the ratio of flow speed standard devation to the mean, which is naturally lower when flow speeds are higher. When flow speeds are higher, they also have greater kinetic energy and thereby greater TKE.\n", + "\n", + "There is one other important thing to note on TKE measurements by ADCPs: the minimum turbulence length scale that the ADCP is capable of measuring increases with range from the instrument. This means the instrument is only capable of measuring the TKE of larger and larger turbulent structures as the beams travel farther and farther from the instrument head. One of the benefits of calculating w'w' from the vertical beam is that it isn't limited by this beam spread issue." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 7.7 TKE Production\n", + "\n", + "Though it can't be found from this deployment, we'll go over how to estimate TKE Production. There isn't a specific function in MHKiT-DOLfYN for production, but all the necessary variables are. \n", + "\n", + "If we had aligned the ADCP instrument axes to the flow direction (so \"X\" would align with the main flow), we could use the following equation to estimate production:\n", + "\n", + "$P = -(\\overline{u'w'}\\frac{du}{dz} + \\overline{v'w'}\\frac{dv}{dz} + \\overline{w'w'}\\frac{dw}{dz})$\n", + "\n", + "To start, we need the functions `reynolds_stress_4beam` or `stress_tensor_5beam` to get the stress tensor components $\\overline{u'w'}$ and $\\overline{v'w'}$. We also need the vertical TKE component, $\\overline{w'w'}$. \n", + "\n", + "Both of these functions will give comparable results, but it should be noted that `stress_tensor_4beam` assumes the instrument is oriented with 0 degrees pitch and roll, and will throw a warning if they are greater than 5 degrees. The `stress_tensor_5beam` gives more leeway to instrument tilt, but shouldn't be used if pitch and roll angles are greater than 10 degrees." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\users\\mcve343\\mhkit-python\\mhkit\\dolfyn\\adp\\turbulence.py:401: UserWarning: The beam-variance algorithms assume the instrument's (XYZ) coordinate system is aligned with the principal flow directions.\n", + " warnings.warn(\n", + "c:\\users\\mcve343\\mhkit-python\\mhkit\\dolfyn\\adp\\turbulence.py:411: UserWarning: 100.0 % of measurements have a tilt greater than 5 degrees.\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "# Beam-variance equation for 4-beam ADCPs\n", + "stress_vec = avg_tool.reynolds_stress_4beam(\n", + " ds_beam, noise=ds_avg[\"noise\"], orientation=\"up\", beam_angle=25\n", + ")\n", + "upwp_ = stress_vec[1]\n", + "vpwp_ = stress_vec[2]\n", + "wpwp_ = ds_avg[\"wpwp_bar\"] # Found from the vertical along-beam velocity (vel_b5) above\n", + "\n", + "# OR #\n", + "\n", + "# Beam-variance equation for 5-beam ADCPs\n", + "tke_vec, stress_vec = avg_tool.stress_tensor_5beam(\n", + " ds_beam, noise=ds_avg[\"noise\"], orientation=\"up\", beam_angle=25\n", + ")\n", + "upwp_ = stress_vec[1]\n", + "vpwp_ = stress_vec[2]\n", + "wpwp_ = tke_vec[2]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The shear components can be found from the aptly named functions `dudz`, `dvdz`, and `dwdz` in ADPBinner. These functions, which are useful alone in their own right, estimate the shear in the velocity vector between respective depth bins. There is always correlation between velocity measurements in adjacent depth bins, based on ADCP operation principles, which is why \"estimation\" is also used here for shear.\n", + "\n", + "The shear functions operate on the raw velocity vector in the principal reference frame and need to be ensemble-averaged here. This can be done by nesting the `d*dz` function within the ADPBinner's `mean` function. With the ensemble shear known, we can put all the components together to get a production estimation." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "# Find and ensemble-average shear\n", + "dudz = avg_tool.mean(avg_tool.dudz(ds_streamwise[\"vel\"]).values)\n", + "dvdz = avg_tool.mean(avg_tool.dvdz(ds_streamwise[\"vel\"]).values)\n", + "dwdz = avg_tool.mean(avg_tool.dwdz(ds_streamwise[\"vel\"]).values)\n", + "\n", + "# Calculate Production\n", + "P = -(upwp_ * dudz + vpwp_ * dvdz + wpwp_ * dwdz)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 7.8 TKE Balance \n", + "\n", + "We can plot TKE Production and compare it to our dissipation rate calculations to get an understanding of the TKE balance. In a well mixed coastal environment, we expect production and dissipation to be approximately equal. Our production estimates aren't accurate because our stress components aren't aligned with the flow, so if we plot them, we see drastic differences (1x10^-3 $m^2/s^3$ is quite large) profile here." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [], - "source": [ - "# Find and ensemble-average shear\n", - "dudz = avg_tool.mean(avg_tool.dudz(ds_streamwise['vel']).values)\n", - "dvdz = avg_tool.mean(avg_tool.dvdz(ds_streamwise['vel']).values)\n", - "dwdz = avg_tool.mean(avg_tool.dwdz(ds_streamwise['vel']).values)\n", - "\n", - "# Calculate Production\n", - "P = -(upwp_*dudz + vpwp_*dvdz + wpwp_*dwdz)" + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'TKE Balance')" ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" }, { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 7.7 TKE Balance \n", - "\n", - "We can plot TKE Production and compare it to our dissipation rate calculations to get an understanding of the TKE balance. In a well mixed coastal environment, we expect production and dissipation to be approximately equal. Our production estimates aren't accurate because our stress components aren't aligned with the flow, so if we plot them, we see drastic differences (1x10^-3 $m^2/s^3$ is quite large) profile here." + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAloAAAILCAYAAAAwiTK4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAACduklEQVR4nOzdeVxU1f/48dfMsIqC4K6gApIbaiauqbiglu0puZvbR/OT+U2tTP2Y1ceyRcv0V7aZS5m5lPYptdJCTdM0c8vUNPddXEBAGJg5vz+uc2FkBoFhhKH38/G4D2buPdu9c+fO4ZxzzzUopRRCCCGEEKLIGYu7AEIIIYQQpZVUtIQQQggh3EQqWkIIIYQQbiIVLSGEEEIIN5GKlhBCCCGEm0hFSwghhBDCTaSiJYQQQgjhJlLREkIIIYRwE6loCSGEEEK4iVS0hBAlwuXLl3n77bepW7cuL774YnEXJ18GDBhAYGAg7733XnEXRQhRQklFS3gsg8Hg0jJz5ky2bt16y3DffvutnmfPnj2dhhs0aJAebufOnYwcOZJmzZoVqmxXr17N1zF44okn8kzH19eXKlWq0Lp1a5577jmOHz9exJ+C68xmM//617+oXbs2Y8eO5a+//iruIuVLYmIin332GdeuXWPOnDnFXRwhRAklFS3h0Zo3b87GjRu5evUqmZmZZGZmsm7dOn37wIED9fXXr1/n4MGDjBs3DoPBAECrVq24fv06mzdvJioqSo9XsWJF1qxZQ2pqKvfdd5++fsmSJfz5558EBAQAYDKZGDlyJDt37rT7sW3atClz5szht99+o2PHjvr6t956i5MnT+ZaDh06xLp16+zC5sd7773HpUuXcrWoREZG8sADD9CpUyeUUmzdupU333yTunXr8tZbbxUoD3fz8fFh1qxZ7Ny5U/9cSgqz2czGjRsdbqtYsSL9+/enbNmyjBw58jaXTAjhKbyKuwBCFFZwcDDff/89wcHBdutNJpP+2mAw4OWlneZeXl7ccccdTJ8+nYyMDD2Mn58fbdq0YdiwYYwfPx6A+Ph47rnnnlx5mkwm/P39ycjIoGrVqixfvpy7777baRkNBgPNmjUjISFBL3NoaKjDsHXq1KFNmzaEh4fn8wiA0WgkJCSEkSNHMnPmTL01aN26ddSuXRuAzMxMpk+fzqRJk8jIyNArmmPGjMl3Pu7m7+9PZGQkISEhXLp0qbiLo1uyZAl///037du3d7j9008/vc0lEkJ4GmnREh6rR48euSpZ+TV8+PBc6ypUqODwdU4pKSn06NGD8PBwfv311zwrWTZlypTJd7n8/f3p0aNHvsPnVLlyZYfrvb29mTBhAk888YS+bsKECZw/f75Q+biTv79/cRdBZzabmTZtWnEXQwjh4aSiJTxWzopDQdWvXz9XN13OlrCcr21SUlLo3r07aWlpbNiwgZo1a+Yrr4J2h40dO1bvmiwIR2XOady4cfrrjIwM1qxZU+A83O1W+3A7TZgwgf379xd3MYQQHk4qWsJjNWvWrNBxvby8aNKkSb7DX7lyhbi4OK5cucKGDRuoVq1aofO+lcjISLy9vd2SblBQkP7+zJkzRZ5HafHyyy+XuLFsQgjPJBUtIW7h9OnTtG/fHrPZTEJCgtMuOld99913zJ8/3y1p2/j6+uqvc3a7XrhwgVdffZXatWszf/58lFK8/PLLVK5cmTp16vDrr7/apZOVlcXChQvp2LEjlStXJiAggPr16zNu3DjOnj17y3IsWbKEzp07U6FCBfz9/WndujXfffddrnAff/xxrjsp169fr29fuXJlnttzSk5O5qWXXqJJkyYEBARQtmxZ2rRpk2ucVadOnZgyZYr+/qWXXtLTfvjhh/X1iYmJzJgxg3r16uU5HcXly5d57bXXaNq0KYGBgQQHB9OyZUtmzJhBenq6wzh//vkno0aNIjAwkGPHjgGwZs0a2rdvT9myZYmIiOD//b//5zRPIUQJooQoZRISEhSgAPX444/nO968efP0eFOmTFFKKbVv3z4VFhamWrdura5evVqo8kyZMkVPd968eU7DvfHGG3luv5XY2Fg9n6NHj+bafvLkSX07oPbs2aMuXLigevfurXx8fOzKOGbMGLuwDz74oJ7OhQsXVPv27VWNGjXU//73P5WUlKQOHjyohgwZogAVGBiovvvuO4dlNJvNqkePHsrLy0tNmzZNnT9/Xp05c0ZNnjxZeXt7K29vb7vjb7FY1Pnz59WgQYP0siQkJOjpWSwWdfbsWTVy5EiH22127Nihqlevrh555BH1559/qmvXrqk1a9aoMmXKKED961//0sNmZmaqzMxMVatWLQWoyZMn6+ssFovKzMxUjz/+uAoMDMx1vtzst99+U2FhYapdu3Zq27Zt6tq1a2rL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Y+rUqYWKXyorWvntx83KytLvZshp2rRpdn3VYWFhbiurEEIIUVi3+65Dk8lEgwYNADhz5ozDMOfPnwegSZMmTtOJjo7We6YcpWNLw8fHh/r16wPQuHFjl/MtqA0bNrBixQoWL15c4C5Dm1JZ0cpvPy447sudMGECSUlJ+nLy5En3FFQIIYRwQXHMo2UbDL5v375c2xITE0lKSiIgIECfud2R4OBgfbJTR+kcPnwYgPbt2+uTmeaVb8443bt3z++u5OmPP/5g8uTJrFixwml9Ij9KZUUrv/244Lgv19fXV++vzm+/tRBCCPFPMHToUIxGo8MHSNvmt+zRo4fdOCxHhg8fDpBnOn379tXXxcXFER4ezv79+3NNGnr16lX2799PeHi4PtmpK/766y/+/e9/s3TpUoKDg3Ntz88jhmxKZUUrv/24AQEBt5wlVgghhCipjAZtLqxCL7eYwNORqKgohg8fzt69e3PNWbVgwQL8/f2ZMmWKvi4hIYGWLVsya9Ysu7ADBgygUaNGLF261K53yWw288UXXxAdHU3//v319V5eXkybNg2r1arPKm/z2WefYbVaeeWVVzCZTDiTlZUF4HB8ts1ff/3FkCFD+Oyzz+zGkgFcv36dt956i08//dRp/JuVyopWcfTjCiGEELdbccwMDzB9+nSaNWvGE088weXLl1FKMWvWLL755hsWLlxoN3v7jBkz2LZtG5MmTbJLw9vbm88//5ysrCzGjh1LVlYWaWlpDBkyBKvVyvLly/H29raL06tXL0aMGMHUqVPZs2cPoM00MGnSJMaMGUOfPn2clvno0aNcuHABgK1btzoMs2fPHtq3b8+uXbu46667qFixor4EBwdTtmxZxo0bZ9fSdiseO71DXjp27IiPjw8XLlwgMTEx1x0IRd2PK4QQQvyTBAQEkJCQwOTJk4mJicFoNBIdHc327dv1xg6bPn36sHHjRgYOHJgrnejoaLZs2cLzzz9PVFQU3t7edO3ald27d+d6nqHNnDlziI6Opnfv3mRkZFClShUWLlyY54zttWrV4syZM3qLVv/+/Xn22WdZvXo1d955J6A1znTo0IErV64AznvFWrRoQZ06dW55jGwMytlAphJu0KBBLFiwgHnz5uV6ijfAwIED+fTTT/nyyy959NFH7bY1a9aMXbt2ceDAgVs+yge0RxMEBQWRlJQk47WE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VRkMBjVixAh17NgxPW5GRoZSSqnFixer2rVr6+OaSuL+2M43pbQupypVqth1uVmtVj3+ihUrVIUKFdT58+dv0944NmnSJGUwGNQ999yjr7t5IPmvv/5q1/106tQppVT2sUhLS1O1atVSL7/88m0ufW557Y8zJeV64Eh+Pp8VK1aUyOuBEO4kFa1CuNXF0NZlMXXqVGUwGFSHDh0chktNTVWvvfaaMhgMyt/fX79bKue4i2XLluk/8vv371e9e/fWf0i6du1aJD9+7tqfK1euqP/973+qfPnyymAwqD59+qidO3faxZk7d67y9vZWoaGhau/evS7vizv358KFC0oppWbOnKmqV6+ujEaj6tevX67Bv88//7x6/fXX81WW/HD3+WY2m1XHjh1V7dq1Hd4t+eyzz9rdEeaqwh6Tc+fOqYiICLvu3Jz/mNjSffvtt1X16tWVt7e3euqpp+zSOH/+vN2zKouCu/bHUR4l4XrgTH72Z/HixapChQq39XogRHGTilYBJCUlqVdffVVt3bo1z3C2C9XatWtVSEiIMhgM6n//+59SKveF5/fff1cxMTHKYDComTNn5krjtddeU0uWLFFvvvmmfidYSEiImjt3bonfn48++khdvnxZPfPMM+qrr76yC2e7FTwxMVENHTpUvf/++yV+f2bMmKGU0lpFFi9erMLCwvQfuJkzZ6p9+/apESNGqJYtW6rdu3eX+P15++23lVLaZ/H6668rPz8/VaNGDbVw4UJ19uxZlZSUpIYNG6YaN26stm/fftv2Jy9z585VBoNBNWzYUKWkpCilsiuatr8ZGRnqu+++03/0hw8frjZs2KDMZrMaMmSIGjhwYL4Gnxf3/uRUkq4HeXG2P7bynzhxQj333HO35XogREkhFa18evfdd5W/v78yGAz5nuPlwIEDqnv37spgMKh7771X777I+R9jcnKymjBhgjKZTGrUqFF695NSWgvEPffco6pUqaL/1/rss88WyYDX27E/ti6OnNsdtUAURavP7fp8bHNKKaVVWiZMmKBq1KihatasqWrWrKlGjhxpF8ZT9ufSpUtq5syZqnLlyspgMKjGjRurSpUqqSeeeKLY9seR69evq44dO9p1fzqbTuDAgQPq1VdfVZGRkap58+aqfv366v+3d+fBNd3/H8dfn4QkbpMQuzS2BiVRypSxtvOlSrVUKSaK1kw37VjKH8a+jI6lOsZoZyo0qjOhUYrWFEWbCkmLWlrUWm0sJZq61kTk3tfvj/zukUsii9xF8nrMdCp3Pc9kHO97cpaRI0f67O9PQUrS42/rg4IUp8cb6wMRf6JBqwhbt25lTEyMtWLr2LEjjx8/Xuznz58/n9WqVWNoaCiXLVtG8t4Vz4YNGxgWFsZu3bqRvLOiOXbsmPW+vXv35okTJx7KnvxNZc2XPx+XGzdu8Ny5c27nqCotX/18XP7880/u3LmTGzdu5KlTpx4shg/eU5Dt27fTGMOIiAiePHmS5P1Pj3Dz5k2eP3++WOesK4ove/xxfVCQ4vRomJKKRIPWfezbt886JD46OppLliwp9rlqXCuSw4cPs0ePHjTGsHXr1tbKPjc313qM3W5n06ZN2axZM9rtdus15s2bx+rVq3PLli0PbY8nz+3jTz1l8Q+HP/WUhQfpKYrrFBqvv/46yaK//77++RSlOD3+tD4oSkl/PiLlmQat+8jIyGBoaChHjx79QJ+GExMTGRsb67bicXF90hs0aNA9OzG7jpgqK77q8dRKVj0FK289BTl69CirVq1KYwy3b99epq9dGF/3+Ov6oCC++PmI+CsNWoVwOBzMzMzkiBEjrM3fJeX6B+zatWv87LPPGBQURGMMlyxZYh1Gn5OTw9zcXLZr1846sqssdtS9my97PHGNPPXcq7z1FOWDDz6gMYadOnWi3W7nokWLeOjQIY+8l3pKzps9Iv5Mg9Z92O12Nm/enIcOHaLD4eAvv/zC7777jqmpqTx16pTbQFScf6yWLl3KiIgIBgcHc/z48dY+PcnJyXz++eeZnp7usRZSPUVRT9kq6578HA4HL1y4YF1aKCAggM2aNeOxY8fKOsOinuLzRY+Iv6rQg5ZrRVLQSsR12+DBg9mtWzd27drV2sHTmLwLCw8YMIBJSUkles/ffvuNgwYNYkREBFu2bMlnn32WsbGxXLt2rXrUo54SSE1Npc1mY6NGjbhmzZpSv46Levy7R+RhVeEGLdevVxITE62zlxcmKyuLPXv2tI7IcZ2zJv/XxuRdO64kZzHOycnhqVOnmJaWxtWrV6tHPeop4VnAjx8/zqZNm/L9998vdQupHn/vESkPKtygReadwbht27Zs165dgRfSzf/1uHHjGBERwTFjxjAtLY3bt2/nkSNHuGDBAvbp04fGGDZp0oTJycle73BRj3q8yR96srKyrP3O1FO+e0QedhVu0Dpz5ox1+HtQUBBHjRpV4IkdXdLS0nj06NECXys7O5vTp0+nzWbjuHHjSHpmx+L7UY96vEk96hGRkqlQg5bD4eCPP/7IjRs38sMPP2S9evUYFRVlXa7kfoe5O51OayWT/8+ZmZkcN24c69Wr5/mAu6jnDvV4nnruUI+IFFeFGrRIWueLyczM5KRJk2iM4cCBA3np0iWSpfvEtn//fvbr149///13mS5rcainaOopO+opmnpEJL8AVDCRkZEAgOrVq+Pll1/GU089hc2bN+Prr78GAAQElPxbEhYWhsuXL6NBgwZluqzFoZ6iqafsqKdo6hGR/CrcoAUAJAEATzzxBF577TVkZ2cjMTERx48fBwA4nc4SvZ7NZkOfPn3KfDmLSz33p56ypZ77U4+I5FchBy1jDAAgODgYPXv2RK9evbBr1y6sWrUKwP0/9RW0kkpJSUHr1q09s7DFoJ471ON56rlDPSJSlAo5aOUXHR2N4cOHo2rVqkhKSsLOnTsBFP6pz7WSun79OgDgq6++wtmzZ9GtWzfvLHAR1KMeb1KPekSkCD7cP+yB3L1T54NcGPfChQt85513aIzhW2+9xaysrEJf85tvvmGzZs3Ypk0bRkZGMi4ujmfOnCn1e7uop3DqUU9R1FM4f+gRqcgq+XrQK6ljx45h3rx5qFKlCkiif//+ePbZZ63N5aVRp04dDB48GNu3b8eGDRvQo0cPvPLKKwU+9syZMyAJm82GxYsXo3///qV+X0A9xaEe9RRGPUXzZY+I4OHZopWbm8uxY8cyKiqKEyZM4JQpU6zrcn344Yckiz50Of9FUl1cn+quXr3KWbNm0RjDvn378p9//rHud/3ncvHiRfWoRz3qUY+IFOmhGbTmz5/PF154wW0lcOjQIcbGxjIsLIzXr18v9LkOh8NtRVLQCokkDxw4wM6dO9Nms3HRokXW7bdu3bJep6yo5w71qKek1HOHP/aIyB1+P2g5HA5mZGTw8ccf5/z580nmXSTXtWJZsGABw8PD+euvv97zXKfT6bbS2bNnDwcMGMDvvvuuwP0TsrKyGB8fT5vNxvr163PKlCn83//+x7Vr16pHPepRj3pEpMT8ftAiySNHjrBy5cr86aefSOatnFyfvo4ePcpatWrx/PnzhT4/IyODo0aNsq5G//bbbzM7O9vtMa7XO3XqFBs3bkxjDOvUqcP4+Hj1qEc96lGPiJTKQzFopaamMiQkhIMGDXK73el08vvvv+fIkSOtzd93mzdvHuvVq0djDAMDAzlr1qz7vteYMWNojOGMGTPKbPnvpp471KOeklLPHf7YIyLu/GbQ2rZtGw8ePMjTp09bV5t3fQq7fPkyu3XrRmMMhw8fzl27dvHKlSskyeTkZB48eNDttVybzfft22d9yhs2bJi1AyhZ8H4MO3bs4NixY8vkml7qUY961FNee0Sk+Hw+aB04cIBdu3Zlhw4d2L17d4aFhbFv377cv3+/28pi27Zt7NmzJ40xDAkJYWRkJF988UXGxsaya9euHDVqFBcvXsz09HS31584caK1SZ7MWwEVdk6astgZVD3qUY96ymuPiJScTwetGzducMCAAfz4449J5h2CPHfuXFavXp1VqlThtGnT3B5vt9s5Z84c9uvXj40bN2bt2rXZqlUrBgcHMyAggMYY1qhRg7Nnz2ZGRobbc+/ecVQ96lGPetQjIp7m00Fr7dq1jIqK4rlz56zbsrOz+e2331qbxBcuXHjPSoUkr1y5wk2bNpHM25l01apVHDFihPW8mTNn8urVqyQLP9xZPepRj3rUIyKe5JNBy7Vpe/z48WzRooXbba7/z549m8YY1q9fn4sXL7ae69r8vWrVKrdzwbhs2rSJXbp0YcOGDfnHH394tMNFPepRT+mpx797ROTB+GyLlsPh4KBBgxgYGGitMPIf1nzr1i0+88wzNMawQ4cO3LFjh/UYkoyLi7PO/5Kbm2t9qrt9+zbXrFlDYwxTUlLUox71qEc9IuIzAT667A8CAgJQt25dOJ1ObNmyBUDeleMDAgLgcDgQFBSEiRMnonbt2ti/fz/Wr1+PW7duWVeXP336NBITE63nBQYGAgAqVaqEWrVqoXbt2ggJCVGPetSjHvWIiM/4ZNAy/3+B1OjoaAQGBuLnn3/G2bNnrftdK5WePXvipZdeQk5ODnbu3Im9e/cCALKzsxEUFIT169djz5491uvl5uYCADIyMhATE4MWLVqoRz3qUY96RMR3fLg1jRs2bKAxhg0aNLB2/HRxbSo/ePAga9asyUqVKnHp0qXWPg4LFy6kMYYtW7bkvn37ePPmTZJ5h0m3b9+eK1as8G4M1aMe71KPekTE//n8PFrNmzenMYbvvfceMzMzC3zMyJEjaYzhkCFD3G6Pi4ujzWZjQEAAe/XqxS5dujA6OppJSUneWPQCqecO9Xieeu5Qj4j4I0OSvtyilpSUhLi4OISHh+PLL7/Ec889Z+2n4HA4EBgYiNOnTyM6Ohp169bF3r17ERkZCQC4efMm/vjjD2zbtg1ZWVmoVasW3nvvPV/mqEc9XqUe9YiIn/P1pJeTk8MuXbrQGMMBAwbw5MmTbvc7nU46nU7269ePjz76KK9fv17omY/9gXrU403qUY+I+Def7AyfX+XKlTF37lwAwNdff43ExERcunQJQN4nPmMMjDGoX78+jDG4deuWtXOoP1KPerxJPeoREf/m80ELADp37oypU6cCAJYsWYKEhAQAeUfnZGdnAwDOnTuHFi1aoFq1ar5azGJTj39Tj39Tj4iUK77epOaSlZXFGTNmMDw8nMYYfvzxx9aROdnZ2Rw4cCB37tzp46UsPvX4N/X4N/WISHnhN4OWy8aNG9m2bVsaY9ixY0fOnDmTMTExfPPNN3n9+nVfL16Jqce/qce/qUdEHnY+P+qwILdv38bGjRuRnp6O9PR09O7dG927d/f1YpWaevybevybekTkYeZ3gxbJcrUzqHr8m3r8m3pE5GHnFzvD55d/JeRnM2CpqMe/qce/qUdEHnZ+t0VLREREpLzwuy1aIiIiIuWFBi0RERERD9GgJSIiIuIhGrREREREPESDloiIiIiHaNASERER8RANWiIiIiIeokFLRERExEM0aImIiIh4iAYtEREREQ/RoCUiAIDly5cjPDwcy5cv9/WiiIiUGxq0RAQAsGbNGly7dg1r16719aKIiJQbGrREKqAdO3bcc9uYMWPQrl07jB492gdLJCJSPhmS9PVCiIj3OJ1OtG7dGr///ruvF0VEpNzTFi2RCmbOnDk4dOiQrxdDRKRC0BYtkQokISEBb7zxBkhCf/VFRDxPW7REKoj58+djzpw51oDVpEkTNGnSBJMmTcKNGzewdOlStG3bFjNmzHB73tWrVzFr1ixUq1YNAPDff/9hxIgRCA8PR8OGDfH5559bj01OTkbnzp1hs9nQpk0bpKWlFbgsR44cQVxcHFq2bInQ0FC0atUKCQkJnsgWEfEtikiFAoD5/+ofPnyYcXFxtNlsBMDp06db98XHx7Nx48bWczIzMxkTE8PIyEiGhIQQAAMCApiWlsZ169YxKCiI9evXZ2BgIAGwRo0atNvtbu+/efNmNmrUiCkpKSTJM2fO8MknnyQAzpgxwyvfAxERb9EWLZEKLiYmBitXrsSrr756z33Dhg3D5s2bra+nTp2K+Ph4nDt3DpcuXULHjh3hdDoxefJkrFy5EidOnEB6ejr++usvREVFITMzE5s2bbKen5mZiSFDhmDu3Lno0qULACAqKgrx8fEAgFmzZuHkyZMeLhYR8R4NWiICAKhVq9Y9t4WEhKBhw4bW13PnzkXnzp0BAKGhoXj33XcBAHa7HUlJSWjQoAGAvOGpT58+AID09HTr+QkJCbh27Rr69u3r9j6tWrUCkHdE5Lp168qwSkTEtyr5egFExD9Urly5wNuDg4OtP4eFhbndFxkZad1ujHG7r2bNmgCArKws67YffvgBJNGmTZt73qdGjRoAgIyMjFIsvYiIf9KgJSKlFhBQ+EZx133Md3Rjeno6qlevjqNHj3p82URE/IF+dSgiXpObm4tLly7Bbrf7elFERLxCg5aIeE29evVAEqtXry7wfpJITk727kKJiHiQBi0R8Zqnn34aADB58mT8+eef99y/YsUKnD9/3tuLJSLiMRq0RCqYKlWqAACys7Pdbs/JyQEA3L592+32/F/n5ua63ed0OgEADofjnvdx7ZuV//lvvfUWHnnkEfz777/o2LEjPv30U5w+fRrHjx+3Tqh69xGJIiIPMw1aIhVMbGwsAGDXrl24efMmPvroIzidTqSkpAAAUlJS3AYn1+0AsHv3brfXcv2a7+TJk/j333+t23Nzc5GamgoASEtLs14vKioKCQkJqFSpEjIyMjBy5Eg89thjePzxxzFt2jQsW7YMoaGhZR8tIuIjutahSAWze/duDB06FHa7HUOHDkX//v3x0ksv4b///rMeExERga1bt+KTTz7BF198YQ1KgYGB6NGjB1avXo2mTZvi4sWL1nOCg4MxYcIEdO3aFQMHDnTb4b1atWpITU1FixYtAOQNXzNnzkRqaiqcTic6deqE2bNno3379t75JoiIeIkGLREREREP0a8ORURERDxEg5aIiIiIh2jQEhEREfEQDVoiIiIiHqJBS0RERMRDNGiJiIiIeIgGLREREREP0aAlIiIi4iEatEREREQ8RIOWiIiIiIdo0BIRERHxEA1aIiIiIh6iQUtERETEQzRoiYiIiHjI/wFpMqGuno0KogAAAABJRU5ErkJggg==", + "text/plain": [ + "
" ] + }, + "metadata": {}, + "output_type": "display_data" }, { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'TKE Balance')" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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oYffvXs3/fr1o3HjxnzwwQf6WL3x48fTs2dPjh8/zs2bNzl27Bj/+Mc/WLBgQa77LYQoAZQQpUx8fLwCFKAef/zxQsWbMmWK2rZtm6pUqZJq1KiROnfuXKHLM3fuXD3duXPnOgxz+PBh1bhxYzVlypRC5/P444/r+SQkJOTYPmXKFH1748aNlcViUUopdfLkSbVx40ZlMBgUoGJjY1Xv3r3VmTNn1JNPPql8fX3VpEmT9HQGDBigALVmzRqneRiNRrVq1aoc2ydMmKAANXHixBzbXn31Vbvjn91vv/2mb4uPj88Rd//+/U63JyQkqJCQENWmTRt9n20GDx6sx1u7dq3dttq1azssi1JKpaamqhMnTujHzFGY8+fPq4oVK6o6deqo1NRUu20pKSmqYcOGClAREREqOTlZX6+UUm+++aZerv79+6vnn39eXb58WSml1NGjR1WlSpUUoBo1apQjXyFEySItWkI48NNPP9GpUycuXbpUpOn+3//9H1WrVrVbgoODueuuu9i/f3+R5XP27FmUUgBcvXqVCRMm8MorrwDajQBfffUVRqP29Q8NDaVdu3ZUqlQJgC1btvDf//6X6tWr85///IebN28ydepUAL777jsWLlxIo0aN6NGjR458J06cSFhYGFarlZEjR5Kenq5v27NnD2+99Rbly5e365qzeeqpp5wOhg8ICMh1fwMDA51uGzt2LFeuXGHKlCn6Ptu0bdtWf33+/Plc88jO39+fWrVqERIS4jTM//3f/5GYmMiTTz6Z427KgIAAZsyYAWitpi+//LK+HiAqKkoP27VrV9566y09r4iICPr16wdoXYypqan5LrcQ4s6TipYQDtSpU0ef7+rAgQO0a9eOkydPupzuK6+8wp49e+yWnTt38tlnn+kVnaLw/PPPU7t2bSpWrEjFihV54403iIyMZNKkSezZs4e6devmiGMbv/XEE09QtmxZfX32uyZnzpwJaN2Ojvj4+DBkyBBAq+ytWLFC3/bWW29hsVjo3Lmzw2kcgoODqV69esF3NhenTp1i1apVeHt7283cbzN8+HCWLFnC3Llz9cpLQTibjuL8+fN8+eWXgPNj1bVrV8LDwwFtPJzZbNa3ZR9L56jcti5spRRJSUkFLrcQ4s6RCUuFcCA8PJw333yTrl27cuDAAY4ePUq7du1Yt26dw0pKfjmasLRq1apERkZisViKpDIHsHDhQurUqYPZbOb69euULVsWHx+fXOPYWntsE7ze7saNG3z//feA8zm7wL5isGHDBvr160dmZqY+nURuNxPc3uLkKtus7pUqVXK4/waDgT59+hQ6fWctcP/73//IzMwEcj9WMTExHDt2jOvXr7N7925atWqVa7o2wcHB+uvsrYZCiJJHWrSEcKJatWps3LhRfzTPyZMnad++vT5gvKi1adOmyNP08fGhQoUKeVay8iMhIQGLxQLkXiGqX7++/to2uP3w4cOkpKQABZvA1VVnzpwBtMlH76Tsz6os6LESQpQuUtESIhchISGsW7eOTp06AdrcUzExMezevbvI88prmoDiZqsogTblhTPZZ+u3TSFx9epVfd2d7OqyPdMxMTGR5OTkO5avK8dKCFG6SEVLiDwEBgayZs0aevbsCWg/nB07dmTr1q1uzdfW9VRShIaG6q9/++03p+Fsg/ABIiMjAW2yVJvCDPov7MOmbd12SinWrVuXa1hnD48ujMIcK1e6pIUQJZdUtITIB19fX5YvX67P55SUlES3bt2Ij493S35nz55l5MiRbkm7sGrUqKHPLL9lyxanLUTZ79Ts1asXoI3Lsj3+Jz4+Ps8HR9u6KG2yd31mHzTuiK0VC9DHPAH6XX6O/PHHH6xcuTLXdAuic+fO+mtHE7Ha2I5Vq1at3PI0ACFE8ZOKlih1sv/QZn9dkHi3/9CDNkh83rx5PPnkk4DWPfTAAw/w9ddf55pu9laL/HrhhRd46KGHChSnsPudWzq3e+qppwCtsjN79myHYXbt2gVoM6zbxiD5+vryt7/9DdAGbz/zzDMO49qOVfauN9C62GytWo5mnl+zZo3+Ovt0Bw0bNqR58+aA1mL13nvv5YibkpLC4MGDGThwoN16200B2cuSnp5u93naXt/+Gbdu3Zro6GgAVqxY4XT8le1Y2c4pm4J8foU5v4QQd45UtESpc+HCBYevCxLPWYuLwWDgP//5Dw888AAAaWlpPProo7z++utOfxxv3rypv3ZUgbvdJ598wtdff+1wnqrcXLx4UX9dkP22sZXz9OnTTsOMGjWK1q1bA/Dqq686vEvyww8/xN/fn48++shu/csvv6xPh/D5558zZMgQffxSUlISTz75pJ73Dz/8wK5du9izZw+gTaNgu1vxnXfeYefOnSilOHToEAMHDrTr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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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4ejoKEaPHi02btyoznd3dxfPPfec0Ol0QqvViosXL4qQkBB1+RdffCHS0tLUfJ9++ml1mSRJokaNGsLb21ts2LBBDBgwwKC8TZs2idzcXHH48GHh4eEhAAgXFxfx888/i8zMTHW/HTx4UHh6egoAwtHRUWzbtk1kZ2erZV65ckWEhYUZ7StlHx85csSo/Vqt1uCtDEWnwYMHq28yICIyhQEaUb6kpCSzf1CVacmSJUbp7ty5U2K6devWqevfvHmzxPUBiLVr14r//Oc/BkFJWaZt27aVqt27d+8WL7/8snjggQeKzc/BwUF4enqK0NBQ0aNHDzFv3jwRFxdnNt8VK1aIRo0aCVdXV9G6dWuxefNmIYQQmZmZol27dsLX11e8/vrrIjc3VwghRFRUlNmylSAtKSlJjBkzRgQEBAgfHx8xePBgERMTI4QQ4tdffxX+/v4iMjJSbN++XQghxODBg03m5+/vL4QQon79+iaXF32VVEpKipg+fboIDw8Xzs7OIjg4WLzwwgvi1q1bxW7b7777TnTp0kV4e3sLNzc30bp1a7F06VIGZ0RUIkmIctzcQkRERESVhvegEREREVkZBmhEREREVoYBGhEREZGVYYBGREREZZabm4v58+ejUaNGCA8PR+fOnbF///4y53P37l1MmDABYWFhCA0NxeDBg3Hjxo1i02zevBlt27ZFWFgYmjdvjuXLl5dYTnZ2Nj7//HM0aNAA165dK3H98pRRoar7KQUiIiKyLdnZ2eKJJ54QjRs3FtevXxdCCLFx40bh5OQkNm7cWOp8rl69KurWrSsGDhwoMjMzhVarFVOmTBEBAQHiwoULJtPMmDFDeHp6ir179wohhDh//rwICAgQL730ksn1MzIyxMKFCw2G8FGe/janrGVUBgZoREREVCavvPKKACB+//13g/lDhw4V7u7u4urVqyXmodVqRevWrUVAQIBIT083mB8SEiKaN2+uDsOj2LJliwAgFixYYDB/6dKlAoDYsGGDUTmpqakiNjZWXL58WWg0mhIDtPKUURk4zEYp6PV63L59G15eXpAkqbqrQ0REVkwIgbS0NNSpUwcaTeXdSZSdna2+/swSzs7OcHV1LfX6165dQ0REBB544AH1tW6Kn3/+GX369MHgwYOxfv36YvP55ptvMGLECLzwwgv47LPPDJZNmzYNH3zwAb744gtMnDgRgPy3ODIyEpcvX8bdu3dRq1Ytdf309HT4+voiMDAQ169fV1+9VlTt2rURGxuLmJgYg/cHKyqijApTJWGgjSvtwKKcOHHixImTMt28ebPS/i5lZWUJdzhUSD0DAwNFVlZWqcueP3++ACDGjRtntCwhIUEAEM7OziI+Pr7YfHr16iUAiG+++cZo2ffffy8A+e0qiiNHjggAomHDhibzU94A8+OPP5ots169egIw34NWEWVUlIKX55FZXl5eAICbN2/C29u7mmtDRETWLDU1FSEhIerfjsqQm5uLTOgwEnXhbMHzfrnQY83dW8jNzS11L9r27dsBAGFhYUbL/Pz8ULduXdy6dQsHDx7EM888YzKPzMxM9R28pvJp1qwZAODEiRNITk6Gr69vseUqaU6fPo3o6Gg8/fTTJtcp6SpYRZRRURiglYKyQ729vRmgERFRqVTFLTFukgOcpfIHaA5CAoQcVBbm4uICFxcXk2lOnDgBAAgODja53NfXF7du3cLJkyfNBmjnz59Hdna22Xx8fX0BAEIInD59Go899lipygWAkydPmlxeGlVRRmlxmA0iIqL7XEhICHx8fNQpKirK5HrZ2dlIT08HUBCsFOXj4wMAiI+PN1teXFyc+rupfJQ8CuejpLGk3JJURRmlxR40IiIiG6WRAAcLOuo0ACCMb+Ex13uWkJCg/u7u7m46z/wHI5QesvLkU/jhCiUfJY0l5ZakKsooLQZoRERENspBkuBgwaVUB5TtFh5nZ2f1d2FmEAjlyVI/P79y51P46VQlHyWNJeWWpCrKKC1e4iQiIqJS8fPzU4OYjIwMk+skJycDAGrWrGk2n8DAQPV3U/koeRTOR0ljSbklqYoySosBGhERkY1ykCyfylSegwMaN24MALh9+7bJde7duwcAeOihh8zm07RpU/UhClP5KHk4OzvjwQcfBAA0b97c4nJLUhVllBYDNCIiIhulXOK0ZCqrnj17AoDRILWAfPN8SkoKPDw80KlTJ7N51KhRAw8//LDZfC5fvgwAeOyxx+Dh4VFiuYXT9O7du7RNMVIVZZQWAzQiIiIqtbFjx0Kj0Zh8Mfrhw4cBAP379zf7oIFi/PjxAFBsPsOGDVPndevWDaGhoTh//rzBU6CAfOnx/PnzCA0NRfv27cvWoEKqoozSYoBGRERko6r6EicAREREYPz48Thz5ozReGCrV6+Gm5sbZs+erc6Ljo5Gu3bt8OmnnxqsO2LECDRr1gwbN240eCoyNzcX69evR9OmTTF8+HB1vqOjI6KioqDX67F27VqDvL755hvo9Xq89957xb6CSavVAgB0Op3J5RVRRkVhgEZERGSjquMSJwAsXLgQrVu3xsSJE5GYmAghBJYsWYKffvoJa9asMRiJ/6OPPsLRo0cxa9YsgzycnJzw7bffQqvVYurUqdBqtcjMzMSYMWOg1+uxefNmODk5GaQZPHgwJkyYgHnz5uH06dMAgAMHDmDWrFl49dVXMXToULN1jomJQWxsLADgyJEjZtezpIyKxGE2iIiIqEw8PDwQHR2Nt99+G23atIFGo0HTpk1x7Ngx9UZ7xdChQ7F//36MHDnSKJ+mTZvi8OHDmD59OiIiIuDk5IQePXrg1KlTBi8qL+yLL75A06ZNMWTIEOTk5KB27dpYs2YN+vbta7a+9evXx+3bt9UetOHDh+ONN97Ajh07TN7wX54yKpokzA32QarU1FT4+PggJSWFr3oiIqJiVcXfDKWMGS6hcLXgVU/ZQo+onBj+fbNC7EEjIiKyURU1UC1ZHwZoRERENqq8N/qr6SuuKlTB+JAAERERkZVhDxoREZGNknvQLLnESdaKARoREZGN4iVO+8VLnERERERWhj1oRERENopPcdovBmhEREQ2SmPhJU5eRrNe3DdEREREVoY9aERERDaKlzjtFwM0IiIiG8WnOO0XL3ESERERWRmbDdC2b9+ODh064Ouvvy52vePHj+PJJ59EaGgoGjZsiGnTpiErK6tqKklERFSJlB40SyayTjYXoG3cuBHt2rXDU089hcOHDxe77k8//YQOHTqga9euiImJwZ9//omDBw+ia9euyMjIqKIaExERVQ7lHjRLJrJONhegtWnTBvv370dERESx6928eRPPP/88unTpgqlTpwIAfHx8sGLFChw5cgRvvPFGVVSXiIio0jjAwh606m4AmWVzAVpYWBhcXFzQsmXLYtebM2cO0tLSMHr0aIP5jRo1Qtu2bfHll1/i/PnzlVlVIiIionKxuQBN4erqanZZXl4eNm3aBADo0KGD0fL27dtDCIHly5dXWv2IiIgqm8bCy5saXuK0WjY7zIZUzEF14MABpKamwsXFBXXr1jVa3qxZMwBAdHR0pdWPiIioslk8zAbjM6tlswFa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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Remove estimations below 0\n", - "P = P.where(P>0)\n", - "P.plot(cmap='turbo', ylim=(0,11))\n", - "plt.title('TKE Production') # remove bogus title\n", - "\n", - "\n", - "\n", - "# Plot difference between production and dissipation\n", - "plt.figure()\n", - "(P - ds_avg['dissipation_rate'].values).plot(ylim=(0,11))\n", - "plt.title('TKE Balance')" + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmgAAAILCAYAAABcj2C9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAACNhUlEQVR4nO3dd3wT9f8H8Ncl3ZuyoQUKIgUKiIAgq2wQ/bmQKUWWIG4RxYKK8EWLioLgRIagyBAFFRBFKHsqe8sSZHfPJE3y+f1xvaNpkq50JOH1fDzu0eTuM3OXy7s3PicJIQSIiIiIyGloKroBRERERGSJARoRERGRk2GARkRERORkGKARERERORkGaEREREROhgEaERERkZNhgEZERETkZBigERERETkZBmhEREREToYBGhE5DYPBgOXLl6NLly7o2rVrRTeHiKjCMECjO5okSQ5Ns2fPxp49ewpNt3btWrXOJ554wm664cOHq+kOHjyIcePGoVWrViVqW0pKSpE+g++//x7Dhw9H9erV7Zbl5eWFSpUq4e6778YjjzyC2bNnIzExsVTXxSeffIImTZpg8ODB2Lp1K/gUOiK6owmiOxgA0aZNG7Ft2zaRkpIicnJyRE5Ojvjzzz8FAAFADBs2TJ2fnZ0tTp8+LV599VUhSZKYNWuWEEKI7OxssXPnTtGwYUM1X5UqVcRvv/0mMjMzhdlsVus0Go3ixIkTwt/fXwAQWq1WjBs3Thw8eFBkZWVZtdFsNouuXbuq5X788cfi8uXLVtM///wj/vzzTzVtcnJysT6L69evCx8fH7WeVatWiVu3bomcnByRnp4uDh8+LGbMmCGqVq0qAAh/f38xb948Rz5+CzqdThiNRtGkSRMBQERHR5da2URErsajQqJCIidRqVIl/P7776hUqZLFfK1Wq76WJAkeHvJXxcPDA3fffTdmzpwJvV6vpvHx8UH79u0xevRoTJw4EQDQv39/9OnTx6pOrVYLX19f6PV61KhRA6tWrUKHDh3stlGSJLRq1Qrx8fFqm8PCwmymveuuu9C+fXtEREQU8RO4rXr16mjcuDEOHjwIAGjVqhWqVKkCAAgICEDz5s3RvHlzjBgxAt26dcPx48cxZswYSJKE0aNHF7u+/Ly9vQEATZs2xYkTJxwuj4jIlfEUJ93R+vXrZxWcFdWYMWOs5lWuXNnm67wyMjLQr18/REREYO/evQUGZwo/P78it8vX1xf9+vUrcvq8AgMDC01TrVo1LFu2TH3/2muvISMjo0T12aIEakREdzIGaHRHe+aZZ0qct3HjxlYXsuc98pb3tSIjIwN9+/ZFVlYWtm7dijp16hSpLkmSitW28ePHw9/fv1h5ilNPs2bN0LhxYwBASkoKdu7cWey67LH1uRER3Wl4ipPuaK1atSpxXg8PD7Ro0aLI6ZOTk/HAAw8gMzMTW7duRbVq1Upcd2EaNGhQZmUr8h7VS0tLK/P6iIjuJDyCRlQOrly5gs6dO8NgMCA+Pr7MgrMNGzbgm2++KZOy88rIyMCpU6fU940aNbJKI4TA4sWLER0djUqVKsHLywu1atXCI488gj///LPEdSckJODVV19FZGQkfH19ERAQgEaNGuHll1/G9evXrdLrdDosXrwY9913n3qXbHJyMl599VWEhYUhMDAQDz74IC5evGi3TrPZjIULF6p98fHxQePGjTF16lRkZ2fbzffzzz+jb9++qFq1Kry9vVG/fn08//zzuHr1aon7T0R3BgZoRGXsxIkTuP/++xEYGIj4+Hj1wvuycPTo0TIrO6///e9/yMzMBABER0ejefPmVmliYmIwfPhwRERE4MSJE/j333/x9NNP45dffkGvXr2wbt26Ytd78eJF3HPPPfjss88wbdo03LhxAzt37kTlypXxySefoH379mq7AGD69Olo1qwZhg8fjv379wOQ10erVq2wePFiZGVlISMjA+vXr0fv3r1hNBqt6kxISEB0dDQ+/vhjTJ06Ff/99x/2798PrVaLd955Bx07dkR6erpFnpycHMTExGDmzJmYPHkyzp07hx07dqBOnTr47LPP0KJFCxw+fLjY/SeiO0hF30ZK5Izi4+PV4SaeeuqpIudbtGiRmm/KlClix44dolKlSqJr164iPT29xO2ZMmWKWu6iRYtspjl48KCoVauW3eVFER0drdZz7Ngxi2VGo1EcPHhQxMTEqGkiIyPFpUuXrMr59ddf1TQZGRkWyzp06CAAiJ49e9psw1NPPWV3mI1+/foJAOKJJ56wmP/PP/+o9S1dulSdn56eLrKyskRoaKhaZteuXcWmTZvUNK+99pqa94cffrAoV6/Xi3bt2olKlSqJq1evWixbuHChmm/y5MkWy1566SURFRVlNWxKZmamCAsLEwBEo0aN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h4dYs2aNOhq/0WgU99xzj5pXo9GI4OBgUbNmTbF582bRunVri89+586dQqfTibVr16rtDQ0NFXv37hU6nU5dbz///LO6PDg4WOzevVvo9Xq1L/v37xdVqlSxWlcARL169cQ///xj1f/MzEzxwAMP2MwDQEyYMKFY64aI7jwM0IhyJScn2/1BVaYvvvjCKt/u3bsLzffrr78WKz0AsW3bNjF16lTRpUuXIqXPP509e7ZI/f7xxx/Fs88+qz6CyN6k1WpFUFCQaNiwoXjooYfE7Nmz7T6+ymQyibi4OFGvXj3h6+srOnXqJLZs2SKEEOLq1asiMjJSVKtWTXzwwQdqnlGjRtmst3Llymqa//77Tzz++OMiJCREVKlSRTz99NPi1q1bQgghvv32WxEUFCRat24t9uzZI4QQom3btjbLbNWqlRBC2O1rv379LPpz7do19TPy8vIS9evXF2+88YZITk62+7maTCaxYMECcf/99wt/f3/h7+8vOnbsKFatWlWk9UJEdzZJiGJe3EJEREREZYrXoBERERE5GQZoRERERE6GARoRERGRk2GARkRERORkGKARERERORkGaEREREROxqOiG+AKzGYzrl69isDAQEiSVNHNISIiJyaEQHp6OmrVqqU+o7Us6HQ6GAwGh8vx8vLiUy2cEAO0Irh69SrCw8MruhlERORCLl++jLCwsDIpW6fTobJvALJQ+KPfClOjRg1cuHCBQZqTYYBWBIGBgQDkL1tQUFAFt4aIiJxZWloawsPD1d+OsmAwGJAFE4ahNrwcuFrJADOWXL8Cg8HAAM3JMEArAuW0ZlBQEAM0IiIqkvK4JMZX0sJLKnmAphWS/IAzcjq8SYCIiIjIyfAIGhERkYvSSIDWgQN1GoBH0JwUAzQiIiIXpZUkaB04laoFRyZwVjzFSURERORkeASNiIjIRWkdPMWpLb2mUCljgEZEROSieIrTffEUJxEREZGT4RE0IiIiF8VTnO6LARoREZGL4ilO98VTnEREREROhkfQiIiIXJQEx4608PiZ82KARkRE5KJ4itN9MUAjIiJyUbxJwH3xGjQiIiIiJ8MAjYiIyEXJR9AkB6aS120wGDBjxgw0atQIDRo0QHR0NLZt21bscq5fv46xY8eifv36iIiIwMCBA3Hp0qUC86xatQpt2rRB/fr10bx5c8yfP7/QenQ6HT7/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QCMiInJRDNDcF69BIyIiInIyPIJGRETkoviwdPfFAI2IiMhF8RSn++IpTiIiIiInwyNoRERELkoIB4+g8RSn02KARkRE5KKEWTg0lhlPcTovnuIkIiIicjI8gkZEROSi+LB098UAjYiIyEXxLk73xVOcRERERE6GR9CIiIhclNksrB+cXNz85JQYoBEREbkoYTZBmE0O5SfnxACNiIjIRTFAc1+8Bo2IiIjIyfAIGhERkYsSZrODR9DMpdgaKk2S4CAohUpLS0NwcDBSU1MRFBRU0c0hIiInVh6/GUodtQZ8Do2Xb4nLMRuycXXls+X2+yaEwLx58/Dpp58iKysLoaGhmDx5Mh599NFil5WWloZ3330XP/74I8xmMyIjI/HBBx8gKirKbp7Nmzdj6tSpuHTpEry9vTFixAhMmDABWq3Wbh6TyYTly5cjLi4On376Kbp06VJgu0pShy08xUlERERlTgiBmJgYTJs2Dd9//z3OnTuHjz/+GEOGDMHHH39crLKSkpLQoUMH7NmzB/v27cP58+fRo0cPtG3bFjt27LCZ58svv0SfPn3w3HPP4cKFC4iPj8fChQvRv39/mEzWRyGNRiO+/vprNGvWDEOHDsXx48cLbVdx6ygIAzQiIiIXJYRJvVGgRJMov5sEPvnkEyxduhSzZs1Cs2bNAACdOnXCyy+/jNdeew179uwpclkjR47EmTNnsHTpUoSGhgIAxo8fjxYtWmDAgAFISUmxSP/333/j+eefx+jRozFgwAAAQM2aNTF37lysXr0aH330kc16evfujZ07dyIkJKTQNpW0DnsYoBEREbkoh4IzB+8ALY709HRMmzYNwcHBePzxxy2WxcTEwGw24+WXXy5SWTt27MDPP/+MHj16ICwszKqsa9euYcaMGRbzJ06cCJPJhBEjRljM79WrF6pXr4533nkHycnJFss8PDxQp04dVKpUCXfffXeh7SpJHQVhgEZERERlav369UhOTkabNm3g4WF5f2JkZCSCg4Oxd+9eHD16tNCyli5dCgBo37691bJ27doBABYtWqSeUrx+/To2b94MHx8f3HvvvVZ52rZti+zsbHz33Xd26/Tx8SmwTaVRR34M0IiIiFyUqxxBW7duHQCgfv36VsskSVIv7I+Pj3eoLKWcmzdvqteMrV+/HkII1KlTx+aF+srp1oLqliSpwDaVRh35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", + "text/plain": [ + "
" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "interpreter": { - "hash": "5cfd453a1a1cce2f32ea80f99ff7da863344217116d39185ac62b248c2577445" - }, - "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" + }, + "metadata": {}, + "output_type": "display_data" } + ], + "source": [ + "# Remove estimations below 0\n", + "P = P.where(P > 0)\n", + "P.plot(cmap=\"turbo\", ylim=(0, 11))\n", + "plt.title(\"TKE Production\") # remove bogus title\n", + "\n", + "\n", + "# Plot difference between production and dissipation\n", + "plt.figure()\n", + "(P - ds_avg[\"dissipation_rate\"].values).plot(ylim=(0, 11))\n", + "plt.title(\"TKE Balance\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "interpreter": { + "hash": "5cfd453a1a1cce2f32ea80f99ff7da863344217116d39185ac62b248c2577445" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" }, - "nbformat": 4, - "nbformat_minor": 4 + "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.10.13" + } + }, + "nbformat": 4, + "nbformat_minor": 4 } diff --git a/examples/adv_example.ipynb b/examples/adv_example.ipynb index 3773578c4..1fe898ede 100644 --- a/examples/adv_example.ipynb +++ b/examples/adv_example.ipynb @@ -1,915 +1,922 @@ { - "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Reading ADV Data with MHKiT\n", - "\n", - "This example presents a simplified workflow for analyzing Acoustic Doppler Velocimetry (ADV) data using MHKiT. MHKiT incorporates the DOLfYN codebase as a module to handle ADV and Acoustic Doppler Current Profiler (ADCP) data.\n", - "\n", - "A standard ADV data analysis workflow can be segmented into the following steps:\n", - "\n", - "1. **Raw Data Review**: Evaluate the original data by verifying timestamps and assessing the quality of velocity data, specifically looking for any data spikes.\n", - "\n", - "2. **Data Cleaning**: Identify and eliminate any spurious data points. If needed, bad data points can be replaced with interpolated values.\n", - "\n", - "3. **Data Rotation**: Transform the data into the principal flow coordinates, which are the streamwise, cross-stream, and vertical directions.\n", - "\n", - "4. **Data Averaging**: Aggregate the data into bins or ensembles, each of which spans a predefined time length, typically between 5 and 10 minutes.\n", - "\n", - "5. **Statistical Analysis**: Compute turbulence statistics such as turbulence intensity, Turbulent Kinetic Energy (TKE), and Reynolds stresses for the observed flow field.\n", - "\n", - "Start your analysis by importing the necessary tools:" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\Users\\mcve343\\Anaconda3\\lib\\site-packages\\xarray\\backends\\cfgrib_.py:29: UserWarning: Failed to load cfgrib - most likely there is a problem accessing the ecCodes library. Try `import cfgrib` to get the full error message\n", - " warnings.warn(\n" - ] - } - ], - "source": [ - "from mhkit import dolfyn\n", - "from mhkit.dolfyn.adv import api" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Read Raw Instrument Data" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "DOLfYN currently only carries support for the Nortek Vector ADV. The example loaded here is a short clip of data from a test deployment to show DOLfYN's capabilities.\n", - "\n", - "Start by reading in the raw datafile downloaded from the instrument. The `dolfyn.read` function reads the raw file and dumps the information into an xarray Dataset, which contains three groups of variables:\n", - "\n", - "1. Velocity, amplitude, and correlation of the Doppler velocimetry\n", - "2. Measurements of the instrument's bearing and environment\n", - "3. Orientation matrices DOLfYN uses for rotating through coordinate frames." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reading file data/dolfyn/vector_data01.VEC ...\n" - ] - } - ], - "source": [ - "ds = dolfyn.read('data/dolfyn/vector_data01.VEC')" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "There are two ways to see what's in a Dataset. The first is to simply type the dataset's name to see the standard xarray output. To access a particular variable in a dataset, use dict-style (`ds['vel']`) or attribute-style syntax (`ds.vel`). See the [xarray docs](http://xarray.pydata.org/en/stable/getting-started-guide/quick-overview.html) for more details on how to use the xarray format." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
<xarray.Dataset>\n",
-              "Dimensions:              (x1: 3, x2: 3, time: 122912, dir: 3, beam: 3,\n",
-              "                          earth: 3, inst: 3)\n",
-              "Coordinates:\n",
-              "  * x1                   (x1) int32 1 2 3\n",
-              "  * x2                   (x2) int32 1 2 3\n",
-              "  * time                 (time) datetime64[ns] 2012-06-12T12:00:02.968749046 ...\n",
-              "  * dir                  (dir) <U1 'X' 'Y' 'Z'\n",
-              "  * beam                 (beam) int32 1 2 3\n",
-              "  * earth                (earth) <U1 'E' 'N' 'U'\n",
-              "  * inst                 (inst) <U1 'X' 'Y' 'Z'\n",
-              "Data variables: (12/15)\n",
-              "    beam2inst_orientmat  (x1, x2) float64 2.709 -1.34 -1.364 ... -0.3438 -0.3499\n",
-              "    batt                 (time) float32 13.2 13.2 13.2 13.2 ... nan nan nan nan\n",
-              "    c_sound              (time) float32 1.493e+03 1.493e+03 ... nan nan\n",
-              "    heading              (time) float32 5.6 10.5 10.51 10.52 ... nan nan nan nan\n",
-              "    pitch                (time) float32 -31.5 -31.7 -31.69 ... nan nan nan\n",
-              "    roll                 (time) float32 0.4 4.2 4.253 4.306 ... nan nan nan nan\n",
-              "    ...                   ...\n",
-              "    orientation_down     (time) bool True True True True ... True True True True\n",
-              "    vel                  (dir, time) float32 -1.002 -1.008 -0.944 ... nan nan\n",
-              "    amp                  (beam, time) uint8 104 110 111 113 108 ... 0 0 0 0 0\n",
-              "    corr                 (beam, time) uint8 97 91 97 98 90 95 95 ... 0 0 0 0 0 0\n",
-              "    pressure             (time) float64 5.448 5.436 5.484 5.448 ... 0.0 0.0 0.0\n",
-              "    orientmat            (earth, inst, time) float32 0.0832 0.155 ... -0.7065\n",
-              "Attributes: (12/39)\n",
-              "    inst_make:                   Nortek\n",
-              "    inst_model:                  Vector\n",
-              "    inst_type:                   ADV\n",
-              "    rotate_vars:                 ['vel']\n",
-              "    n_beams:                     3\n",
-              "    profile_mode:                continuous\n",
-              "    ...                          ...\n",
-              "    recorder_size_bytes:         4074766336\n",
-              "    vel_range:                   normal\n",
-              "    firmware_version:            3.34\n",
-              "    fs:                          32.0\n",
-              "    coord_sys:                   inst\n",
-              "    has_imu:                     0
" - ], - "text/plain": [ - "\n", - "Dimensions: (x1: 3, x2: 3, time: 122912, dir: 3, beam: 3,\n", - " earth: 3, inst: 3)\n", - "Coordinates:\n", - " * x1 (x1) int32 1 2 3\n", - " * x2 (x2) int32 1 2 3\n", - " * time (time) datetime64[ns] 2012-06-12T12:00:02.968749046 ...\n", - " * dir (dir) : Nortek Vector\n", - " . 1.07 hours (started: Jun 12, 2012 12:00)\n", - " . inst-frame\n", - " . (122912 pings @ 32.0Hz)\n", - " Variables:\n", - " - time ('time',)\n", - " - vel ('dir', 'time')\n", - " - orientmat ('earth', 'inst', 'time')\n", - " - heading ('time',)\n", - " - pitch ('time',)\n", - " - roll ('time',)\n", - " - temp ('time',)\n", - " - pressure ('time',)\n", - " - amp ('beam', 'time')\n", - " - corr ('beam', 'time')\n", - " ... and others (see `.variables`)" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ds_dolfyn = ds.velds\n", - "ds_dolfyn" - ] - }, + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Reading ADV Data with MHKiT\n", + "\n", + "This example presents a simplified workflow for analyzing Acoustic Doppler Velocimetry (ADV) data using MHKiT. MHKiT incorporates the DOLfYN codebase as a module to handle ADV and Acoustic Doppler Current Profiler (ADCP) data.\n", + "\n", + "A standard ADV data analysis workflow can be segmented into the following steps:\n", + "\n", + "1. **Raw Data Review**: Evaluate the original data by verifying timestamps and assessing the quality of velocity data, specifically looking for any data spikes.\n", + "\n", + "2. **Data Cleaning**: Identify and eliminate any spurious data points. If needed, bad data points can be replaced with interpolated values.\n", + "\n", + "3. **Data Rotation**: Transform the data into the principal flow coordinates, which are the streamwise, cross-stream, and vertical directions.\n", + "\n", + "4. **Data Averaging**: Aggregate the data into bins or ensembles, each of which spans a predefined time length, typically between 5 and 10 minutes.\n", + "\n", + "5. **Statistical Analysis**: Compute turbulence statistics such as turbulence intensity, Turbulent Kinetic Energy (TKE), and Reynolds stresses for the observed flow field.\n", + "\n", + "Start your analysis by importing the necessary tools:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Quality Control" - ] - }, + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\mcve343\\Anaconda3\\lib\\site-packages\\xarray\\backends\\cfgrib_.py:29: UserWarning: Failed to load cfgrib - most likely there is a problem accessing the ecCodes library. Try `import cfgrib` to get the full error message\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "from mhkit import dolfyn\n", + "from mhkit.dolfyn.adv import api" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Read Raw Instrument Data" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "DOLfYN currently only carries support for the Nortek Vector ADV. The example loaded here is a short clip of data from a test deployment to show DOLfYN's capabilities.\n", + "\n", + "Start by reading in the raw datafile downloaded from the instrument. The `dolfyn.read` function reads the raw file and dumps the information into an xarray Dataset, which contains three groups of variables:\n", + "\n", + "1. Velocity, amplitude, and correlation of the Doppler velocimetry\n", + "2. Measurements of the instrument's bearing and environment\n", + "3. Orientation matrices DOLfYN uses for rotating through coordinate frames." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "scrolled": true + }, + "outputs": [ { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "ADV velocity data tends to have spikes due to Doppler noise, and the common way to \"despike\" the data is by using the phase-space algorithm by Goring and Nikora (2002). DOLfYN integrates this function using a 2-step approach: create a logical mask where True corresponds to a spike detection, and then utilize an interpolation function to replace the spikes." - ] - }, + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading file data/dolfyn/vector_data01.VEC ...\n" + ] + } + ], + "source": [ + "ds = dolfyn.read(\"data/dolfyn/vector_data01.VEC\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are two ways to see what's in a Dataset. The first is to simply type the dataset's name to see the standard xarray output. To access a particular variable in a dataset, use dict-style (`ds['vel']`) or attribute-style syntax (`ds.vel`). See the [xarray docs](http://xarray.pydata.org/en/stable/getting-started-guide/quick-overview.html) for more details on how to use the xarray format." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Percent of data containing spikes: 0.73%\n" - ] - } + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset>\n",
+       "Dimensions:              (x1: 3, x2: 3, time: 122912, dir: 3, beam: 3,\n",
+       "                          earth: 3, inst: 3)\n",
+       "Coordinates:\n",
+       "  * x1                   (x1) int32 1 2 3\n",
+       "  * x2                   (x2) int32 1 2 3\n",
+       "  * time                 (time) datetime64[ns] 2012-06-12T12:00:02.968749046 ...\n",
+       "  * dir                  (dir) <U1 'X' 'Y' 'Z'\n",
+       "  * beam                 (beam) int32 1 2 3\n",
+       "  * earth                (earth) <U1 'E' 'N' 'U'\n",
+       "  * inst                 (inst) <U1 'X' 'Y' 'Z'\n",
+       "Data variables: (12/15)\n",
+       "    beam2inst_orientmat  (x1, x2) float64 2.709 -1.34 -1.364 ... -0.3438 -0.3499\n",
+       "    batt                 (time) float32 13.2 13.2 13.2 13.2 ... nan nan nan nan\n",
+       "    c_sound              (time) float32 1.493e+03 1.493e+03 ... nan nan\n",
+       "    heading              (time) float32 5.6 10.5 10.51 10.52 ... nan nan nan nan\n",
+       "    pitch                (time) float32 -31.5 -31.7 -31.69 ... nan nan nan\n",
+       "    roll                 (time) float32 0.4 4.2 4.253 4.306 ... nan nan nan nan\n",
+       "    ...                   ...\n",
+       "    orientation_down     (time) bool True True True True ... True True True True\n",
+       "    vel                  (dir, time) float32 -1.002 -1.008 -0.944 ... nan nan\n",
+       "    amp                  (beam, time) uint8 104 110 111 113 108 ... 0 0 0 0 0\n",
+       "    corr                 (beam, time) uint8 97 91 97 98 90 95 95 ... 0 0 0 0 0 0\n",
+       "    pressure             (time) float64 5.448 5.436 5.484 5.448 ... 0.0 0.0 0.0\n",
+       "    orientmat            (earth, inst, time) float32 0.0832 0.155 ... -0.7065\n",
+       "Attributes: (12/39)\n",
+       "    inst_make:                   Nortek\n",
+       "    inst_model:                  Vector\n",
+       "    inst_type:                   ADV\n",
+       "    rotate_vars:                 ['vel']\n",
+       "    n_beams:                     3\n",
+       "    profile_mode:                continuous\n",
+       "    ...                          ...\n",
+       "    recorder_size_bytes:         4074766336\n",
+       "    vel_range:                   normal\n",
+       "    firmware_version:            3.34\n",
+       "    fs:                          32.0\n",
+       "    coord_sys:                   inst\n",
+       "    has_imu:                     0
" ], - "source": [ - "# Clean the file using the Goring+Nikora method:\n", - "mask = api.clean.GN2002(ds.vel, npt=5000)\n", - "# Replace bad datapoints via cubic spline interpolation\n", - "ds['vel'] = api.clean.clean_fill(ds['vel'], mask, npt=12, method='cubic', maxgap=None)\n", - "\n", - "print('Percent of data containing spikes: {0:.2f}%'.format(100*mask.mean()))\n", - "\n", - "# If interpolation isn't desired:\n", - "ds_nan = ds.copy(deep=True)\n", - "ds_nan.coords['mask'] = (('dir','time'), ~mask)\n", - "ds_nan['vel'] = ds_nan['vel'].where(ds_nan['mask'])" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Coordinate Rotations" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now that the data has been cleaned, the next step is to rotate the velocity data into true East, North, Up (ENU) coordinates.\n", - "\n", - "ADVs use an internal compass or magnetometer to determine magnetic ENU directions. The `set_declination` function takes the user supplied magnetic declination (which can be looked up online for specific coordinates) and adjusts the orientation matrix saved within the dataset.\n", - "\n", - "Instruments save vector data in the coordinate system specified in the deployment configuration file. To make the data useful, it must be rotated through coordinate systems (\"beam\"<->\"inst\"<->\"earth\"<->\"principal\"), done through the `rotate2` function. If the \"earth\" (ENU) coordinate system is specified, DOLfYN will automatically rotate the dataset through the necessary coordinate systems to get there. The `inplace` set as true will alter the input dataset \"in place\", a.k.a. it not create a new dataset." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "# First set the magnetic declination\n", - "dolfyn.set_declination(ds, declin=10, inplace=True) # declination points 10 degrees East\n", - "\n", - "# Rotate that data from the instrument to earth frame (ENU):\n", - "dolfyn.rotate2(ds, 'earth', inplace=True)" + "text/plain": [ + "\n", + "Dimensions: (x1: 3, x2: 3, time: 122912, dir: 3, beam: 3,\n", + " earth: 3, inst: 3)\n", + "Coordinates:\n", + " * x1 (x1) int32 1 2 3\n", + " * x2 (x2) int32 1 2 3\n", + " * time (time) datetime64[ns] 2012-06-12T12:00:02.968749046 ...\n", + " * dir (dir) : Nortek Vector\n", + " . 1.07 hours (started: Jun 12, 2012 12:00)\n", + " . inst-frame\n", + " . (122912 pings @ 32.0Hz)\n", + " Variables:\n", + " - time ('time',)\n", + " - vel ('dir', 'time')\n", + " - orientmat ('earth', 'inst', 'time')\n", + " - heading ('time',)\n", + " - pitch ('time',)\n", + " - roll ('time',)\n", + " - temp ('time',)\n", + " - pressure ('time',)\n", + " - amp ('beam', 'time')\n", + " - corr ('beam', 'time')\n", + " ... and others (see `.variables`)" ] - }, + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds_dolfyn = ds.velds\n", + "ds_dolfyn" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Quality Control" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ADV velocity data tends to have spikes due to Doppler noise, and the common way to \"despike\" the data is by using the phase-space algorithm by Goring and Nikora (2002). DOLfYN integrates this function using a 2-step approach: create a logical mask where True corresponds to a spike detection, and then utilize an interpolation function to replace the spikes." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": false + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Streamwise Direction')" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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Rx99FBkZGRg5cqTdTIstXbp0wTPPPIMNGzbg8OHDAIBJkyZBoVDgwoULVmVJdxUWFmLhwoUICAjAkiVLXDrHTTfdhJdffhkxMTFo37693eMmT56MV155BStXrsQLL7xg9zhHPx8hISEYPHgwvv76a7z22msICgoCoL+z7r///S9at26NLl26OP8FETVTDJSIfNikSZPQunVrTJ06Fd26dYNOp8ORI0fw+uuvIzQ0FIsXLzYe26tXL3z++edYv349OnTogMDAwHrn94SGhuI///kP5s6di8LCQsyaNQvx8fG4du0a/vjjD1y7dg0rV64EoP+lvWbNGnTr1g29e/fGoUOH8Oqrr6J169Ye/5rj4+PRs2dPbN68GWPGjDHOExo/fjwKCwtRWFiIN954o95zHD16FA888ABuvfVWdO7cGUqlEr/++iuOHj2KJ554AoD+lvkXXngBTz/9NC5evIgbbrgBUVFRyM3NxYEDBxASEoLnn3++wfWeO3cO+/btg06nMw6c/PDDD1FaWopPPvnEatyBox566CFs2LABI0eOxJIlS9C7d2/odDpkZmZi8+bNeOSRRzB48GCMGDECc+bMwUsvvYTc3FzcdNNNUKlUSEtLQ3BwMP76178CcO7z8corr2DChAkYM2YMli5dCqVSiXfeeQfHjx/HunXrbGbAiHwVAyUiH/bMM8/g22+/xfLly5GTkwO1Wo2kpCSMHz8eTz75pLFJGgCef/555OTk4J577kFZWRnatWvX4FYZs2fPRtu2bbFs2TLcd999KCsrQ3x8PPr27Yt58+YZj/v3v/+NgIAAvPLKKygvL8d1112Hr7/+2lgW8zRpWKNpH1Lbtm3RuXNnnDt3rt7+JABITExEx44d8c477+Dy5csQBAEdOnTA66+/bgwcAP3IhNTUVPz73//GunXroFarkZiYiIEDB2LhwoUOrVUab6BQKBAREYEuXbpg/vz5uPfee90q6YWEhGDXrl345z//iffeew/p6ekICgpC27ZtMX78eOMcJEA/z+i6667Dhx9+iDVr1iAoKAipqalmoxec+XyMGjUKv/76K/7+979j3rx50Ol06NOnD/73v/9ZNeoT+TpO5iYiIiKyg+MBiIiIiOxgoERERERkBwMlIiIiIjsYKBERERHZwUCJiIiIyA4GSkRERER2cI6SG3Q6HbKzsxEWFsYBa0RERD5CFEWUlZUhOTm5wX0bGSi5ITs7G23atPH2MoiIiMgFly9fbnAHAQZKbggLCwOg/0aHh4d7eTVERETkiNLSUrRp08b4e7w+DJTcIJXbwsPDGSgRERH5GEfaZtjMTURERGQHAyUiIiIiOxgoEREREdnBQImIiIjIDgZKRERERHYwUCIiIiKyg4ESERERkR0MlIiIiIjsYKBEREREZAcDJSIiIiI7GCgRERER2cFAyQUrVqxAamoqBg4c6O2lEBERUSMSRFEUvb0IX1VaWoqIiAiUlJRwU1wbDmcWYf2By5jSOwmjusR5ezlEREQAnPv9rWiiNVELcuZqGV7bfAZbTuYCAH45lYs9T4xFYIDcyysjIiJyDgMl8pjLhZVYvuUsNh7JgigCMgEIVipQUFGDLw9dwZwh7by9RCIiIqewR4nclldWjWe/PY6xr2/H12n6IGlKr0RsXjIKj07qCgB4f+dFaLQ6L6+UiIjIOcwokctKqmrx3s4L+Gj3JVTVagEAIzrH4rFJ3dCrdQQAoFVkEP699RwyCyvx0/GrmNon2ZtLJiIicgoDJXJaVY0Wa367hFU7LqCkqhYA0K9tJB6b1A1DO8aYHRuklGPu0BQs/+UsVu24gJt6J0EQBG8sm4iIyGkMlMhhtVodPj94Gf/Zeg55ZWoAQJeEUCyd2BUTUhPsBkB3Dm2HVTsu4ER2KXafz8eIzrwDjoiIfAMDJWqQTifif39k440tZ5FZWAkAaB0VhIcndMH0vq0gl9WfIYoKUeJPg9pg9Z5LWLn9AgMlIiLyGQyUyC5RFPHr6Ty8uukMTl8tAwDEhqrw17GdcMegtlAqHL8X4O4RHbB2bwZ+u1CAo1eK0bt1ZCOtmoiIyHMYKJFN+y8WYNmmMziUUQQACAtUYOGojrhreAqClc5/bFpFBmFan2R8nZaFVTsu4J2/9Pf0komIiDyOgRKZOZ5Vglc3ncGOs9cAAIEBMswb1h4LR3VAZLDSrXPfN6ojvk7Lwk/HryI9vwLtY0M8sWQiIqJGw0CJAADp+RV4ffMZfH80BwCgkAn406A2+OvYzkgID/TINbomhmFst3j8ejoP7+28iFdm9vLIeYmIiBoLA6UWLqekCm9tPYcvfr8CrU6EIADT+iTj4Qld0C7G8xmfhaM64tfTedhw+AqWTOiM+DDPBGFERESNgYFSC1VUUYN3tp/Hx3szUKPRT8we1y0eSyd1Rfekxtvgd2BKFK5rG4nDmcVYvecSHr+hW6Ndi4iIyF0MlFqYcrUGH+5Kx/u7LqJcrQEADGofjccmdcWAlOhGv74gCFg4qiPuXXsI/92XgftHd0RYYECjX5eIiMgVDJRaCLVGi0/3ZWLFtvMoqKgBAPRIDsejk7piVJe4Jp2WPb57AjrFh+J8Xjk+25+J+0Z1bLJrExEROYOBkp/TaHX4Oi0L//7lHLKKqwAA7WND8PCELrixVxJkDQyLbAwymYB7R3bAY18dxYe70zFveApUCnmTr4OIiKghDJT8lCiK+Pn4Vby2+QwuXKsAACSGB2Lx+M6Y1b81AuSOD4tsDDf3bYU3Np/F1dJqfJOWhdsHtvXqeoiIiGxhoOSHdp/Lx7JNp3H0SgkAIDI4APeP7og7h6YgMKB5ZG6UChkWXN8e//jxFN7deRG39m/jlewWOUcURehENLhtDRGRv2Cg5EeOXC7Gsp9P47cLBQCAYKUcd1/fHneP7IDwZtgwfcfgtvjPr+dw8VoFNp/MxQ09E729JKqHTidixjt7UFJVi//99fpm+ZkiIvI0Bkp+4GxuGV7bdAabT+YCAJRyGf4ypC0WjemE2FCVl1dnX6hKgTlD22HFtgtYteMCJvVIaNKmcnLO4cwi/GHIUn64Kx1LJnTx8oqIiBofAyUfdrmwEm/+cg4b065AJwIyAbjlutZYPL4zWkcFe3t5Dpk3rD3e35WOI5eLsT+9EEM6xHh7SWTHT8evGv/+0e50zBuWgqgQ97a1ISJq7hgo+aBrZWqs2HYen+7PQK1WBADc0CMRSyd1Qaf4MC+vzjlxYSrc2r81Pt2fiVU7LjBQaqakmwMAIEQpR5lag/d2XeTAUCLye9699YmcUlpdi9c2ncGoV7dhzW+XUKsVcX2nWHy7aDhWzenvc0GS5N6RHSATgO1nruFUTqm3l0M2HL1SgqziKgQr5Vg2qw8AYM2eS7hWpvbyyoiIGhcDJR9QVaPFqh0XMOJf2/D2tvOorNGiT5tIfHb3YPz37sHo0ybS20t0S7uYEEzulQQAeHfHBS+vhmz58bh+s+Qx3eIxpVci+raJRFWtFiu3878XEfk3BkrNWK1Wh0/3Z2D0a9vwz59Oo6SqFp3jQ/HunP745v5hGNYp1ttL9Jj/M0zn/u5oDi4XVnp5NWTKtOw2pWcSBEHAIxP1jdz/3Z+BnJIqby6PiKhRMVBqhnQ6Ed8eycKEN3bg6Y3HkVuqRqvIILx+ax/8/NBITOqR6Hd3h/VsFYHrO8VCqxPx4e50by+HTJzMKUVGQSVUChlGd40DAFzfKRaD2kejRqPD27+e9/IKiYgaDwOlZuiF709i8edHcKmgErGhSjw3NRW/Lh2FW/q39utBfwsNWaXPD2ai0LAfHXnfT8f02aTRXeMQotLf/yEIAh4xjAdYf/Ays4BE5LcYKDVDs/q3RnigAksndsGOR8dg3vD2LWIvtOGdYtCzVTiqa3X4+LdL3l4OQV92k/qTphj6yCSDO8RgROdYaHQi/r31nDeWR0TU6BgoNUM9W0Vg31Pj8MDYzsZ/wbcEgiAYs0of772EyhqNl1dE5/LKcfFaBZRyGcZ2i7d6/ZGJXQEAXx++ggvXypt6eUREjY6BUjMVrGw5AZKpyT2T0C4mGMWVtVh/8LK3l9PiSWW3EZ1jEWZjy5K+bSIxvns8dCLw71+YVSIi/8NAiZoVuUzAPSM6AAA+2JWOWq3Oyytq2X4ylN3q24dP2srku6PZOH2Vc7CIyL8wUKJmZ1b/1ogNVSKruArfH8329nJarIvXynH6ahkUMgETUhPsHtcjOQI39kqCKALLt5xtwhUSETU+BkrU7AQGyHHX8PYAgHd3XIQoil5eUcsk7e02rFMsIoPr39Nt8fjOAIAtJ3PZW0ZEfoWBEjVLswe3Q4hSjtNXy7D9zDVvL6dFkspuk+spu0m6JIQhNlQFnQicuVrW2EsjImoyDJRcsGLFCqSmpmLgwIHeXorfiggOwJ8HtwUArOS2Jk3ucmEljmeVQiYAE+spu5lKTQ4HoB9QSUTkLxgouWDRokU4efIkDh486O2l+LUF13dAgFzAgfRCHM4s8vZyWhQpmzSkQwxiQlUOvSc1yRAoZTNQIiL/wUCJmq3EiEDc3LcVAGAVN19tUj8axgI4UnaTMKNERP6IgRI1a/eN0o8K2HIqF+fzONCwKWQXV+HI5WIIAjCphxOBkiGjdOZqGbQ6NuATkX9goETNWqf4MExITYAoAu/tZFapKfxsuNttQLsoxIcHOvy+9rEhCAyQobJGi4yCisZaHhFRk2KgRM2etK3JxrQsXC2p9vJq/J8UKE3umdTAkebkMgFdE1l+IyL/wkCJmr3+7aIwKCUatVoRH+1J9/Zy/FpeWTUOZhQCqH8atz1s6CYif8NAiXzCwtH6XqXP9meipKrWy6vxX5tO5EIU9Xu4JUcGOf1+NnQTkb9hoEQ+YUzXeHRNCEO5WoP/7svw9nL81ndH9FvGTOnlfDYJYEaJiPwPAyXyCYIgGO+AW73nEqprtV5ekf+5XFiJA5cKIQjA1D7JLp2jW2IYBAHIK1PjWpnawyskImp6DJTIZ0ztk4xWkUHIL1djw+Er3l6O3/n2SBYAYFjHGCRFOF92A4AQlQLtY0IAAKdYfiMiP8BAiXxGgFyGBdfrN8t9f+dFzurxIFEU8XWaPlCShny6qjv7lIjIjzBQIp/yp0FtEBkcgEsFlcbb2Ml9R6+U4OK1CgQGyDC5l3NjASxJfUrMKBGRP2CgRD4lWKnAnUNTAACrdlyAKDKr5AkbDdmkiamJCFUp3DqX8c43NnQTkR9goEQ+Z96wFAQGyHAsqwS/XSjw9nJ8Xq1Wh+/+0N/tNqOfe2U3oC6jdOFaOZvuicjnMVAinxMdosTtA9oA0GeVyD27z+WjoKIGMSFKjOgc6/b54sNUiAlRQifq930jIvJlDJTIJ909ogPkMgG7zuXjeFaJt5fj06Qm7ql9kqGQu/8jQRAEDp4kIr/BQIl8UpvoYNzUW990zKyS68qqa7H5hL4pfuZ17pfdJBw8SUT+goES+az7Ruo3y/3xWA53q3fRz8evQq3RoWNcCHq1ivDYeZlRIiJ/wUCJfFZqcjhGdYmDTgTe33XR28vxSdLdbjP6tYIgCB47r+mIAB3nXRGRD2OgRD5t4Sh9VunL368gv5xbZjgjp6QKey/q7xqc7uaQSUvtY0OgUshQWaNFRmGlR89NRNSUGCiRTxvSIRp92kRCrdFhzZ5L3l6OT/n2SDZEERiUEo020cEePbdCLkO3xDAAHDxJRL6NgRL5NEEQ8H+GzXI/2XsJ5WqNl1fkG0RRxMbDhrKbB5u4TXHwJBH5AwZK5PMmpCaiQ2wISqs1+PxApreX4xNO5ZThTG4ZlHIZpvR0b8sSe7onsaGbiHwfAyXyeXKZgHtH6rNKH+xKR41G5+UVNX8b064AAMZ1j0dEcECjXIMjAojIHzBQIr8w47pWiA9T4WppNb49kuXt5TRrWp2Ib494bssSe7oZAqWrpdUoYKM9EfkoBkrkF1QKOeZf3x4A8O7Oi7wlvR6/XchHXpkakcEBGN01vtGuE6pSICVG3yR+KodbmRCRb2KgRH7jz4PbIkylwPm8cmw9neft5bitRqNDWXWtx88rNXHf1DsJSkXj/gioGzzJbWaIyDcxUCK/ER4YgL8MaQdAv62JKPp2VumO9/dhwEu/4L2dF6D1UIasskaDnw1bljRm2U3CPiUi8nUMlMivzB+eAqVChkMZRdh2xnezSjklVTiUUQS1RoeXfzyNWat+w/m8crfPu/lELiprtGgbHYzr2kZ5YKX141YmROTrGCiRX4kPD8Rdw1IAAC//eBoarW/eAbf/YiEAID5MhVCVAmmZxZjy1i68u8O97JK0ZcnNHt6yxJ7UJP3+cReuVaC6Vtvo1yMi8jQGSuR37h/TCVHBATifV451By97ezku2Z+u31rk5n6tsGnJSIzsEocajQ6v/HQat6z8DefznGuOTssswsK1h7Dj7DUATVN2A4CEcBWiQ5TQ6kScy3U/I0ZE1NQYKJHfiQgKwEPjuwAA3txytlEaohvbPkNGaXD7aLSKDMLHdw3Eslt6I0ylwJHLxZjy1m6s2nGh3oyZKIrYdiYPt7+7FzPe+c3Ym3TX8BS0jw1pkq9DEAS0NWyPkl1S1STXJCLyJAZK5Jf+PLgtOsSFoKCiBu9sv+Dt5Tjlakk10vMrIBOAASnRAPQBx20D22DzwyMxypBd+udPp3HLqr04l2ueXarV6vBNWhYm/3sX7lp9EPvTC6GQCbjlutbYvGQk/j61R5N+PdEhSgBAcWVNk16XiMgTGCiRXwqQy/Dk5O4AgA93p+NKke/sYC+V3XokRyAiyHxqdlJEENbcNRDLZvVGWKACf1wuxo1v7cY728+jrLoWq/ekY/Sr2/HQ+iM4fbUMIUo57r6+PXY+Ngav39YHXRLCmvzriTRM/i6s8L3MHhGRwtsLIGos47vHY0iHaOy7WIhXN53Bv//Uz9tLcsi+i/pAaUiHaJuvC4KA2wa0wYjOsXjq62PYduYalv18Bm9sPguNodE7JkSJu4anYM6QlEbbosRRUcHMKBGR72JGifyWIAh45sZUCALw7ZFsHLlc7O0lOUTqTxrSIabe45IigvDRvIF47dY+CAtUQKMT0TY6GC/e3BN7nhiLB8Z29nqQBNSV3ooYKBGRD2JGifxaz1YRmNGvFb4+nIV//HASX9w3tElui3dVbql1f1J9BEHArP6tMapLHM7mlmFw+2go5M3r3z8svRGRL2teP1GJGsGjk7oiMECGg5eKsMlw51dzJZXdbPUn1ScuTIXhnWKbXZAEsPRGRL6t+f1UJfKwpIgg3DOiAwDgnz+dRo2m+Q6hNB0L4C+kQImlNyLyRQyUqEW4b1RHxIaqcKmgEv/dl+Ht5di139jIXX9/ki+JCtFnxooqWXojIt/DQIlahFCVAo9M1A+hfOvXcyhphr+0c0urcTG/AoIADPTDjFJxZQ10Htrcl4ioqTBQohbjtgFt0DUhDMWVtfjPr+e8vRwrdf1J4U71JzV3UjO3TgTKqjVeXg0RkXMYKFGLIZcJeOpG/RDKj/deQkZBhZdXZM44FqC9/5TdAEClkCNEKQcAFLJPiYh8DAMlalFGdYnDyC5xqNWK+NfPp729HDPSRG5/6k+SRLKhm4h8FAMlanGentIdMgH48dhV/H6p0NvLAQDklVbj4jX/60+SGIdOVjBQIiLf4tLAyf/9739Ov2fChAkICgpy5XJEHtU1MQy3D2yDdQcu46UfTmHj/cO8PoRyX7o+YPO3/iSJ1KfEO9+IyNe4FCjdfPPNTh0vCALOnTuHDh06uHI5Io9bMqEL/mfY1uS7ozmY1ifZq+uRGrkH+1l/kkTKKHHoJBH5GpdLb1evXoVOp3PoT3BwsCfXTOS2+LBALBzVEQDwr59Oo7pW69X17PPD+UmmpBEBhSy9EZGPcSlQmjt3rlNltNmzZyM8PNyVSzVLK1asQGpqKgYOHOjtpZAb7h7RAYnhgcgqrsKa3y55bR2m/UmDHNjfzRex9EZEvsqlQGn16tUICwtz+PiVK1ciNjbWlUs1S4sWLcLJkydx8OBBby+F3BCklOPRSV0BACt+PY+CcrVX1iH1J6UmhSMi2P/6kwCW3ojId7l919vYsWPx/PPPWz1fVFSEsWPHunt6okY1o18r9GwVjjK1Bv/e6p0hlP64bYmlSJbeiMhHuR0obd++HW+//TZuvvlmVFTUDfCrqanBjh073D09UaOSyQQ8PSUVAPDp/kyczytv8jX4e38SAEQZMmXFLL0RkY/xyBylX375BVevXsWQIUNw6dIlT5ySqMkM7RiD8d0ToNWJ+OdPp5r02nll1bjg5/1JQF0zNwdOEpGv8UiglJSUhB07dqB3794YOHAgtm/f7onTEjWZJ6d0g0Im4JdTefjtQn6TXXe/YduS7on+258EAFEhdYGSKHJjXCLyHW4HStKgPpVKhU8//RSLFy/GDTfcgHfeecftxRE1lY5xofjL4LYAgH/8cKrJdrlvCWU3oK70VqsVUVHj3VEMRETOcDtQsvzX4TPPPINPP/0Ur7/+urunJmpSi8d3QVigAieyS/F1WlaTXLMuUPLfshsABAXIoVLof9xwGxMi8iVuB0rp6elWt/7fcsst2LdvHz766CN3T0/UZKJDlHhgTCcAwGubzqCqkTMf18rUdf1Jfri/mylBENinREQ+yeVAqbS0FKWlpYiKikJ5ebnxsfSnbdu2mDFjhifXStTo5g5LQeuoIFwtrcb7uy426rX2p+uzSd0Tw423z/szDp0kIl/k0l5vABAZGVnvRqKiKEIQBGi17Ecg3xEYIMfjN3TDX9elYdWOC/jTwDaIDw9slGu1lP4kCYdOEpEvcjlQ2rZtm/HvoihiypQp+OCDD9CqVSuPLIzIW27qnYSP9qQjLbMYb2w5i3/e0rtRrrPPcMebv/cnSbjfGxH5IpcDpVGjRpk9lsvlGDJkCDp06OD2ooi8SRAEPHNjd9yyci+++P0y5g1PQbdEz+5VeK1MjfN55S2iP0nC0hsR+SKPzFEi8jf920Xjxl5J0In6cQGeJvUndWsh/UkAS29E5JsYKBHZ8fgN3aCUy7DrXD62n8nz6LlbylgAU9zvjYh8kUcDpfqau4l8TduYYMwd1g4A8PKPp6DR6jx27v3G/qSW0cgNcL83IvJNLvcozZw50+xxdXU1Fi5ciJCQELPnv/76a1cvQeR1D4zpjC8PXcHZ3HKs//0y/jK4ndvnzC9X45yhP2lwC+lPAsy3MSEi8hUuB0oRERFmj2fPnu32Yoiam4jgACwe1xnPf3cSL35/Eq0igzC6a7xb55SySS2pPwkw2RiXpTci8iEuB0qrV6/25DqImq3ZQ9ph17l8/Ho6D/d88jvevL0fbuyd5PL5WmJ/ElBXeuNdb0TkS1zuUXrqqadw4MABT66FqFkKkMuwanZ/3NQ7CbVaEX9ddxjrD2a6fL6WNmhSIpXeqmq1qK7lIFoi8g0uB0o5OTm46aabkJSUhHvvvRc//PAD1Gq1J9dG1GwoFTL8+0/9cMegttCJwOMbjuEDF7Y4kfqTAGBQSsvKKIWpFFDI9Dd8sE+JiHyFy4HS6tWrkZubiy+++AKRkZF45JFHEBsbi5kzZ2LNmjXIz8/35DqJvE4uE/DyjJ64b6R+qOpLP5zCG5vPQBRFh89xIF3qTwozZlhaCkEQjD1ZRRUsvxGRb3BrPIAgCBgxYgSWLVuG06dP48CBAxgyZAjef/99tGrVCiNHjsRrr72GrKwsT62XyKsEQcATk7vh0UldAQBv/Xoez393EjqdY8FSSy27SepGBDCjRES+waNzlLp3747HHnsMe/bswZUrVzB37lzs2rUL69at8+RliLxKEAQsGtMJL07vAQBY89slLP3qD4fmLDFQMgydZKBERD7CpUBpy5YtKC/X91m88847uPfee3H69GmzY+Li4rBgwQJ8++23WLp0qfsrJWpm5gxNwfLb+0AuE/D14Szc/+lhqDX2m5Tzy9U4m6v//01Lmp9kKiqEd74RkW9xKVBaunQpQkNDsW/fPnz88ccYPXo0FixY4Om1ETV7M/q1xsq/XAelXIbNJ3OxYM3vqFBrbB7bkvuTJFJGqZizlIjIR7hVevvmm2/w17/+FX/+859RWVnpqTUR+ZSJPRKx5q6BCFbKsft8PmZ/uB8lNjImLb3sBpjs98bSGxH5CJcCpeTkZMyZMweff/45brzxRqjVami1nItCLdewTrH49O7BiAgKQFpmMW5/by/yyqrNjmmpgyZNRYdwvzci8i0uBUpfffUVZsyYgS1btiAqKgqFhYV47bXXPL02Ip/Sr20UvrhvKOLCVDh9tQy3rdqLK0X6TGuBSX/SoPbMKHGOEhH5CpcCpZCQEMycOROdO3cGACQlJWHixIkeXRiRL+qaGIavFg5F66ggXCqoxK2r9uJ8XrlZf1J0C+1PArjfGxH5HrfHA1RVVZn1J2VkZODNN9/E5s2b3T01kU9qFxOCrxYOQ6f4UOSUVOO2d/fiswP6LU9acn8SUFd6411vROQr3A6Upk+fjk8++QQAUFxcjMGDB+P111/H9OnTsXLlSrcXSOSLEiMC8cV9Q9GrVQQKK2qw65x+Un1L7k8CWHojIt/jdqB0+PBhjBgxAoC+dykhIQEZGRn45JNP8NZbb7m9QCJfFR2ixGf3DMYgk5lJLbk/CagrvZVVa1DrwIBOIiJvU7h7gsrKSoSFhQEANm/ejJkzZ0Imk2HIkCHIyMhwe4FEviwsMACfzB+Ef/50GokRgS26PwkAIoICIAiAKOrvfIsLU3l7SURE9XI7o9SpUyd88803uHz5MjZt2mRs6s7Ly0N4eLjbCyTydYEBcjw3rQcWjuro7aV4nVwmICJI6lNi+Y2Imj+3A6Vnn30WS5cuRUpKCgYNGoShQ4cC0GeX+vXr5/YCici/8M43IvIlLpfennrqKdx8882YNWsWrr/+euTk5KBPnz7G18eNG4cZM2Z4ZJFE5D+iggOQDt75RkS+weVAKScnBzfddBPkcjmmTp2K6dOnIzU1FSqVvudg0KBBHlskEfmPKN75RkQ+xOXS2+rVq5Gbm4svvvgCkZGReOSRRxAbG4uZM2dizZo1yM/P9+Q6ichPcEQAEfkSt3qUBEHAiBEjsGzZMpw+fRoHDhzAkCFD8P7776NVq1YYOXIkXnvtNWRlZXlqvUTk47jfGxH5ErebuU11794djz32GPbs2YMrV65g7ty52LVrF9atW+fJyxCRD5MySoVs5iYiH+D2HCV74uLisGDBAixYsKCxLkFEPkiaJVXM0hsR+QCnM0pVVVU2S2knTpzwyIKIyL9FBXO/NyLyHU4FSl999RW6dOmCKVOmoHfv3ti/f7/xtTlz5nh8cUTkfyI5R4mIfIhTgdJLL72Ew4cP448//sBHH32E+fPn47PPPgMAiKLYKAskIv8ild541xsR+QKnepRqa2sRFxcHABgwYAB27tyJmTNn4vz58xAEoVEWSET+JdJQeiupqoVWJ0Iuc/9nhyiKKFdrEBYY4Pa5iIhMOZVRio+Px9GjR42PY2JisGXLFpw6dcrseSIieyKD9BklnQiUVnmmT+mtrefR67nN2H2O89uIyLOcCpTWrl2L+Ph4s+eUSiXWrVuHHTt2eHRhROSflAoZwlT6ZLYnym/lag3e33URALDr3DW3z0dEZMqp0lvr1q3tvjZ8+HC3F0NELUNkSADK1BqP3Pm28fAVlKs1AICMgkq3z0dEZMojc5Sqq6tx9OhR5OXlQafTmb02bdo0T1yCiPxIVLASlwur3L7zTRRFfLw3w/j4UkGFu0sjIjLjdqD0888/484777S5t5sgCNBqte5egoj8jKc2xt17sQDn88ohE/Q9T5mFlRBFkTeXEJHHuL2FyQMPPIBbb70VOTk50Ol0Zn8YJBGRLdLQSXf3e/vkN3026db+bSATgMoaLa6Vq91eHxGRxO1AKS8vDw8//DASEhI8sR4iagGM+725kVHKKq7C5pNXAQALRrRHUkQQACDTyT6l4soaLP3yD/x2nnfMEZE1twOlWbNmYfv27R5YChG1FJ7Y7+2z/RnQicDQDjHokhCGlNhgAMAlJwOlzSdy8dWhK1i26YzLayEi/+V2j9Lbb7+NW2+9Fbt27UKvXr0QEGA+8O3BBx909xJE5GeM+71VuFZ6q67VYt2BywCAucPaAQDaxYRgz/kCZDrZ0J1TUg0AOJldCrVGC5VC7tKaiMg/uR0offbZZ9i0aROCgoKwfft2syZKQRAYKBGRFXdLbz8ey0FhRQ2SIgIxvru+7N8u2rWMUl6ZPlCq0epwIrsU17WNcmlNROSf3A6UnnnmGbzwwgt44oknIJO5XckjohbA3dKbNBJg9pB2UMj1P3faxYQAADKczCjlltY1f6dlFjNQIiIzbkc2NTU1uP322xkkEZHDpP3eXBk4eT6vHH9cLoZCJuD2gW2Mz7eL0WeUMgpdyygBQFpmkdPrISL/5nZ0M3fuXKxfv94TayGiFsI4R6miBqIoOvXeH4/lAACu7xyL2FCV8XkpUCqurEWJEwFYnkVGiYjIlNulN61Wi2XLlmHTpk3o3bu3VTP3G2+84e4liMjPRIcoIQiARifiWrka8WGBDr9XCpSm9Ewyez5YqUBcmArXytTIKKxA7+DIBs+lNVxfklVchbzSasSHO74eIvJvbgdKx44dQ79+/QAAx48fN3uN03GJyJbAADm6JoTh9NUyHLpUhMm9khp+E4AL18px+moZFDIBE3tYz25LiQnGtTI1LhVUonfryAbPV1ChhlYnQiYAHeJCcT6vHGmXizGpR6KzXxIR+Sm3A6Vt27Z5Yh1E1MIMah+N01fLcOBSocOB0k+GbNKwTrHGO+dMtY0OwcFLRQ6PCJDKbrGhKgxMidIHSpkMlIiojks9SkePHrXa/LY+J06cgEajceVSROSnBqZEAwAOpBc6/J4fjukncd/Yy3YgkxLj3IgAqZE7PlyFfm30d7uxoZuITLkUKPXr1w8FBQUOHz906FBkZma6ciki8lOD2usDpZM5pSitbrj5Oj2/AqdySiGXCZiYajtQamsIlBzdxkQaDZAQFoh+bSMBAEevlECjdfwfgkTk31wqvYmiiL/97W8IDg526PiaGvd2CCci/5MQHoiUmGBcKqjEoYwijOkaX+/xUhP3sI4xiAqxLrsBQIphltIlB0tvuaVSRikQHeNCERaoQFm1Bmdyy9AjOcLRL4WI/JhLgdLIkSNx5ozj+yINHToUQUFBrlyKiPzYwJRoXCqoxIH0QocDpSn19DNJIwLyytSorNEgWFn/j7i8Mn1GKT5MBZlMQN82kdh1Lh9pmcUMlIgIgIuBEjfBJSJPGNQ+Gl8eutJgn1JGQQVOZOvLbvU1WkcGKxERFICSqlpkFlaiW2J4vefNM2SUEgzjAPq1jTIGSrOHtHPyqyEif8Rx2kTkNYPbxwAAjl4pRnWt1u5xPxiySUM7xBi3P7FHaujOcKBPydijFK4fXCn1KaVdZkM3EekxUCIir2kTHYSEcBVqtWK9U7EdKbtJ2jqx55vxrjfDwMt+bSIBABevVTjUYE5E/o+BEhF5jSAIGGTIKh28ZLv8lllQieNZUtnNesikJUczSlqdiGtl5hklqXQHALkl1XbfS0QtBwMlIvKqQSn6+UX2+pSkstuQDtGIMdnbzZ620Y4FSgXlauhEQCbA7LzxYfq/S43eRNSyMVAiIq+SMkqHMopQazG/SKPVYd0B/Qy2G3slO3S+lFhD6a2w/tKbFAjFhqogl9VttxQfLgVKzCgRkQcCpXnz5mHnzp2eWAsRtUCd40MRGRyAqlotTmSXmr32/dEcZBZWIjpEiZv7ORYotTNklLKKqlCjsT84MtfijjeJ1K8kbW9CRC2b24FSWVkZJk6ciM6dO+Pll19GVlaWJ9ZFRC2ETCZgQDtpO5O6if86nYgV284DAOYPT2lwJpIkLkyFoAA5dCKQVVxl9zjpjjep1CZh6Y2ITLkdKG3YsAFZWVl44IEH8OWXXyIlJQWTJ0/GV199hdpa3jVCRA0b3N5637fNJ3NxLq8cYSoF5gxNcfhcgiAYB0/WN6G7bp8384xSnAOBklYnolzN/SuJWgKP9CjFxMRg8eLFSEtLw4EDB9CpUyfMmTMHycnJWLJkCc6dO+eJyxCRn5L2fTt4qQg6nQhRFPHOdn026c5h7Yx3ojlKCpQy8u0HSpYzlCRS4CQNo7TliQ1H0ef5zTifV+7UuojI93i0mTsnJwebN2/G5s2bIZfLMWXKFJw4cQKpqalYvny5Jy9FRH6kR3I4gpVylFTV4mxeGXady8fRKyUIDJBh/vD2Tp+vnTRLqdD+nW9SICT1JEmk0ts1OxmlK0WV2HD4CrQ6EYczOZiSyN+5HSjV1tZiw4YNuOmmm9CuXTt8+eWXWLJkCXJycvDxxx9j8+bNWLt2LV544QVPrJeI/JBCLkP/dnVjAt429CbdMaitQyMBLLWK1O8tmVNsPyuUV2Yno9RA6W3dgUzoRP3f88vZx0Tk71za681UUlISdDod7rjjDhw4cAB9+/a1OmbSpEmIjIx091JE5McGpkRj17l8rNlzCRfzKxAgF3DvyA4unSspQp8lyi6pr5nbzl1vhsflag0q1BqEqOp+TNZodFh/8LLxsb2sExH5D7cDpcWLF+ORRx5BcHCw2fOiKOLy5cto27YtoqKikJ6e7u6liMiPSX1KFw19RbP6t0ZSRJBL50o2ZJSy7WSUtDrRmA2yvOstVKVAsFKOyhot8srUaG8SKG06cRX55TXGx6Z/JyL/5Hbp7bnnnkN5uXVDY2FhIdq3d763oKnNmDEDUVFRmDVrlreXQtSi9W0TCaVc/yNJJgALR3V0+VxSRim/XA21xnqzXXtTuSXG8ptFQ/d/92UAADoYhlrmM6NE5PfcDpREUbT5fHl5OQIDA22+1pw8+OCD+OSTT7y9DKIWLzBAjt6tIwAA0/okGxuyXREdooRKof/xlltiHcxId7zFhZlP5ZYYh06aBEJnc8uwP70QcpmA+8d0AsAeJaKWwOXS28MPPwxAP7Pk2WefNSu9abVa7N+/32a/UnMzZswYbN++3dvLICIAD0/ogrX7MvDYDd3cOo8gCEiKCMSlgkpkl1ShbYx5a0CunTveJHHh1g3dn+3Xb6Uyrls8erYKB8BAiaglcDmjlJaWhrS0NIiiiGPHjhkfp6Wl4fTp0+jTpw/WrFnj1uJ27tyJqVOnIjk5GYIg4JtvvrE65p133kH79u0RGBiI/v37Y9euXW5dk4i8Z1inWKyc3d/YY+QOqb8px0ZDt7073iR1d77Vld4OXtIPw5zRrxViDeW6ospaq/3piMi/uJxR2rZtGwDgrrvuwr///W+Eh4d7bFGSiooK9OnTB3fddRduueUWq9fXr1+Phx56CO+88w6GDx+Od999F5MnT8bJkyfRtm1bAED//v2hVlv/q2/z5s1ITnZs7yiJWq02O1dpaWk9RxORNyVFGu58s9HQbcwohdvOKEmZpmuGEp1WJxqHS3ZLCkdUsBIyAdCJQGFFjdWdc0TkP9y+62316tWeWIdNkydPxuTJk+2+/sYbb2DBggW4++67AQBvvvkmNm3ahJUrV+KVV14BABw6dMhj63nllVfw/PPPe+x8RNR4kuvNKEmlt4YySvpA6UpRJdQaHVQKGdpGB0MuExAdokJ+uRrXytQMlIj8mEuB0sMPP4wXX3wRISEhxl4le9544w2XFtaQmpoaHDp0CE888YTZ8xMnTsRvv/3WKNd88sknzb7e0tJStGnTplGuRUTukTJKtoZO5hm3L7GTUQo3L72dzdVnkzrGhRqbv2NDlcgvV7NPicjPuRQopaWlGTe8TUtLs3ucIFjfTeIp+fn50Gq1SEhIMHs+ISEBV69edfg8kyZNwuHDh1FRUYHWrVtj48aNGDhwoM1jVSoVVCrnpwQTUdOTMkrZJTZKb2XSsEl7GSXzu97O5pYBADonhBqPiQtT4fTVMs5SIvJzLgVKUn+S5d+9wTIYE0XRqQBt06ZNnl4SETUDUkO4rdKblGWyd9ebVHorrqyFWqM19id1SQgzHiM1dDOjROTf3J6jVFVVhcrKuo0nMzIy8Oabb2Lz5s3unrpesbGxkMvlVtmjvLw8qywTEbU8UumtuLIWVTV1QycLK2pQUKHPAnWIsz2rKTI4wDj88lqZui6jFF+XUYoNVQLg0Ekif+d2oDR9+nTjwMbi4mIMGjQIr7/+OqZPn46VK1e6vUB7lEol+vfvjy1btpg9v2XLFgwbNqzRrktEviE8MAChhu1HTPd8k7JDraOCEKy0nVQXBAFxhqxSbmm18T2dmVEianHcDpQOHz6MESNGAAC++uorJCYmIiMjA5988gneeustt85dXl6OI0eO4MiRIwCA9PR0HDlyBJmZ+sFvDz/8MD744AN89NFHOHXqFJYsWYLMzEwsXLjQresSkX+QtjIxbeg+l2edHbJFCpQOZxRDrdFBabjjTVIXKLFHicifuT0eoLKyEmFh+n9lbd68GTNnzoRMJsOQIUOQkZHh1rl///13jBkzxvhYuuNs7ty5WLNmDW6//XYUFBTghRdeQE5ODnr27Ikff/wR7dq1c+u6ROQfkiKDcC6v3CyjdC7XOjtki9SntPt8PgDzO94AIDaMGSWilsDtQKlTp0745ptvMGPGDGzatAlLliwBoO8VcncI5ejRo+3uJSe5//77cf/997t1HSLyT8k2MkpSGa1TAxklaUTAgXT9RO4uCebHG3uUGCgR+TW3S2/PPvssli5dipSUFAwePBhDhw4FoM8u9evXz+0FEhG5ytY2Jo6W3qQ74qpq9Y3gXSwyUHGG0lthRQ20uvr/QUdEvsvtQGnWrFnIzMzE77//jp9//tn4/Lhx47B8+XJ3T09E5DLjNiaGWUolVbXINQybbDCjZDG12/L46BAlBJNtTExlFlTipe9P4qqNGU5E5FvcLr0BQGJiIhITE82eGzRokCdOTUTkMuM2JsX6jJJUdkuKCERYYEC97423GEZpmVFSyGWIClaisKIG+eVqY/M3ALy/6yLW7suAKkCGRyd1c/vrICLv8UigtHXrVmzduhV5eXnQ6cx30v7oo488cQkiIqfVbYxbBVEUcd5QdmsomwSYD6O0vONNEheqMgZKpjIK9bPlLhVUWr2HiHyL26W3559/HhMnTsTWrVuRn5+PoqIisz/+aMWKFUhNTbW71QkRNQ9SRqmiRovSak3dHW/x9d/xBpiX3izveJPEhtlu6L5SpA+QrhQyUCLydW5nlFatWoU1a9Zgzpw5nliPT1i0aBEWLVqE0tJSREREeHs5RGRHkFKOyOAAFFfWIqekCueMgyMbzijFhKogM/QgWd7xJjHOUiqr61ESRRFZRfpS3+Ui6+1TiMi3uJ1Rqqmp4SRsImq2jHe+FZtM2Hag9CaXCYgxBEL2jrc1nftamRpqjb4FobCiBhVqjeuLJyKvcztQuvvuu/HZZ595Yi1ERB4nzVI6n1eOLENTtyM9SoB+mxMA6J5keyacFChdMwmULLNIV5hVIvJpbpfeqqur8d577+GXX35B7969ERBgfifJG2+84e4liIhcJjV07zx3DYB+a5LIYKVD731uag/8dqEAo7vG23y9buhkXelN6k+SXC6sRNfEhnuiiKh5cjtQOnr0KPr27QsAOH78uNlrgmDd/EhE1JSk0ps0YduRspukT5tI9GkTafd14zYmZXUZJcsM0uUiNnQT+TK3A6Vt27Z5Yh1ERI0i2ZBRkvqGnAmUGhJno0dJCpSkRnCW3oh8m9s9SkREzZmUUZJ0amAzXGdIPUoFFTXQGbYxkUpvPZL1d8Re5ogAIp/mkUBp165dmD17NoYOHYqsrCwAwNq1a7F7925PnJ6IyGXJFoGSJzNKMYYeJa1ORHFVLQAYRwMM7RgDgCMCiHyd24HShg0bMGnSJAQFBSEtLQ1qtT4FXVZWhpdfftntBRIRuSMhwnwrEk8GSgFymXHrkovXyqHTibhiuLNuaAd9oHSlsBKiyE1ziXyV24HSSy+9hFWrVuH99983u+Nt2LBhOHz4sLunJyJyi0ohN5bIokOUxtlInjK4fTQAYNe5fFwrV6NGo4NcJmBAShQAoEytQWkVZykR+Sq3A6UzZ85g5MiRVs+Hh4ejuLjY3dMTEblNauh2dH6SM0Z0jgUA7Dp3zdiflBiu33RXGh/QXO98+/L3yxj+z1+Ne+ARkTW3A6WkpCScP3/e6vndu3ejQ4cO7p6eiMhtSYahk54su0mu7xwHAPjjSglOZpcCqBtU2TpKv5Fuc2zo1ulEPPrVUWQVV+H9neneXg5Rs+V2oHTfffdh8eLF2L9/PwRBQHZ2Nj799FMsXboU999/vyfWSETkluGdYiEIwMgucR4/d6vIIHSMC4FWJ+LLQ1cA1AVIbaINgVIzzCgdyqzbtDwuzLPlSCJ/4vYcpcceewwlJSUYM2YMqqurMXLkSKhUKixduhQPPPCAJ9ZIROSWO4em4JbrWiNE5faPPJtGdI7DhWsVOHqlBEBdRqmN4X9NZymJoohvjmShc3wYerby3qba3x7JqlsT2GxOZI9HxgP84x//QH5+Pg4cOIB9+/bh2rVrePHFFz1x6mZpxYoVSE1NxcCBA729FCJyUGMFSUBdn5KkvtLbmdwyLFn/B+5be8hrd8PVanX44WiO8XFVjc4r6yDyBW795NDpdFizZg2+/vprXLp0CYIgoH379pg1axbmzJnjt1uYLFq0CIsWLUJpaSkiIrz3L0Iiah6GdIhBgFxArVYf+NSV3vQBk+kspWzD+ICs4ipcuFbRKA3mDckqqkJRZa3xcVUt78ojssfljJIoipg2bRruvvtuZGVloVevXujRowcyMjIwb948zJgxw5PrJCJqtkJUClzXNsr4uK70pg+YrhTVzVIqrKgLUPacz2/CVdYpV5sHRlU1Wq+sg8gXuBworVmzBjt37sTWrVuRlpaGdevW4fPPP8cff/yBX375Bb/++is++eQTT66ViKjZkspvcplgvMsuyTCWoLpWZ8zgFFfWGN9jGSjpdCLO5ZYZt0NpLGXVFoFSLQMlIntcDpTWrVuHp556CmPGjLF6bezYsXjiiSfw6aefurU4IiJfMbZbAmQC0CUhDAq5/kerSiFHeKC+w6GwQm3437pAae/FAmi0df1Ba367hAnLd+LjvZcada1WGaVa9igR2eNyoHT06FHccMMNdl+fPHky/vjjD1dPT0TkU1KTw/HlwqF4d3Z/s+elqeD55foAybQ3qKxag2NZJcbHu85dAwCcMMxjaiwVFoFSNUtvRHa5HCgVFhYiISHB7usJCQkoKiqy+zoRkb/p3y4abWOCzZ6TNs4tkAIlQ0ZJutdFKr+JoohjWfoAKbe0ulHXWWYIlFQK/a+ASjZzE9nlcqCk1WqhUNi/aU4ul0Oj4f/5iKhliwnRZ5QKDKW3IkOP0qAU/R5xuw2B0tXSauSX64+5WtK4gVK5oUdJGjTJZm4i+1weDyCKIubNmweVyvZEV7Va7fKiiIj8hZRRqiu96f/3pj7J2J9eiMMZxaiq0eLYlboSXGNnlKTSW1yYCleKqlDdBD1KGq0Onx3IxOD2MeiaGNbo1yPyFJcDpblz5zZ4zJ133unq6YmI/EKMoUepoFzKKOl7lPq1iUTrqCBcKarCtjN5OJVT15dUWq1BVY0WQUp5o6xJauaOM6zN2bveSiprce/a33FT7yTMGZri0Hs2HL6CZ789AQC49M8bnboekTe5HCitXr3ak+sgIvJLcSY9SqIoGnuUokOUuKl3MlbtuIBvj2RBrTHP6uSWViMlNqRR1lRmUXqrrHGuTeKrw1ewP70Q+9MLHQ6UTuWUOXUNoubCI1uYEBGRbcaMUoUaZWoNNIYZSVHBStzcLxkAsO30NaRlFgMAZIYm76uNWH4rV+uzWlKgVF2rc2p2U2BA3a8O03EH9QkLbLwtZIgaEwMlIqJGFBNSl1EqNkzlDgyQIUgpR7fEcHRNCEONVoeSqlrIZQL6tIkE0Lh9ShVqfalNCpQAWGW06hMgq/vVYTreoD6hJnvt1ThxLSJvY6BERNSIYoxzlNQoNDRyRwcrja9P65ts/HuXhDC0i9aPF2jMQEkaDyDNeAKc61MyPfa4g4FSsEm/VVGlY1koahxanYizuWVe25TZ1zBQIiJqRLGGHqXSag3yDMFPpGmg1KcuUOrVKhwJ4fptT3JLG+/O4fJqfWYrPDAASsMsJWcCpWqTY03v1quPxqS052i5jhrH4xuOYuLynXhv50VvL8UnMFAiImpE4YEBUBgaj85fKwegb+SWtIkOxsAU/Ya617WNMgZKjdmjJJXewgIVCArQZ3qqnGjoNg2qHC291Zps1cJAybu+OnQFAPDW1nNeXolvcDtQmjdvHnbu3OmJtfiMFStWIDU1FQMHDvT2UoiomZPJBGNgdD5PHyhFBgeYHfPGbX3xt5tScUv/1sZAKc+FQOl4VolxDEF9pPEAoSqFsSRWVeN435BpoJRVXOVQz1Gtti6jVNAMAqUajc7pu/38DQtvjnE7UCorK8PEiRPRuXNnvPzyy8jKyvLEupq1RYsW4eTJkzh48KC3l0JEPkDqU5ICJdOMEqDPKi24vj0C5DIkRuiPdTajdOxKCaa+vRsPrT9S73E6nVgXKJlmlJwpvVlM8r7mQHBm2ixe1AwCpcEv/4LUZzeZlRGJbHE7UNqwYQOysrLwwAMP4Msvv0RKSgomT56Mr776CrW1tQ2fgIjIz0l9SnUZJaXdY+PD6nqULJttRVFEXmm1WRlLsuv8NYgikJZZXG+TboVJFiVUpUCgK4FSrfXMJ+tjzM9numZvZ5REUTQO/kzPr/DqWryJvdyO8UiPUkxMDBYvXoy0tDQcOHAAnTp1wpw5c5CcnIwlS5bg3DnWQYmo5ZJGBFQaMjHRFqU3U/Hh+oxSjUaH4krzf2z+eOwqBr28FYNf3orn/ncCpdV1r0tzmMrVGuN2KbZI/UkKmQCVQmac/u1qjxJgXSb87Xw+uj/7Mz7YVdcsXKsx7VHy7hZXpmVAmbQ7MZEdHm3mzsnJwebNm7F582bI5XJMmTIFJ06cQGpqKpYvX+7JSxER+YyYUPM9MaNC7GeUVAq5sTRnWX47crkIgL4Zes1vl/Dl7/qmXFEUceRysfG4+rIk0rDJ0EAFBEFwqfRmeazlHXoPf/EHRBF46YdTxueaUzO3Rle3FlkLjpNEdik5xO1Aqba2Fhs2bMBNN92Edu3a4csvv8SSJUuQk5ODjz/+GJs3b8batWvxwgsveGK9REQ+R9oYVxJVT+kNgMmIAPNAqaTKPMN0taQKgL6h+lpZXbByqZ5ASdq+RBoAGeRCM7dUVgs3TNvOKzNfp8bGlO8abfMZD2CaURJsZJQOXirE0Fe2YtOJqx6/tiiKKG4mc6RYenOM24FSUlIS7rnnHrRr1w4HDhzA77//joULFyIsrG536EmTJiEyMtLdSxER+aRYy4xSA4FSoqH8ZhkolVbpg5xWkUEA6np9pLKbJL3AfqAkld6MgZJLPUr6Y9vFhBjWaZ5RstUjZZpRqqrxbgO1xmQttipvd354ADkl1bhv7aEGz7X3QgHe/OUstA5uAfPstyfQ94Ut2HY6z+H1etLavZe8cl1f5vbmO8uXL8ett96KwMBAu8dERUUhPT3d3UsREfmkWMuMUoj9HiUAdodOShmlDnEhyCquMmZmpLKbSiGDWqOrN6NkLL1ZBEr27v4SRRHv77qI1lHBmNIrCUBdUNU2JhjHskqsAjptA4GSZTN4UzPNeNkK6pwJGu94fx8AfRP+nwe3bfD4tfsyAACvbT6DMd3iHb6Op/zt2xNNfk1f53ZGac6cOfUGSURELV1MiHMZJXtDJ6VAKcWQySk0ZpT0vUsTeyQCqL9HyVh6CzQvvdmbKXQiuxQv/3ga9396GC9+fxJAXUYoJUa/3UqeRUBnK7tillHy8i35pmuxcQOhSxwdvCmRN4PmKFbeHON2Runhhx+2+bwgCAgMDESnTp0wffp0REdHu3spIiKfZNqjpFTIzPY9s6WtYb+3C4ZxAhLpLrf2sfpAqaC8BlqdiOPZpQCAm/sm47s/spFRUAlRFG3235gOmwRQNx7ATo/SJZMy3oe70zFvWIoxI2QsvVn0KOls9Shp6p7z9uwijUmPkqMls4Y423fEu+18h9uBUlpaGg4fPgytVouuXbtCFEWcO3cOcrkc3bp1wzvvvINHHnkEu3fvRmpqqifWTETkU0wzSlHBATYDGFPdkvQ9nqdySs0CHimj1D6uLqNUUK5GjUYHmQAM7xQLuUxAVa0WuaVqJEZYZ/srLAIl42RuO8HLlaIqs8f55eq6HiVDQFdcWYvqWq0x6Gq49FZ3rRqNzrjfXFMxvetN56GOZstRDg1pBgklj8kpqUJCWCBk/vRFmXD70zl9+nSMHz8e2dnZOHToEA4fPoysrCxMmDABd9xxB7KysjBy5EgsWbLEE+slIvI5QUo5QgwBSUNlNwDoFB8KhUxAabUGOSX6bI3pRO32hkxOVa3WWGaLC1MhMECO1lH6Rm975bcyi0CpoR6lK0WV5u+v1hiDqsSIQCjl+l8j+SbTuXU2klOm25xUG/7+07EcdH/2Z3yT1rQ7Opj2KHkqo2R5R2JDmkPpzRO1tx+P5WDoK7/i4S+OuH8yA61OxNErxWZN997kdqD06quv4sUXX0R4eLjxufDwcDz33HNYtmwZgoOD8eyzz+LQoYbvHiAi8lfSLCVHAiWVQo6OcaEA9FklQB+gSMmP5MggY4By0vB6oqGvSepfumTnzrdyix6lwAZ6lLIsMkqmgVKQUo7AAP06TBu0TTNKUoBkmlGq0eig1Yn4v08PQ6sTG9x2xdPMSm8eyyi1zNKbtLHuN0eyPXbOZT+fxrS39+DZ/zWPxnO3A6WSkhLk5Vnf5njt2jWUlur/DxwZGYmamuYxN4KIyBukPiXLfd7s6W5SfgPqMhZBAXIoFTLjeU4a+pOkBnCpf8nenW8Xr+mfTzKU5erGA9j+17tUepPKY/nlamPAFhQgh8rwfikgEkXRLEsjBWCW266oNd7rUzJdi61+KleYzolyhL8ESo1RNn13p36i+2f7Mz1+bld4pPQ2f/58bNy4EVeuXEFWVhY2btyIBQsW4OabbwYAHDhwAF26dHH3UkREPkvqU4qsZ/sSU92T9Fn6U1fLANQ1cocH6TNBxkApxzxQku5Es1V60+lE491ZvVtHAqjrUbLc6BbQBz1SoCStx3SwZWCA3JjZkgIf081vgbptWywDCW+OCGiM0puzcY+saduybPLEZG5FcyghNjK3m7nfffddLFmyBH/605+g0ej/5aBQKDB37lzjtiXdunXDBx984O6liIh8VoJhiKTl8El7ukmBkkVGKSJIH2hJGapzufo746TG7ZRY69Lbd39k48Pd6XhgTCeUqzUICpCjc7y+tFffwMnCihrj890SwvDH5WJjoKSQCQiQy6AylN6kjJI0fkAiBUqWGSVv3vlmNh7AS+Opm0NGyRNfuqI5RHyNzK1Aqba2FlOnTsW7776L5cuX4+LFixBFER07dkRoaKjxuL59+7q7TiIin3bX8BQIAnD7wDYOHS+V3i7lV6CqRmsdKBkySjWGX/qWpbeMgkrodCJkMgEf7E7HH5eL8fiGowCAXq0ioDBkgqQ71QoraiCK+obxsED9NaRsUkK4CtGGwEzarkQKsOoySvp1SA3nEnulN2/OUjLtUbLVeO6oNXvqBik7G/Z4o5nbU2VGUwq59wO+xuZWKBgQEIDjx49DEASEhoaid+/e6NOnj1mQREREQKf4MLx0cy8kG7YfaUhcqAoxIUroROBMbhlKDYFSuCGIibYYYik1c7eKDEKAXIBao0NOaTVqtTpjVkra8qRPmwjj+7olhiEoQI6s4ios+uww+jy/Gat2XABQFyi1jgpGmHFfN31GSWoCt+xRKreXUdJ4L6NUo9Hhi4OXjXfwmY4HcCej9Nx3J11+r9wLGSXLr9UTYZMUcPszt7/CO++8Ex9++KEn1kJERAaCIBj7gk7nlNotvUkSI/SBk0IuQxvDfKNL+RU4n1dudms+APRpE2n8e1SIEguubw8A+PHYVehEYP3BywDqRgO0igwyZpmk0puUUVJZZJTK1Oa3yVc1gx6lj/ak47ENRzH+jR0AzDfFbYwsiyMamqXlCbVaHf73R7YxC+ipfixTAexRalhNTQ0++OADbNmyBQMGDEBISIjZ62+88Ya7l2h2VqxYgRUrVkCr9e50WSLyb92TwrD7fD5O5ZQab+cPD5IySuaBklR6A/Rzli5eq0B6fgWyis1v7weAPoZGbsm9ozrg0/0ZKDIMTZT6jLIN720VFYRwy4ySoTfJ2KNk+Hlo2aNUYVF6U8gEaHQi1A5mlM7lliHtcjFu7d/a5eDitwsFAOqCM0cnczsTAzi7tKZIxLy38yJe3XQGXRPCsGnJSI8N1zTlr0MmTbkdKB0/fhzXXXcdAODs2bNmrzVFxOwNixYtwqJFi1BaWoqIiIiG30BE5IIuCfo+pXN55ehgmMZtK1AKVsqNAyQBk4bu/ApjD9OUXonYfuYaEiMCjUMpJeGBAfhg7kDsvZCP1zafRX65GiWVtcg2DLtMjgg0lt4kVj1KtQ2U3gzrCAtUoKiy1uEepQnLdwLQNz/P6t/aofdYUlr00dRXejPdJNfTjcqm526KHqUvftdnBs/k6u+ctAwKbW0I7Cz//C1vzu1Aadu2bZ5YBxERWehgGDqZnl9hHFhp2cwN6PuTTP9hanrnm9SXNKlHIp6c3B1BSrnNf8T2bxeF/u2i8On+TOSUVOP8tTLklOgzSkkRdaU3idQEXpdRst3MbSy9aaRAKQBFlbVOl962nsp1OlB69tvjKKqsNZv1o9OJ9ZbeTMcbOBMnCQ6EDKaBSlPc9VZqMS28MUpvfpoPMeN2oERERI2jgyHgySmpRq4huyOVwEwzSqZlN6Bui5ML1yqMwU7PVhHG3qX6dIoPRU5JNc7lliOnWH/NpMhAqwxIkNJORkltXXrT6UTj7CJpDpSzzdx5JvObHKHR6vDJ3gwAQO/WdZn/ns9tMma5AP1MpYyCCrSNDoYgCGavBThRH3MkYDAN0JoiULIMiK0ySo2+Av/gkbzirl27MHv2bAwdOhRZWfo9e9auXYvdu3d74vRERC1SVIjSOKDyeLZ+UGRdRqnurjfLzW9TYuuGTlbX6hCilBuDp4Z0MsxXOpFdasxGJdvKKCkMGSXD/0oZpcuF5nvDVdVoUWtS6gpT6c9TYWfLFHtyS6udOr7aJDNkGi5UWgzWfPnHUxj16nZ8dkA/Bbqsui4L40qjd41GhxPZJTbLWjUmIxKaovQWaDE121szo3yd24HShg0bMGnSJAQFBSEtLQ1qtT7qLysrw8svv+z2AomIWjJpLpL0C14KlMKDFMapyJYZpeSIILNy09COsQ433UqB0p7z+QD0TduRwQHWPUpSRkkhZZT065MCOmlCeGWN1iyTIp2nsKJuWytHlpZX6lxGqcokIKqvX1badPgfP5wCYN6MXutkoCSKIqa9vRs3vrUbuw3fP1OmGZ2mqFhJ5VGJvZlRhzIK8U1aFtYfzMQney81/sJ8jNuB0ksvvYRVq1bh/fffR0BA3b84hg0bhsOHD7t7eiKiFk0KlCRSM7cgCIgylN8Sw81nKslkAu4anoLuSeH4+9RU/OeOfg5fr5OhL+qiYQuU5Igg/aw8pcKsvBSikjJKhkBJq4Nao8UZw5Yrg9pHA9APnDSdoSRlpoor6zI3IhpuLK7R6pzK8JiW9jQOTJWUvg7T0mGNRocb39qFdQca3nNMqxORXVKN04avX5pdZXmMpKE70C4XVhq/l87KKanCxOU7jP8NJZbfB2kJt6zci4fWH8HjG47h2W9PGMcJOMKR3ixf53agdObMGYwcOdLq+fDwcBQXF7t7eiKiFq2DRaAkZZSAuu1QLEtvAPDk5O74afEI3DW8vTH744iuiWFmGZ6kSP25ZTJ9sCTpmazv+6nLKOlwLrcctVoREUEBxjv29Bkl/S9ouUxAqCHAKjDJKImief+OxHKatzN9SqaBkmW5zRaphGh5196J7FI8+fUxq+MtAzudKKLSJMiyzOZYvkfTQNA3Ytk2THpzJwrK7X/N6fkV+PZIltVaXt10BmcNW9tInt54DHd+eKDea0osvweSD3enO51xqmrge19YUYM/vbcXGw5dceq8TcntQCkpKQnnz5+3en737t3o0KGDu6cnImrR2sea73QQbhIo/d/ojpjcMxEjOsd57HqRwUoMbh9jfJwUUTdKQLrDDajLGEkBhlqjM26426tVBIINQVWFWmvszQmQC8YAosgkUNK/3/oXqmXDt62ZUPaY3lVXUllbz5F60tf20/GrDp3fMtDRmjSsA+azmiSmb6kvo2Qa+Fwusv81j3ltOxZ/fgTv77qIme/swXd/ZAOw3pgYAD7dn2mVYbLHVhBXrtbgxe9P4tlvT6C4ssbGu/SKK2vw07EcqDVaPLXxGLo/+zNOZltn1yTLt5zFvouFeOTLPxxamze4HSjdd999WLx4Mfbv3w9BEJCdnY1PP/0US5cuxf333++JNRIRtVimpTe5TECISXZoWp9krJzdHyEqz97AfGPvJOPfk02yVfnldb8gpXVJGaUajQ5pmUUAgB6two0DKdWauh4l/Sa6dXvLmbL1y91y1lK2E4GS6XuLqxoOlJRyGS4XVmLDYccyG5bZLo1ObHCQpWkzdX236ps2fTvSv/Xyj6dxOLMYf12XBsD97VFsBXmm671caP+/w5/f34//+/QwXt98Fp/t15csV2y3TqZIHPlv421u/7/rscceQ0lJCcaMGYPq6mqMHDkSKpUKS5cuxQMPPOCJNRIRtVjSHWyAvuzWFIN8J/dMxDPfHAcAyG0MExKEugZpqbenulaL/en6CdgjOsUZ7x6rrq0rvSnlMuOgyqLKhgMltcWsJWcCJdNslCPzg6pqtcivp8xlqVZjUXrTiWZ399nKypj2WGnraZsy3XLGlTEC7t5RZ+v79f3RbOPfS03uDLRc3klDb9b/jtQdX99qTLNnv5zMNWYlmxOP/DPkH//4B55++mmcPHkSOp0Oqamp3BiXiMgDgpUKJEcEIruk2jhDqbHFhKpwQ49EbD55FTf0TKx7PkSJgooa3Na/jfE5KaO092IBCitqEBaowOAO0dh9Tn/XV3WtzviLP0AuM2aarDJKNuYqWZbepEDpzNUyiBDRLTHc7tfg6ORvSUllbb0BhiiKZkFqjY2MktYsELKOhEyrbbZe33uhAEk2pqA7y91AyVbz+9Mbjxv/bvp12IvjTJ//8VgOrpZU2+ylM3X3J787tc6m4rH/1wUHB2PAgAGeOh0RERm0jwtBdkm1WSN3Y3vzT31RWlWLeJPRA2sXDMb3R7PxwNhOxuekjJIU+IzrFm8osemfr6o16VFS1PUoWWaQbGWULKd3ZxVXo1arw6xVv6GsWoOfHxphN1hydqBlmVpT77RwtUZn1qBtWXrTiaLZczYzSqalN4uXT2aX4o739wEA9j45tt7z1EcURePYCEfY+j6ZBnyWASKgLyHWanX1DuQ0fYdOBMa9vh0nXrjBxnodXqrXeCRQ2rp1K7Zu3Yq8vDzoLCLRjz76yBOXICJqsdrHhmDP+QKzRu7GFhggt7pzKzU5HKnJ5oGJ0mKo4bCOscb3A4bSm42MkiWbgZLGOqNUWaM1zjp69ecz+HDeQJvnczZQAoDb3t1r97VytabeQMk6o1R/j5LlqIPjJiUn09Kbpr4anQ1anejURrVv/2rdPyQFZ3svFGDhfw/hhek9zF6f+9EBxIepsPvxsXbHA1gGVxU27n5buf0CfjiW4/BavcXtZu7nn38eEydOxNatW5Gfn4+ioiKzP0RE5J6uhlvt48PqL114g3TXm0TaWiXIGCjpjM3cSrnMONHbkq3Sm3RruVRKyi6pMrs7LtNiCrit97oiNSncqsxZYbE1i2WgpB9xUH9GSaynmds022QaKNkam1AfnehcM/fb26wDJWlt81YfQElVLRZ/fsTqmLwyNc5cLTMLdEzvbnNkCf/6+bTD6/QmtzNKq1atwpo1azBnzhxPrIeIiCzc0r811BodJvVIbPjgJqayyChJWS9jic2kmdu0JGfJdulNH+x0iA3BubxyFFfWmg2qtPUe43vrea0hAQqZVaasrNoyULIOYEybz21llHRmPUoiytUahBg2KTY9Wm0WKDn3dehE0e0eJemaDYVotRYVpLvW1M1p8qfNct3OKNXU1GDYsGGeWAsREdkQrFTg7hEdHNrUtqlZBkpSI7JUYqvWaI1ZIKVCZpWBktguvemfiw1VGc+bbjILqL7ymq2M0r9u6YWZ/VrZfY9EKRegsLjbr0KtQVpmkXHPOVsBjNqsZFZ/j9KJ7BL0/PsmPPKFfn6Qaa+O2XkcmCpuGpToRNHtIEUK8ho6Ta3Ff7Nck21mbJXkTmQ3vzvaHOF2oHT33Xfjs88+88RaiIjIx1hmiIwZJUNAVKsVUWrIxgQr5VaBlcRW0CM9FxggQ6tI/eBL00Cp3oySjfNFh6gc6vMKkMugkJv/on98w1HMeOc3XP+vXwHYC5RMRxJYv26aZZJ6dr5O028kL8L10ptokalyd1sR6ZoNBVyWaws2mfFl671zHJwMburOjw7gSpH9EmtTcLv0Vl1djffeew+//PILevfubbbfGwC88cYb7l6CiIiaKaXcPEMk9faYbpsiTeHWB0pOZJQMwU6QUo7kyCCcvlqGSw5mlGy9ppALDt0RppDLrO7oulSg/2UtBQc1GhulN01DPUr2r2n6munoAXulN3t74zl5k1y9524o4LJcW1igwrhdjK13FlbUoKpG69SWOjvPXsOiTw/j2weud/g9nuZ2oHT06FH07dsXAHD8+PH6DyYiIr9imlGSCUCIYesS08xRYaUUKCnq6VGqJ6OkkCMmRL+v3UWLjJKt29cB23OUlHIZAuxktMyPExAgtx8kVNdqbfYgmWaCbPco1bNtiZ3z2CrhAfbHBoiiaDOb5Qzp1A1nlMyvY1rutDcos6BCjdZK50rIf1zxbsnO7UBp27ZtnlgHERH5IKVJ5iUsMMB4a7ogCFApZFBrdCgsN80o2QmUbMwwkuYaqQL0GSXAvPQG6LMvllmqqhotvvjdeiuSALkMAQ5klALkMqseJVP/3ZeBl344ZWO9dYGC7TlK9VzUJIiqrKlrHLeXUbI3bVyrE1HrZlqpsEKN/2w91+BmwpalN7OsoN1BlM6XBReO6uj0ezzJ5R6lKVOmoKSkLsr7xz/+geLiYuPjgoICpKamurU4IiJq3kwzROFB5v/2DrTY183V0ltggAzJkfrRCNfK1BbHWL/v19N5xr+3i6nLXgTIBSjqGZJYd5ys3oySaZDUq1WEcT82dQMZpfq2UjF9xTQzU6PV4ZO9l3A403zcjr0ASic6P3vJ0t++PYHXt5xt8DjLRnPTr9/ed89eybA+baKDGj6oEbkcKG3atAlqdd0H9l//+hcKCwuNjzUaDc6cOePe6pqpFStWIDU1FQMH2h50RkTUUphmlKSym0S6862gwqT0ZpFRkm7Dr6oxv/0eqAuCggLkxmZuS7ZKdgUV+t9NXRPCcGv/1sbnbTVpA8CC69ubPdYf59ivR5lMMN6O33CPUj2BkslLpnva/XahAM9+ewIz3/nN7P32SnL6CeFNM+66vmZ6e5mjCW/stNq+piHuNqe7y+VAyfI/uCtRoq9atGgRTp48iYMHD3p7KUREXqUymVZtOcnbcgPcYKXcqkcpLlTfe1Smtg6UqowZpbrSmyVbJbtSw470/dpGItrQ2wRIpTfrX3vjusfj33/qa3ysVNTfo2RKLtQNxPxg10Xj89/9kW22kSxQf+nNtH/pLZNp2SUmc6OyS6pRrtYgr6zaaoaR6XlsBY+NwXK6uCl7Fc6qWi2ue3ELUp74weHruDkWym1ujwcgIqKWyzSjZJktslV6U1pkamJD9ZO8y6ttZZTqSm/xYSqbgxRtBQUlhkApPCgA0SF1d2IH2GnSDlEqjAGb/jjru97skcsE4yRsy7jhgc/SzB7XW3qz89Lu8/nGvxdV1OC6F7dg0D+2Iq9UbfN4rU40awZvTNp6EiSezAJ5e3ily4GSIAhWqTVXmrSIiMh3mQYeKouMkvS4zDhHSQGFXGZ2i36MIUApt5FRKqs2BDyBAVDIZUgMt97CxVaPUmmVxvA+hVVGyVZJLUSlQFhggPlxDqYxZILg8CTs+iov9QVREp1YFwSlWfQs1V2j/pKYJ9W3Zk+GA96OLVy+600URcybNw8qlf5DWF1djYULFyIkJAQAzPqXiIjIP5n+Egu0zChZPJYGEqoUMmgMDcvGjJKNQMkY8BiGRCZHBiLLpH8HsJ1RKq02zSgpjc8rFbabtENVCrPAyJkeJbnM8UCpvljIXinNlGlgYitAlI5pDoGSJ9kbNdBUXA6U5s6da/Z49uzZVsfceeedrp6eiIh8jGVGyXKwYLBK/ytHqZAZJ1NLGSXLvdQAk4AnUAqUggCYZ1Js9igZ3hcRFIDIYPMhyLZu+w9Ryc0CKLkMjZJRqm+Okr3mbLNjzAIl231IplmnxnYow/7G957MAnm7VuVyoLR69WpProOIiHycdUbJIlAyZpTkAPTBTEyI/YySFDxJ+7yZ9hFJqm1llIyltwBEByv17xeB6BClzZJQiFIBpaIuuKjR6MyCmiXju+CXU7mICAow6xkCzO96a0h9PT2O3NJvGhTayxrpmrD09v3RHLuvncop9dh16hlp1STYzE1ERB5heUdbYICd0pvJ83Fhhh4lWxklk6ZsAIgyKaNJ6ssohQcpIJMJOPj0eOx/ehwC5DKb5SKZTDCb71RdqzM7btGYjvjur9cjPsw6UJMLtrNUttTXo+TIkEjTLJK9jNL+9ALUNHDX2429kxq8VnPi7fEAbk/mJiIiAmA1TNJyXECwje1NYo2lt1qzY7U60TgyQNo/zrKMBtjLKJmX7EzXUV/5y3hOiy1KpH4lmY3MkVwm2J02DgC/ns7FlpO5ePyGbqivDcmhjJKm4YzS0xsb3kqsY1xog8c0J96+T4yBEhERuSU5IhDZJdWY0ss8U2EdKOkfK00CixhDM3dFjT44kcsEfZBkEjhJd6RFBjWcURJFEaXV5k3gphzpP67W6GCrZUhu4ze2TBDMvh5LT319HFdLq5FRUIl5w1JsHiOKot3mbFOmjesVNgZ0OsrbPT/O8tlmbiIiIgD4eclIZBdXoVtiuNnz9gIl04AjxuT2/YoaDeSCgInLdxqzR4EBMmMgEmUjo7R2XwZuHdDG2CdUWVOXDQoPtD7ekTu1qmu1Nocpym3cMSeX1R8oXS2tBgAcvVJiN5ulE21v4mu9rrpgylap0lHeztA4y9vrZY8SERG5JTwwwCpIAmz1KOn/bW4aLoQHKYxDKMurNdhx9hqyiqtwIrvUeG5JZLB1RulEdil+OFbXVCwNmwyQC1bXBxzbRSIhXGUzoLKZUWqg9CYJUsrtZrM0Op2DgVLdMZtP5jZ4vD3e7vlxlrczSgyUiIioUZhmlFQKmc27w5RyGUINPUjlao1VgGJaPrPVowSY32FlOlLA1i3q8noarz+ZPwjT+iTjkQldbd6hZmv98gZKbxKlXGY3o6TViaiuaThQ8tTdbN7O0DjL28tl6Y2IiBqF6biAYIuZShJBEBCqUqCwogZl1RpjoCORGrkBIMpGRgmoGx8AWA+ptHRzv2R8svcSBrePRlJkEMZ3TzC+NrJLHEZ2iQNgex8zm4GSTLDalsWWyhrrIFCy/2Ihdp671uA5nN3D7bmpqXjuu5NWz/dqFeHUebzNZydzExER1cd04KRUdgOs9zULM8ko5ZeZ7yxvGvBYDrCUFJtsHFt3x5vtX2/BSgV+fmhkg2t3NKPk6O/wcrXGbkbprjWObbD+5i/nHLuYwdhuCVaBklwmoF1MsFPn8TZuiktERH7JPDiy3xsUapjYXVZdi/xy8+2vwmw0ZAPAgHZRxr8XVdTgakk10jKLzLYvcYetjJKtXhm5IJhNzLanVuvYnW2eZKvK2CM53Os9P85iRomIiPzSiM6xxr8XVtbYPc6YUarW4FqZeaCUHGm9ES4A3DagDWZc1wpPbzyOospazP3oAM7klmFst3gA7gdKtjNK1sfJZYJDs5mAumxXfVQKmcd6kWxmwOD95mhnMaNERER+KTJYiW8WDUfrqCA8OK6z3eOkzFNFjdYqo9S/bZTZ4/X3DsHicZ0x87pWxp6lkqoanMktAwD8ejoPgO3RAM6w3H4FsN0ILpMJqHVgnzYAVv1XNq8bYLu86ApbAZEgCL7XzM2Bk0RE5K/6tonE7sfHmj0nwjywCDGU3irUGqtA6bp25oHS4A4xGNwhBkDdXXBFldYBSHiQe7/eXpnZC/d88jv+OrYuwLM1HkAuCA7NZgKAqpqGM0WhKoVxxIG7bAVKMsH2hPHmzNvjDBgoERGRV4UYmrQraqxLb7E2NsKVSBmlYhtlPXczSp0TwrD90TFmz9krvTkaKDly11pMqBJZxVUOna8htkpvMkGwGfA1Z94O7Fh6IyIir5IySgXlNagwzBMa0TkWK/58Xb3vkwKl/HIbgZKbPUq22JvBZBoofTx/kNXrEYa1ONLMHeTR0pv1c4IAhwZkNifeDux867tFREQ+z7L3OUSlDw6uFFUC0E/V/mT+oAZ3uY8MDrDbvxKm8nzBxFZGSRRFs7veBrePtjpG2s/O1ga+7kgIr8u2DTWUI03ZysS0iQ52uQ8qtBG+p47wdqWQgRIRETWpx27oBgC4c2g7AHUZpcuF+pJTVLDSoVvCAwPkSE2y3joFgEPTsp1lq+dHJwJaXV2mKMBGNCUNpMwsqPToekyzT73bRGBQinmQZisT88yNqS5nlGyV8loCBkpERNSkRnWJw5FnJ+D5aT0AACGGu96k3pzoENsTuG253mQEgSlHpmU7y1agoBNFjO2mn+6dFBFodcyjk7oaA5NjWSUNXsOxbic908yQXBCs5iZZriU5IhDRIUqXe34UDJSIiIiaRqRJ1ijEoqRjb6sSW2yVugAgoBEySrYCBZ0IPDS+M/51Sy9svH+42WtzhrTD/aM72swy2dI22rmJ2SqTQEkhE6wCI8uEkoM953Z5K6Pk5rLdxkCJiIi8KsRiaxJnMkptomwHFwFyz/9St52JEREYIMftA9siMcJ8OGZUiD4YdLQMuGp2f6fWExRQd97YMJVVadCy9OboYEx7qmpd67GaNyzFreu6uWy3MVAiIiKvCrbMKIU4fsdaQoTtyd2NcWeXrZ4fXT03sknbtjiSUXplZi+kJtvut7LHtEepf7soq4yP5eMKtcap81uqdjFQem5aD7x4c0+3ru1NDJSIiMirQlUWGSUnSm/27m5ztNzlDFsZJcvhmaaksQGOZJScKTdKTBveW0cGWwVylg3xpqW3L+4b6vT17I0umNonucH3Opvfmz2krfHv9X2PmwIDJResWLECqampGDhwoLeXQkTk80w3zwX0JStH2bs7rjHuerPVo1RfWUgKTBxpLI8Kdn7uk+neceFBCpuB3B2D6gKOlbPr5lINstPbVZ8be9sOiCIcmILu7Cikl27uZfy7t0tvnMztgkWLFmHRokUoLS1FRESEt5dDROTTLJu5nelRsqcxMkq273qzf7xUenMkaDN+zU4EBdd3jsXvGUVoHxsCwc7E7Ren98BfBrdFalK42xOuuyeF2XzekS1GvL0NiTsYKBERkVdZNnO7Uoay1BjjAWzNUaqvLKQz9iiZv29AuyhcKarC1dJq43ORLnzNbaKCcfhvE4wDO20NDlfIZejZyjP/oLcX6jgSf7kzXJt3vRERUYumkMvMsi7OZpTeuK2PVTDSHEpvQzvG2FzLiM5x2PfUOHRLrMvQRDpYeusYF2L8e2CAHNEhSqgUhkCpsbf6sHN+R4aDurIyKdjt5aFAz1UMlIiIyOtqNHW3j3WKD3XqvTOva43jz09Cl4S69zVVM7etW+73PjkWH88fhDFd4wEASrl5xkwKnMqq6+5Cs7XeRyZ0MXvcIzkcX/9f3awmyzv7PDnnKNnG3YTunN6VGC7t2Qn4/ZnxHinFuoOlNyIiajZCVQqX9iKTsiqSxpijZHM8gI2MUlJEEJIigurWojB/nxTgqDX1b5JreuonJ3fDrQPaQGUyO8n07/bW5ypbQaG9PiNHLutMj9Idg9oA0PeuWfaveYP3V0BERGQwxMbmro4yTe40RunNVsZGdOCWrECLIK6jIWNWq60/UDLNVt03qqPVeyyDQ3ebtU1dKaqyes5eQOTpkt/fp/bw6PncxdIbERF53YNjOyExPBAvTPfML8kAW53NbrIZKDnwPtMMWef4UIw07E+naSBQspVZM80aWQaDnswo2WIvDssvVzf4XkdnIbWKDHIpo9iYmFEiIiKve3hiVzw8savHzufJ7IrE1YyS6VYjD4ztZGx+rm1g87U5Q9phy8lcTExNMD5n+nW1jw0xO74RYkMz9spn6tr6Az7A+7OQ3MFAiYiI/EJj/y62OR7AgYuaZkhMh2vayiiZZl5CVAps+L9hVscceHocajQ6RATZv1PumRu7N7wwJzX2TXWAY4FnU2PpjYiI/EJj/5K1PXDSgR4lk0DJdGZUAwklu+LDAtHaxmbApkv5k8lEbnv6tY106rr2xgA48j1w9EttfmESAyUiIiKHlFXXWj3XLbHhjWxNA6UgZdP03zjSr7R6nnPbcNk7o2nAl2Rnk+JmmChyGEtvRETkFxr7d3Gttu4K3z1wPbacysX/je7Y4PsCTXqUGrrd3Z2AwvS9jsxUcnYauL0eKNOMUmSwEjkl1bYPdEBzDKgYKBERETlgXPd4TOqRgEHtY9CrdQR6tXZsYrRZRqkR7+gyDVhsTRF3l71mbq1JSiklJhinckqtjnH0rrcEOxkpb2LpjYiIyAEBchnenTMAC65v79T7TG/jD26i0ltj3PVnr5qnE0V8ds9g3Ng7CS9M7+nSudfdMwSjusThrT/1dX2BjYQZJSIi8g/NsGxjybT0NntIW/x3XybmDm3nkXN74st/ZEIX/HahAJN6JOC5706avabR2r6CKALDOsZiWMdY+2trYHFDO8YY98ZrbhgoERERNSLTIMF0f7a/T+2BGf1aoXfrSI9fx1HhgQqUmuw5N6xTDP46rjN2nbtmdezu8/k2z6F19fY9H8HSGxER+YXm+uu6d+sIpCaFY2Jqgtkt9gFyGfq3i26UDXwdtfOxMfjxwRHGx1KwZasfaUiHaJvn0HpwPEBzxIwSERFRIwqQy/DDg9fbnUNkyp2AwtGGaVORwUqEB9YNrpSSQ7aWenO/Vnh8wzGr5x1qHG+Ot7M5iBklIiKiRuZIkOQ2F2MR08ZvaWinrdVabsIraWjkAVD/0nY+OqbB93sTAyUiIvILzXH7i6bkia/eeA4n4rpQRwIlO4t76eaeaBtjPWW8OWGgREREfmF013gAQGyoc4MUSb/BrlwmoFcr/WwoW/vaWZpg2Kx3/nDnxiUAwLhu8fj6/mH4swNbrXgbe5SIiMgvPHZDV3SIC8G47gneXorLEsNdH7joTkZty5KRqNWKxi1WLMOkaX2SAQBhKgXK1Br0aR2Bd2f3R3FVLaJDGg5MLde2ak5/rzaxO4OBEhER+YVgpQJ3Dk3x9jLc8vdpqVBrdJg9xPlMizt36SvkMpi2IFn2VEnbsHz5f0OxevclPDi+M2QywWaQ9Oqs3nj0q6P1Xs9XgiSAgRIREVGzER8WiA/mDvD2MuxO4e6WGI5/zepd73tvHdAGJ7JLsea3S8bnfLl7zHdCOiIiIrLLk8GIp3dA8eU+ewZKREREfsCzd/2ZR0q+HOi4i4ESERERmbEsvbkbJ5luDOxrfHflREREZNR4+SRA7uTAzPhwldnjm/u1cnNF3sNmbiIiIn/gwUjJco6SzMmmpfnD2+N8bjkm9tCPaghVKTC8Uwz2nC/w2BqbCgMlIiIiqpezzd2BAXK8cXtfs+d0Os+tpymx9EZEROQHOsaHeuxclskpRyZ1N0Tnox3hzCgRERH5gftHd4Rao8XEVPcnk2stpld6YlyAj8ZJDJSIiIj8QWCAHE9O7u6Rc1mOGrCc1O0KX80osfRGREREZiy3Q2nJpTcGSi5YsWIFUlNTMXDgQG8vhYiIyOMsM0qeKL25sxedNzFQcsGiRYtw8uRJHDx40NtLISIi8jirjJIHIiXPTg5vOgyUiIiIyIx1j5L752RGiYiIiPxCY/QoiR6dHd50GCgRERGRGcvGa2e3MLF5Tg6cJCIiIn9gGSjdNqCNx8/pKzhHiYiIiMyYxjTHn5+EUFXLDReYUSIiIiIz17WLAgAkRwR6LEhiRomIiIj8QkRQAI49NxGBAXKPndNX73pjoERERERWwgIDPHo+X80osfRGREREjc5H4yQGSkRERNT4mFEiIiIisoOBEhEREZEdHDhJREREZAc3xSUiIiKyw1fHAzBQIiIiokbHHiUiIiIiO5hRIiIiIrKDPUpEREREdrD0RkRERGTH7CHtAAAjOsd6eSXO4V5vRERE1OgWj+uMoR1i0LdtpLeX4hQGSkRERNToFHIZhnXyrWwSwNIbERERkV0MlIiIiIjsYKBEREREZAcDJSIiIiI7GCgRERER2cFAiYiIiMgOBkpEREREdjBQIiIiIrKDgRIRERGRHQyUiIiIiOxgoERERERkBwMlIiIiIjsYKBERERHZofD2AnyZKIoAgNLSUi+vhIiIiBwl/d6Wfo/Xh4GSG8rKygAAbdq08fJKiIiIyFllZWWIiIio9xhBdCScIpt0Oh2ys7MRFhYGQRA8cs6BAwfi4MGDHjmXp87nyjmceY+jxzZ0XH2vl5aWok2bNrh8+TLCw8MdWldz5enPiLeu6e45feVzWd8x/Fw2v+t643Pp7Pvc+cw5eoy/fzZFUURZWRmSk5Mhk9XfhcSMkhtkMhlat27t0XPK5XKPfig9cT5XzuHMexw9tqHjHDlPeHi4z/+f3tOfEW9d091z+srn0pFj+LlsPtf1xufS2fd54jPn6DH+/NlsKJMkYTN3M7No0aJmdz5XzuHMexw9tqHjPP29a6688XU2xjXdPaevfC6dva6v8tbX2Nx+Zrr6fk9/Nvm5rOPu18nSG7UIpaWliIiIQElJic//64j8Bz+X1Fzxs1mHGSVqEVQqFf7+979DpVJ5eylERvxcUnPFz2YdZpSIiIiI7GBGiYiIiMgOBkpEREREdjBQIiIiIrKDgRIRERGRHQyUiIiIiOxgoERkYcaMGYiKisKsWbO8vRRqwb7//nt07doVnTt3xgcffODt5RAZtbSfkRwPQGRh27ZtKC8vx8cff4yvvvrK28uhFkij0SA1NRXbtm1DeHg4rrvuOuzfvx/R0dHeXhpRi/sZyYwSkYUxY8YgLCzM28ugFuzAgQPo0aMHWrVqhbCwMEyZMgWbNm3y9rKIALS8n5EMlMin7Ny5E1OnTkVycjIEQcA333xjdcw777yD9u3bIzAwEP3798euXbuafqHUorn7Oc3OzkarVq2Mj1u3bo2srKymWDr5Of4MdR4DJfIpFRUV6NOnD95++22br69fvx4PPfQQnn76aaSlpWHEiBGYPHkyMjMzjcf0798fPXv2tPqTnZ3dVF8G+Tl3P6e2OiIEQWjUNVPL4ImfoS2OSOSjAIgbN240e27QoEHiwoULzZ7r1q2b+MQTTzh17m3btom33HKLu0skculzumfPHvHmm282vvbggw+Kn376aaOvlVoWd36GtqSfkcwokd+oqanBoUOHMHHiRLPnJ06ciN9++81LqyIy58jndNCgQTh+/DiysrJQVlaGH3/8EZMmTfLGcqkF4c9Q2xTeXgCRp+Tn50Or1SIhIcHs+YSEBFy9etXh80yaNAmHDx9GRUUFWrdujY0bN2LgwIGeXi61UI58ThUKBV5//XWMGTMGOp0Ojz32GGJiYryxXGpBHP0Z2tJ+RjJQIr9j2cshiqJT/R28u4iaQkOf02nTpmHatGlNvSyiBj+bLe1nJEtv5DdiY2Mhl8utskd5eXlW/0Ii8hZ+Tqm54mfTNgZK5DeUSiX69++PLVu2mD2/ZcsWDBs2zEurIjLHzyk1V/xs2sbSG/mU8vJynD9/3vg4PT0dR44cQXR0NNq2bYuHH34Yc+bMwYABAzB06FC89957yMzMxMKFC724ampp+Dml5oqfTRd4+a47Iqds27ZNBGD1Z+7cucZjVqxYIbZr105UKpXiddddJ+7YscN7C6YWiZ9Taq742XQe93ojIiIisoM9SkRERER2MFAiIiIisoOBEhEREZEdDJSIiIiI7GCgRERERGQHAyUiIiIiOxgoEREREdnBQImIiIjIDgZKRERERHYwUCIi8qJ58+ZBEAQIgoBvvvnGo+fevn278dw333yzR89N1FIwUCIijzL9xW/6x3QjTjJ3ww03ICcnB5MnTzY+Zy9wmjdvnsNBz7Bhw5CTk4PbbrvNQyslankU3l4AEfmfG264AatXrzZ7Li4uzuq4mpoaKJXKplpWs6VSqZCYmOjx8yqVSiQmJiIoKAhqtdrj5ydqCZhRIiKPk37xm/6Ry+UYPXo0HnjgATz88MOIjY3FhAkTAAAnT57ElClTEBoaioSEBMyZMwf5+fnG81VUVODOO+9EaGgokpKS8Prrr2P06NF46KGHjMfYysBERkZizZo1xsdZWVm4/fbbERUVhZiYGEyfPh2XLl0yvi5la1577TUkJSUhJiYGixYtQm1trfEYtVqNxx57DG3atIFKpULnzp3x4YcfQhRFdOrUCa+99prZGo4fPw6ZTIYLFy64/421cOnSJZvZu9GjR3v8WkQtFQMlImpSH3/8MRQKBfbs2YN3330XOTk5GDVqFPr27Yvff/8dP//8M3Jzc83KRY8++ii2bduGjRs3YvPmzdi+fTsOHTrk1HUrKysxZswYhIaGYufOndi9ezdCQ0Nxww03oKamxnjctm3bcOHCBWzbtg0ff/wx1qxZYxZs3Xnnnfj888/x1ltv4dSpU1i1ahVCQ0MhCALmz59vlUn76KOPMGLECHTs2NG1b1g92rRpg5ycHOOftLQ0xMTEYOTIkR6/FlGLJRIRedDcuXNFuVwuhoSEGP/MmjVLFEVRHDVqlNi3b1+z4//2t7+JEydONHvu8uXLIgDxzJkzYllZmahUKsXPP//c+HpBQYEYFBQkLl682PgcAHHjxo1m54mIiBBXr14tiqIofvjhh2LXrl1FnU5nfF2tVotBQUHipk2bjGtv166dqNFojMfceuut4u233y6KoiieOXNGBCBu2bLF5teenZ0tyuVycf/+/aIoimJNTY0YFxcnrlmzpt7v1/Tp062eByAGBgaafR9DQkJEhUJh8/iqqipx8ODB4k033SRqtVqHrkFEDWOPEhF53JgxY7By5Urj45CQEOPfBwwYYHbsoUOHsG3bNoSGhlqd58KFC6iqqkJNTQ2GDh1qfD46Ohpdu3Z1ak2HDh3C+fPnERYWZvZ8dXW1WVmsR48ekMvlxsdJSUk4duwYAODIkSOQy+UYNWqUzWskJSXhxhtvxEcffYRBgwbh+++/R3V1NW699Van1ipZvnw5xo8fb/bc448/Dq1Wa3XsggULUFZWhi1btkAmY7GAyFMYKBGRx4WEhKBTp052XzOl0+kwdepU/Otf/7I6NikpCefOnXPomoIgQBRFs+dMe4t0Oh369++PTz/91Oq9po3mAQEBVufV6XQAgKCgoAbXcffdd2POnDlYvnw5Vq9ejdtvvx3BwcEOfQ2WEhMTrb6PYWFhKC4uNnvupZdews8//4wDBw5YBYJE5B4GSkTkVddddx02bNiAlJQUKBTWP5I6deqEgIAA7Nu3D23btgUAFBUV4ezZs2aZnbi4OOTk5Bgfnzt3DpWVlWbXWb9+PeLj4xEeHu7SWnv16gWdTocdO3ZYZXokU6ZMQUhICFauXImffvoJO3fudOlajtqwYQNeeOEF/PTTT43SB0XU0jE/S0RetWjRIhQWFuKOO+7AgQMHcPHiRWzevBnz58+HVqtFaGgoFixYgEcffRRbt27F8ePHMW/ePKvy0tixY/H222/j8OHD+P3337Fw4UKz7NBf/vIXxMbGYvr06di1axfS09OxY8cOLF68GFeuXHForSkpKZg7dy7mz5+Pb775Bunp6di+fTu++OIL4zFyuRzz5s3Dk08+iU6dOpmVDD3t+PHjuPPOO/H444+jR48euHr1Kq5evYrCwsJGuyZRS8NAiYi8Kjk5GXv27IFWq8WkSZPQs2dPLF68GBEREcZg6NVXX8XIkSMxbdo0jB8/Htdffz369+9vdp7XX38dbdq0wciRI/HnP/8ZS5cuNSt5BQcHY+fOnWjbti1mzpyJ7t27Y/78+aiqqnIqw7Ry5UrMmjUL999/P7p164Z77rkHFRUVZscsWLAANTU1mD9/vhvfmYb9/vvvqKysxEsvvYSkpCTjn5kzZzbqdYlaEkG0LOoTEfmA0aNHo2/fvnjzzTe9vRQre/bswejRo3HlyhUkJCTUe+y8efNQXFzs8e1LmvoaRP6KGSUiIg9Rq9U4f/48/va3v+G2225rMEiSfP/99wgNDcX333/v0fXs2rULoaGhNhvYicgxbOYmIvKQdevWYcGCBejbty/Wrl3r0HuWLVuGZ555BoD+Lj9PGjBgAI4cOQIANscvEFHDWHojIiIisoOlNyIiIiI7GCgRERER2cFAiYiIiMgOBkpEREREdjBQIiIiIrKDgRIRERGRHQyUiIiIiOxgoERERERkx/8D7LlZwucDtDgAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "%matplotlib inline\n", - "\n", - "plt.figure()\n", - "plt.loglog(ds_binned['freq'], ds_binned['auto_spectra'].sel(S='Sxx').mean(dim='time'))\n", - "plt.xlabel('Frequency [Hz]')\n", - "plt.ylabel('Energy Density $\\mathrm{[m^2/s^s/Hz]}$')\n", - "plt.title('Streamwise Direction')" - ] - }, + "name": "stdout", + "output_type": "stream", + "text": [ + "Percent of data containing spikes: 0.73%\n" + ] + } + ], + "source": [ + "# Clean the file using the Goring+Nikora method:\n", + "mask = api.clean.GN2002(ds.vel, npt=5000)\n", + "# Replace bad datapoints via cubic spline interpolation\n", + "ds[\"vel\"] = api.clean.clean_fill(ds[\"vel\"], mask, npt=12, method=\"cubic\", maxgap=None)\n", + "\n", + "print(\"Percent of data containing spikes: {0:.2f}%\".format(100 * mask.mean()))\n", + "\n", + "# If interpolation isn't desired:\n", + "ds_nan = ds.copy(deep=True)\n", + "ds_nan.coords[\"mask\"] = ((\"dir\", \"time\"), ~mask)\n", + "ds_nan[\"vel\"] = ds_nan[\"vel\"].where(ds_nan[\"mask\"])" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Coordinate Rotations" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that the data has been cleaned, the next step is to rotate the velocity data into true East, North, Up (ENU) coordinates.\n", + "\n", + "ADVs use an internal compass or magnetometer to determine magnetic ENU directions. The `set_declination` function takes the user supplied magnetic declination (which can be looked up online for specific coordinates) and adjusts the orientation matrix saved within the dataset.\n", + "\n", + "Instruments save vector data in the coordinate system specified in the deployment configuration file. To make the data useful, it must be rotated through coordinate systems (\"beam\"<->\"inst\"<->\"earth\"<->\"principal\"), done through the `rotate2` function. If the \"earth\" (ENU) coordinate system is specified, DOLfYN will automatically rotate the dataset through the necessary coordinate systems to get there. The `inplace` set as true will alter the input dataset \"in place\", a.k.a. it not create a new dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# First set the magnetic declination\n", + "dolfyn.set_declination(\n", + " ds, declin=10, inplace=True\n", + ") # declination points 10 degrees East\n", + "\n", + "# Rotate that data from the instrument to earth frame (ENU):\n", + "dolfyn.rotate2(ds, \"earth\", inplace=True)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once in the true ENU frame of reference, we can calculate the principal flow direction for the velocity data and rotate it into the principal frame of reference (streamwise, cross-stream, vertical). Principal flow directions are aligned with and orthogonal to the flow streamlines at the measurement location. \n", + "\n", + "First, the principal flow direction must be calculated through `calc_principal_heading`. As a standard for DOLfYN functions, those that begin with \"calc_*\" require the velocity data for input. This function is different from others in DOLfYN in that it requires place the output in an attribute called \"principal_heading\", as shown below.\n", + "\n", + "Again we use `rotate2` to change coordinate systems." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "ds.attrs[\"principal_heading\"] = dolfyn.calc_principal_heading(ds[\"vel\"])\n", + "dolfyn.rotate2(ds, \"principal\", inplace=True)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Averaging Data\n", + "The next step in ADV analysis is to average the velocity data into time bins (ensembles) and calculate turbulence statistics. These averaged values are then used to calculate turbulence statistics. There are two distinct methods for performing this operation, both of which utilize the same variable inputs and produce identical datasets.\n", + "\n", + "1. **Object-Oriented Approach** (standard): Define an 'averaging object', create a dataset binned in time, and calculate basic turbulence statistics. This is accomplished by initiating an object from the ADVBinner class and then feeding that object with our dataset.\n", + "\n", + "2. **Functional Approach** (simple): The same operations can be performed using the functional counterpart of ADVBinner, turbulence_statistics.\n", + "\n", + "Function inputs shown here are the dataset itself: \n", + " - `n_bin`: the number of elements in each bin; \n", + " - `fs`: the ADV's sampling frequency in Hz; \n", + " - `n_fft`: optional, the number of elements per FFT for spectral analysis; \n", + " - `freq_units`: optional, either in Hz or rad/s, of the calculated spectral frequency vector.\n", + "\n", + "All of the variables in the returned dataset have been bin-averaged, where each average is computed using the number of elements specified in `n_bins`. Additional variables in this dataset include the turbulent kinetic energy (TKE) vector (\"ds_binned.tke_vec\"), the Reynold's stresses (\"ds_binned.stress\"), and the power spectral densities (\"ds_binned.psd\"), calculated for each bin." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Option 1 (standard)\n", + "binner = api.ADVBinner(n_bin=ds.fs * 600, fs=ds.fs, n_fft=1024)\n", + "ds_binned = binner.bin_average(ds)\n", + "\n", + "# Option 2 (simple)\n", + "# ds_binned = api.calc_turbulence(ds, n_bin=ds.fs*600, fs=ds.fs, n_fft=1024, freq_units=\"Hz\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The benefit to using `ADVBinner` is that one has access to all of the velocity and turbulence analysis functions that DOLfYN contains. If basic analysis will suffice, the `turbulence_statistics` function is the most convienent. Either option can still utilize DOLfYN's shortcuts.\n", + "\n", + "See the [DOLfYN API](https://dolfyn.readthedocs.io/en/latest/apidoc/dolfyn.binners.html) for the full list of functions and shortcuts. A few examples are shown below.\n", + "\n", + "Some things to know:\n", + "- All functions operate bin-by-bin.\n", + "- Some functions will fail if there are NaN's in the data stream (Notably the PSD functions)\n", + "- \"Shorcuts\", as referred to in DOLfYN, are functions accessible by the xarray accessor `velds`, as shown below. The list of \"shorcuts\" available through `velds` are listed [here](https://dolfyn.readthedocs.io/en/latest/apidoc/dolfyn.shortcuts.html). Some shorcut variables require the raw dataset, some an averaged dataset.\n", + "\n", + "For instance, \n", + "- `bin_variance` calculates the binned-variance of each variable in the raw dataset, the complementary to `bin_average`. Variables returned by this function contain a \"_var\" suffix to their name.\n", + "- `cross_spectral_density` calculates the cross spectral power density between each direction of the supplied DataArray. Note that inputs specified in creating the `ADVBinner` object can be overridden or additionally specified for a particular function call.\n", + "- `velds.I` is the shortcut for turbulence intensity. This particular shortcut requires a dataset created by `bin_average`, because it requires bin-averaged data to calculate.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Calculate the variance of each variable in the dataset and add to the averaged dataset\n", + "ds_binned = binner.bin_variance(ds, out_ds=ds_binned)\n", + "\n", + "# Calculate the power spectral density\n", + "ds_binned[\"auto_spectra\"] = binner.power_spectral_density(ds[\"vel\"], freq_units=\"Hz\")\n", + "# Calculate dissipation rate from isotropic turbulence cascade\n", + "ds_binned[\"dissipation\"] = binner.dissipation_rate_LT83(\n", + " ds_binned[\"auto_spectra\"], ds_binned.velds.U_mag, freq_range=[0.5, 1]\n", + ")\n", + "\n", + "# Calculate the cross power spectral density\n", + "ds_binned[\"cross_spectra\"] = binner.cross_spectral_density(\n", + " ds[\"vel\"], freq_units=\"Hz\", n_fft_coh=512\n", + ")\n", + "\n", + "# Calculated the turbulence intensity (requires a binned dataset)\n", + "ds_binned[\"TI\"] = ds_binned.velds.I" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plotting can be performed using matplotlib. As an example, the mean spectrum in the streamwise direction is plotted here. This spectrum shows the mean energy density in the flow at a particular flow frequency." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Saving and Loading DOLfYN datasets\n", - "Datasets can be saved and reloaded using the `save` and `load` functions. Xarray is saved natively in netCDF format, hence the \".nc\" extension.\n", - "\n", - "Note: DOLfYN datasets cannot be saved using xarray's native `ds.to_netcdf`; however, DOLfYN datasets can be opened using `xarray.open_dataset`." + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Streamwise Direction')" ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" }, { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "# Uncomment these lines to save and load to your current working directory\n", - "#dolfyn.save(ds, 'your_data.nc')\n", - "#ds_saved = dolfyn.load('your_data.nc')" + "data": { + "image/png": "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Rx99FBkZGRg5cqTdTIstXbp0wTPPPIMNGzbg8OHDAIBJkyZBoVDgwoULVmVJdxUWFmLhwoUICAjAkiVLXDrHTTfdhJdffhkxMTFo37693eMmT56MV155BStXrsQLL7xg9zhHPx8hISEYPHgwvv76a7z22msICgoCoL+z7r///S9at26NLl26OP8FETVTDJSIfNikSZPQunVrTJ06Fd26dYNOp8ORI0fw+uuvIzQ0FIsXLzYe26tXL3z++edYv349OnTogMDAwHrn94SGhuI///kP5s6di8LCQsyaNQvx8fG4du0a/vjjD1y7dg0rV64EoP+lvWbNGnTr1g29e/fGoUOH8Oqrr6J169Ye/5rj4+PRs2dPbN68GWPGjDHOExo/fjwKCwtRWFiIN954o95zHD16FA888ABuvfVWdO7cGUqlEr/++iuOHj2KJ554AoD+lvkXXngBTz/9NC5evIgbbrgBUVFRyM3NxYEDBxASEoLnn3++wfWeO3cO+/btg06nMw6c/PDDD1FaWopPPvnEatyBox566CFs2LABI0eOxJIlS9C7d2/odDpkZmZi8+bNeOSRRzB48GCMGDECc+bMwUsvvYTc3FzcdNNNUKlUSEtLQ3BwMP76178CcO7z8corr2DChAkYM2YMli5dCqVSiXfeeQfHjx/HunXrbGbAiHwVAyUiH/bMM8/g22+/xfLly5GTkwO1Wo2kpCSMHz8eTz75pLFJGgCef/555OTk4J577kFZWRnatWvX4FYZs2fPRtu2bbFs2TLcd999KCsrQ3x8PPr27Yt58+YZj/v3v/+NgIAAvPLKKygvL8d1112Hr7/+2lgW8zRpWKNpH1Lbtm3RuXNnnDt3rt7+JABITExEx44d8c477+Dy5csQBAEdOnTA66+/bgwcAP3IhNTUVPz73//GunXroFarkZiYiIEDB2LhwoUOrVUab6BQKBAREYEuXbpg/vz5uPfee90q6YWEhGDXrl345z//iffeew/p6ekICgpC27ZtMX78eOMcJEA/z+i6667Dhx9+iDVr1iAoKAipqalmoxec+XyMGjUKv/76K/7+979j3rx50Ol06NOnD/73v/9ZNeoT+TpO5iYiIiKyg+MBiIiIiOxgoERERERkBwMlIiIiIjsYKBERERHZwUCJiIiIyA4GSkRERER2cI6SG3Q6HbKzsxEWFsYBa0RE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", + "text/plain": [ + "
" ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3.9.12 ('base')", - "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.15" - }, - "vscode": { - "interpreter": { - "hash": "357206ab7e4935423e95e994af80e27e7e6c0672abcebb9d86ab743298213348" - } - } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline\n", + "\n", + "plt.figure()\n", + "plt.loglog(ds_binned[\"freq\"], ds_binned[\"auto_spectra\"].sel(S=\"Sxx\").mean(dim=\"time\"))\n", + "plt.xlabel(\"Frequency [Hz]\")\n", + "plt.ylabel(\"Energy Density $\\mathrm{[m^2/s^s/Hz]}$\")\n", + "plt.title(\"Streamwise Direction\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Saving and Loading DOLfYN datasets\n", + "Datasets can be saved and reloaded using the `save` and `load` functions. Xarray is saved natively in netCDF format, hence the \".nc\" extension.\n", + "\n", + "Note: DOLfYN datasets cannot be saved using xarray's native `ds.to_netcdf`; however, DOLfYN datasets can be opened using `xarray.open_dataset`." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# Uncomment these lines to save and load to your current working directory\n", + "# dolfyn.save(ds, 'your_data.nc')\n", + "# ds_saved = dolfyn.load('your_data.nc')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.9.12 ('base')", + "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.15" }, - "nbformat": 4, - "nbformat_minor": 4 + "vscode": { + "interpreter": { + "hash": "357206ab7e4935423e95e994af80e27e7e6c0672abcebb9d86ab743298213348" + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 } diff --git a/examples/cdip_example.ipynb b/examples/cdip_example.ipynb index f435d6b76..df2cee51c 100644 --- a/examples/cdip_example.ipynb +++ b/examples/cdip_example.ipynb @@ -51,16 +51,21 @@ "source": [ "from mhkit.wave.io import cdip\n", "import matplotlib.pyplot as plt\n", - "station_number = '100'\n", - "start_date = '2020-04-01'\n", - "end_date= '2020-04-30'\n", - "parameters =['waveHs', 'waveTp', 'waveMeanDirection']\n", "\n", - "data = cdip.request_parse_workflow(station_number=station_number, parameters=parameters, \n", - " start_date=start_date, end_date=end_date)\n", + "station_number = \"100\"\n", + "start_date = \"2020-04-01\"\n", + "end_date = \"2020-04-30\"\n", + "parameters = [\"waveHs\", \"waveTp\", \"waveMeanDirection\"]\n", "\n", - "print('\\n')\n", - "print(f'Returned data: {data.keys()} \\n')\n" + "data = cdip.request_parse_workflow(\n", + " station_number=station_number,\n", + " parameters=parameters,\n", + " start_date=start_date,\n", + " end_date=end_date,\n", + ")\n", + "\n", + "print(\"\\n\")\n", + "print(f\"Returned data: {data.keys()} \\n\")" ] }, { @@ -82,8 +87,8 @@ "metadata": {}, "outputs": [], "source": [ - "station_number='100'\n", - "data_type='historic'\n", + "station_number = \"100\"\n", + "data_type = \"historic\"\n", "nc = cdip.request_netCDF(station_number, data_type)" ] }, @@ -113,7 +118,7 @@ "source": [ "buoy_data = cdip.get_netcdf_variables(nc)\n", "\n", - "print(f'Returned data: {buoy_data.keys()} \\n')" + "print(f\"Returned data: {buoy_data.keys()} \\n\")" ] }, { @@ -405,7 +410,7 @@ } ], "source": [ - "buoy_data['metadata'].keys()" + "buoy_data[\"metadata\"].keys()" ] }, { @@ -447,7 +452,7 @@ } ], "source": [ - "buoy_data['metadata']['meta']\n" + "buoy_data[\"metadata\"][\"meta\"]" ] }, { @@ -481,7 +486,7 @@ } ], "source": [ - "Hs_2011_data = buoy_data[\"data\"][\"wave\"][\"waveHs\"]['2011']\n", + "Hs_2011_data = buoy_data[\"data\"][\"wave\"][\"waveHs\"][\"2011\"]\n", "buoy_name = buoy_data[\"data\"][\"wave\"].name\n", "ax = graphics.plot_boxplot(Hs_2011_data, buoy_title=buoy_name)" ] @@ -514,12 +519,12 @@ } ], "source": [ - "wave_data_May_2011= buoy_data['data']['wave']['2011-05']\n", - "Hs = wave_data_May_2011['waveHs']\n", - "Tp = wave_data_May_2011['waveTp']\n", - "Dp = wave_data_May_2011['waveDp']\n", + "wave_data_May_2011 = buoy_data[\"data\"][\"wave\"][\"2011-05\"]\n", + "Hs = wave_data_May_2011[\"waveHs\"]\n", + "Tp = wave_data_May_2011[\"waveTp\"]\n", + "Dp = wave_data_May_2011[\"waveDp\"]\n", "\n", - "ax = graphics.plot_compendium(Hs, Tp, Dp, buoy_name )" + "ax = graphics.plot_compendium(Hs, Tp, Dp, buoy_name)" ] }, { @@ -555,7 +560,9 @@ } ], "source": [ - "buoy_data = cdip.get_netcdf_variables(nc, start_date='2011-01-01', end_date='2011-12-31', parameters='waveHs')\n", + "buoy_data = cdip.get_netcdf_variables(\n", + " nc, start_date=\"2011-01-01\", end_date=\"2011-12-31\", parameters=\"waveHs\"\n", + ")\n", "buoy_name = buoy_data[\"data\"][\"wave\"].name\n", "ax = graphics.plot_boxplot(buoy_data[\"data\"][\"wave\"][\"waveHs\"], buoy_title=buoy_name)" ] @@ -566,7 +573,9 @@ "source": [ "## 4.b. `request_parse_workflow`\n", "\n", - "In the previous example we requested the NetCDF file and then processed the data. This workflow has been codified into a single function to streamline the process and adds additional functionality as well. The `request_parse_workflow` function accepts a netCDF object or a station number. This means the user may pass a CDIP ndetCDF file loaded from file, pull the data with `request_netcdf` and then pass, or just pass a station number letting the function know what data to parse and return. Secondly, the `request_parse_workflow` function accepts parameters allowing the user to specify to only return specific parameters reducing processing requirements. This is especially useful for processing 2D data which is only processed is specifically requested due to the amount of time it takes to process all the 2D data. Next, `request_parse_workflow` will slice on time by years, start_date, or end date. Years can be a single integer or a list of integers and is not required to be consecutive. If specified the start date will remove any data prior to the specified string (e.g. '2011-01-01') and end_date will remove any data after the speficied date. start_date and end_date may be used together, seperatly or not at all. Years works indpendently of start and end date. Next, the data_type defaults to historic but specifying this as realtime will return realtime data from the buoy. Lastly, there is a the boolean `all_2D_variables`. If set to true the function will return all of the wave 2D variables. It is not reccomended to do this due to the computational expense to do so, Instead it is reccomended to specify 2D quantities of interest using the `parameters` keyword.\n", + "In the previous example we requested the NetCDF file and then processed the data. This workflow has been codified into a single function to streamline the process and adds additional functionality as well. The `request_parse_workflow` function accepts a netCDF object or a station number. This means the user may pass a CDIP netCDF file loaded from file, pull the data with `request_netcdf` and then pass, or just pass a station number letting the function know what data to parse and return. Secondly, the `request_parse_workflow` function accepts parameters allowing the user to specify to only return specific parameters reducing processing requirements. This is especially useful for processing 2D data which is only processed is specifically requested due to the amount of time it takes to process all the 2D data. A print statement indicates whether the function is currently still processing 2D variables. Use the `silent=True` keyword argument to turn off this print statement in production environments.\n", + "\n", + "Next, `request_parse_workflow` will slice on time by years, start_date, or end date. Years can be a single integer or a list of integers and is not required to be consecutive. If specified the start date will remove any data prior to the specified string (e.g. '2011-01-01') and end_date will remove any data after the speficied date. start_date and end_date may be used together, seperatly or not at all. Years works indpendently of start and end date. Next, the data_type defaults to historic but specifying this as realtime will return realtime data from the buoy. Lastly, there is a the boolean `all_2D_variables`. If set to true the function will return all of the wave 2D variables. It is not recommended to do this due to the computational expense to do so, Instead it is recommended to specify 2D quantities of interest using the `parameters` keyword.\n", "\n", "For an example we will create a compendium of HS for the year 2011 from the nc file requested earlier. In this case we can use the years parameter instead of start and end dates.\n" ] @@ -590,13 +599,15 @@ } ], "source": [ - "buoy_data = cdip.request_parse_workflow(station_number='100', years=2011, parameters=['waveHs', 'waveTp', 'waveDp'])\n", + "buoy_data = cdip.request_parse_workflow(\n", + " station_number=\"100\", years=2011, parameters=[\"waveHs\", \"waveTp\", \"waveDp\"]\n", + ")\n", "\n", - "Hs = buoy_data['data']['wave']['waveHs']\n", - "Tp = buoy_data['data']['wave']['waveTp']\n", - "Dp = buoy_data['data']['wave']['waveDp']\n", + "Hs = buoy_data[\"data\"][\"wave\"][\"waveHs\"]\n", + "Tp = buoy_data[\"data\"][\"wave\"][\"waveTp\"]\n", + "Dp = buoy_data[\"data\"][\"wave\"][\"waveDp\"]\n", "buoy_name = buoy_data[\"data\"][\"wave\"].name\n", - "ax = graphics.plot_compendium(Hs, Tp, Dp, buoy_name )" + "ax = graphics.plot_compendium(Hs, Tp, Dp, buoy_name)" ] }, { diff --git a/examples/data/dolfyn/RDI_7f79_2.000 b/examples/data/dolfyn/RDI_7f79_2.000 new file mode 100644 index 000000000..f1d773c2a Binary files /dev/null and b/examples/data/dolfyn/RDI_7f79_2.000 differ diff --git a/examples/data/dolfyn/dual_profile.ad2cp b/examples/data/dolfyn/dual_profile.ad2cp new file mode 100644 index 000000000..7839b3285 Binary files /dev/null and b/examples/data/dolfyn/dual_profile.ad2cp differ diff --git a/examples/data/dolfyn/test_data/AWAC_test01.nc b/examples/data/dolfyn/test_data/AWAC_test01.nc index d15ed510e..bcb760986 100644 Binary files a/examples/data/dolfyn/test_data/AWAC_test01.nc and b/examples/data/dolfyn/test_data/AWAC_test01.nc differ diff --git a/examples/data/dolfyn/test_data/AWAC_test01_clean.nc b/examples/data/dolfyn/test_data/AWAC_test01_clean.nc index 90d68996d..96613baf0 100644 Binary files a/examples/data/dolfyn/test_data/AWAC_test01_clean.nc and b/examples/data/dolfyn/test_data/AWAC_test01_clean.nc differ diff --git a/examples/data/dolfyn/test_data/AWAC_test01_earth2inst.nc b/examples/data/dolfyn/test_data/AWAC_test01_earth2inst.nc index 5657ea3d1..6d2946c83 100644 Binary files a/examples/data/dolfyn/test_data/AWAC_test01_earth2inst.nc and b/examples/data/dolfyn/test_data/AWAC_test01_earth2inst.nc differ diff --git a/examples/data/dolfyn/test_data/AWAC_test01_earth2principal.nc b/examples/data/dolfyn/test_data/AWAC_test01_earth2principal.nc index c45535ca1..f5b5c3256 100644 Binary files a/examples/data/dolfyn/test_data/AWAC_test01_earth2principal.nc and b/examples/data/dolfyn/test_data/AWAC_test01_earth2principal.nc differ diff --git a/examples/data/dolfyn/test_data/AWAC_test01_inst2beam.nc b/examples/data/dolfyn/test_data/AWAC_test01_inst2beam.nc index 6b8b687b7..3ccd55d68 100644 Binary files a/examples/data/dolfyn/test_data/AWAC_test01_inst2beam.nc and b/examples/data/dolfyn/test_data/AWAC_test01_inst2beam.nc differ diff --git a/examples/data/dolfyn/test_data/AWAC_test01_ud.nc b/examples/data/dolfyn/test_data/AWAC_test01_ud.nc index dc3555932..e7dfa248f 100644 Binary files a/examples/data/dolfyn/test_data/AWAC_test01_ud.nc and b/examples/data/dolfyn/test_data/AWAC_test01_ud.nc differ diff --git a/examples/data/dolfyn/test_data/BenchFile01.nc b/examples/data/dolfyn/test_data/BenchFile01.nc index fc3f4bcdc..3b2af8fc4 100644 Binary files a/examples/data/dolfyn/test_data/BenchFile01.nc and b/examples/data/dolfyn/test_data/BenchFile01.nc differ diff --git a/examples/data/dolfyn/test_data/BenchFile01.repr.txt b/examples/data/dolfyn/test_data/BenchFile01.repr.txt index 557298fc2..5e5d563c7 100644 --- a/examples/data/dolfyn/test_data/BenchFile01.repr.txt +++ b/examples/data/dolfyn/test_data/BenchFile01.repr.txt @@ -4,6 +4,7 @@ . (100 pings @ 2Hz) Variables: - time ('time',) + - time_altraw ('time_altraw',) - time_b5 ('time_b5',) - vel ('dir', 'range', 'time') - vel_b5 ('range_b5', 'time_b5') @@ -14,6 +15,8 @@ - roll ('time',) - temp ('time',) - pressure ('time',) + - pressure_alt ('time',) + - pressure_altraw ('time_altraw',) - amp ('beam', 'range', 'time') - amp_b5 ('range_b5', 'time_b5') - corr ('beam', 'range', 'time') diff --git a/examples/data/dolfyn/test_data/BenchFile01_avg.nc b/examples/data/dolfyn/test_data/BenchFile01_avg.nc index ddd0e0327..24d488138 100644 Binary files a/examples/data/dolfyn/test_data/BenchFile01_avg.nc and b/examples/data/dolfyn/test_data/BenchFile01_avg.nc differ diff --git a/examples/data/dolfyn/test_data/BenchFile01_crop.nc b/examples/data/dolfyn/test_data/BenchFile01_crop.nc new file mode 100644 index 000000000..278a872bf Binary files /dev/null and b/examples/data/dolfyn/test_data/BenchFile01_crop.nc differ diff --git a/examples/data/dolfyn/test_data/BenchFile01_rotate_beam2inst.nc b/examples/data/dolfyn/test_data/BenchFile01_rotate_beam2inst.nc index dc10c6ef6..2004de5f4 100644 Binary files a/examples/data/dolfyn/test_data/BenchFile01_rotate_beam2inst.nc and b/examples/data/dolfyn/test_data/BenchFile01_rotate_beam2inst.nc differ diff --git a/examples/data/dolfyn/test_data/BenchFile01_rotate_earth2principal.nc b/examples/data/dolfyn/test_data/BenchFile01_rotate_earth2principal.nc index 5acd192b1..a71cbbbdd 100644 Binary files a/examples/data/dolfyn/test_data/BenchFile01_rotate_earth2principal.nc and b/examples/data/dolfyn/test_data/BenchFile01_rotate_earth2principal.nc differ diff --git a/examples/data/dolfyn/test_data/BenchFile01_rotate_inst2earth.nc b/examples/data/dolfyn/test_data/BenchFile01_rotate_inst2earth.nc index 2a8e4b67c..bbfeaf37e 100644 Binary files a/examples/data/dolfyn/test_data/BenchFile01_rotate_inst2earth.nc and b/examples/data/dolfyn/test_data/BenchFile01_rotate_inst2earth.nc differ diff --git a/examples/data/dolfyn/test_data/H-AWAC_test01.nc b/examples/data/dolfyn/test_data/H-AWAC_test01.nc index 0c87e671c..880168335 100644 Binary files a/examples/data/dolfyn/test_data/H-AWAC_test01.nc and b/examples/data/dolfyn/test_data/H-AWAC_test01.nc differ diff --git a/examples/data/dolfyn/test_data/RDI_7f79_2.nc b/examples/data/dolfyn/test_data/RDI_7f79_2.nc new file mode 100644 index 000000000..4874189da Binary files /dev/null and b/examples/data/dolfyn/test_data/RDI_7f79_2.nc differ diff --git a/examples/data/dolfyn/test_data/RDI_withBT.dolfyn.log b/examples/data/dolfyn/test_data/RDI_withBT.dolfyn.log index 4ec945bdf..d79f07fcd 100644 --- a/examples/data/dolfyn/test_data/RDI_withBT.dolfyn.log +++ b/examples/data/dolfyn/test_data/RDI_withBT.dolfyn.log @@ -1,33 +1,29 @@ root - INFO - pos 2 root - INFO - cfgid0: [7f, 7f] -root - INFO - ###In checkheader. -root - INFO - pos 2 -root - INFO - ###Leaving checkheader. root - INFO - {'nbyte': 579, 'dat_offsets': array([ 20, 79, 144, 282, 352, 422, 492])} root - INFO - pos 20 -root - INFO - pos 20 id 0 +root - INFO - id 0 offset 20 +root - INFO - Number of cells set to 17 +root - INFO - Cell size set to 1.0 root - INFO - Read Config root - INFO - Read Fixed -root - INFO - pos 79 id 128 -root - INFO - pos 144 id 256 -root - INFO - pos 282 id 512 -root - INFO - pos 352 id 768 -root - INFO - pos 422 id 1024 -root - INFO - pos 492 id 1536 +root - INFO - id 128 offset 79 +root - INFO - id 256 offset 144 +root - INFO - id 512 offset 282 +root - INFO - id 768 offset 352 +root - INFO - id 1024 offset 422 +root - INFO - id 1536 offset 492 root - INFO - Done: {'prog_ver': 51.41, 'inst_model': 'Workhorse', 'beam_angle': 20, 'freq': 600, 'beam_pattern': 'convex', 'orientation': 'down', 'n_beams': 4, 'n_cells': 17, 'pings_per_ensemble': 1, 'cell_size': 1.0, 'blank_dist': 0.88, 'profiling_mode': 1, 'min_corr_threshold': 64, 'n_code_reps': 5, 'min_prcnt_gd': 0, 'max_error_vel': 2.0, 'sec_between_ping_groups': 0.5, 'coord_sys': 'earth', 'use_pitchroll': 'yes', 'use_3beam': 'yes', 'bin_mapping': 'yes', 'heading_misalign_deg': 0.0, 'magnetic_var_deg': 0.0, 'sensors_src': '01111101', 'sensors_avail': '00111101', 'bin1_dist_m': 2.09, 'transmit_pulse_m': 1.18, 'water_ref_cells': [1, 5], 'false_target_threshold': 50, 'transmit_lag_m': 0.24, 'bandwidth': 0, 'power_level': 255, 'serialnum': 18655} root - INFO - self._bb False -root - INFO - {} -root - INFO - 1723 pings estimated in this file -root - INFO - taking data from pings 0 - 1723 -root - INFO - 1723 ensembles will be produced. +root - INFO - self.cfgbb: {} +root - INFO - taking data from pings 0 - 1721 +root - INFO - 1721 ensembles will be produced. root - INFO - 17 ncells, not BB root - DEBUG - pos 0mb/1mb -root - INFO - -->In search_buffer... -root - INFO - ###In checkheader. root - INFO - pos 2 -root - INFO - ###Leaving checkheader. +root - INFO - cfgid0: [7f, 7f] root - INFO - Read Header root - INFO - n 0: 0 0000 root - DEBUG - pos: 22, pos_: 0, nbyte: 18, k: -1, byte_offset: -1 @@ -75,10 +71,8 @@ root - INFO - success! root - DEBUG - pos: 581, pos_: 0, nbyte: 85, k: 0, byte_offset: 577 root - DEBUG - pos 0mb/1mb -root - INFO - -->In search_buffer... -root - INFO - ###In checkheader. root - INFO - pos 583 -root - INFO - ###Leaving checkheader. +root - INFO - cfgid0: [7f, 7f] root - INFO - Read Header root - INFO - n 0: 0 0000 root - DEBUG - pos: 603, pos_: 0, nbyte: 18, k: -1, byte_offset: -1 @@ -99,3 +93,9 @@ root - DEBUG - Trying to Read 256 root - INFO - Reading code 0x100... root - INFO - Read Vel root - INFO - success! +root - INFO - n 3: 512 0200 +root - DEBUG - pos: 865, pos_: 0, nbyte: 138, k: 0, byte_offset: -1 +root - DEBUG - Trying to Read 512 +root - INFO - Reading code 0x200... +root - INFO - Read Corr +root - INFO - success! diff --git a/examples/data/dolfyn/test_data/RiverPro_test01.nc b/examples/data/dolfyn/test_data/RiverPro_test01.nc index 7fa3e6d34..719ad6102 100644 Binary files a/examples/data/dolfyn/test_data/RiverPro_test01.nc and b/examples/data/dolfyn/test_data/RiverPro_test01.nc differ diff --git a/examples/data/dolfyn/test_data/Sig1000_BadTime01.nc b/examples/data/dolfyn/test_data/Sig1000_BadTime01.nc index 790d1e578..de929e2e4 100644 Binary files a/examples/data/dolfyn/test_data/Sig1000_BadTime01.nc and b/examples/data/dolfyn/test_data/Sig1000_BadTime01.nc differ diff --git a/examples/data/dolfyn/test_data/Sig1000_IMU.nc b/examples/data/dolfyn/test_data/Sig1000_IMU.nc index bee45bdb1..397475f51 100644 Binary files a/examples/data/dolfyn/test_data/Sig1000_IMU.nc and b/examples/data/dolfyn/test_data/Sig1000_IMU.nc differ diff --git a/examples/data/dolfyn/test_data/Sig1000_IMU_bin.nc b/examples/data/dolfyn/test_data/Sig1000_IMU_bin.nc deleted file mode 100644 index 317293a7f..000000000 Binary files a/examples/data/dolfyn/test_data/Sig1000_IMU_bin.nc and /dev/null differ diff --git a/examples/data/dolfyn/test_data/Sig1000_IMU_ofilt.nc b/examples/data/dolfyn/test_data/Sig1000_IMU_ofilt.nc index 51c45f146..b46762be3 100644 Binary files a/examples/data/dolfyn/test_data/Sig1000_IMU_ofilt.nc and b/examples/data/dolfyn/test_data/Sig1000_IMU_ofilt.nc differ diff --git a/examples/data/dolfyn/test_data/Sig1000_IMU_rotate_beam2inst.nc b/examples/data/dolfyn/test_data/Sig1000_IMU_rotate_beam2inst.nc index 2edd41f60..6c3337157 100644 Binary files a/examples/data/dolfyn/test_data/Sig1000_IMU_rotate_beam2inst.nc and b/examples/data/dolfyn/test_data/Sig1000_IMU_rotate_beam2inst.nc differ diff --git a/examples/data/dolfyn/test_data/Sig1000_IMU_rotate_inst2earth.nc b/examples/data/dolfyn/test_data/Sig1000_IMU_rotate_inst2earth.nc index 9944aeb7a..f7364c5f0 100644 Binary files a/examples/data/dolfyn/test_data/Sig1000_IMU_rotate_inst2earth.nc and b/examples/data/dolfyn/test_data/Sig1000_IMU_rotate_inst2earth.nc differ diff --git a/examples/data/dolfyn/test_data/Sig1000_IMU_ud.nc b/examples/data/dolfyn/test_data/Sig1000_IMU_ud.nc index f0f847653..05663f604 100644 Binary files a/examples/data/dolfyn/test_data/Sig1000_IMU_ud.nc and b/examples/data/dolfyn/test_data/Sig1000_IMU_ud.nc differ diff --git a/examples/data/dolfyn/test_data/Sig1000_tidal.nc b/examples/data/dolfyn/test_data/Sig1000_tidal.nc index f5bf6ba34..759fe4775 100644 Binary files a/examples/data/dolfyn/test_data/Sig1000_tidal.nc and b/examples/data/dolfyn/test_data/Sig1000_tidal.nc differ diff --git a/examples/data/dolfyn/test_data/Sig1000_tidal_bin.nc b/examples/data/dolfyn/test_data/Sig1000_tidal_bin.nc new file mode 100644 index 000000000..4f5ffec15 Binary files /dev/null and b/examples/data/dolfyn/test_data/Sig1000_tidal_bin.nc differ diff --git a/examples/data/dolfyn/test_data/Sig1000_tidal_clean.nc b/examples/data/dolfyn/test_data/Sig1000_tidal_clean.nc index f5148a480..8cb9e6678 100644 Binary files a/examples/data/dolfyn/test_data/Sig1000_tidal_clean.nc and b/examples/data/dolfyn/test_data/Sig1000_tidal_clean.nc differ diff --git a/examples/data/dolfyn/test_data/Sig500_Echo.nc b/examples/data/dolfyn/test_data/Sig500_Echo.nc index e80a279a5..78dbdd06f 100644 Binary files a/examples/data/dolfyn/test_data/Sig500_Echo.nc and b/examples/data/dolfyn/test_data/Sig500_Echo.nc differ diff --git a/examples/data/dolfyn/test_data/Sig500_Echo_clean.nc b/examples/data/dolfyn/test_data/Sig500_Echo_clean.nc index bf913bfa0..099334d74 100644 Binary files a/examples/data/dolfyn/test_data/Sig500_Echo_clean.nc and b/examples/data/dolfyn/test_data/Sig500_Echo_clean.nc differ diff --git a/examples/data/dolfyn/test_data/Sig500_Echo_crop.nc b/examples/data/dolfyn/test_data/Sig500_Echo_crop.nc index ed7fbe512..80d4bca81 100644 Binary files a/examples/data/dolfyn/test_data/Sig500_Echo_crop.nc and b/examples/data/dolfyn/test_data/Sig500_Echo_crop.nc differ diff --git a/examples/data/dolfyn/test_data/Sig500_Echo_earth2inst.nc b/examples/data/dolfyn/test_data/Sig500_Echo_earth2inst.nc index a5e0f5d7d..b44b1d8ca 100644 Binary files a/examples/data/dolfyn/test_data/Sig500_Echo_earth2inst.nc and b/examples/data/dolfyn/test_data/Sig500_Echo_earth2inst.nc differ diff --git a/examples/data/dolfyn/test_data/Sig500_Echo_inst2beam.nc b/examples/data/dolfyn/test_data/Sig500_Echo_inst2beam.nc index 711cdeff1..8e12197df 100644 Binary files a/examples/data/dolfyn/test_data/Sig500_Echo_inst2beam.nc and b/examples/data/dolfyn/test_data/Sig500_Echo_inst2beam.nc differ diff --git a/examples/data/dolfyn/test_data/Sig500_last_ensemble_is_whole.nc b/examples/data/dolfyn/test_data/Sig500_last_ensemble_is_whole.nc index b9aa117df..f52d8df45 100644 Binary files a/examples/data/dolfyn/test_data/Sig500_last_ensemble_is_whole.nc and b/examples/data/dolfyn/test_data/Sig500_last_ensemble_is_whole.nc differ diff --git a/examples/data/dolfyn/test_data/Sig_SkippedPings01.nc b/examples/data/dolfyn/test_data/Sig_SkippedPings01.nc index 2b2f0857c..90b41d3c7 100644 Binary files a/examples/data/dolfyn/test_data/Sig_SkippedPings01.nc and b/examples/data/dolfyn/test_data/Sig_SkippedPings01.nc differ diff --git a/examples/data/dolfyn/test_data/VelEchoBT01.nc b/examples/data/dolfyn/test_data/VelEchoBT01.nc index d7ff5dbcb..f2fb6183e 100644 Binary files a/examples/data/dolfyn/test_data/VelEchoBT01.nc and b/examples/data/dolfyn/test_data/VelEchoBT01.nc differ diff --git a/examples/data/dolfyn/test_data/VelEchoBT01_rotate_beam2inst.nc b/examples/data/dolfyn/test_data/VelEchoBT01_rotate_beam2inst.nc index 2462311e5..6cefd020c 100644 Binary files a/examples/data/dolfyn/test_data/VelEchoBT01_rotate_beam2inst.nc and b/examples/data/dolfyn/test_data/VelEchoBT01_rotate_beam2inst.nc differ diff --git a/examples/data/dolfyn/test_data/dat_vm.mat b/examples/data/dolfyn/test_data/dat_vm.mat index ba8c80bda..b71ba2a93 100644 Binary files a/examples/data/dolfyn/test_data/dat_vm.mat and b/examples/data/dolfyn/test_data/dat_vm.mat differ diff --git a/examples/data/dolfyn/test_data/dual_profile.nc b/examples/data/dolfyn/test_data/dual_profile.nc new file mode 100644 index 000000000..ab63f99da Binary files /dev/null and b/examples/data/dolfyn/test_data/dual_profile.nc differ diff --git a/examples/data/dolfyn/test_data/vector_data01_bin.nc b/examples/data/dolfyn/test_data/vector_data01_bin.nc index baa0dba0b..a88effa0d 100644 Binary files a/examples/data/dolfyn/test_data/vector_data01_bin.nc and b/examples/data/dolfyn/test_data/vector_data01_bin.nc differ diff --git a/examples/data/dolfyn/test_data/vmdas01_wh.nc b/examples/data/dolfyn/test_data/vmdas01_wh.nc index 118d8d694..a5dc8a5d8 100644 Binary files a/examples/data/dolfyn/test_data/vmdas01_wh.nc and b/examples/data/dolfyn/test_data/vmdas01_wh.nc differ diff --git a/examples/data/dolfyn/test_data/winriver01.nc b/examples/data/dolfyn/test_data/winriver01.nc index cc0bada6a..b49bc6205 100644 Binary files a/examples/data/dolfyn/test_data/winriver01.nc and b/examples/data/dolfyn/test_data/winriver01.nc differ diff --git a/examples/data/dolfyn/test_data/winriver02.nc b/examples/data/dolfyn/test_data/winriver02.nc index efc7a18a3..295415044 100644 Binary files a/examples/data/dolfyn/test_data/winriver02.nc and b/examples/data/dolfyn/test_data/winriver02.nc differ diff --git a/examples/data/dolfyn/test_data/winriver02_rotate_ship2earth.nc b/examples/data/dolfyn/test_data/winriver02_rotate_ship2earth.nc index 7946bc2ab..5bebdeaf0 100644 Binary files a/examples/data/dolfyn/test_data/winriver02_rotate_ship2earth.nc and b/examples/data/dolfyn/test_data/winriver02_rotate_ship2earth.nc differ diff --git a/examples/data/dolfyn/test_data/winriver02_transect.nc b/examples/data/dolfyn/test_data/winriver02_transect.nc index f6c10fedb..d48140c41 100644 Binary files a/examples/data/dolfyn/test_data/winriver02_transect.nc and b/examples/data/dolfyn/test_data/winriver02_transect.nc differ diff --git a/examples/data/loads/data_loads_hs.csv b/examples/data/loads/data_loads_hs.csv new file mode 100644 index 000000000..b8ce5a644 --- /dev/null +++ b/examples/data/loads/data_loads_hs.csv @@ -0,0 +1 @@ +0.40673,0.39674,0.38505,0.34103,0.32638,0.29334,0.27756,0.24314,0.27054,0.26734,0.28592,0.31243,0.31519,0.31382,0.31842,0.31164,0.32193,0.32552,0.41583,0.46097,0.5903,0.60056,0.59807,0.47145,0.39956,0.33174,0.30878,0.33933,0.36186,0.41105,0.44378,0.49995,0.51834,0.52657,0.51073,0.46741,0.44081,0.46335,0.47525,0.47893,0.48894,0.51576,0.60331,0.61833,0.60673,0.61081,0.61121,0.60853,0.61522,0.60616,0.60381,0.63214,0.67887,0.71968,0.71415,0.69092,0.66211,0.63839,0.63154,0.65849,0.69483,0.72356,0.76615,0.82743,0.88827,0.93331,0.90081,0.894,0.87774,0.82433,0.73227,0.65491,0.6163,0.59649,0.58346,0.57673,0.56418,0.55044,0.53679,0.58198,0.63923,0.64743,0.62527,0.61164,0.56818,0.51309,0.46352,0.42854,0.39806,0.37252,0.35187,0.3377,0.33475,0.32485,0.30345,0.33498,0.3467,0.45412,0.53758,0.59233,0.62677,0.63128,0.6151,0.60881,0.61632,0.63178,0.6215,0.6104,0.58496,0.5526,0.52883,0.52597,0.52455,0.50662,0.50277,0.52675,0.54616,0.5487,0.53767,0.52689,0.52976,0.53932,0.54713,0.52619,0.52608,0.55061,0.56468,0.57256,0.58781,0.62018,0.63852,0.66245,0.67892,0.83736,0.85744,0.88092,0.89095,0.88104,0.85173,0.7994,0.7424,0.70629,0.67639,0.65177,0.627,0.6044,0.57607,0.54327,0.54135,0.56728,0.60913,0.63919,0.68083,0.70501,0.73576,0.77201,0.7834,0.74204,0.66291,0.5664,0.46366,0.37836,0.3259,0.27394,0.23542,0.24537,0.24663,0.24022,0.24025,0.24,0.23742,0.2354,0.23343,0.2385,0.24571,0.24536,0.23821,0.22158,0.20448,0.20515,0.41876,0.47929,0.58691,0.63255,0.5803,0.58085,0.60698,0.74655,0.6665,0.60979,0.58847,0.51944,0.43965,0.34097,0.24883,0.18545,0.14767,0.2635,0.26328,0.2822,0.28477,0.28862,0.28959,0.30021,0.33952,0.39921,0.42238,0.39851,0.41218,0.44517,0.45562,0.46867,0.50943,0.57518,0.59805,0.5953,0.58549,0.56687,0.5268,0.49429,0.46146,0.4231,0.39399,0.36305,0.33316,0.30498,0.40989,0.39836,0.46113,0.55264,0.61511,0.68646,0.77185,0.83336,0.87335,0.90132,0.91426,0.92191,0.92799,0.93554,0.93019,0.92522,0.91571,0.9038,0.89454,0.89019,0.88369,0.88836,0.87286,0.87121,0.84946,0.83863,0.82845,0.79907,0.7885,0.76042,0.7265,0.71225,0.70995,0.71267,0.71283,0.70667,0.70081,0.69979,0.69624,0.69165,0.68591,0.65022,0.59043,0.5354,0.50241,0.49167,0.4852,0.4837,0.48811,0.48225,0.49138,0.5228,0.54825,0.55675,0.55419,0.55581,0.55111,0.55312,0.57888,0.60591,0.60527,0.63873,0.66838,0.68267,0.68221,0.70573,0.7388,0.76272,0.75589,0.74135,0.71775,0.71013,0.74698,0.7856,0.84754,0.88605,0.87995,0.82829,0.76947,0.6827,0.62436,0.59476,0.5708,0.562,0.54969,0.5462,0.53902,0.52336,0.49857,0.46568,0.46224,0.46892,0.46741,0.45807,0.45256,0.45099,0.46577,0.50494,0.55726,0.60723,0.60804,0.59856,0.5928,0.61181,0.63974,0.66241,0.68274,0.69135,0.68373,0.6577,0.61418,0.55408,0.4964,0.48831,0.59493,0.57295,0.54996,0.5426,0.49419,0.42202,0.36271,0.32241,0.29529,0.2825,0.28697,0.28562,0.27507,0.26195,0.27329,0.26555,0.27396,0.27648,0.26276,0.28643,0.33523,0.34191,0.34922,0.35234,0.35734,0.3963,0.43797,0.42066,0.54178,0.537,0.59658,0.6281,0.62202,0.58277,0.56071,0.50989,0.53804,0.59097,0.65242,0.68887,0.70726,0.69102,0.64384,0.6013,0.57454,0.5438,0.54043,0.5207,0.51263,0.5307,0.48783,0.41244,0.39817,0.43928,0.45743,0.52405,0.56666,0.57186,0.56147,0.56096,0.56096,0.55015,0.53381,0.50214,0.49797,0.50212,0.47292,0.38906,0.37538,0.33216,0.31557,0.30012,0.29388,0.39767,0.40925,0.41231,0.3862,0.33126,0.28576,0.41133,0.60993,0.71552,0.75755,0.86747,0.87923,0.80592,0.75449,0.78292,0.69966,0.49306,0.47129,0.50314,0.5328,0.53295,0.49863,0.44675,0.40748,0.39006,0.39012,0.39266,0.3987,0.39954,0.3798,0.35684,0.3686,0.47993,0.58463,0.63111,0.67614,0.73494,0.79819,0.83974,0.89531,0.82367,0.58512,0.40062,0.33343,0.2627,0.29187,0.37802,0.46351,0.50808,0.54568,0.56092,0.56168,0.56948,0.58197,0.59434,0.60414,0.629,0.6653,0.69675,0.73655,0.78725,0.8205,0.84364,0.90413,0.96808,0.99017,0.99166,0.99428,0.99784,1.0131,1.0198,1.015,1.008,1.0032,0.98912,0.96631,0.93623,0.89414,0.84712,0.83269,0.84003,0.85397,0.85946,0.86876,0.86435,0.85025,0.84138,0.84226,0.82936,0.77095,0.70134,0.63949,0.59137,0.54291,0.47542,0.42163,0.4163,0.41284,0.38784,0.36662,0.3472,0.3347,0.32909,0.37619,0.43334,0.43941,0.41252,0.38774,0.35096,0.30802,0.27308,0.24649,0.22004,0.1893,0.17295,0.16668,0.16941,0.16301,0.1749,0.26218,0.38784,0.42428,0.40865,0.47359,0.49346,0.49591,0.56495,0.69791,0.71544,0.68358,0.65463,0.60002,0.49985,0.38949,0.29809,0.23146,0.19269,0.18204,0.41799,0.38635,0.41841,0.5451,0.61934,0.74303,0.84224,0.89024,0.89356,0.89556,0.90128,0.92265,0.94137,0.96356,0.97632,0.98146,0.98522,0.97891,0.96812,0.95457,0.94929,0.96818,0.98323,0.9732,0.94255,0.89788,0.8658,0.84092,0.81822,0.77253,0.68512,0.60865,0.54436,0.48141,0.41663,0.35753,0.31627,0.28802,0.29878,0.35815,0.35068,0.32157,0.31388,0.31983,0.32868,0.35895,0.41613,0.429,0.4059,0.38642,0.36788,0.362,0.35433,0.3622,0.39634,0.39806,0.39058,0.40668,0.39367,0.34645,0.34939,0.34612,0.3701,0.3895,0.40066,0.40208,0.40786,0.42032,0.42706,0.44117,0.46291,0.47522,0.45585,0.45797,0.4849,0.53456,0.58725,0.63838,0.68846,0.71557,0.68387,0.67231,0.65479,0.64181,0.63276,0.61802,0.59098,0.56499,0.54311,0.53251,0.5422,0.55472,0.5597,0.56353,0.57143,0.5851,0.59313,0.59417,0.58823,0.57489,0.55048,0.5257,0.4999,0.47273,0.43603,0.42269,0.4392,0.50454,0.61927,0.75762,0.81382,0.84781,0.87772,0.89557,0.87012,0.82708,0.79875,0.8249,0.86675,0.88941,0.88789,0.90519,0.89723,0.88503,0.90871,0.92145,0.93499,0.92764,0.9045,0.86686,0.79374,0.68406,0.57755,0.53815,0.53718,0.51946,0.50192,0.49287,0.47047,0.42679,0.37764,0.33625,0.30796,0.29116,0.30087,0.3244,0.30648,0.33628,0.47777,0.51147,0.54114,0.57122,0.59788,0.63533,0.66811,0.69032,0.71458,0.70168,0.6844,0.67224,0.62459,0.55837,0.4811,0.42388,0.3623,0.32897,0.36704,0.38737,0.37422,0.39016,0.39221,0.3862,0.38158,0.38777,0.39397,0.39638,0.40768,0.44938,0.46059,0.45795,0.47849,0.57708,0.62231,0.62305,0.59326,0.58159,0.60867,0.64603,0.65832,0.67272,0.68658,0.67504,0.63211,0.59631,0.58334,0.57868,0.57977,0.56427,0.54664,0.53315,0.5204,0.50498,0.47763,0.44218,0.40055,0.37461,0.37811,0.3794,0.36561,0.35104,0.32894,0.31623,0.30682,0.29407,0.27589,0.25908,0.2512,0.24783,0.23923,0.22438,0.20728,0.18936,0.18261,0.32803,0.34324,0.37506,0.41388,0.4398,0.46229,0.52442,0.60068,0.6007,0.58644,0.58829,0.60519,0.61737,0.62911,0.66193,0.74138,0.82353,0.87168,0.92046,0.93377,0.93813,0.9475,0.96768,0.9642,0.91443,0.81482,0.70507,0.57841,0.46933,0.39191,0.3728,0.30912,0.246,0.22525,0.21723,0.21229,0.21861,0.23582,0.25915,0.32205,0.38561,0.40894,0.41898,0.42651,0.43117,0.43608,0.45499,0.46088,0.47998,0.46036,0.44689,0.46081,0.48939,0.51427,0.52456,0.50419,0.48519,0.4811,0.46123,0.43489,0.41994,0.41393,0.43677,0.4513,0.45,0.45311,0.44509,0.43515,0.41761,0.39147,0.36069,0.33547,0.31212,0.29984,0.29219,0.27168,0.25664,0.25103,0.2635,0.25527,0.26834,0.32126,0.34437,0.36391,0.39542,0.42709,0.43941,0.45082,0.47877,0.49243,0.46773,0.46016,0.4489,0.43141,0.42323,0.42344,0.45863,0.42386,0.41481,0.404,0.39168,0.39758,0.37944,0.35143,0.35745,0.36572,0.36889,0.38372,0.44177,0.45164,0.43314,0.43117,0.44318,0.44274,0.45698,0.48064,0.51373,0.5277,0.53086,0.53009,0.51023,0.48372,0.49583,0.5486,0.52623,0.52687,0.5246,0.50204,0.46256,0.42162,0.38497,0.36888,0.35343,0.31964,0.28588,0.25624,0.22449,0.20492,0.19145,0.17117,0.15276,0.14125,0.13315,0.13084,0.13547,0.13207,0.12949,0.12726,0.12181,0.1276,0.21919,0.16887,0.16348,0.144,0.13416,0.11535,0.10289,0.10412,0.11716,0.12348,0.11193,0.09877,0.09164,0.08919,0.08892,0.08805,0.09437,0.1134,0.13348,0.14215,0.19993,0.2021,0.26805,0.36349,0.39045,0.39581,0.3833,0.35593,0.30482,0.25723,0.23259,0.23718,0.25882,0.24781,0.25643,0.25908,0.27247,0.29663,0.29587,0.27487,0.25988,0.28433,0.28291,0.25666,0.2412,0.23523,0.23108,0.23194,0.24066,0.25094,0.25295,0.26324,0.26506,0.26796,0.28942,0.31754,0.3076,0.31816,0.30699,0.29488,0.28622,0.34154,0.39257,0.34873,0.34531,0.35106,0.34408,0.33102,0.43562,0.53254,0.48659,0.46386,0.45349,0.43424,0.39321,0.34236,0.28121,0.2281,0.18564,0.15431,0.37008,0.317,0.30927,0.30634,0.31963,0.4023,0.46791,0.45801,0.44858,0.44805,0.43287,0.41708,0.4538,0.57104,0.64739,0.65439,0.66097,0.66401,0.64798,0.61782,0.57991,0.5468,0.52635,0.50556,0.47502,0.45486,0.42268,0.4061,0.40948,0.41045,0.41407,0.39277,0.36882,0.36814,0.36434,0.36794,0.39401,0.44127,0.4323,0.42982,0.45618,0.48847,0.49054,0.50046,0.52162,0.56098,0.58584,0.58195,0.55088,0.52797,0.52431,0.55145,0.60233,0.66853,0.75518,0.75436,0.70967,0.68423,0.6412,0.61993,0.62692,0.6357,0.63159,0.59958,0.53841,0.50187,0.47535,0.46223,0.48485,0.53382,0.57975,0.5854,0.57618,0.55782,0.53051,0.51,0.51272,0.50814,0.48971,0.46406,0.42422,0.38983,0.37333,0.35954,0.39315,0.38687,0.36159,0.36229,0.364,0.38672,0.39276,0.39224,0.37814,0.37077,0.36803,0.36742,0.36256,0.35253,0.34228,0.32967,0.33083,0.3436,0.31119,0.29431,0.35462,0.32908,0.31019,0.3104,0.30805,0.30429,0.28519,0.25833,0.23403,0.2084,0.19238,0.18411,0.16854,0.1437,0.11847,0.09932,0.08694,0.07712,0.06854,0.06106,0.05982,0.05576,0.04934,0.05297,0.06451,0.09122,0.11797,0.11497,0.10117,0.3343,0.39155,0.49216,0.55891,0.61463,0.65836,0.71961,0.80299,0.83809,0.83837,0.81445,0.77539,0.77807,0.83431,0.89493,0.93244,0.92533,0.93679,0.95197,0.95239,0.9513,0.96362,0.97249,0.9652,0.94064,0.90632,0.87133,0.86431,0.87762,0.88351,0.92298,0.95054,0.94347,0.94468,0.94036,0.93357,0.93611,0.95049,0.96612,0.97129,0.9529,0.93409,0.91232,0.88503,0.85587,0.86048,0.88963,0.88924,0.85363,0.81752,0.78344,0.7587,0.75462,0.75913,0.76702,0.7363,0.6637,0.59624,0.5188,0.45432,0.4005,0.38004,0.37909,0.39277,0.36779,0.33045,0.29984,0.2695,0.24651,0.22379,0.20225,0.2033,0.20475,0.2241,0.22729,0.20564,0.18348,0.20886,0.36642,0.45148,0.44052,0.42088,0.4503,0.52661,0.54857,0.54076,0.53664,0.52002,0.50329,0.49216,0.48295,0.49118,0.50535,0.47492,0.44168,0.39752,0.34691,0.3151,0.29121,0.30114,0.37884,0.37403,0.35747,0.35117,0.33063,0.29901,0.26203,0.29124,0.36749,0.31971,0.30018,0.29681,0.28843,0.28713,0.26849,0.25019,0.25043,0.24299,0.23212,0.22422,0.22582,0.23452,0.24231,0.25056,0.27641,0.3234,0.33235,0.36287,0.39609,0.43088,0.4778,0.50299,0.56605,0.57664,0.55748,0.54214,0.53189,0.53421,0.54015,0.5528,0.58213,0.55886,0.51828,0.48644,0.46069,0.44194,0.44235,0.48407,0.51819,0.51454,0.53726,0.55816,0.56507,0.56733,0.57391,0.59044,0.62512,0.63892,0.62416,0.60041,0.57547,0.536,0.48513,0.44769,0.42568,0.40412,0.38873,0.36741,0.3535,0.34998,0.34176,0.31846,0.29369,0.27699,0.2522,0.23477,0.21952,0.21041,0.20555,0.20018,0.18962,0.17547,0.15481,0.13734,0.12728,0.12349,0.13018,0.1454,0.15763,0.16212,0.15231,0.15319,0.14975,0.15975,0.21016,0.28148,0.28935,0.26731,0.25332,0.24001,0.22172,0.19645,0.19194,0.19615,0.17466,0.16897,0.17253,0.16308,0.15439,0.15818,0.17076,0.22627,0.23726,0.19532,0.1849,0.17447,0.16466,0.16053,0.16546,0.20141,0.19214,0.16105,0.15782,0.17301,0.20366,0.23765,0.28002,0.3514,0.31335,0.28815,0.28092,0.27211,0.25711,0.24322,0.31655,0.27443,0.28796,0.28701,0.28184,0.29517,0.29365,0.29423,0.34131,0.36334,0.33061,0.29722,0.29216,0.29861,0.30068,0.29111,0.25355,0.22382,0.23915,0.25631,0.23385,0.23002,0.23629,0.24294,0.24875,0.23948,0.21793,0.19738,0.19363,0.19341,0.18914,0.18125,0.17319,0.16577,0.15363,0.13708,0.12499,0.12012,0.12265,0.12418,0.13099,0.21414,0.20353,0.16274,0.15601,0.15228,0.15826,0.20696,0.27745,0.30224,0.30572,0.32436,0.33554,0.32627,0.32002,0.3251,0.35185,0.35935,0.34605,0.33566,0.34139,0.34318,0.36415,0.38138,0.39873,0.42345,0.43825,0.45205,0.46084,0.47239,0.49,0.54233,0.56772,0.60261,0.60452,0.57552,0.53522,0.4975,0.44862,0.41987,0.41873,0.42551,0.40274,0.35804,0.32815,0.30092,0.28111,0.26323,0.25199,0.2622,0.24548,0.22713,0.2191,0.20767,0.18854,0.1593,0.12803,0.10393,0.08752,0.08538,0.07633,0.07049,0.07745,0.07944,0.08638,0.10291,0.10442,0.0959,0.09204,0.11971,0.13361,0.15177,0.16635,0.1725,0.20672,0.21495,0.22297,0.22985,0.23346,0.23714,0.25032,0.33363,0.34201,0.30261,0.28874,0.27461,0.25381,0.23269,0.20114,0.16546,0.15853,0.16726,0.1634,0.15873,0.15339,0.14224,0.13754,0.23255,0.19189,0.17538,0.16425,0.15106,0.1347,0.10732,0.09386,0.25632,0.19776,0.15912,0.14971,0.14651,0.148,0.12862,0.09346,0.08,0.11332,0.0945,0.12593,0.11214,0.09275,0.0878,0.09067,0.10037,0.09661,0.11802,0.16071,0.16832,0.16836,0.19864,0.25593,0.24732,0.2156,0.21829,0.24373,0.27682,0.30344,0.3001,0.27411,0.26411,0.26294,0.26587,0.28961,0.27887,0.28556,0.34087,0.37381,0.39871,0.40497,0.41053,0.43541,0.47438,0.5222,0.58596,0.6439,0.74473,0.81776,0.85229,0.84665,0.80303,0.78351,0.7943,0.7903,0.74678,0.69399,0.64801,0.6068,0.55938,0.50803,0.46501,0.42006,0.38839,0.36907,0.34862,0.32581,0.30609,0.28878,0.27107,0.25597,0.25051,0.24652,0.24448,0.27792,0.26613,0.24938,0.25733,0.31916,0.35983,0.3579,0.39134,0.37305,0.35732,0.36022,0.36948,0.36791,0.34837,0.32088,0.31218,0.3042,0.2922,0.2755,0.2545,0.24849,0.30296,0.29693,0.26996,0.25061,0.22843,0.20538,0.18528,0.16721,0.18672,0.26014,0.21159,0.19187,0.17857,0.15989,0.13906,0.11828,0.21151,0.23783,0.19726,0.17571,0.19068,0.19286,0.18586,0.1765,0.24176,0.25157,0.21753,0.20199,0.22186,0.22828,0.22852,0.22619,0.23034,0.22324,0.20254,0.187,0.17806,0.17204,0.17665,0.2015,0.23213,0.25674,0.27233,0.27752,0.2794,0.27883,0.28682,0.33134,0.35434,0.31781,0.29369,0.27391,0.25694,0.24379,0.22968,0.20936,0.17685,0.15001,0.1302,0.1091,0.09349,0.07984,0.07066,0.05898,0.05396,0.05681,0.0632,0.07745,0.08198,0.07493,0.06234,0.06423,0.09962,0.11628,0.32997,0.28636,0.32849,0.40459,0.46604,0.52618,0.57306,0.59945,0.60233,0.6287,0.6738,0.74015,0.85634,0.94409,0.98228,0.99013,1.006,1.0188,1.0233,1.0355,1.0405,1.0458,1.0432,1.0406,1.0402,1.0305,1.0147,0.98848,0.94343,0.8658,0.75034,0.64375,0.56356,0.51676,0.4869,0.45636,0.432,0.43598,0.41793,0.37959,0.36442,0.36439,0.36577,0.38684,0.43962,0.5257,0.56248,0.56641,0.58018,0.57004,0.55232,0.52949,0.52135,0.51156,0.46829,0.41034,0.37405,0.3363,0.29924,0.26188,0.24121,0.26677,0.2406,0.23376,0.23362,0.23359,0.23548,0.23703,0.2474,0.28329,0.3013,0.29211,0.30922,0.33912,0.36193,0.37486,0.41314,0.45198,0.46057,0.44451,0.44991,0.45129,0.44151,0.44048,0.4666,0.49677,0.51753,0.50485,0.49589,0.49639,0.48571,0.47144,0.46234,0.4631,0.46626,0.5064,0.51257,0.44525,0.39173,0.34941,0.30882,0.27294,0.24508,0.22857,0.22061,0.20956,0.1908,0.17029,0.15476,0.14933,0.14991,0.14283,0.14176,0.14137,0.13801,0.13892,0.14331,0.14603,0.15055,0.15159,0.15156,0.14925,0.14601,0.15208,0.16898,0.16734,0.15367,0.13745,0.13995,0.15999,0.19529,0.226,0.24471,0.24494,0.2397,0.23093,0.22338,0.22578,0.22245,0.21633,0.21448,0.21483,0.21877,0.38429,0.27646,0.27621,0.26028,0.25778,0.24581,0.22491,0.22217,0.21052,0.19498,0.18645,0.19364,0.20213,0.20976,0.20156,0.19651,0.19273,0.19022,0.18948,0.19075,0.19324,0.19557,0.19719,0.19884,0.20087,0.20426,0.21116,0.21718,0.223,0.22578,0.23022,0.23522,0.24463,0.2581,0.27214,0.29051,0.31811,0.35393,0.41364,0.41701,0.40454,0.39367,0.39485,0.41494,0.44416,0.44646,0.44288,0.4377,0.43617,0.44346,0.4587,0.45628,0.44353,0.42314,0.39726,0.37988,0.36368,0.34811,0.33171,0.31408,0.29596,0.27886,0.26577,0.26808,0.27795,0.28106,0.27321,0.27781,0.29161,0.31399,0.33349,0.33633,0.35925,0.36745,0.36972,0.39488,0.42494,0.45181,0.44186,0.4294,0.42648,0.43053,0.41405,0.40883,0.45148,0.4913,0.54261,0.54655,0.54271,0.55217,0.55883,0.56092,0.57281,0.5887,0.57161,0.55656,0.54575,0.53749,0.51882,0.50887,0.51993,0.54434,0.56332,0.53882,0.50585,0.4865,0.47791,0.47907,0.50827,0.49857,0.47224,0.45415,0.44797,0.43654,0.41796,0.39634,0.38243,0.40066,0.45804,0.44747,0.42169,0.39575,0.37795,0.36125,0.35236,0.36312,0.3807,0.36302,0.34226,0.32497,0.30599,0.28498,0.26542,0.26002,0.28488,0.25621,0.23793,0.22239,0.20684,0.20444,0.21613,0.25928,0.23243,0.21396,0.20654,0.20377,0.20021,0.19404,0.19093,0.18854,0.18695,0.18574,0.18469,0.18439,0.18457,0.1899,0.20468,0.21633,0.22159,0.22226,0.21666,0.20615,0.19599,0.18689,0.18044,0.1767,0.17458,0.17643,0.179,0.1828,0.18671,0.19564,0.22281,0.25606,0.28888,0.29068,0.29921,0.29802,0.28825,0.2967,0.32279,0.35125,0.37813,0.37502,0.3503,0.33676,0.33481,0.36885,0.42096,0.43325,0.43808,0.43231,0.39568,0.36785,0.34775,0.33648,0.35647,0.33914,0.33241,0.33325,0.32606,0.31013,0.31462,0.34749,0.4025,0.40124,0.36166,0.36164,0.35987,0.36583,0.36479,0.36965,0.39227,0.41208,0.41364,0.41274,0.40538,0.39046,0.38243,0.40408,0.47221,0.51021,0.52432,0.54249,0.53756,0.52319,0.53252,0.61625,0.71305,0.72257,0.6726,0.63073,0.59818,0.57482,0.56258,0.58965,0.62615,0.62857,0.61227,0.58488,0.55537,0.52353,0.49318,0.47266,0.463,0.45682,0.43756,0.40159,0.37038,0.34902,0.32998,0.31236,0.2948,0.2756,0.26252,0.26313,0.2704,0.27637,0.28472,0.28638,0.30578,0.30175,0.29534,0.30032,0.3054,0.30585,0.30943,0.3352,0.40138,0.42737,0.42147,0.42472,0.42997,0.43228,0.4331,0.43489,0.44968,0.47181,0.44283,0.40104,0.37179,0.34769,0.33086,0.31892,0.33928,0.38233,0.37176,0.35381,0.34074,0.33236,0.32382,0.31298,0.30426,0.29282,0.26774,0.24667,0.22491,0.20742,0.19354,0.18494,0.18607,0.19466,0.19923,0.20094,0.20112,0.1948,0.18377,0.18383,0.22286,0.32993,0.40582,0.42111,0.39648,0.37433,0.37326,0.38394,0.38842,0.37475,0.34776,0.32004,0.29953,0.29476,0.30245,0.29603,0.28356,0.28254,0.30417,0.32295,0.32656,0.31097,0.28362,0.25766,0.24959,0.26234,0.26362,0.2578,0.24817,0.23821,0.22621,0.21387,0.20729,0.21545,0.21545,0.21103,0.20381,0.19579,0.1909,0.19107,0.19586,0.20606,0.21777,0.22487,0.2268,0.227,0.40813,0.33192,0.35669,0.44221,0.51166,0.54633,0.54388,0.53598,0.55428,0.64908,0.77256,0.79772,0.77512,0.76738,0.79921,0.84114,0.87012,0.92156,0.94778,0.93534,0.91056,0.86251,0.81755,0.76778,0.70038,0.63458,0.58664,0.53436,0.48624,0.45407,0.43222,0.42235,0.42553,0.43827,0.45143,0.4606,0.45961,0.43657,0.40976,0.3821,0.35774,0.33815,0.32569,0.32257,0.32351,0.32123,0.31867,0.31502,0.30486,0.29058,0.27844,0.26488,0.24908,0.23708,0.22786,0.21996,0.21112,0.2016,0.19205,0.18348,0.17531,0.18052,0.24911,0.30554,0.27651,0.28302,0.32,0.34724,0.3771,0.40235,0.41016,0.42225,0.44638,0.48025,0.50326,0.49425,0.45754,0.447,0.43425,0.4199,0.41979,0.4585,0.49805,0.49984,0.46742,0.45588,0.44134,0.42281,0.41564,0.45591,0.51834,0.57355,0.56868,0.54653,0.53405,0.52464,0.53113,0.56402,0.58147,0.58111,0.5628,0.54243,0.52544,0.49445,0.46437,0.44119,0.42813,0.41744,0.39651,0.3609,0.33127,0.30004,0.27426,0.24461,0.22231,0.20635,0.19533,0.18594,0.17878,0.17302,0.17723,0.17219,0.17208,0.15461,0.14691,0.14105,0.13673,0.13577,0.15401,0.14702,0.14188,0.14618,0.18103,0.22587,0.27945,0.27225,0.27001,0.28537,0.27631,0.27136,0.268,0.26082,0.25652,0.25409,0.2478,0.24067,0.23789,0.24341,0.23827,0.22511,0.21232,0.19685,0.18484,0.17141,0.15643,0.14193,0.12994,0.13446,0.23434,0.49944,0.73151,0.83017,0.88421,0.91369,0.94369,0.95018,0.93955,0.92887,0.90996,0.89548,0.88812,0.90306,0.90469,0.90081,0.86649,0.81468,0.78361,0.76259,0.73938,0.719,0.67032,0.60327,0.54595,0.49554,0.45812,0.44296,0.44438,0.45248,0.43101,0.40747,0.38413,0.33591,0.31521,0.2861,0.25966,0.23289,0.21423,0.19056,0.17133,0.15524,0.14711,0.14116,0.1305,0.11899,0.10928,0.13685,0.17286,0.19288,0.27086,0.33079,0.3396,0.32469,0.33085,0.36468,0.46885,0.57996,0.6473,0.69441,0.75421,0.79764,0.83546,0.87206,0.92022,0.95571,0.95151,0.95102,0.95434,0.95433,0.94789,0.91772,0.84222,0.76121,0.67668,0.59444,0.52344,0.45148,0.38637,0.33538,0.30745,0.29631,0.31192,0.30867,0.31955,0.33382,0.36218,0.3784,0.38554,0.3825,0.36767,0.35809,0.36114,0.37112,0.37164,0.36823,0.39238,0.42596,0.42773,0.43995,0.44527,0.45321,0.47201,0.51309,0.6127,0.62225,0.62823,0.64077,0.6517,0.63683,0.6201,0.60304,0.57337,0.5181,0.48548,0.47811,0.45138,0.42967,0.419,0.42985,0.41594,0.40083,0.40036,0.41165,0.44595,0.49873,0.60827,0.68785,0.74919,0.8207,0.91129,0.91668,0.94872,0.97034,0.97912,1.0108,1.0225,1.0237,1.018,1.0186,1.0171,1.0232,1.0228,1.0243,1.0234,1.0224,1.0213,1.0207,1.0159,1.0172,1.0192,1.0216,1.0238,1.0247,1.021,1.0213,1.0239,1.0195,1.0148,1.0144,1.0121,1.0025,0.96617,0.92515,0.82908,0.72706,0.73006,0.74442,0.84755,0.92098,0.94847,0.91192,0.90822,0.92318,0.92419,0.90708,0.89881,0.86849,0.79647,0.72102,0.57819,0.42121,0.32473,0.26812,0.22633,0.19292,0.17143,0.17324,0.19528,0.29046,0.38657,0.45214,0.48077,0.48395,0.48267,0.49055,0.47207,0.45675,0.42838,0.39298,0.36339,0.34775,0.33532,0.31995,0.30708,0.29584,0.28269,0.26686,0.24448,0.24872,0.28481,0.36204,0.50519,0.61031,0.64085,0.71148,0.75865,0.7893,0.84537,0.8959,0.92131,0.93961,0.96536,0.99417,1.0025,0.99255,0.97632,0.96835,0.96737,0.9698,0.97171,0.97272,0.9661,0.9396,0.88624,0.79384,0.69012,0.61471,0.53301,0.46253,0.41701,0.37792,0.35823,0.35411,0.36181,0.37911,0.38833,0.40198,0.43664,0.47782,0.50041,0.53878,0.57913,0.6199,0.6408,0.67164,0.69799,0.69962,0.6872,0.6567,0.62198,0.59369,0.57343,0.55904,0.55132,0.54677,0.5535,0.59348,0.60421,0.57739,0.54818,0.53782,0.52744,0.51551,0.51272,0.51975,0.50896,0.49613,0.49327,0.5078,0.5375,0.54564,0.52729,0.49612,0.47683,0.49706,0.54265,0.5792,0.62033,0.65941,0.69156,0.70379,0.67715,0.61384,0.53399,0.47498,0.42968,0.37694,0.32398,0.28653,0.26789,0.26312,0.29219,0.33274,0.41416,0.53094,0.58017,0.60773,0.67452,0.76475,0.80468,0.82433,0.86056,0.90746,0.92492,0.92738,0.93429,0.94547,0.96232,0.97352,0.98346,0.99042,0.99694,0.99202,0.98763,0.98532,0.98455,0.97745,0.9602,0.9357,0.90264,0.87095,0.84295,0.80941,0.77391,0.76731,0.8037,0.80387,0.81227,0.83813,0.86521,0.87734,0.89065,0.94214,0.99744,1.0057,0.97904,0.95686,0.93541,0.89639,0.83487,0.78169,0.73427,0.67771,0.60231,0.53561,0.48284,0.44029,0.41479,0.42127,0.43324,0.46259,0.4669,0.45381,0.42811,0.37819,0.32605,0.28766,0.26137,0.24108,0.22245,0.2081,0.26127,0.32467,0.35444,0.4005,0.51374,0.61872,0.64255,0.64304,0.61794,0.60859,0.60113,0.57931,0.55381,0.52027,0.46588,0.42806,0.41521,0.40184,0.38476,0.36557,0.33968,0.31369,0.29546,0.27951,0.26289,0.25023,0.24006,0.23028,0.22258,0.21577,0.20901,0.20359,0.19823,0.19373,0.18817,0.17163,0.14899,0.27196,0.25847,0.31496,0.33629,0.3447,0.34482,0.32622,0.30643,0.27012,0.24184,0.22212,0.20034,0.25407,0.2394,0.22853,0.30462,0.41677,0.42321,0.39458,0.39991,0.42995,0.45496,0.49812,0.54789,0.56286,0.5476,0.51446,0.53115,0.56496,0.62032,0.65171,0.65213,0.63384,0.61309,0.59549,0.58196,0.57354,0.57513,0.58817,0.58598,0.57685,0.56895,0.55483,0.50905,0.44607,0.38394,0.34978,0.36157,0.40069,0.3779,0.39468,0.47222,0.59336,0.75576,0.89444,0.95942,0.97568,0.97263,0.96141,0.94205,0.89786,0.81967,0.72177,0.62596,0.55388,0.51509,0.47923,0.43491,0.39343,0.35593,0.32291,0.29846,0.38297,0.41405,0.40259,0.40684,0.40241,0.41341,0.4299,0.45945,0.50006,0.53295,0.5403,0.47626,0.46506,0.56831,0.58593,0.54371,0.57042,0.7453,0.85283,0.88342,0.8924,0.88734,0.86459,0.83605,0.80206,0.77107,0.73967,0.71636,0.68733,0.66374,0.64278,0.61459,0.59728,0.58667,0.59004,0.60028,0.60798,0.61248,0.6079,0.60611,0.6116,0.62177,0.63135,0.6368,0.63539,0.62617,0.60747,0.57826,0.54508,0.51396,0.51299,0.52592,0.54078,0.54536,0.53604,0.52065,0.50344,0.4801,0.45791,0.45514,0.4498,0.43502,0.41389,0.38592,0.36295,0.35438,0.37494,0.41077,0.42943,0.42454,0.41431,0.40282,0.3969,0.39186,0.38187,0.37128,0.34233,0.29912,0.2621,0.24422,0.24701,0.26221,0.27289,0.26995,0.26468,0.29075,0.29161,0.31882,0.41623,0.48356,0.47998,0.4786,0.49971,0.52487,0.54632,0.60511,0.65527,0.68798,0.70416,0.69647,0.77355,0.86469,0.87287,0.84503,0.77912,0.70416,0.65119,0.61242,0.57349,0.54077,0.50981,0.4847,0.46292,0.43833,0.4137,0.39067,0.36941,0.34269,0.31562,0.29022,0.26718,0.24515,0.22461,0.21914,0.22217,0.23742,0.28971,0.33488,0.36019,0.38259,0.4091,0.45686,0.49339,0.51266,0.51596,0.5143,0.51096,0.50609,0.49287,0.48222,0.48213,0.49419,0.52563,0.56388,0.57679,0.59899,0.61112,0.65982,0.72769,0.7535,0.77316,0.7905,0.81624,0.84644,0.87438,0.89991,0.89137,0.85834,0.84262,0.85271,0.87706,0.88015,0.86863,0.85091,0.82473,0.78236,0.74874,0.71902,0.67909,0.63385,0.60659,0.58227,0.5566,0.53078,0.50499,0.47413,0.44186,0.40875,0.37081,0.32857,0.29809,0.32312,0.34106,0.35907,0.43202,0.51181,0.57149,0.61536,0.66345,0.71767,0.7621,0.79564,0.81931,0.8402,0.84838,0.85153,0.8417,0.83094,0.82318,0.82083,0.80905,0.77821,0.74407,0.73121,0.74906,0.76536,0.76407,0.76364,0.75601,0.7437,0.76829,0.7631,0.69719,0.62582,0.59315,0.54962,0.49911,0.46607,0.43783,0.41526,0.39228,0.36281,0.36519,0.31966,0.32173,0.31937,0.31248,0.30487,0.29137,0.27837,0.27183,0.27501,0.27305,0.26633,0.2583,0.24662,0.24734,0.26353,0.25087,0.24982,0.25278,0.2672,0.27228,0.28419,0.30241,0.33573,0.3473,0.34022,0.3522,0.37489,0.37557,0.38776,0.4069,0.40824,0.39473,0.367,0.3358,0.31725,0.3106,0.30815,0.3103,0.31884,0.32946,0.3383,0.34339,0.34805,0.35407,0.34703,0.32999,0.31008,0.29093,0.2754,0.25144,0.22767,0.2617,0.2582,0.22377,0.19769,0.21859,0.24447,0.23223,0.24082,0.27685,0.29322,0.28198,0.27543,0.27131,0.26216,0.25579,0.26509,0.26004,0.22525,0.20169,0.1953,0.1987,0.42362,0.39567,0.43746,0.50878,0.58491,0.67324,0.73813,0.90905,0.96743,0.9725,0.97564,0.99359,0.99421,1.001,1.0068,1.0136,1.0117,1.0046,0.9953,0.97177,0.90826,0.78769,0.65912,0.55624,0.49321,0.47766,0.48554,0.50497,0.52529,0.5492,0.5778,0.6363,0.72202,0.79965,0.80715,0.78387,0.77515,0.76353,0.7233,0.66364,0.63996,0.6479,0.63704,0.61815,0.62631,0.65337,0.69595,0.78486,0.80918,0.786,0.74661,0.69202,0.64409,0.60236,0.56102,0.52926,0.52437,0.49834,0.44901,0.4083,0.37177,0.35343,0.34659,0.42006,0.48964,0.4972,0.48775,0.48649,0.45862,0.41056,0.33421,0.29838,0.39215,0.41897,0.50164,0.55018,0.58297,0.63512,0.65859,0.83977,0.95402,0.99333,0.98872,0.99892,1.0014,0.99194,0.98221,0.96883,0.95061,0.9161,0.85532,0.73464,0.59801,0.57063,0.6151,0.85787,0.89342,0.95517,0.99183,1.0058,1.0104,1.0149,1.0231,1.0238,1.0247,1.023,1.0112,1.0055,1.001,1.0009,0.99396,1.0068,1.0157,1.0159,1.0112,1.0135,1.0106,1.0212,1.038,1.0495,1.0554,1.0536,1.0475,1.0506,1.0481,1.0468,1.0454,1.0476,1.0464,1.0457,1.0421,1.0401,1.0373,1.0331,1.0298,1.0279,1.0248,1.0207,1.012,1.0101,1.0076,1.0029,0.99576,0.99734,0.99889,0.99741,0.98038,0.93857,0.90342,0.86097,0.82792,0.78101,0.73324,0.68227,0.63621,0.56478,0.48027,0.41306,0.36037,0.31571,0.26411,0.23422,0.21618,0.21315,0.21108,0.20882,0.19822,0.20278,0.21103,0.22779,0.23708,0.25149,0.26052,0.26185,0.25994,0.25979,0.25629,0.25816,0.26957,0.27494,0.27667,0.28283,0.28928,0.2763,0.25747,0.24459,0.237,0.24341,0.34426,0.34795,0.34876,0.37555,0.40995,0.4499,0.48552,0.50823,0.52224,0.51738,0.50369,0.47875,0.4613,0.4609,0.46403,0.45232,0.45017,0.44518,0.43498,0.41174,0.39036,0.38424,0.38498,0.38644,0.38379,0.37446,0.36224,0.34822,0.33907,0.35472,0.34034,0.32517,0.32928,0.33068,0.32908,0.33298,0.34889,0.37805,0.38271,0.37795,0.37557,0.35977,0.33128,0.31001,0.30196,0.31702,0.34985,0.37444,0.39885,0.42204,0.44106,0.45311,0.46499,0.48079,0.49497,0.51376,0.51941,0.52311,0.51458,0.49882,0.48648,0.49959,0.51453,0.52144,0.52321,0.53131,0.526,0.51296,0.53241,0.57062,0.60545,0.63503,0.65082,0.6547,0.64083,0.62842,0.6589,0.68186,0.68725,0.62898,0.51895,0.41033,0.31999,0.26182,0.22311,0.19848,0.17748,0.16031,0.14581,0.13605,0.12885,0.12786,0.1329,0.13762,0.13621,0.13564,0.20155,0.27587,0.25213,0.24648,0.27886,0.32506,0.34569,0.36201,0.37963,0.44043,0.48736,0.56755,0.67466,0.77335,0.8191,0.83321,0.8393,0.8416,0.834,0.8112,0.77716,0.74161,0.70962,0.6711,0.62639,0.57916,0.54108,0.51212,0.47895,0.46206,0.45443,0.46462,0.49876,0.52921,0.54155,0.54874,0.59241,0.64735,0.66754,0.67,0.67568,0.67254,0.65184,0.60257,0.56336,0.53312,0.51475,0.50899,0.51022,0.53078,0.55003,0.50004,0.40571,0.34655,0.34482,0.41108,0.45091,0.46651,0.47347,0.46555,0.45588,0.45645,0.46014,0.4841,0.50433,0.5172,0.5239,0.53006,0.52641,0.50004,0.43504,0.36608,0.34854,0.32898,0.33672,0.38402,0.42506,0.44499,0.46845,0.48642,0.48891,0.48213,0.49447,0.53201,0.60551,0.65058,0.62054,0.54981,0.48841,0.50422,0.56915,0.6307,0.63005,0.59728,0.5384,0.48117,0.40018,0.35502,0.33495,0.31782,0.30197,0.29214,0.28604,0.29692,0.30867,0.3284,0.33666,0.36076,0.3758,0.40556,0.41326,0.40216,0.38036,0.37514,0.47986,0.83624,0.99295,0.97737,1.0016,1.0077,1.0002,0.94146,0.79766,0.67494,0.67733,0.53391,0.38512,0.28356,0.2042,0.16106,0.19629,0.18394,0.1566,0.13302,0.14878,0.20486,0.262,0.28832,0.31507,0.34323,0.37465,0.43243,0.47028,0.51554,0.56073,0.59821,0.64674,0.70118,0.76339,0.85578,0.94649,0.98892,1.0012,1.0058,1.0184,1.0275,1.0256,1.0152,0.99635,0.97522,0.95555,0.93656,0.92105,0.92021,0.93248,0.94302,0.93085,0.93373,0.9521,0.96747,0.9926,1.0184,1.0218,1.0168,1.0154,1.0189,1.0135,1.0118,1.0129,1.015,1.017,1.0104,0.99063,0.96962,0.92458,0.82729,0.74336,0.68015,0.65563,0.66352,0.63339,0.57963,0.51821,0.46792,0.45059,0.46031,0.48075,0.48775,0.45427,0.41763,0.38941,0.36076,0.32794,0.30135,0.28114,0.29528,0.26618,0.24774,0.24107,0.24144,0.33551,0.33773,0.45297,0.48642,0.46651,0.46929,0.52044,0.57191,0.66102,0.81885,0.88603,0.91649,0.92041,0.93329,0.92869,0.90102,0.87512,0.86065,0.85335,0.84887,0.80076,0.71889,0.64633,0.56738,0.49175,0.43237,0.42955,0.47297,0.52227,0.56613,0.63025,0.68408,0.74751,0.85609,0.90168,0.92807,0.92973,0.93524,0.95807,0.96921,0.97096,0.97781,0.98575,0.98952,0.98227,0.97677,0.97045,0.96231,0.95215,0.93487,0.90436,0.87036,0.83823,0.83113,0.82885,0.78869,0.76033,0.81555,0.88377,0.92592,0.91744,0.90144,0.90452,0.93015,0.96945,0.98773,0.98954,0.98415,0.96328,0.93705,0.8811,0.83334,0.79473,0.79961,0.81192,0.8435,0.81711,0.76867,0.71311,0.6548,0.58692,0.57557,0.61184,0.63641,0.59661,0.57073,0.55217,0.52888,0.51841,0.59516,0.65688,0.66162,0.63081,0.58016,0.53134,0.50084,0.50139,0.5609,0.62938,0.67867,0.66675,0.6683,0.67423,0.65421,0.64826,0.74306,0.89255,0.94101,0.95164,0.96906,0.98281,0.99209,1.0113,1.0171,1.0193,1.0194,1.0138,1.0133,1.0125,1.0074,1.0053,0.99604,0.98678,0.9806,0.94375,0.8943,0.83355,0.76511,0.69834,0.65911,0.64902,0.63616,0.5896,0.52615,0.4837,0.4402,0.3787,0.32881,0.31222,0.39289,0.37663,0.3596,0.33288,0.29619,0.26595,0.24243,0.21149,0.22263,0.25758,0.26874,0.26328,0.25532,0.23769,0.20438,0.16132,0.14599,0.15067,0.15013,0.14273,0.13652,0.13856,0.1639,0.27281,0.26994,0.31679,0.41879,0.55001,0.62792,0.63638,0.612,0.60382,0.60693,0.58651,0.52244,0.46469,0.41827,0.37425,0.3301,0.29291,0.27925,0.30132,0.31816,0.30463,0.25556,0.31645,0.36252,0.37331,0.37439,0.41848,0.46138,0.45209,0.42828,0.41654,0.46365,0.54159,0.59423,0.58361,0.56679,0.54218,0.5258,0.52791,0.59249,0.69365,0.7057,0.66461,0.61985,0.58066,0.5448,0.52601,0.52493,0.53021,0.53217,0.49901,0.46452,0.4356,0.40502,0.35931,0.32136,0.28766,0.26602,0.2563,0.23534,0.21679,0.21093,0.19897,0.18901,0.17721,0.18064,0.20936,0.18794,0.17835,0.15086,0.12,0.0963,0.08422,0.0755,0.06782,0.1044,0.32067,0.37896,0.48569,0.63989,0.70028,0.75816,0.75584,0.70279,0.66204,0.64772,0.64951,0.65032,0.66191,0.68299,0.62098,0.57259,0.53511,0.49826,0.45876,0.41949,0.39849,0.42654,0.42519,0.41058,0.40504,0.40398,0.40362,0.43394,0.48463,0.53436,0.53789,0.55281,0.61983,0.70371,0.74864,0.77942,0.80603,0.8075,0.78862,0.74922,0.70731,0.66903,0.61641,0.55344,0.50222,0.46315,0.46048,0.47439,0.48309,0.50355,0.54464,0.55184,0.5591,0.55272,0.53301,0.5145,0.49705,0.47813,0.4387,0.40467,0.40968,0.41259,0.41951,0.36427,0.32713,0.30039,0.29326,0.30704,0.35554,0.41293,0.43508,0.44794,0.45756,0.44854,0.44022,0.4424,0.45674,0.48384,0.49851,0.49149,0.46166,0.43078,0.38985,0.35907,0.3204,0.27917,0.28037,0.26902,0.24537,0.23377,0.23687,0.24817,0.24451,0.23799,0.22645,0.22052,0.22035,0.22403,0.33629,0.23952,0.1817,0.17883,0.17934,0.17716,0.16408,0.16176,0.30003,0.24258,0.18723,0.18256,0.17639,0.15572,0.14103,0.21605,0.42363,0.34902,0.29806,0.28433,0.28839,0.27843,0.29371,0.37983,0.40218,0.37634,0.35839,0.36758,0.37199,0.38335,0.42766,0.49548,0.51854,0.47854,0.4534,0.44155,0.42598,0.4337,0.42598,0.49289,0.52399,0.46765,0.44327,0.42506,0.39645,0.35331,0.31243,0.2763,0.26709,0.28207,0.29679,0.28281,0.25313,0.34725,0.35465,0.55629,0.72623,0.7272,0.66899,0.61772,0.58679,0.60111,0.66977,0.76744,0.81851,0.81915,0.82401,0.82562,0.81629,0.82215,0.85507,0.8975,0.92239,0.91701,0.9041,0.88839,0.86576,0.86144,0.88241,0.94039,0.97944,0.97345,0.97377,0.97985,0.98151,0.99097,1.0021,1.0126,1.0137,1.0068,0.99908,0.9892,0.97865,0.96556,0.94187,0.8873,0.80103,0.71219,0.65278,0.59413,0.53992,0.50199,0.49628,0.49493,0.4943,0.48653,0.46929,0.44787,0.42284,0.3937,0.36274,0.33715,0.353,0.36059,0.34324,0.32516,0.3133,0.29647,0.27719,0.25027,0.22547,0.25394,0.26612,0.26784,0.27433,0.29242,0.30666,0.3076,0.30685,0.31171,0.32821,0.32616,0.31938,0.32498,0.37956,0.46299,0.51084,0.51428,0.53732,0.54871,0.54294,0.56191,0.6191,0.67107,0.68587,0.69485,0.68992,0.69038,0.69737,0.71562,0.73182,0.76009,0.7609,0.71833,0.68234,0.63914,0.61415,0.60664,0.61651,0.67602,0.73247,0.73244,0.73799,0.73663,0.75089,0.78705,0.82286,0.85845,0.86185,0.82878,0.77644,0.69539,0.62901,0.60125,0.60737,0.5858,0.55503,0.53396,0.50475,0.45829,0.4057,0.35884,0.34423,0.343,0.3286,0.31883,0.31725,0.3228,0.30576,0.27832,0.23612,0.21775,0.19973,0.21213,0.2241,0.19798,0.1939,0.19334,0.19346,0.1862,0.19334,0.21689,0.21301,0.23117,0.24356,0.26771,0.26069,0.23931,0.2276,0.22459,0.22523,0.21674,0.24505,0.36559,0.39944,0.41125,0.37462,0.36638,0.34434,0.31422,0.33024,0.3846,0.41473,0.4244,0.44412,0.4534,0.45138,0.48684,0.57253,0.63538,0.65222,0.66526,0.67682,0.6731,0.65404,0.66674,0.73149,0.79204,0.78992,0.73334,0.68881,0.66036,0.6278,0.59234,0.59865,0.63568,0.64155,0.59524,0.54708,0.50332,0.45466,0.40341,0.35646,0.33618,0.36665,0.34774,0.31418,0.30458,0.27927,0.24327,0.21225,0.18257,0.1598,0.14253,0.12651,0.11245,0.09851,0.08906,0.09187,0.08427,0.11466,0.36646,0.23338,0.23955,0.22118,0.21375,0.22182,0.23755,0.23201,0.23378,0.23772,0.23374,0.22451,0.21588,0.20759,0.1965,0.1954,0.20202,0.20102,0.18967,0.17758,0.17041,0.16405,0.15863,0.15425,0.15014,0.15058,0.17401,0.18869,0.19971,0.20742,0.20694,0.2186,0.22014,0.19693,0.20554,0.2052,0.20607,0.20358,0.25279,0.31813,0.2939,0.28688,0.29658,0.29346,0.28848,0.33797,0.39226,0.4528,0.46014,0.44001,0.41948,0.39839,0.38291,0.36414,0.3384,0.31233,0.29145,0.29073,0.29068,0.28615,0.2855,0.29162,0.30246,0.3116,0.31871,0.31312,0.29152,0.26056,0.22653,0.20366,0.20487,0.21263,0.20421,0.20825,0.21112,0.20342,0.19383,0.18972,0.19237,0.20346,0.21684,0.27861,0.29006,0.29379,0.34057,0.38261,0.57473,0.77845,0.87083,0.86804,0.87037,0.88027,0.91351,0.96973,0.98318,0.98287,0.96228,0.91464,0.87836,0.84654,0.79165,0.70217,0.6665,0.67537,0.65451,0.62201,0.60053,0.58218,0.56278,0.54697,0.54392,0.55939,0.55149,0.53203,0.5237,0.51329,0.52428,0.55149,0.57206,0.55897,0.50897,0.43531,0.39054,0.37011,0.348,0.31421,0.28241,0.25966,0.2394,0.22354,0.21106,0.20717,0.20566,0.20278,0.19785,0.19796,0.20133,0.19936,0.1961,0.19194,0.18906,0.19919,0.25062,0.33346,0.31094,0.28994,0.29941,0.30511,0.30706,0.3257,0.377,0.42004,0.42757,0.42186,0.40572,0.38711,0.36172,0.34387,0.34378,0.36177,0.36316,0.33441,0.32506,0.31579,0.29896,0.2757,0.26411,0.32712,0.26225,0.26039,0.26371,0.26126,0.24405,0.22277,0.22216,0.30387,0.29526,0.26884,0.26012,0.26271,0.25589,0.2345,0.23282,0.26336,0.28785,0.28129,0.27617,0.28552,0.29109,0.29343,0.31016,0.36272,0.35417,0.3205,0.30877,0.29131,0.27498,0.25351,0.26651,0.2934,0.27395,0.25974,0.26053,0.25812,0.24882,0.23111,0.22646,0.25803,0.23787,0.2391,0.2314,0.21713,0.18514,0.15845,0.14645,0.1586,0.18909,0.17228,0.17002,0.17287,0.1694,0.16331,0.14451,0.12915,0.10983,0.11215,0.13959,0.13359,0.13901,0.12903,0.11264,0.10951,0.1667,0.18673,0.17441,0.15808,0.15921,0.17975,0.24659,0.24529,0.22779,0.22381,0.22865,0.22317,0.20788,0.2138,0.22883,0.23332,0.2284,0.21935,0.21824,0.21149,0.19763,0.17736,0.1499,0.16654,0.21988,0.20064,0.19437,0.18676,0.17359,0.15567,0.14906,0.20429,0.18294,0.18018,0.17882,0.17072,0.15775,0.14921,0.15291,0.16969,0.18105,0.22313,0.24668,0.26544,0.2624,0.30391,0.34176,0.32936,0.33569,0.3154,0.29652,0.27431,0.2754,0.3629,0.38045,0.42007,0.45783,0.5185,0.54266,0.57376,0.61932,0.69444,0.78133,0.80214,0.75191,0.70502,0.66067,0.61292,0.58232,0.5828,0.63324,0.65847,0.63128,0.60891,0.59272,0.571,0.55028,0.53238,0.53845,0.53965,0.51986,0.49861,0.49292,0.49562,0.49566,0.4945,0.5088,0.49117,0.45755,0.42746,0.40356,0.38327,0.36897,0.37417,0.3882,0.37117,0.34049,0.31683,0.29784,0.27861,0.27572,0.26432,0.25967,0.25515,0.252,0.24926,0.24316,0.22886,0.22482,0.30821,0.30713,0.28738,0.29302,0.31699,0.33916,0.35855,0.39095,0.44695,0.51455,0.56508,0.57324,0.55407,0.52929,0.50205,0.48169,0.48604,0.51175,0.52236,0.50746,0.48911,0.47922,0.46975,0.46231,0.46726,0.52457,0.56681,0.52391,0.49864,0.49027,0.48281,0.47118,0.47548,0.48929,0.4841,0.473,0.46941,0.46381,0.44629,0.43692,0.47859,0.54412,0.5614,0.57527,0.58965,0.58603,0.56416,0.53465,0.52542,0.51584,0.47399,0.42228,0.38708,0.36014,0.34099,0.32215,0.30157,0.32215,0.35166,0.32773,0.32057,0.31245,0.29212,0.25523,0.22814,0.23157,0.2851,0.29149,0.27503,0.26473,0.26161,0.26631,0.30576,0.34154,0.40278,0.44826,0.46028,0.47764,0.50692,0.53967,0.56405,0.62139,0.67091,0.66263,0.65439,0.64817,0.62735,0.61547,0.62719,0.65787,0.66365,0.6304,0.60794,0.58747,0.56638,0.53639,0.51044,0.49433,0.47706,0.45037,0.42379,0.40006,0.37683,0.34785,0.32616,0.3338,0.35017,0.34889,0.35955,0.35368,0.33842,0.33039,0.34543,0.39549,0.42039,0.42422,0.43781,0.47655,0.46469,0.45664,0.49263,0.62819,0.71691,0.74702,0.68644,0.70046,0.76196,0.85718,0.95844,0.99301,1.0063,1.0213,1.0291,1.033,1.0334,1.031,1.0319,1.036,1.0352,1.0328,1.0285,1.0241,1.0149,1.0169,1.0234,1.024,1.0222,1.0147,0.99537,0.96356,0.93136,0.82654,0.67047,0.56714,0.49205,0.4407,0.3941,0.33245,0.27593,0.22342,0.19729,0.18346,0.16587,0.15737,0.14966,0.14022,0.13017,0.12103,0.11518,0.1254,0.13237,0.12653,0.13792,0.21123,0.22761,0.2023,0.23325,0.2701,0.29796,0.31401,0.321,0.33284,0.35927,0.38894,0.42762,0.47212,0.49399,0.49813,0.50376,0.50561,0.51467,0.52823,0.55232,0.60606,0.66633,0.7042,0.72388,0.71202,0.6688,0.61037,0.53758,0.47188,0.42576,0.39557,0.37306,0.3538,0.33985,0.32873,0.3313,0.39445,0.44178,0.45673,0.45011,0.44749,0.45559,0.45613,0.44128,0.45319,0.47111,0.45591,0.45494,0.45194,0.43786,0.45568,0.50673,0.5546,0.55521,0.54191,0.52573,0.50829,0.47929,0.44907,0.42518,0.38687,0.35222,0.33948,0.33529,0.32506,0.29745,0.26481,0.23836,0.21922,0.21905,0.21605,0.21888,0.23259,0.23149,0.22777,0.21173,0.19897,0.19114,0.18586,0.18233,0.18432,0.19306,0.20955,0.23267,0.2391,0.24719,0.25322,0.25186,0.25692,0.27142,0.28088,0.27931,0.2785,0.28415,0.29241,0.30197,0.31066,0.31644,0.31593,0.31728,0.32972,0.33362,0.33106,0.33232,0.32401,0.31667,0.31189,0.30543,0.29614,0.28636,0.27613,0.26861,0.26502,0.2673,0.27306,0.27748,0.30042,0.34763,0.36126,0.37348,0.38556,0.39902,0.40871,0.43195,0.46327,0.48255,0.48999,0.49727,0.49655,0.48403,0.46411,0.44458,0.43092,0.41937,0.40928,0.39846,0.38723,0.37516,0.36695,0.36423,0.35462,0.33735,0.32712,0.31905,0.31357,0.31235,0.31363,0.31282,0.30941,0.30419,0.29774,0.29029,0.28374,0.27823,0.27421,0.27149,0.2695,0.26734,0.26466,0.26167,0.25924,0.25672,0.25406,0.25118,0.24811,0.24465,0.24059,0.23686,0.23363,0.2305,0.22744,0.22412,0.22023,0.21619,0.21077,0.20879,0.2112,0.21161,0.2124,0.21144,0.20985,0.20937,0.21136,0.2138,0.21414,0.21333,0.21203,0.21086,0.20845,0.20887,0.21945,0.22848,0.24809,0.26631,0.26651,0.27672,0.32036,0.35526,0.356,0.35847,0.3585,0.3738,0.38555,0.40193,0.40546,0.38124,0.36044,0.35451,0.3426,0.32704,0.30863,0.29142,0.27204,0.26192,0.26001,0.25042,0.24451,0.26201,0.2516,0.24173,0.25195,0.25967,0.26549,0.25685,0.24051,0.2204,0.21527,0.21126,0.19942,0.1845,0.16556,0.14188,0.12868,0.23683,0.25769,0.24455,0.24586,0.2443,0.25204,0.26328,0.265,0.28315,0.30064,0.33666,0.3777,0.41028,0.39601,0.34454,0.32516,0.3075,0.28799,0.27087,0.25858,0.2519,0.24884,0.24967,0.25541,0.26481,0.25621,0.25446,0.32235,0.31838,0.31113,0.29624,0.29417,0.30333,0.33704,0.43039,0.46379,0.45905,0.43387,0.44947,0.45463,0.45307,0.44829,0.47352,0.51724,0.54876,0.56683,0.62151,0.64823,0.64667,0.64517,0.71521,0.78419,0.80782,0.80033,0.7988,0.80609,0.81715,0.83119,0.84657,0.83124,0.79711,0.7544,0.72839,0.69474,0.65268,0.61765,0.58534,0.5903,0.6657,0.69216,0.68275,0.66439,0.66724,0.6756,0.72782,0.78446,0.81713,0.80499,0.78548,0.77368,0.77263,0.76246,0.74995,0.71179,0.68688,0.66695,0.64094,0.62674,0.62365,0.64167,0.65048,0.64344,0.60693,0.55388,0.50789,0.47376,0.45313,0.45062,0.48845,0.54218,0.48821,0.4019,0.33414,0.28561,0.25565,0.23968,0.22933,0.22143,0.21724,0.21682,0.21646,0.21487,0.22172,0.2705,0.24584,0.25798,0.30279,0.31392,0.31761,0.32333,0.35191,0.38241,0.45905,0.55338,0.59704,0.60335,0.60626,0.61941,0.60869,0.58233,0.55362,0.53722,0.53037,0.5242,0.53089,0.5421,0.5492,0.53555,0.51206,0.49027,0.4522,0.40816,0.36539,0.33758,0.30985,0.29216,0.2785,0.2712,0.25933,0.2448,0.22863,0.20943,0.19231,0.17977,0.16912,0.15875,0.15403,0.1832,0.26548,0.18921,0.16993,0.15365,0.14323,0.13625,0.13545,0.13935,0.14939,0.1622,0.17079,0.18185,0.20211,0.21573,0.21429,0.20458,0.20099,0.20083,0.20184,0.20563,0.22562,0.3279,0.30416,0.30022,0.32273,0.33892,0.35506,0.36112,0.37178,0.42046,0.46297,0.4814,0.48276,0.48896,0.49927,0.52709,0.63515,0.68374,0.73793,0.7597,0.78507,0.82512,0.85329,0.86631,0.89596,0.91796,0.91899,0.922,0.93005,0.94058,0.94063,0.93907,0.93169,0.91909,0.91864,0.92564,0.93828,0.94258,0.93523,0.92047,0.91004,0.89253,0.88509,0.86036,0.83894,0.79984,0.74359,0.68611,0.64354,0.62625,0.61576,0.58663,0.5515,0.51816,0.48928,0.4676,0.44823,0.43001,0.43136,0.45776,0.48491,0.51348,0.54627,0.59151,0.63256,0.65926,0.6887,0.72622,0.71104,0.70448,0.71752,0.74758,0.79463,0.84939,0.87138,0.88005,0.88872,0.89957,0.90063,0.89894,0.91549,0.93993,0.94613,0.92633,0.89172,0.85327,0.80956,0.77518,0.75213,0.73085,0.723,0.69668,0.62388,0.55721,0.51482,0.47925,0.47467,0.50419,0.52973,0.5183,0.51748,0.53097,0.53826,0.55005,0.59449,0.64309,0.67633,0.67158,0.65353,0.6082,0.57728,0.57998,0.60392,0.59886,0.57938,0.5608,0.5388,0.51065,0.47712,0.44945,0.42604,0.41453,0.42244,0.42373,0.43739,0.45757,0.46647,0.45581,0.44311,0.44964,0.46838,0.48552,0.4999,0.4912,0.47672,0.46473,0.45995,0.45581,0.45826,0.45559,0.4461,0.42344,0.40789,0.39839,0.38656,0.40557,0.41302,0.40897,0.44935,0.5011,0.53066,0.56379,0.67108,0.81822,0.92592,0.95738,0.99355,0.98927,1.0019,1.0212,1.0377,1.0496,1.0409,1.0392,1.0405,1.0403,1.0396,1.0389,1.0423,1.0461,1.048,1.0475,1.0531,1.0495,1.0477,1.0452,1.0502,1.0538,1.0542,1.051,1.0511,1.0518,1.0525,1.0488,1.0481,1.0459,1.0424,1.0417,1.0395,1.0362,1.0289,1.0218,1.0136,0.99453,0.97386,0.92216,0.82523,0.69966,0.60782,0.55558,0.48797,0.45632,0.46794,0.46196,0.4475,0.44757,0.45952,0.4704,0.47452,0.45795,0.4296,0.42749,0.42557,0.4222,0.40654,0.38871,0.37166,0.35389,0.34998,0.36818,0.40128,0.44001,0.51254,0.56053,0.59562,0.6507,0.72749,0.76484,0.79207,0.84794,0.8822,0.89868,0.91725,0.91265,0.87658,0.82395,0.76012,0.68326,0.62543,0.55912,0.51847,0.48343,0.40605,0.33203,0.29165,0.27134,0.38841,0.32735,0.33037,0.38262,0.41987,0.43197,0.47939,0.51625,0.53524,0.54892,0.56954,0.61043,0.65692,0.70357,0.67743,0.6329,0.61114,0.60494,0.60587,0.60891,0.62724,0.67227,0.73118,0.79307,0.84571,0.88441,0.92606,0.95796,0.97967,0.99143,0.99527,0.99521,0.98703,0.98166,0.97337,0.95741,0.94965,0.94278,0.93399,0.91722,0.90072,0.89582,0.88942,0.88239,0.86946,0.85481,0.80381,0.76677,0.71984,0.67054,0.63624,0.61332,0.59285,0.56813,0.53619,0.5097,0.48222,0.45476,0.43015,0.41149,0.39481,0.37698,0.34852,0.31462,0.29281,0.28647,0.29206,0.30122,0.29642,0.28342,0.26724,0.25333,0.24192,0.23256,0.27446,0.24843,0.24219,0.26166,0.27993,0.2903,0.29843,0.31172,0.32796,0.33775,0.34035,0.34102,0.34188,0.33614,0.3225,0.30985,0.30105,0.28542,0.26249,0.25234,0.2546,0.27121,0.28416,0.28532,0.27201,0.25074,0.22472,0.19727,0.1771,0.1676,0.16276,0.15995,0.22368,0.23716,0.24071,0.25416,0.2497,0.25191,0.28026,0.31921,0.37674,0.42854,0.49101,0.53204,0.61746,0.68576,0.69565,0.70148,0.72083,0.73368,0.73649,0.69797,0.65039,0.63601,0.64323,0.66447,0.6866,0.71898,0.7591,0.76302,0.74506,0.71611,0.69471,0.67073,0.63969,0.61325,0.58995,0.57139,0.5569,0.5466,0.53799,0.52486,0.51472,0.51004,0.51141,0.52307,0.5581,0.5792,0.58401,0.59461,0.68089,0.75742,0.7787,0.75976,0.74715,0.75194,0.76925,0.79333,0.83101,0.85769,0.84458,0.80009,0.72653,0.64093,0.5327,0.41652,0.33776,0.42119,0.3416,0.31454,0.36285,0.3876,0.37325,0.36572,0.35258,0.33413,0.29289,0.26396,0.26533,0.24874,0.28824,0.33364,0.35687,0.41475,0.46431,0.49691,0.52496,0.58108,0.61917,0.64109,0.66101,0.69292,0.71491,0.6892,0.62696,0.57161,0.53724,0.53613,0.57411,0.61813,0.61939,0.60208,0.57942,0.55831,0.54014,0.52338,0.5116,0.52201,0.56758,0.63238,0.67152,0.67254,0.65061,0.62028,0.59205,0.57242,0.56194,0.55571,0.56107,0.56158,0.56869,0.57141,0.57163,0.57146,0.56898,0.55666,0.57341,0.60672,0.63901,0.66099,0.66587,0.66502,0.66246,0.65626,0.65689,0.66797,0.67672,0.66735,0.63423,0.60026,0.60135,0.61278,0.62461,0.63429,0.63895,0.63681,0.6332,0.62814,0.62468,0.62709,0.6263,0.61664,0.5942,0.57604,0.64512,0.80428,0.82899,0.8294,0.86313,0.89353,0.93221,0.96661,0.99645,1.0029,0.99185,0.94237,0.80619,0.58623,0.41615,0.34697,0.31892,0.32195,0.37527,0.41327,0.42242,0.41838,0.42334,0.42312,0.42012,0.42147,0.43028,0.41418,0.39965,0.36929,0.33741,0.30201,0.26859,0.24862,0.2374,0.23471,0.2314,0.22437,0.22415,0.31925,0.32559,0.30941,0.32279,0.34371,0.35345,0.36473,0.37278,0.39586,0.42243,0.44087,0.45646,0.47444,0.49972,0.51075,0.51607,0.52266,0.53279,0.54955,0.56226,0.56677,0.56194,0.6746,0.79805,0.86089,0.87591,0.87487,0.88086,0.87197,0.8653,0.86317,0.84802,0.81508,0.78305,0.74028,0.68092,0.63213,0.59314,0.55177,0.52012,0.50157,0.49567,0.50377,0.52578,0.52061,0.51343,0.5173,0.52194,0.52471,0.54737,0.58238,0.58094,0.54563,0.52097,0.50226,0.48437,0.46334,0.47579,0.44959,0.42706,0.39545,0.41043,0.40222,0.36597,0.34484,0.31699,0.30379,0.30988,0.28948,0.27307,0.26835,0.26195,0.2477,0.23581,0.24239,0.26786,0.2925,0.32927,0.35268,0.39066,0.47086,0.5065,0.46171,0.42269,0.38873,0.36034,0.33931,0.32974,0.31694,0.30878,0.30115,0.32041,0.33636,0.31322,0.30591,0.3114,0.31858,0.33594,0.37995,0.39417,0.39664,0.41229,0.45449,0.4344,0.4247,0.44618,0.47344,0.59073,0.7445,0.75627,0.68196,0.59099,0.55087,0.56534,0.57609,0.56056,0.54582,0.55652,0.58378,0.61241,0.64733,0.73047,0.81329,0.81965,0.7992,0.79358,0.77581,0.73114,0.71262,0.69484,0.65059,0.58979,0.53282,0.47573,0.41472,0.35805,0.31751,0.50095,0.44818,0.52599,0.59973,0.61101,0.62335,0.6286,0.64183,0.6689,0.68483,0.65938,0.65226,0.65173,0.63346,0.59441,0.55035,0.51241,0.49593,0.507,0.48719,0.49162,0.49872,0.49368,0.48065,0.45218,0.42012,0.39686,0.3757,0.34788,0.32614,0.29813,0.26932,0.24134,0.21635,0.19454,0.17559,0.15852,0.14519,0.16568,0.22227,0.29127,0.36094,0.43418,0.51229,0.59021,0.62952,0.63018,0.60667,0.57334,0.54791,0.53763,0.52448,0.5018,0.48485,0.47078,0.45374,0.45011,0.44441,0.4431,0.43012,0.42745,0.4246,0.39766,0.36088,0.4187,0.52934,0.60674,0.55447,0.55889,0.6599,0.70811,0.77857,0.95875,0.96371,0.97976,0.94562,0.80082,0.65773,0.50823,0.33933,0.26193,0.2537,0.2368,0.23291,0.23616,0.23942,0.24635,0.25462,0.25289,0.23766,0.21362,0.19032,0.16815,0.15916,0.1621,0.16537,0.16288,0.16184,0.16345,0.16639,0.16435,0.16821,0.25869,0.25856,0.25856,0.27655,0.30894,0.32495,0.33763,0.34692,0.34689,0.34427,0.35784,0.38911,0.40673,0.40437,0.38968,0.37168,0.34253,0.32614,0.40254,0.52909,0.58421,0.58157,0.56706,0.54915,0.52692,0.4902,0.45047,0.41472,0.39317,0.3771,0.35941,0.34377,0.32506,0.29304,0.29174,0.38268,0.38777,0.39508,0.40915,0.45427,0.50001,0.52944,0.5901,0.6152,0.63957,0.6133,0.56105,0.50753,0.46364,0.44545,0.44225,0.41615,0.36827,0.33109,0.3266,0.361,0.41685,0.4329,0.42221,0.39303,0.38243,0.34491,0.31726,0.28667,0.25424,0.2652,0.26445,0.27213,0.28181,0.26832,0.32996,0.42533,0.45716,0.4883,0.54563,0.63182,0.72371,0.7827,0.79301,0.79725,0.81,0.78987,0.77621,0.78428,0.79908,0.81619,0.83703,0.85482,0.87262,0.88751,0.92086,0.97105,0.99151,1.0004,1.0067,1.008,1.0164,1.0257,1.0321,1.0346,1.0275,1.0101,1.0063,1.008,1.0085,1.0072,1.0071,1.0134,1.0119,1.0005,0.98524,0.95144,0.91264,0.87081,0.84457,0.78799,0.72467,0.69661,0.6622,0.63993,0.67689,0.72355,0.85056,0.93433,0.97725,0.9858,1.001,1.0011,1,0.99688,1.0045,1.0124,1.0113,0.97039,0.91072,0.87289,0.83315,0.79311,0.81606,0.83073,0.81703,0.76331,0.7196,0.69459,0.68095,0.68762,0.70685,0.74472,0.77033,0.74794,0.71698,0.66702,0.65055,0.65467,0.6368,0.56546,0.50508,0.44292,0.3773,0.3291,0.29742,0.2707,0.24956,0.29624,0.36453,0.36307,0.34918,0.35142,0.35223,0.34344,0.39459,0.44488,0.4846,0.49833,0.55477,0.64728,0.75438,0.81423,0.8767,0.91819,0.93185,0.89718,0.82412,0.72647,0.64229,0.58632,0.55599,0.53201,0.50895,0.46512,0.42278,0.38187,0.34131,0.29916,0.25765,0.22264,0.19635,0.17475,0.1549,0.13988,0.12673,0.11524,0.10608,0.14474,0.25459,0.21874,0.22779,0.25274,0.26051,0.25365,0.24774,0.24916,0.24937,0.26748,0.46357,0.53048,0.6076,0.71506,0.80503,0.84908,0.87983,0.88961,0.91071,0.93171,0.93609,0.93351,0.95405,0.96355,0.96851,0.95336,0.93775,0.90073,0.8696,0.88615,0.84313,0.80002,0.67722,0.62951,0.62901,0.63976,0.63786,0.62309,0.59507,0.52347,0.43661,0.37099,0.32101,0.28579,0.27579,0.33011,0.3783,0.35891,0.34869,0.36083,0.35969,0.34687,0.33293,0.30353,0.28709,0.26611,0.23523,0.21464,0.20596,0.19474,0.17795,0.15964,0.14661,0.15837,0.18652,0.23239,0.29872,0.3533,0.41913,0.4663,0.48803,0.4963,0.49119,0.46654,0.41852,0.38849,0.4079,0.49121,0.54498,0.55252,0.56941,0.61137,0.65238,0.69177,0.71929,0.7109,0.65575,0.62786,0.66524,0.68396,0.66649,0.60532,0.57653,0.61273,0.69951,0.74026,0.73837,0.71689,0.69567,0.67304,0.64143,0.60183,0.56527,0.52743,0.48471,0.46366,0.49128,0.49978,0.5185,0.5457,0.55871,0.57531,0.62559,0.70206,0.71549,0.74295,0.75708,0.7501,0.72202,0.81591,0.9052,0.91478,0.88508,0.83345,0.77566,0.72723,0.66541,0.59002,0.53857,0.50663,0.48544,0.46931,0.44215,0.40168,0.35757,0.31831,0.29591,0.29066,0.30254,0.32122,0.31978,0.32539,0.33523,0.34822,0.35497,0.34881,0.34117,0.35704,0.45793,0.56755,0.64952,0.67558,0.68971,0.73231,0.78035,0.7766,0.71196,0.66457,0.63624,0.60198,0.56747,0.54341,0.52549,0.51199,0.51761,0.55751,0.60344,0.61582,0.64652,0.70651,0.72807,0.69327,0.6485,0.67113,0.75988,0.7677,0.82845,0.92069,0.95609,0.95208,0.93968,0.86238,0.68952,0.51248,0.40089,0.41028,0.39728,0.46629,0.51308,0.53482,0.58862,0.63316,0.68048,0.79339,0.84026,0.88318,0.88012,0.90605,0.90609,0.90256,0.92331,0.93198,0.92222,0.88888,0.87138,0.85677,0.79566,0.71501,0.66049,0.64981,0.65455,0.64759,0.62499,0.60618,0.58247,0.55528,0.53416,0.52628,0.52233,0.49912,0.46665,0.43216,0.41206,0.38557,0.36091,0.33816,0.35908,0.38573,0.35826,0.33832,0.32098,0.29868,0.27811,0.29233,0.37284,0.40218,0.39728,0.40322,0.40587,0.40298,0.41782,0.46852,0.51901,0.51459,0.49025,0.47178,0.46077,0.45333,0.43086,0.4287,0.47556,0.48876,0.45612,0.42771,0.39639,0.37348,0.36413,0.36595,0.3816,0.40959,0.39923,0.362,0.32679,0.2908,0.26493,0.24224,0.22398,0.22041,0.22284,0.2823,0.25646,0.25942,0.22942,0.23227,0.25475,0.31706,0.29842,0.26598,0.26285,0.26941,0.26346,0.25616,0.24759,0.29447,0.31533,0.2742,0.26621,0.25903,0.23619,0.21621,0.24905,0.33457,0.35568,0.37685,0.3884,0.38021,0.36471,0.35414,0.34784,0.36586,0.35822,0.32243,0.30622,0.28348,0.25908,0.23648,0.21753,0.20332,0.20107,0.20521,0.22058,0.24341,0.2583,0.30505,0.39643,0.41898,0.39896,0.38185,0.36051,0.33635,0.31043,0.28622,0.27245,0.26165,0.24643,0.24162,0.22666,0.21463,0.23422,0.22566,0.19887,0.1867,0.18038,0.17742,0.1754,0.16585,0.15649,0.15109,0.30648,0.33104,0.36067,0.38956,0.39925,0.53212,0.67217,0.83797,0.90241,0.92819,0.94031,0.9482,0.93132,0.90052,0.90982,0.95961,0.92802,0.9259,0.9656,0.9992,1.0165,1.0347,1.0377,1.0464,1.0469,1.0458,1.0404,1.0293,1.0219,1.0169,1.0108,0.98799,0.95172,0.8865,0.8063,0.73051,0.6521,0.62084,0.64335,0.64435,0.61473,0.59182,0.58274,0.5816,0.60881,0.64425,0.68179,0.68727,0.68831,0.66883,0.6581,0.69031,0.71318,0.70412,0.66784,0.59363,0.52228,0.45844,0.40114,0.35447,0.32146,0.28802,0.31736,0.26699,0.25061,0.24025,0.22435,0.22211,0.33736,0.45426,0.50626,0.46253,0.44137,0.43326,0.43749,0.42287,0.41763,0.4617,0.47389,0.43171,0.35477,0.28102,0.21708,0.20808,0.35431,0.42357,0.52519,0.54797,0.55581,0.57708,0.60697,0.6524,0.7165,0.82484,0.90118,0.91035,0.87368,0.80295,0.72173,0.68441,0.71788,0.75216,0.74155,0.72399,0.67009,0.56934,0.48021,0.4193,0.38093,0.41237,0.36431,0.37665,0.41598,0.45792,0.45315,0.4201,0.39378,0.3628,0.38598,0.39451,0.46685,0.53661,0.66435,0.74759,0.77522,0.76661,0.81116,0.831,0.8202,0.77628,0.7069,0.67277,0.67811,0.67448,0.64994,0.61288,0.57661,0.54517,0.51993,0.49073,0.45264,0.42867,0.40368,0.38476,0.36765,0.35613,0.37474,0.383,0.38153,0.38912,0.37932,0.38566,0.3868,0.41723,0.49214,0.53949,0.52458,0.49004,0.45775,0.42624,0.40389,0.39639,0.41198,0.40563,0.39481,0.38332,0.35936,0.32226,0.2822,0.25324,0.23518,0.22699,0.2157,0.20513,0.19289,0.18163,0.17381,0.17531,0.18775,0.20037,0.21006,0.23222,0.25754,0.24978,0.24048,0.26584,0.30497,0.29068,0.28854,0.29167,0.28855,0.32995,0.41551,0.43658,0.45568,0.45051,0.41585,0.37764,0.34602,0.33945,0.37325,0.34838,0.32205,0.30222,0.276,0.24886,0.23459,0.37074,0.4497,0.51321,0.48775,0.48348,0.5009,0.53203,0.55512,0.6012,0.64381,0.69831,0.76334,0.81087,0.85954,0.9299,0.98273,1.0043,1.0055,0.99286,0.98036,0.96654,0.95421,0.93836,0.94244,0.92575,0.87262,0.83083,0.83402,0.7531,0.67911,0.6418,0.6218,0.58709,0.53497,0.47032,0.39075,0.34088,0.27619,0.20575,0.16081,0.13787,0.12355,0.11132,0.10497,0.10689,0.10819,0.10366,0.16048,0.23441,0.20106,0.17977,0.19496,0.20039,0.20577,0.20615,0.22704,0.3211,0.42974,0.48896,0.51485,0.52816,0.54992,0.60478,0.70673,0.78952,0.85091,0.87664,0.89185,0.90172,0.91876,0.92512,0.94596,0.96719,0.98423,0.98399,0.97677,0.94022,0.89722,0.84954,0.79596,0.75286,0.72667,0.69073,0.65667,0.63657,0.64052,0.63556,0.63596,0.64775,0.67898,0.72833,0.71145,0.6739,0.66415,0.66711,0.70242,0.75957,0.79513,0.79001,0.79066,0.77742,0.76168,0.75191,0.77834,0.83622,0.894,0.87759,0.8461,0.80717,0.79438,0.79082,0.79798,0.79385,0.78423,0.71369,0.65336,0.60033,0.55303,0.51157,0.47965,0.46439,0.45961,0.45314,0.44184,0.42616,0.4158,0.41435,0.40754,0.40515,0.39049,0.37127,0.35172,0.34357,0.32686,0.2973,0.27136,0.25142,0.37675,0.44314,0.45766,0.51358,0.50519,0.52285,0.58909,0.66777,0.71293,0.71086,0.69963,0.6963,0.6942,0.69681,0.7368,0.7516,0.74283,0.69837,0.68887,0.70014,0.68489,0.66161,0.68243,0.71454,0.75084,0.75566,0.74588,0.72065,0.68952,0.68074,0.70671,0.73774,0.76781,0.76933,0.75123,0.72764,0.69088,0.69092,0.74893,0.79298,0.79557,0.77721,0.76639,0.75995,0.74303,0.73642,0.73273,0.74842,0.76316,0.73622,0.70685,0.66461,0.6247,0.59787,0.63311,0.71533,0.75187,0.71337,0.65223,0.62822,0.61823,0.59032,0.57598,0.59898,0.62309,0.63273,0.62292,0.60757,0.58709,0.59062,0.62326,0.68051,0.68906,0.64849,0.62396,0.61962,0.61961,0.614,0.60299,0.59652,0.58235,0.54307,0.50864,0.48602,0.47118,0.46125,0.45478,0.45508,0.45887,0.44026,0.4181,0.40281,0.39018,0.37834,0.36359,0.37488,0.40657,0.4096,0.43024,0.44201,0.44992,0.46806,0.50916,0.51967,0.53498,0.53698,0.52734,0.52124,0.51309,0.55801,0.55297,0.56055,0.57382,0.56567,0.54164,0.51864,0.49722,0.48439,0.51224,0.56773,0.53953,0.45674,0.41626,0.40899,0.38853,0.34743,0.28865,0.32272,0.32959,0.30869,0.355,0.38016,0.37888,0.3875,0.40749,0.43043,0.45047,0.42503,0.4271,0.41031,0.39231,0.39044,0.40104,0.4001,0.39353,0.37459,0.37339,0.3959,0.38477,0.38484,0.40202,0.38554,0.3831,0.38089,0.36205,0.33506,0.30852,0.29017,0.29876,0.30063,0.27794,0.27831,0.27476,0.28465,0.30656,0.35477,0.35142,0.34728,0.35851,0.37359,0.3644,0.36268,0.34708,0.33615,0.3445,0.36789,0.37262,0.33193,0.32486,0.3394,0.3495,0.35293,0.35357,0.40401,0.44933,0.44214,0.46569,0.50339,0.54033,0.552,0.52809,0.58037,0.67712,0.70495,0.75157,0.7579,0.74095,0.66776,0.58759,0.53535,0.49959,0.4257,0.39354,0.44106,0.42185,0.39495,0.40085,0.4024,0.38453,0.35978,0.33513,0.31706,0.27357,0.24487,0.24903,0.23349,0.20667,0.18986,0.18033,0.17729,0.17745,0.16797,0.1502,0.1211,0.10389,0.09095,0.07937,0.07357,0.07679,0.0772,0.08233,0.19634,0.28258,0.31352,0.29294,0.27548,0.26128,0.25879,0.26443,0.29206,0.32531,0.34808,0.34137,0.31869,0.30873,0.31426,0.32286,0.33501,0.37099,0.36768,0.33717,0.31883,0.30651,0.28287,0.2535,0.22726,0.20952,0.2094,0.22241,0.22607,0.23505,0.24671,0.25267,0.25496,0.26416,0.26672,0.2746,0.2743,0.27955,0.28297,0.29046,0.30365,0.33903,0.35061,0.35625,0.36835,0.37629,0.37599,0.3702,0.36775,0.37584,0.40234,0.44384,0.47742,0.49718,0.49543,0.50777,0.50674,0.51042,0.54305,0.57146,0.58786,0.61083,0.63393,0.64638,0.66999,0.67707,0.65755,0.64977,0.64852,0.70255,0.77778,0.84454,0.92807,0.93229,0.95117,1.0021,1.0002,1.0052,1.0162,1.0275,1.0257,1.0226,1.0253,1.0258,1.0248,1.0142,0.9906,0.95713,0.92545,0.90843,0.87603,0.80309,0.60146,0.44419,0.33632,0.25536,0.20142,0.16771,0.14727,0.14234,0.14416,0.16356,0.17659,0.19807,0.25948,0.30296,0.28939,0.30926,0.30907,0.29614,0.30795,0.3636,0.40136,0.39879,0.37415,0.37173,0.39625,0.43527,0.41145,0.36963,0.29694,0.25305,0.23599,0.22248,0.21836,0.20862,0.18727,0.16087,0.13957,0.1232,0.11853,0.11802,0.11665,0.11559,0.10473,0.08947,0.10333,0.14348,0.13978,0.13033,0.12845,0.14976,0.21902,0.2186,0.19412,0.19114,0.1936,0.20505,0.22603,0.25535,0.28847,0.25066,0.24217,0.25137,0.2644,0.27315,0.28004,0.29359,0.29265,0.28222,0.28175,0.27768,0.26559,0.25035,0.23239,0.22167,0.22125,0.22008,0.21315,0.20415,0.2108,0.20501,0.19548,0.18027,0.18948,0.24248,0.2157,0.18354,0.17474,0.16333,0.14735,0.12944,0.11265,0.11165,0.15141,0.16569,0.16254,0.15031,0.1237,0.11974,0.13511,0.11724,0.11939,0.10162,0.08997,0.07992,0.0751,0.09096,0.09912,0.11131,0.12392,0.12243,0.12246,0.12516,0.12749,0.13082,0.13881,0.1347,0.1212,0.11678,0.11372,0.10551,0.10861,0.11536,0.13061,0.14443,0.15936,0.16962,0.163,0.1587,0.16238,0.15514,0.14941,0.29507,0.28293,0.30742,0.32313,0.35069,0.38492,0.41528,0.44943,0.44988,0.43455,0.42351,0.41839,0.44417,0.4481,0.42757,0.42074,0.3951,0.4035,0.4266,0.4474,0.43971,0.43509,0.44955,0.46868,0.47513,0.47848,0.48439,0.47536,0.46512,0.45715,0.44385,0.41972,0.39864,0.39579,0.42139,0.43409,0.41646,0.40336,0.39661,0.39121,0.38541,0.37648,0.37877,0.38603,0.37912,0.36817,0.36093,0.36345,0.35914,0.35389,0.37951,0.38819,0.36938,0.36546,0.36083,0.35152,0.33748,0.33817,0.37477,0.41458,0.40787,0.4078,0.41413,0.41525,0.41721,0.4116,0.3902,0.3788,0.36906,0.35509,0.33609,0.31632,0.29195,0.26791,0.25112,0.23788,0.22636,0.21698,0.2081,0.19711,0.18577,0.18004,0.1874,0.23232,0.29567,0.24105,0.24117,0.24722,0.26465,0.30025,0.34327,0.37413,0.36882,0.3829,0.38328,0.37232,0.36021,0.37562,0.39087,0.37028,0.35929,0.35703,0.35454,0.34721,0.3422,0.339,0.33588,0.32634,0.30644,0.28359,0.27153,0.26735,0.26553,0.2776,0.29134,0.28817,0.28463,0.27947,0.26954,0.25619,0.24132,0.23749,0.29576,0.29289,0.28257,0.28921,0.30007,0.30529,0.31395,0.34468,0.39947,0.45093,0.43943,0.42717,0.41615,0.4102,0.40074,0.38393,0.35994,0.33385,0.31569,0.30101,0.28243,0.26048,0.23726,0.21701,0.20571,0.189,0.1927,0.21483,0.22647,0.2344,0.2445,0.25567,0.27008,0.2868,0.28348,0.27018,0.25784,0.2483,0.23931,0.22619,0.23197,0.29644,0.28162,0.29264,0.32615,0.32178,0.31881,0.324,0.33228,0.33064,0.30587,0.29082,0.2757,0.27148,0.27563,0.28064,0.31734,0.31349,0.31378,0.31249,0.30558,0.31267,0.34294,0.41295,0.50625,0.56339,0.53985,0.54099,0.53484,0.52873,0.54423,0.59287,0.62594,0.62329,0.58601,0.55769,0.53633,0.4942,0.40513,0.34528,0.31178,0.28654,0.25948,0.23134,0.20933,0.19426,0.18264,0.17511,0.17022,0.16142,0.15297,0.15584,0.17297,0.16779,0.15801,0.14295,0.11344,0.09786,0.09202,0.09091,0.09025,0.08601,0.07934,0.07497,0.09914,0.1729,0.20473,0.24397,0.24519,0.25772,0.25958,0.2645,0.26114,0.26228,0.26681,0.29877,0.29623,0.30161,0.31298,0.35028,0.38402,0.41021,0.42934,0.43479,0.43918,0.46195,0.49258,0.52026,0.55099,0.58518,0.57624,0.55334,0.54348,0.54719,0.57705,0.61336,0.6529,0.71343,0.70864,0.67867,0.64352,0.61645,0.59123,0.57543,0.56253,0.5345,0.51012,0.48943,0.47372,0.46634,0.46697,0.46504,0.46308,0.46365,0.47063,0.46394,0.44916,0.43419,0.413,0.39138,0.3707,0.35477,0.33205,0.31756,0.30608,0.291,0.27669,0.2628,0.25174,0.24285,0.23444,0.22699,0.21292,0.19365,0.19137,0.19581,0.21512,0.22092,0.21903,0.21714,0.20778,0.19925,0.20258,0.20857,0.20596,0.2099,0.21303,0.21219,0.20767,0.20567,0.21628,0.22684,0.21962,0.19398,0.16242,0.13518,0.11617,0.10524,0.10199,0.10306,0.10286,0.09794,0.08856,0.1079,0.13955,0.15378,0.1776,0.21165,0.24519,0.23519,0.24623,0.27452,0.32608,0.37555,0.41674,0.46231,0.4734,0.459,0.44643,0.43541,0.41635,0.40022,0.38017,0.35514,0.346,0.35964,0.34755,0.3587,0.3785,0.37794,0.38089,0.41068,0.4345,0.44921,0.46686,0.46616,0.44271,0.41934,0.38492,0.34721,0.31191,0.28573,0.26279,0.2474,0.2427,0.23622,0.2314,0.22834,0.21753,0.19612,0.2035,0.21671,0.19839,0.1845,0.17408,0.16119,0.1803,0.27998,0.24826,0.22795,0.22742,0.23003,0.23069,0.22753,0.23792,0.32794,0.30577,0.26876,0.28108,0.28648,0.27577,0.26996,0.25903,0.26574,0.26387,0.268,0.26174,0.24844,0.23538,0.22448,0.23257,0.26077,0.24442,0.23497,0.23634,0.23158,0.22034,0.19667,0.18321,0.2598,0.26894,0.22648,0.22387,0.21724,0.2087,0.19748,0.19868,0.22189,0.24539,0.24434,0.24083,0.24345,0.25074,0.26201,0.28099,0.2838,0.27283,0.28274,0.29792,0.31227,0.32963,0.35196,0.40248,0.43783,0.46837,0.50464,0.47417,0.47475,0.50825,0.53009,0.59442,0.66529,0.6623,0.64155,0.64305,0.67323,0.72525,0.77241,0.8024,0.80902,0.79249,0.76472,0.71982,0.65814,0.60757,0.57353,0.54019,0.49689,0.44569,0.40247,0.3683,0.3463,0.33619,0.33297,0.33022,0.32063,0.31126,0.30029,0.2847,0.27037,0.25805,0.24784,0.2389,0.23517,0.22594,0.21696,0.20865,0.20154,0.20148,0.20722,0.21103,0.21076,0.20822,0.21798,0.23172,0.24351,0.25419,0.27964,0.31915,0.34795,0.34411,0.34484,0.35211,0.36192,0.36403,0.36154,0.38651,0.42381,0.40625,0.38969,0.37475,0.36834,0.37356,0.38469,0.40042,0.39252,0.38466,0.39253,0.41842,0.45719,0.50423,0.54742,0.5721,0.568,0.55159,0.53113,0.501,0.4653,0.43765,0.42693,0.41706,0.40279,0.38064,0.3627,0.34332,0.32149,0.30058,0.29122,0.3062,0.30811,0.30636,0.31973,0.33222,0.35057,0.37456,0.3908,0.4016,0.43639,0.46096,0.47148,0.45856,0.43023,0.4053,0.3972,0.39166,0.38314,0.38762,0.38378,0.37632,0.36776,0.3687,0.38013,0.4106,0.43504,0.41422,0.39319,0.38989,0.40701,0.42444,0.44385,0.49023,0.56496,0.58912,0.58851,0.57121,0.55734,0.54581,0.5401,0.53835,0.5394,0.52251,0.50276,0.48529,0.46643,0.43473,0.40801,0.37551,0.37115,0.35191,0.33189,0.31787,0.31002,0.30093,0.28885,0.27773,0.29176,0.31682,0.3031,0.31547,0.31197,0.29654,0.2727,0.24916,0.24673,0.24412,0.25388,0.26359,0.25503,0.22654,0.20543,0.39857,0.27076,0.23313,0.23982,0.2468,0.26411,0.27414,0.27249,0.27356,0.27122,0.26242,0.24829,0.23419,0.22448,0.21955,0.24085,0.26228,0.26656,0.26337,0.26261,0.25825,0.24624,0.23125,0.22288,0.23007,0.231,0.21055,0.18304,0.17357,0.17525,0.17338,0.16271,0.15961,0.15982,0.20572,0.2007,0.21454,0.2044,0.18826,0.17534,0.17155,0.15076,0.13209,0.11788,0.22849,0.39135,0.49284,0.57053,0.58017,0.58627,0.56251,0.49609,0.39469,0.32091,0.27938,0.25601,0.24105,0.22811,0.21794,0.21113,0.20124,0.1909,0.18786,0.18984,0.191,0.18892,0.18442,0.18535,0.18932,0.20507,0.21291,0.23211,0.29066,0.29536,0.29303,0.30721,0.31549,0.34756,0.3761,0.43832,0.51616,0.57991,0.59225,0.61969,0.64567,0.67319,0.69996,0.6948,0.62816,0.5504,0.48555,0.44443,0.41543,0.39826,0.38558,0.37804,0.37222,0.3621,0.34437,0.3227,0.30176,0.28634,0.2751,0.27316,0.29324,0.32634,0.28651,0.33626,0.33508,0.34132,0.36744,0.38998,0.40335,0.39543,0.37259,0.32548,0.30683,0.27211,0.26323,0.2619,0.26241,0.26453,0.26606,0.26517,0.26605,0.2693,0.27269,0.27598,0.27865,0.28355,0.29179,0.29759,0.31638,0.3365,0.35813,0.39016,0.40397,0.42256,0.42636,0.42376,0.43726,0.47321,0.50487,0.5342,0.53473,0.5336,0.5285,0.51423,0.48381,0.44831,0.41866,0.3911,0.36301,0.33658,0.31499,0.29628,0.28142,0.27387,0.26471,0.25693,0.24627,0.23228,0.21934,0.20892,0.20192,0.21903,0.31917,0.33819,0.37824,0.45978,0.52418,0.55951,0.5709,0.59045,0.63716,0.70081,0.73337,0.74964,0.74756,0.74653,0.74883,0.77969,0.85589,0.87234,0.85632,0.83889,0.82093,0.80393,0.78819,0.7747,0.77423,0.77832,0.78213,0.7817,0.77352,0.76368,0.75244,0.73554,0.70042,0.66612,0.6334,0.60352,0.56756,0.5403,0.5036,0.47169,0.44307,0.42474,0.42239,0.42895,0.43285,0.44008,0.44795,0.44989,0.4514,0.448,0.43787,0.43736,0.47292,0.551,0.6578,0.78197,0.88048,0.93574,0.96176,0.96529,0.96642,0.96571,0.96948,0.97994,0.99057,0.99133,0.9811,0.9687,0.93724,0.89425,0.87109,0.86382,0.85487,0.82559,0.75922,0.71063,0.68232,0.65693,0.63924,0.64601,0.67861,0.68165,0.63737,0.59702,0.57383,0.56687,0.56236,0.5627,0.57046,0.5601,0.53689,0.52018,0.50533,0.49426,0.50088,0.5191,0.53339,0.51701,0.46329,0.42449,0.3835,0.33608,0.30696,0.34249,0.36944,0.42823,0.46151,0.47765,0.52895,0.58733,0.61166,0.63475,0.63099,0.67007,0.7258,0.79756,0.88786,0.93196,0.97802,0.99825,1.0214,1.0271,1.0324,1.0334,1.0338,1.0311,1.0243,1.0166,1.0094,1.005,0.9972,0.99087,0.97911,0.95926,0.92697,0.91211,0.90651,0.90005,0.89619,0.89266,0.88009,0.86876,0.85101,0.84303,0.84401,0.86393,0.88062,0.89024,0.88291,0.8688,0.86606,0.89499,0.90696,0.88843,0.87154,0.8686,0.86378,0.86742,0.87353,0.88665,0.89984,0.89624,0.86703,0.80318,0.74785,0.70734,0.6759,0.63792,0.60394,0.58471,0.56957,0.5476,0.50639,0.45804,0.44045,0.43826,0.44447,0.45253,0.45139,0.44929,0.44093,0.43552,0.43324,0.47393,0.4825,0.47571,0.4826,0.48106,0.48598,0.49069,0.50027,0.53038,0.52037,0.51352,0.51141,0.50569,0.47154,0.43329,0.40719,0.38058,0.52433,0.4692,0.49948,0.52906,0.57832,0.63392,0.69957,0.76284,0.83598,0.8618,0.86996,0.85447,0.83549,0.8159,0.8041,0.80979,0.79487,0.75584,0.71317,0.70809,0.69366,0.68966,0.68059,0.70052,0.73338,0.76688,0.77373,0.77276,0.78784,0.81865,0.83574,0.83289,0.87178,0.90649,0.91403,0.91694,0.92846,0.93741,0.93506,0.94699,0.96365,0.97099,0.97201,0.97219,0.97276,0.97418,0.97384,0.97946,0.98644,0.98296,0.98346,0.98274,0.97714,0.97485,0.98623,1.0086,0.99565,0.96461,0.94385,0.90488,0.82193,0.72893,0.67177,0.61529,0.5689,0.50975,0.47083,0.48278,0.50404,0.51393,0.51667,0.54251,0.58064,0.6,0.58826,0.59845,0.61671,0.59993,0.55743,0.48848,0.49707,0.47658,0.43838,0.4123,0.3906,0.38433,0.38651,0.4303,0.48024,0.52447,0.57242,0.62575,0.65342,0.66399,0.66753,0.68925,0.707,0.71003,0.69831,0.66879,0.63699,0.61717,0.60763,0.615,0.64278,0.64835,0.63129,0.60085,0.56819,0.53355,0.50861,0.48793,0.47406,0.46993,0.46449,0.45708,0.44777,0.43195,0.41554,0.42077,0.43411,0.44974,0.48301,0.54154,0.59396,0.62691,0.64059,0.708,0.76482,0.77965,0.77657,0.77395,0.76408,0.74339,0.71207,0.69089,0.6821,0.66382,0.62995,0.6112,0.60841,0.60913,0.60588,0.59662,0.57812,0.56863,0.56143,0.55174,0.53428,0.50803,0.49664,0.49545,0.50228,0.51081,0.527,0.54496,0.56462,0.58301,0.6019,0.64844,0.7209,0.77571,0.79991,0.81676,0.82886,0.83062,0.83235,0.88603,0.9273,0.93552,0.92879,0.92536,0.91399,0.89883,0.89778,0.90482,0.88428,0.85129,0.83781,0.85298,0.86688,0.86712,0.86689,0.88959,0.90438,0.90549,0.87504,0.82816,0.75428,0.686,0.6273,0.57747,0.53835,0.49411,0.44562,0.40797,0.385,0.37376,0.3738,0.39928,0.45502,0.5024,0.52826,0.56191,0.60495,0.65705,0.71564,0.82152,0.88894,0.90902,0.90144,0.89577,0.90364,0.91676,0.92894,0.96288,0.98563,0.9949,1.0014,1.0029,1.0015,0.99848,0.99884,1.0044,1.0134,1.0121,1.0027,0.99186,0.98593,0.98032,0.9713,0.97003,0.97296,0.9702,0.9639,0.94964,0.93268,0.91289,0.88769,0.89072,0.89814,0.86182,0.77128,0.72659,0.71051,0.70769,0.72347,0.7624,0.78102,0.78403,0.7508,0.70206,0.64854,0.58253,0.53339,0.5209,0.57257,0.60884,0.61922,0.62046,0.61024,0.60987,0.62144,0.67883,0.74863,0.78571,0.80096,0.81738,0.81777,0.78351,0.72503,0.67323,0.62891,0.57753,0.5159,0.47939,0.48302,0.49412,0.48803,0.53681,0.59577,0.62123,0.66889,0.72019,0.72824,0.73324,0.75807,0.80583,0.83581,0.82306,0.80009,0.75495,0.68441,0.60776,0.54946,0.54725,0.58925,0.62344,0.63625,0.62017,0.58008,0.54207,0.51668,0.5372,0.66054,0.75616,0.79565,0.86524,0.92497,0.95264,0.95945,0.96736,0.98628,1.0044,1.0132,1.0303,1.0299,1.0305,1.0318,1.0349,1.0396,1.0407,1.0415,1.0434,1.0411,1.0401,1.0346,1.0273,1.0178,1.0023,0.96932,0.90863,0.82448,0.74934,0.6882,0.62841,0.58369,0.52304,0.47385,0.45172,0.4581,0.46988,0.48157,0.4965,0.51536,0.52878,0.53682,0.54666,0.55774,0.57055,0.57988,0.57813,0.57161,0.57373,0.58201,0.58296,0.5762,0.56221,0.54173,0.52227,0.52756,0.56452,0.60355,0.62559,0.63363,0.62889,0.61617,0.60083,0.58262,0.56157,0.53518,0.50775,0.4873,0.47356,0.45989,0.45495,0.4557,0.468,0.48229,0.51508,0.58115,0.69407,0.80667,0.90862,0.95215,0.96885,0.9688,0.97954,0.99007,0.99728,1.0014,1.0153,1.017,1.017,1.0175,1.0192,1.0203,1.0221,1.0185,1.0219,1.0296,1.0297,1.0243,1.0217,1.0207,1.0136,1.0161,1.0255,1.0274,1.0202,0.99954,0.98441,0.95311,0.9478,0.97339,1.0032,1.0203,1.013,1.0072,1.0112,1.016,1.0135,0.99171,0.971,0.93566,0.87941,0.8002,0.76025,0.73152,0.71812,0.70183,0.68787,0.67369,0.61888,0.53829,0.47381,0.44382,0.42806,0.4359,0.46601,0.49663,0.49044,0.47147,0.4484,0.43064,0.43041,0.41398,0.40493,0.41721,0.42651 diff --git a/examples/data/loads/loads_data_dict.json b/examples/data/loads/loads_data_dict.json index 3351ddbb5..9054afe7d 100644 --- a/examples/data/loads/loads_data_dict.json +++ b/examples/data/loads/loads_data_dict.json @@ -763,24 +763,24 @@ "yawoffset": 0.36065239549512096 }, { - "ActivePower": NaN, - "BL1_EdgeMom": NaN, - "BL1_FlapMom": NaN, - "BL3_EdgeMom": NaN, - "BL3_FlapMom": NaN, - "LSSDW_My": NaN, - "LSSDW_Mz": NaN, - "LSSDW_Tq": NaN, - "TB_ForeAft": NaN, - "TB_SideSide": NaN, - "TTTq": NaN, - "TT_ForeAft": NaN, - "TT_SideSide": NaN, - "WD_ModActive": NaN, - "WD_Nacelle": NaN, - "WD_NacelleMod": NaN, - "uWind_80m": NaN, - "yawoffset": NaN + "ActivePower": 0.0, + "BL1_EdgeMom": 0.0, + "BL1_FlapMom": 0.0, + "BL3_EdgeMom": 0.0, + "BL3_FlapMom": 0.0, + "LSSDW_My": 0.0, + "LSSDW_Mz": 0.0, + "LSSDW_Tq": 0.0, + "TB_ForeAft": 0.0, + "TB_SideSide": 0.0, + "TTTq": 0.0, + "TT_ForeAft": 0.0, + "TT_SideSide": 0.0, + "WD_ModActive": 0.0, + "WD_Nacelle": 0.0, + "WD_NacelleMod": 0.0, + "uWind_80m": 0.0, + "yawoffset": 0.0 }, { "ActivePower": NaN, @@ -823,24 +823,24 @@ "yawoffset": NaN }, { - "ActivePower": NaN, - "BL1_EdgeMom": NaN, - "BL1_FlapMom": NaN, - "BL3_EdgeMom": NaN, - "BL3_FlapMom": NaN, - "LSSDW_My": NaN, - "LSSDW_Mz": NaN, - "LSSDW_Tq": NaN, - "TB_ForeAft": NaN, - "TB_SideSide": NaN, - "TTTq": NaN, - "TT_ForeAft": NaN, - "TT_SideSide": NaN, - "WD_ModActive": NaN, - "WD_Nacelle": NaN, - "WD_NacelleMod": NaN, - "uWind_80m": NaN, - "yawoffset": NaN + "ActivePower": 0.0, + "BL1_EdgeMom": 0.0, + "BL1_FlapMom": 0.0, + "BL3_EdgeMom": 0.0, + "BL3_FlapMom": 0.0, + "LSSDW_My": 0.0, + "LSSDW_Mz": 0.0, + "LSSDW_Tq": 0.0, + "TB_ForeAft": 0.0, + "TB_SideSide": 0.0, + "TTTq": 0.0, + "TT_ForeAft": 0.0, + "TT_SideSide": 0.0, + "WD_ModActive": 0.0, + "WD_Nacelle": 0.0, + "WD_NacelleMod": 0.0, + "uWind_80m": 0.0, + "yawoffset": 0.0 }, { "ActivePower": NaN, @@ -863,24 +863,24 @@ "yawoffset": NaN }, { - "ActivePower": NaN, - "BL1_EdgeMom": NaN, - "BL1_FlapMom": NaN, - "BL3_EdgeMom": NaN, - "BL3_FlapMom": NaN, - "LSSDW_My": NaN, - "LSSDW_Mz": NaN, - "LSSDW_Tq": NaN, - "TB_ForeAft": NaN, - "TB_SideSide": NaN, - "TTTq": NaN, - "TT_ForeAft": NaN, - "TT_SideSide": NaN, - "WD_ModActive": NaN, - "WD_Nacelle": NaN, - "WD_NacelleMod": NaN, - "uWind_80m": NaN, - "yawoffset": NaN + "ActivePower": 0.0, + "BL1_EdgeMom": 0.0, + "BL1_FlapMom": 0.0, + "BL3_EdgeMom": 0.0, + "BL3_FlapMom": 0.0, + "LSSDW_My": 0.0, + "LSSDW_Mz": 0.0, + "LSSDW_Tq": 0.0, + "TB_ForeAft": 0.0, + "TB_SideSide": 0.0, + "TTTq": 0.0, + "TT_ForeAft": 0.0, + "TT_SideSide": 0.0, + "WD_ModActive": 0.0, + "WD_Nacelle": 0.0, + "WD_NacelleMod": 0.0, + "uWind_80m": 0.0, + "yawoffset": 0.0 } ], "bin_means": [ @@ -1647,24 +1647,24 @@ "yawoffset": 0.32465542650598184 }, { - "ActivePower": NaN, - "BL1_EdgeMom": NaN, - "BL1_FlapMom": NaN, - "BL3_EdgeMom": NaN, - "BL3_FlapMom": NaN, - "LSSDW_My": NaN, - "LSSDW_Mz": NaN, - "LSSDW_Tq": NaN, - "TB_ForeAft": NaN, - "TB_SideSide": NaN, - "TTTq": NaN, - "TT_ForeAft": NaN, - "TT_SideSide": NaN, - "WD_ModActive": NaN, - "WD_Nacelle": NaN, - "WD_NacelleMod": NaN, - "uWind_80m": NaN, - "yawoffset": NaN + "ActivePower": 0.0, + "BL1_EdgeMom": 0.0, + "BL1_FlapMom": 0.0, + "BL3_EdgeMom": 0.0, + "BL3_FlapMom": 0.0, + "LSSDW_My": 0.0, + "LSSDW_Mz": 0.0, + "LSSDW_Tq": 0.0, + "TB_ForeAft": 0.0, + "TB_SideSide": 0.0, + "TTTq": 0.0, + "TT_ForeAft": 0.0, + "TT_SideSide": 0.0, + "WD_ModActive": 0.0, + "WD_Nacelle": 0.0, + "WD_NacelleMod": 0.0, + "uWind_80m": 0.0, + "yawoffset": 0.0 }, { "ActivePower": NaN, @@ -1707,24 +1707,24 @@ "yawoffset": NaN }, { - "ActivePower": NaN, - "BL1_EdgeMom": NaN, - "BL1_FlapMom": NaN, - "BL3_EdgeMom": NaN, - "BL3_FlapMom": NaN, - "LSSDW_My": NaN, - "LSSDW_Mz": NaN, - "LSSDW_Tq": NaN, - "TB_ForeAft": NaN, - "TB_SideSide": NaN, - "TTTq": NaN, - "TT_ForeAft": NaN, - "TT_SideSide": NaN, - "WD_ModActive": NaN, - "WD_Nacelle": NaN, - "WD_NacelleMod": NaN, - "uWind_80m": NaN, - "yawoffset": NaN + "ActivePower": 0.0, + "BL1_EdgeMom": 0.0, + "BL1_FlapMom": 0.0, + "BL3_EdgeMom": 0.0, + "BL3_FlapMom": 0.0, + "LSSDW_My": 0.0, + "LSSDW_Mz": 0.0, + "LSSDW_Tq": 0.0, + "TB_ForeAft": 0.0, + "TB_SideSide": 0.0, + "TTTq": 0.0, + "TT_ForeAft": 0.0, + "TT_SideSide": 0.0, + "WD_ModActive": 0.0, + "WD_Nacelle": 0.0, + "WD_NacelleMod": 0.0, + "uWind_80m": 0.0, + "yawoffset": 0.0 }, { "ActivePower": NaN, @@ -1747,24 +1747,24 @@ "yawoffset": NaN }, { - "ActivePower": NaN, - "BL1_EdgeMom": NaN, - "BL1_FlapMom": NaN, - "BL3_EdgeMom": NaN, - "BL3_FlapMom": NaN, - "LSSDW_My": NaN, - "LSSDW_Mz": NaN, - "LSSDW_Tq": NaN, - "TB_ForeAft": NaN, - "TB_SideSide": NaN, - "TTTq": NaN, - "TT_ForeAft": NaN, - "TT_SideSide": NaN, - "WD_ModActive": NaN, - "WD_Nacelle": NaN, - "WD_NacelleMod": NaN, - "uWind_80m": NaN, - "yawoffset": NaN + "ActivePower": 0.0, + "BL1_EdgeMom": 0.0, + "BL1_FlapMom": 0.0, + "BL3_EdgeMom": 0.0, + "BL3_FlapMom": 0.0, + "LSSDW_My": 0.0, + "LSSDW_Mz": 0.0, + "LSSDW_Tq": 0.0, + "TB_ForeAft": 0.0, + "TB_SideSide": 0.0, + "TTTq": 0.0, + "TT_ForeAft": 0.0, + "TT_SideSide": 0.0, + "WD_ModActive": 0.0, + "WD_Nacelle": 0.0, + "WD_NacelleMod": 0.0, + "uWind_80m": 0.0, + "yawoffset": 0.0 } ], "bin_mins": [ @@ -2531,24 +2531,24 @@ "yawoffset": 11.605683455992253 }, { - "ActivePower": NaN, - "BL1_EdgeMom": NaN, - "BL1_FlapMom": NaN, - "BL3_EdgeMom": NaN, - "BL3_FlapMom": NaN, - "LSSDW_My": NaN, - "LSSDW_Mz": NaN, - "LSSDW_Tq": NaN, - "TB_ForeAft": NaN, - "TB_SideSide": NaN, - "TTTq": NaN, - "TT_ForeAft": NaN, - "TT_SideSide": NaN, - "WD_ModActive": NaN, - "WD_Nacelle": NaN, - "WD_NacelleMod": NaN, - "uWind_80m": NaN, - "yawoffset": NaN + "ActivePower": 0.0, + "BL1_EdgeMom": 0.0, + "BL1_FlapMom": 0.0, + "BL3_EdgeMom": 0.0, + "BL3_FlapMom": 0.0, + "LSSDW_My": 0.0, + "LSSDW_Mz": 0.0, + "LSSDW_Tq": 0.0, + "TB_ForeAft": 0.0, + "TB_SideSide": 0.0, + "TTTq": 0.0, + "TT_ForeAft": 0.0, + "TT_SideSide": 0.0, + "WD_ModActive": 0.0, + "WD_Nacelle": 0.0, + "WD_NacelleMod": 0.0, + "uWind_80m": 0.0, + "yawoffset": 0.0 }, { "ActivePower": NaN, @@ -2591,24 +2591,24 @@ "yawoffset": NaN }, { - "ActivePower": NaN, - "BL1_EdgeMom": NaN, - "BL1_FlapMom": NaN, - "BL3_EdgeMom": NaN, - "BL3_FlapMom": NaN, - "LSSDW_My": NaN, - "LSSDW_Mz": NaN, - "LSSDW_Tq": NaN, - "TB_ForeAft": NaN, - "TB_SideSide": NaN, - "TTTq": NaN, - "TT_ForeAft": NaN, - "TT_SideSide": NaN, - "WD_ModActive": NaN, - "WD_Nacelle": NaN, - "WD_NacelleMod": NaN, - "uWind_80m": NaN, - "yawoffset": NaN + "ActivePower": 0.0, + "BL1_EdgeMom": 0.0, + "BL1_FlapMom": 0.0, + "BL3_EdgeMom": 0.0, + "BL3_FlapMom": 0.0, + "LSSDW_My": 0.0, + "LSSDW_Mz": 0.0, + "LSSDW_Tq": 0.0, + "TB_ForeAft": 0.0, + "TB_SideSide": 0.0, + "TTTq": 0.0, + "TT_ForeAft": 0.0, + "TT_SideSide": 0.0, + "WD_ModActive": 0.0, + "WD_Nacelle": 0.0, + "WD_NacelleMod": 0.0, + "uWind_80m": 0.0, + "yawoffset": 0.0 }, { "ActivePower": NaN, @@ -2631,24 +2631,24 @@ "yawoffset": NaN }, { - "ActivePower": NaN, - "BL1_EdgeMom": NaN, - "BL1_FlapMom": NaN, - "BL3_EdgeMom": NaN, - "BL3_FlapMom": NaN, - "LSSDW_My": NaN, - "LSSDW_Mz": NaN, - "LSSDW_Tq": NaN, - "TB_ForeAft": NaN, - "TB_SideSide": NaN, - "TTTq": NaN, - "TT_ForeAft": NaN, - "TT_SideSide": NaN, - "WD_ModActive": NaN, - "WD_Nacelle": NaN, - "WD_NacelleMod": NaN, - "uWind_80m": NaN, - "yawoffset": NaN + "ActivePower": 0.0, + "BL1_EdgeMom": 0.0, + "BL1_FlapMom": 0.0, + "BL3_EdgeMom": 0.0, + "BL3_FlapMom": 0.0, + "LSSDW_My": 0.0, + "LSSDW_Mz": 0.0, + "LSSDW_Tq": 0.0, + "TB_ForeAft": 0.0, + "TB_SideSide": 0.0, + "TTTq": 0.0, + "TT_ForeAft": 0.0, + "TT_SideSide": 0.0, + "WD_ModActive": 0.0, + "WD_Nacelle": 0.0, + "WD_NacelleMod": 0.0, + "uWind_80m": 0.0, + "yawoffset": 0.0 } ], "loads": [ diff --git a/examples/directional_waves.ipynb b/examples/directional_waves.ipynb index 73ed2c6ff..4ee1bc203 100644 --- a/examples/directional_waves.ipynb +++ b/examples/directional_waves.ipynb @@ -182,8 +182,8 @@ } ], "source": [ - "buoy = '42012'\n", - "wave.io.ndbc.available_data('swdir', buoy)" + "buoy = \"42012\"\n", + "wave.io.ndbc.available_data(\"swdir\", buoy)" ] }, { @@ -1084,7 +1084,7 @@ } ], "source": [ - "date = np.datetime64('2021-02-21T12:40:00')\n", + "date = np.datetime64(\"2021-02-21T12:40:00\")\n", "data = data_all.sel(date=date)\n", "directions = np.arange(0, 360, 2.0)\n", "spectrum = wave.io.ndbc.create_directional_spectrum(data, directions)\n", @@ -1165,7 +1165,7 @@ } ], "source": [ - "wave.graphics.plot_directional_spectrum(spectrum, min=0.3)" + "wave.graphics.plot_directional_spectrum(spectrum, color_level_min=0.3)" ] }, { @@ -1195,7 +1195,9 @@ } ], "source": [ - "wave.graphics.plot_directional_spectrum(spectrum, min=0.3, fill=False, nlevels=4)" + "wave.graphics.plot_directional_spectrum(\n", + " spectrum, color_level_min=0.3, fill=False, nlevels=4\n", + ")" ] }, { @@ -1233,7 +1235,7 @@ } ], "source": [ - "data['swden'].plot()" + "data[\"swden\"].plot()" ] }, { @@ -1303,9 +1305,9 @@ } ], "source": [ - "rho = 1025 # kg/m^3\n", - "g = 9.81 # m/s^2\n", - "wave.graphics.plot_directional_spectrum(spectrum*rho*g, name=\"Energy\", units=\"J\")" + "rho = 1025 # kg/m^3\n", + "g = 9.81 # m/s^2\n", + "wave.graphics.plot_directional_spectrum(spectrum * rho * g, name=\"Energy\", units=\"J\")" ] }, { @@ -1318,7 +1320,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3.9.13 ('.venv': venv)", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -1332,9 +1334,8 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.13" + "version": "3.9.17" }, - "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "15fd306e44580d8cf431083454c399b84f9cc4f7f2c761501397671836835f49" diff --git a/examples/environmental_contours_example.ipynb b/examples/environmental_contours_example.ipynb index 82a9ef6cd..5109e2164 100644 --- a/examples/environmental_contours_example.ipynb +++ b/examples/environmental_contours_example.ipynb @@ -132,9 +132,9 @@ ], "source": [ "# Specify the parameter as spectral wave density and the buoy number to be 46022\n", - "parameter = 'swden'\n", - "buoy_number = '46022' \n", - "ndbc_available_data= ndbc.available_data(parameter, buoy_number)\n", + "parameter = \"swden\"\n", + "buoy_number = \"46022\"\n", + "ndbc_available_data = ndbc.available_data(parameter, buoy_number)\n", "ndbc_available_data.head()" ] }, @@ -251,7 +251,7 @@ "outputs": [], "source": [ "# Get dictionary of parameter data by year\n", - "filenames= years_of_interest['filename']\n", + "filenames = years_of_interest[\"filename\"]\n", "ndbc_requested_data = ndbc.request_data(parameter, filenames)" ] }, @@ -497,15 +497,15 @@ } ], "source": [ - "# Lastly we will convert a DateTime Index \n", - "ndbc_data={}\n", + "# Lastly we will convert a DateTime Index\n", + "ndbc_data = {}\n", "# Create a Datetime Index and remove NOAA date columns for each year\n", "for year in ndbc_requested_data:\n", " year_data = ndbc_requested_data[year]\n", " ndbc_data[year] = ndbc.to_datetime_index(parameter, year_data)\n", "\n", "# Display DataFrame of 46022 data from 1996\n", - "ndbc_data['1996'].head()" + "ndbc_data[\"1996\"].head()" ] }, { @@ -638,8 +638,8 @@ ], "source": [ "# Intialize empty lists to store the results from each year\n", - "Hm0_list=[]\n", - "Te_list=[]\n", + "Hm0_list = []\n", + "Te_list = []\n", "\n", "# Iterate over each year and save the result in the initalized dictionary\n", "for year in ndbc_data:\n", @@ -648,9 +648,9 @@ " Te_list.append(resource.energy_period(year_data.T))\n", "\n", "# Concatenate list of Series into a single DataFrame\n", - "Te = pd.concat(Te_list ,axis=0)\n", - "Hm0 = pd.concat(Hm0_list ,axis=0)\n", - "Hm0_Te = pd.concat([Hm0,Te],axis=1)\n", + "Te = pd.concat(Te_list, axis=0)\n", + "Hm0 = pd.concat(Hm0_list, axis=0)\n", + "Hm0_Te = pd.concat([Hm0, Te], axis=1)\n", "\n", "# Drop any NaNs created from the calculation of Hm0 or Te\n", "Hm0_Te.dropna(inplace=True)\n", @@ -680,22 +680,22 @@ "outputs": [], "source": [ "# Return period (years) of interest\n", - "period = 100 \n", + "period = 100\n", "\n", "# Remove Hm0 Outliers\n", "Hm0_Te_clean = Hm0_Te[Hm0_Te.Hm0 < 20]\n", "\n", "# Get only the values from the DataFrame\n", - "Hm0 = Hm0_Te_clean.Hm0.values \n", - "Te = Hm0_Te_clean.Te.values \n", + "Hm0 = Hm0_Te_clean.Hm0.values\n", + "Te = Hm0_Te_clean.Te.values\n", "\n", - "# Delta time of sea-states \n", - "dt = (Hm0_Te_clean.index[2]-Hm0_Te_clean.index[1]).seconds \n", + "# Delta time of sea-states\n", + "dt = (Hm0_Te_clean.index[2] - Hm0_Te_clean.index[1]).seconds\n", "\n", "# Get the contour values\n", - "copula = contours.environmental_contours(Hm0, Te, dt, period, 'PCA', return_PCA=True)\n", - "Hm0_contour=copula['PCA_x1']\n", - "Te_contour=copula['PCA_x2']" + "copula = contours.environmental_contours(Hm0, Te, dt, period, \"PCA\", return_PCA=True)\n", + "Hm0_contour = copula[\"PCA_x1\"]\n", + "Te_contour = copula[\"PCA_x2\"]" ] }, { @@ -725,15 +725,19 @@ } ], "source": [ - "fig,ax=plt.subplots(figsize=(8,4))\n", - "#%matplotlib inline\n", - "ax=graphics.plot_environmental_contour(Te, Hm0, \n", - " Te_contour, Hm0_contour, \n", - " data_label='NDBC 46022', \n", - " contour_label='100 Year Contour',\n", - " x_label = 'Energy Period, $Te$ [s]',\n", - " y_label = 'Sig. wave height, $Hm0$ [m]', \n", - " ax=ax)" + "fig, ax = plt.subplots(figsize=(8, 4))\n", + "# %matplotlib inline\n", + "ax = graphics.plot_environmental_contour(\n", + " Te,\n", + " Hm0,\n", + " Te_contour,\n", + " Hm0_contour,\n", + " data_label=\"NDBC 46022\",\n", + " contour_label=\"100 Year Contour\",\n", + " x_label=\"Energy Period, $Te$ [s]\",\n", + " y_label=\"Sig. wave height, $Hm0$ [m]\",\n", + " ax=ax,\n", + ")" ] }, { @@ -764,24 +768,30 @@ } ], "source": [ - "copulas = contours.environmental_contours(Hm0, Te, dt, period, method=['gaussian', 'nonparametric_gaussian'])\n", + "copulas = contours.environmental_contours(\n", + " Hm0, Te, dt, period, method=[\"gaussian\", \"nonparametric_gaussian\"]\n", + ")\n", "\n", - "fig, ax = plt.subplots(figsize=(9,4))\n", + "fig, ax = plt.subplots(figsize=(9, 4))\n", "\n", - "Tes=[Te_contour]\n", - "Hm0s=[Hm0_contour]\n", - "methods=['gaussian', 'nonparametric_gaussian']\n", - "for method in methods: \n", - " Hm0s.append(copulas[f'{method}_x1'])\n", - " Tes.append(copulas[f'{method}_x2'])\n", + "Tes = [Te_contour]\n", + "Hm0s = [Hm0_contour]\n", + "methods = [\"gaussian\", \"nonparametric_gaussian\"]\n", + "for method in methods:\n", + " Hm0s.append(copulas[f\"{method}_x1\"])\n", + " Tes.append(copulas[f\"{method}_x2\"])\n", "\n", - "ax = graphics.plot_environmental_contour(Te, Hm0, \n", - " Tes, Hm0s,\n", - " data_label='NDBC 46050', \n", - " contour_label=['PCA','Gaussian', 'Nonparametric Gaussian'],\n", - " x_label = 'Energy Period, $Te$ [s]',\n", - " y_label = 'Sig. wave height, $Hm0$ [m]', \n", - " ax=ax)" + "ax = graphics.plot_environmental_contour(\n", + " Te,\n", + " Hm0,\n", + " Tes,\n", + " Hm0s,\n", + " data_label=\"NDBC 46050\",\n", + " contour_label=[\"PCA\", \"Gaussian\", \"Nonparametric Gaussian\"],\n", + " x_label=\"Energy Period, $Te$ [s]\",\n", + " y_label=\"Sig. wave height, $Hm0$ [m]\",\n", + " ax=ax,\n", + ")" ] }, { @@ -914,19 +924,19 @@ ], "source": [ "# Intialize empty lists to store the results from each year\n", - "Hm0_list=[]\n", - "Tp_list=[]\n", + "Hm0_list = []\n", + "Tp_list = []\n", "\n", "# Iterate over each year and save the result in the initalized dictionary\n", "for year in ndbc_data:\n", - " year_data = ndbc_data[year] \n", + " year_data = ndbc_data[year]\n", " Hm0_list.append(resource.significant_wave_height(year_data.T))\n", " Tp_list.append(resource.peak_period(year_data.T))\n", "\n", "# Concatenate list of Series into a single DataFrame\n", - "Tp = pd.concat(Tp_list ,axis=0)\n", - "Hm0 = pd.concat(Hm0_list ,axis=0)\n", - "Hm0_Tp = pd.concat([Hm0,Tp],axis=1)\n", + "Tp = pd.concat(Tp_list, axis=0)\n", + "Hm0 = pd.concat(Hm0_list, axis=0)\n", + "Hm0_Tp = pd.concat([Hm0, Tp], axis=1)\n", "\n", "# Drop any NaNs created from the calculation of Hm0 or Te\n", "Hm0_Tp.dropna(inplace=True)\n", @@ -938,8 +948,8 @@ "Hm0_Tp_clean = Hm0_Tp[Hm0_Tp.Tp < 30]\n", "\n", "# Get only the values from the DataFrame\n", - "Hm0 = Hm0_Tp_clean.Hm0.values \n", - "Tp = Hm0_Tp_clean.Tp.values \n", + "Hm0 = Hm0_Tp_clean.Hm0.values\n", + "Tp = Hm0_Tp_clean.Tp.values\n", "\n", "\n", "Hm0_Tp" @@ -1054,8 +1064,8 @@ "gmm = GaussianMixture(n_components=8).fit(X)\n", "\n", "# Save centers and weights\n", - "results = pd.DataFrame(gmm.means_, columns=['Tp','Hm0'])\n", - "results['weights'] = gmm.weights_\n", + "results = pd.DataFrame(gmm.means_, columns=[\"Tp\", \"Hm0\"])\n", + "results[\"weights\"] = gmm.weights_\n", "results" ] }, @@ -1098,9 +1108,9 @@ "# Plot the Sections of Data\n", "labels = gmm.predict(X)\n", "plt.scatter(Tp, Hm0, c=labels, s=40)\n", - "plt.plot(results.Tp, results.Hm0, 'm+')\n", - "plt.xlabel('Peak Period, $Tp$ [s]')\n", - "plt.ylabel('Sig. wave height, $Hm0$ [m]')" + "plt.plot(results.Tp, results.Hm0, \"m+\")\n", + "plt.xlabel(\"Peak Period, $Tp$ [s]\")\n", + "plt.ylabel(\"Sig. wave height, $Hm0$ [m]\")" ] } ], diff --git a/examples/extreme_response_MLER_example.ipynb b/examples/extreme_response_MLER_example.ipynb index d4737efe8..36c2bf11e 100644 --- a/examples/extreme_response_MLER_example.ipynb +++ b/examples/extreme_response_MLER_example.ipynb @@ -62,9 +62,9 @@ } ], "source": [ - "wave_freq = np.linspace( 0.,1,500)\n", - "mfile = pd.read_csv('data/loads/mler.csv')\n", - "RAO = mfile['RAO'].astype(complex)\n", + "wave_freq = np.linspace(0.0, 1, 500)\n", + "mfile = pd.read_csv(\"data/loads/mler.csv\")\n", + "RAO = mfile[\"RAO\"].astype(complex)\n", "RAO[0:10]" ] }, @@ -114,10 +114,10 @@ } ], "source": [ - "Hs = 9.0 # significant wave height\n", - "Tp = 15.1 # time period of waves\n", - "pm = resource.pierson_moskowitz_spectrum(wave_freq,Tp,Hs)\n", - "pm.plot(xlabel='frequency [Hz]',ylabel='response [m^2/Hz]')" + "Hs = 9.0 # significant wave height\n", + "Tp = 15.1 # time period of waves\n", + "pm = resource.pierson_moskowitz_spectrum(wave_freq, Tp, Hs)\n", + "pm.plot(xlabel=\"frequency [Hz]\", ylabel=\"response [m^2/Hz]\")" ] }, { @@ -168,10 +168,14 @@ } ], "source": [ - "mler_data = extreme.mler_coefficients(RAO,pm,1)\n", + "mler_data = extreme.mler_coefficients(RAO, pm, 1)\n", "\n", - "mler_data.plot(y='WaveSpectrum', ylabel='Conditioned wave spectrum [m^2-s]', xlabel='Frequency [Hz]')\n", - "mler_data.plot(y='Phase', ylabel='[rad]', xlabel='Frequency [Hz]')" + "mler_data.plot(\n", + " y=\"WaveSpectrum\",\n", + " ylabel=\"Conditioned wave spectrum [m^2-s]\",\n", + " xlabel=\"Frequency [Hz]\",\n", + ")\n", + "mler_data.plot(y=\"Phase\", ylabel=\"[rad]\", xlabel=\"Frequency [Hz]\")" ] }, { @@ -202,14 +206,14 @@ "source": [ "# generate parameters dict\n", "params = (\n", - " ('startTime',-150.0),\n", - " ('endTime',150.0),\n", - " ('dT',1.0),\n", - " ('T0',0.0),\n", - " ('startX',-300.0),\n", - " ('endX',300.0),\n", - " ('dX',1.0),\n", - " ('X0',0.0)\n", + " (\"startTime\", -150.0),\n", + " (\"endTime\", 150.0),\n", + " (\"dT\", 1.0),\n", + " (\"T0\", 0.0),\n", + " (\"startX\", -300.0),\n", + " (\"endX\", 300.0),\n", + " (\"dX\", 1.0),\n", + " (\"X0\", 0.0),\n", ")\n", "parameters = dict(params)\n", "\n", @@ -217,11 +221,13 @@ "sim = extreme.mler_simulation(parameters=parameters)\n", "\n", "# generate wave number k\n", - "k = resource.wave_number(wave_freq,70)\n", + "k = resource.wave_number(wave_freq, 70)\n", "k = k.fillna(0)\n", "\n", - "peakHeightDesired = Hs/2 * 1.9\n", - "mler_norm = extreme.mler_wave_amp_normalize(peakHeightDesired, mler_data, sim, k.k.values)" + "peakHeightDesired = Hs / 2 * 1.9\n", + "mler_norm = extreme.mler_wave_amp_normalize(\n", + " peakHeightDesired, mler_data, sim, k.k.values\n", + ")" ] }, { @@ -260,8 +266,8 @@ } ], "source": [ - "mler_ts = extreme.mler_export_time_series(RAO.values,mler_norm,sim,k.k.values)\n", - "mler_ts.plot(xlabel='Time (s)',ylabel='[m] / [*]',xlim=[-100,100],grid=True)" + "mler_ts = extreme.mler_export_time_series(RAO.values, mler_norm, sim, k.k.values)\n", + "mler_ts.plot(xlabel=\"Time (s)\", ylabel=\"[m] / [*]\", xlim=[-100, 100], grid=True)" ] }, { diff --git a/examples/extreme_response_contour_example.ipynb b/examples/extreme_response_contour_example.ipynb index 9fe687e0d..a716aa102 100644 --- a/examples/extreme_response_contour_example.ipynb +++ b/examples/extreme_response_contour_example.ipynb @@ -49,13 +49,13 @@ "metadata": {}, "outputs": [], "source": [ - "parameter = 'swden'\n", - "buoy_number = '46022'\n", + "parameter = \"swden\"\n", + "buoy_number = \"46022\"\n", "ndbc_available_data = ndbc.available_data(parameter, buoy_number)\n", "\n", "years_of_interest = ndbc_available_data[ndbc_available_data.year < 2013]\n", "\n", - "filenames = years_of_interest['filename']\n", + "filenames = years_of_interest[\"filename\"]\n", "ndbc_requested_data = ndbc.request_data(parameter, filenames)\n", "\n", "ndbc_data = {}\n", @@ -87,7 +87,7 @@ "Hm0 = Hm0_Te_clean.Hm0.values\n", "Te = Hm0_Te_clean.Te.values\n", "\n", - "dt = (Hm0_Te_clean.index[2]-Hm0_Te_clean.index[1]).seconds" + "dt = (Hm0_Te_clean.index[2] - Hm0_Te_clean.index[1]).seconds" ] }, { @@ -109,11 +109,11 @@ "source": [ "# 100 year contour\n", "period = 100.0\n", - "copula = contours.environmental_contours(Hm0, Te, dt, period, 'PCA')\n", - "hs_contour = copula['PCA_x1']\n", - "te_contour = copula['PCA_x2']\n", + "copula = contours.environmental_contours(Hm0, Te, dt, period, \"PCA\")\n", + "hs_contour = copula[\"PCA_x1\"]\n", + "te_contour = copula[\"PCA_x2\"]\n", "\n", - "# 5 samples \n", + "# 5 samples\n", "te_samples = np.linspace(15, 22, 5)\n", "hs_samples = contours.samples_contour(te_samples, te_contour, hs_contour);" ] @@ -157,11 +157,17 @@ "# plot\n", "fig, ax = plt.subplots(figsize=(8, 4))\n", "ax = graphics.plot_environmental_contour(\n", - " Te, Hm0, te_contour, hs_contour,\n", - " data_label='bouy data', contour_label='100-year contour',\n", - " x_label='Energy Period, $Te$ [s]',\n", - " y_label='Sig. wave height, $Hm0$ [m]', ax=ax)\n", - "ax.plot(te_samples, hs_samples, 'ro', label='samples')\n", + " Te,\n", + " Hm0,\n", + " te_contour,\n", + " hs_contour,\n", + " data_label=\"bouy data\",\n", + " contour_label=\"100-year contour\",\n", + " x_label=\"Energy Period, $Te$ [s]\",\n", + " y_label=\"Sig. wave height, $Hm0$ [m]\",\n", + " ax=ax,\n", + ")\n", + "ax.plot(te_samples, hs_samples, \"ro\", label=\"samples\")\n", "plt.legend()" ] }, @@ -205,29 +211,29 @@ "source": [ "# create the short-term extreme distribution for each sample sea state\n", "t_st = 3.0 * 60.0 * 60.0\n", - "gamma = 3.3 \n", + "gamma = 3.3\n", "t_sim = 1.0 * 60.0 * 60.0\n", "\n", "ste_all = []\n", "i = 0\n", "n = len(hs_samples)\n", "for hs, te in zip(hs_samples, te_samples):\n", - " tp = te / (0.8255 + 0.03852*gamma - 0.005537*gamma**2 + 0.0003154*gamma**3)\n", + " tp = te / (0.8255 + 0.03852 * gamma - 0.005537 * gamma**2 + 0.0003154 * gamma**3)\n", " i += 1\n", " print(f\"Sea state {i}/{n}. (Hs, Te) = ({hs} m, {te} s). Tp = {tp} s\")\n", " # time & frequency arrays\n", - " df = 1.0/t_sim\n", - " T_min = tp/10.0 # s\n", - " f_max = 1.0/T_min\n", - " Nf = int(f_max/df) + 1\n", - " time = np.linspace(0, t_sim, 2*Nf+1)\n", + " df = 1.0 / t_sim\n", + " T_min = tp / 10.0 # s\n", + " f_max = 1.0 / T_min\n", + " Nf = int(f_max / df) + 1\n", + " time = np.linspace(0, t_sim, 2 * Nf + 1)\n", " f = np.linspace(0.0, f_max, Nf)\n", " # spectrum\n", " S = resource.jonswap_spectrum(f, tp, hs, gamma)\n", " # 1-hour elevation time-series\n", " data = resource.surface_elevation(S, time).values.squeeze()\n", " # 3-hour extreme distribution\n", - " ste = extreme.short_term_extreme(time, data, t_st, 'peaks_weibull_tail_fit')\n", + " ste = extreme.short_term_extreme(time, data, t_st, \"peaks_weibull_tail_fit\")\n", " ste_all.append(ste)" ] }, @@ -271,7 +277,7 @@ "\n", "hs_design = hs_samples[max_ind]\n", "te_design = te_samples[max_ind]\n", - "print(f\"Design sea state (Hs, Te): ({hs_design} m, {te_design} s)\")\n" + "print(f\"Design sea state (Hs, Te): ({hs_design} m, {te_design} s)\")" ] }, { diff --git a/examples/extreme_response_full_sea_state_example.ipynb b/examples/extreme_response_full_sea_state_example.ipynb index 258a3fcb2..28cf6c745 100644 --- a/examples/extreme_response_full_sea_state_example.ipynb +++ b/examples/extreme_response_full_sea_state_example.ipynb @@ -52,13 +52,13 @@ "metadata": {}, "outputs": [], "source": [ - "parameter = 'swden'\n", - "buoy_number = '46022'\n", + "parameter = \"swden\"\n", + "buoy_number = \"46022\"\n", "ndbc_available_data = ndbc.available_data(parameter, buoy_number)\n", "\n", "years_of_interest = ndbc_available_data[ndbc_available_data.year < 2013]\n", "\n", - "filenames = years_of_interest['filename']\n", + "filenames = years_of_interest[\"filename\"]\n", "ndbc_requested_data = ndbc.request_data(parameter, filenames)\n", "\n", "ndbc_data = {}\n", @@ -90,7 +90,7 @@ "Hm0 = Hm0_Te_clean.Hm0.values\n", "Te = Hm0_Te_clean.Te.values\n", "\n", - "dt = (Hm0_Te_clean.index[2]-Hm0_Te_clean.index[1]).seconds" + "dt = (Hm0_Te_clean.index[2] - Hm0_Te_clean.index[1]).seconds" ] }, { @@ -122,7 +122,8 @@ "\n", "# Create samples\n", "sample_hs, sample_te, sample_weights = contours.samples_full_seastate(\n", - " Hm0, Te, npoints, levels, dt)" + " Hm0, Te, npoints, levels, dt\n", + ")" ] }, { @@ -160,9 +161,10 @@ "\n", "for period in levels:\n", " copula = contours.environmental_contours(\n", - " Hm0, Te, dt, period, 'PCA', return_PCA=True)\n", - " Hm0_contours.append(copula['PCA_x1'])\n", - " Te_contours.append(copula['PCA_x2'])\n", + " Hm0, Te, dt, period, \"PCA\", return_PCA=True\n", + " )\n", + " Hm0_contours.append(copula[\"PCA_x1\"])\n", + " Te_contours.append(copula[\"PCA_x2\"])\n", "\n", "# plot\n", "fig, ax = plt.subplots(figsize=(8, 4))\n", @@ -170,10 +172,16 @@ "labels = [f\"{period}-year Contour\" for period in levels]\n", "\n", "ax = graphics.plot_environmental_contour(\n", - " sample_te, sample_hs, Te_contours, Hm0_contours,\n", - " data_label='Samples', contour_label=labels,\n", - " x_label='Energy Period, $Te$ [s]',\n", - " y_label='Sig. wave height, $Hm0$ [m]', ax=ax)\n" + " sample_te,\n", + " sample_hs,\n", + " Te_contours,\n", + " Hm0_contours,\n", + " data_label=\"Samples\",\n", + " contour_label=labels,\n", + " x_label=\"Energy Period, $Te$ [s]\",\n", + " y_label=\"Sig. wave height, $Hm0$ [m]\",\n", + " ax=ax,\n", + ")" ] }, { @@ -423,29 +431,29 @@ "source": [ "# create the short-term extreme distribution for each sample sea state\n", "t_st = 3.0 * 60.0 * 60.0\n", - "gamma = 3.3 \n", + "gamma = 3.3\n", "t_sim = 1.0 * 60.0 * 60.0\n", "\n", "ste_all = []\n", "i = 0\n", "n = len(sample_hs)\n", "for hs, te in zip(sample_hs, sample_te):\n", - " tp = te / (0.8255 + 0.03852*gamma - 0.005537*gamma**2 + 0.0003154*gamma**3)\n", + " tp = te / (0.8255 + 0.03852 * gamma - 0.005537 * gamma**2 + 0.0003154 * gamma**3)\n", " i += 1\n", " print(f\"Sea state {i}/{n}. (Hs, Te) = ({hs} m, {te} s). Tp = {tp} s\")\n", " # time & frequency arrays\n", - " df = 1.0/t_sim\n", - " T_min = tp/10.0 # s\n", - " f_max = 1.0/T_min\n", - " Nf = int(f_max/df) + 1\n", - " time = np.linspace(0, t_sim, 2*Nf+1)\n", + " df = 1.0 / t_sim\n", + " T_min = tp / 10.0 # s\n", + " f_max = 1.0 / T_min\n", + " Nf = int(f_max / df) + 1\n", + " time = np.linspace(0, t_sim, 2 * Nf + 1)\n", " f = np.linspace(0.0, f_max, Nf)\n", " # spectrum\n", " S = resource.jonswap_spectrum(f, tp, hs, gamma)\n", " # 1-hour elevation time-series\n", " data = resource.surface_elevation(S, time).values.squeeze()\n", " # 3-hour extreme distribution\n", - " ste = extreme.short_term_extreme(time, data, t_st, 'peaks_weibull_tail_fit')\n", + " ste = extreme.short_term_extreme(time, data, t_st, \"peaks_weibull_tail_fit\")\n", " ste_all.append(ste)" ] }, @@ -494,7 +502,7 @@ } ], "source": [ - "t_st_hr = t_st/(60.0*60.0)\n", + "t_st_hr = t_st / (60.0 * 60.0)\n", "t_return_yr = 100.0\n", "x_t = extreme.return_year_value(lte.ppf, t_return_yr, t_st_hr)\n", "\n", @@ -547,11 +555,11 @@ "# format plot\n", "plt.grid(True, which=\"major\", linestyle=\":\")\n", "ax.tick_params(axis=\"both\", which=\"major\", direction=\"in\")\n", - "ax.xaxis.set_ticks_position('both')\n", - "ax.yaxis.set_ticks_position('both') \n", + "ax.xaxis.set_ticks_position(\"both\")\n", + "ax.yaxis.set_ticks_position(\"both\")\n", "plt.minorticks_off()\n", "ax.set_xticks([0, 5, 10, 15, 20])\n", - "ax.set_yticks(1.0*10.0**(-1*np.arange(11)))\n", + "ax.set_yticks(1.0 * 10.0 ** (-1 * np.arange(11)))\n", "ax.set_xlabel(\"elevation [m]\")\n", "ax.set_ylabel(\"survival function (1-cdf)\")\n", "ax.set_xlim([0, x[-1]])\n", @@ -560,8 +568,8 @@ "\n", "# 100-year return level\n", "s_t = lte.sf(x_t)\n", - "ax.plot([0, x[-1]], [s_t, s_t], '--', color=\"0.5\", linewidth=1)\n", - "ax.plot([x_t, x_t], ylim, '--', color=\"0.5\", linewidth=1)\n" + "ax.plot([0, x[-1]], [s_t, s_t], \"--\", color=\"0.5\", linewidth=1)\n", + "ax.plot([x_t, x_t], ylim, \"--\", color=\"0.5\", linewidth=1)" ] } ], diff --git a/examples/loads_example.ipynb b/examples/loads_example.ipynb index 978b13e8f..50335034b 100644 --- a/examples/loads_example.ipynb +++ b/examples/loads_example.ipynb @@ -16,11 +16,11 @@ "metadata": {}, "outputs": [], "source": [ - "import pandas as pd \n", - "import numpy as np \n", + "import pandas as pd\n", + "import numpy as np\n", "from mhkit import utils\n", - "from mhkit import loads \n", - "import matplotlib.pyplot as plt " + "from mhkit import loads\n", + "import matplotlib.pyplot as plt" ] }, { @@ -238,7 +238,7 @@ } ], "source": [ - "loads_data_file = './data/loads/data_loads_example.csv'\n", + "loads_data_file = \"./data/loads/data_loads_example.csv\"\n", "\n", "# Import csv data file\n", "raw_loads_data = pd.read_csv(loads_data_file)\n", @@ -488,16 +488,16 @@ ], "source": [ "# Use the datetime conversion from the utils module\n", - "datetime = utils.excel_to_datetime(raw_loads_data['Timestamp'])\n", + "datetime = utils.excel_to_datetime(raw_loads_data[\"Timestamp\"])\n", "\n", "# Replace the 'Timestamp' column with our newly formatted datetime\n", - "raw_loads_data['Timestamp'] = datetime \n", + "raw_loads_data[\"Timestamp\"] = datetime\n", "\n", "# Set this as our index for our DataFrame\n", - "loads_data = raw_loads_data.set_index('Timestamp')\n", + "loads_data = raw_loads_data.set_index(\"Timestamp\")\n", "\n", "# Remove the 'time' column since it will not be used\n", - "loads_data.drop(columns='Time',inplace=True)\n", + "loads_data.drop(columns=\"Time\", inplace=True)\n", "loads_data.head()" ] }, @@ -532,12 +532,14 @@ ], "source": [ "# Calculate the damage equivalent load for blade 1 root momement and tower base moment\n", - "DEL_tower = loads.general.damage_equivalent_load(loads_data['TB_ForeAft'],4,\n", - " bin_num=100,data_length=600)\n", - "DEL_blade = loads.general.damage_equivalent_load(loads_data['BL1_FlapMom'],10,\n", - " bin_num=100,data_length=600)\n", - "print('DEL TB_ForeAft: '+ str(DEL_tower))\n", - "print('DEL BL1_FlapMom: '+ str(DEL_blade))" + "DEL_tower = loads.general.damage_equivalent_load(\n", + " loads_data[\"TB_ForeAft\"], 4, bin_num=100, data_length=600\n", + ")\n", + "DEL_blade = loads.general.damage_equivalent_load(\n", + " loads_data[\"BL1_FlapMom\"], 10, bin_num=100, data_length=600\n", + ")\n", + "print(\"DEL TB_ForeAft: \" + str(DEL_tower))\n", + "print(\"DEL BL1_FlapMom: \" + str(DEL_blade))" ] }, { @@ -647,7 +649,7 @@ ], "source": [ "# Calculate the means, maxs, mins, and stdevs for all data signals in the loads data file\n", - "means,maxs,mins,stdevs = utils.get_statistics(loads_data,50,period=600)\n", + "means, maxs, mins, stdevs = utils.get_statistics(loads_data, 50, period=600)\n", "\n", "# Display the results, indexed by the first timestamp of the corresponding statistical window\n", "means" @@ -874,10 +876,10 @@ ], "source": [ "# Load DataFrames containing load statistics\n", - "means = pd.read_csv('./data/loads/data_loads_means.csv')\n", - "maxs = pd.read_csv('./data/loads/data_loads_maxs.csv')\n", - "mins = pd.read_csv('./data/loads/data_loads_mins.csv')\n", - "std = pd.read_csv('./data/loads/data_loads_std.csv')\n", + "means = pd.read_csv(\"./data/loads/data_loads_means.csv\")\n", + "maxs = pd.read_csv(\"./data/loads/data_loads_maxs.csv\")\n", + "mins = pd.read_csv(\"./data/loads/data_loads_mins.csv\")\n", + "std = pd.read_csv(\"./data/loads/data_loads_std.csv\")\n", "\n", "means.head()" ] @@ -932,23 +934,27 @@ } ], "source": [ - "loads.graphics.plot_statistics(means['uWind_80m'],\n", - " means['BL1_FlapMom'],\n", - " maxs['BL1_FlapMom'],\n", - " mins['BL1_FlapMom'],\n", - " y_stdev=std['BL1_FlapMom'],\n", - " xlabel='Wind Speed [m/s]',\n", - " ylabel='Blade Flap Moment [kNm]',\n", - " title = 'Blade Flap Moment Load Statistics')\n", + "loads.graphics.plot_statistics(\n", + " means[\"uWind_80m\"],\n", + " means[\"BL1_FlapMom\"],\n", + " maxs[\"BL1_FlapMom\"],\n", + " mins[\"BL1_FlapMom\"],\n", + " y_stdev=std[\"BL1_FlapMom\"],\n", + " xlabel=\"Wind Speed [m/s]\",\n", + " ylabel=\"Blade Flap Moment [kNm]\",\n", + " title=\"Blade Flap Moment Load Statistics\",\n", + ")\n", "\n", - "loads.graphics.plot_statistics(means['uWind_80m'],\n", - " means['TB_ForeAft'],\n", - " maxs['TB_ForeAft'],\n", - " mins['TB_ForeAft'],\n", - " y_stdev=std['TB_ForeAft'],\n", - " xlabel='Wind Speed [m/s]',\n", - " ylabel='Tower Base Moment [kNm]',\n", - " title = 'Tower Base Moment Load Statistics')" + "loads.graphics.plot_statistics(\n", + " means[\"uWind_80m\"],\n", + " means[\"TB_ForeAft\"],\n", + " maxs[\"TB_ForeAft\"],\n", + " mins[\"TB_ForeAft\"],\n", + " y_stdev=std[\"TB_ForeAft\"],\n", + " xlabel=\"Wind Speed [m/s]\",\n", + " ylabel=\"Tower Base Moment [kNm]\",\n", + " title=\"Tower Base Moment Load Statistics\",\n", + ")" ] }, { @@ -1587,13 +1593,13 @@ ], "source": [ "# Create array containing wind speeds to use as bin edges\n", - "bin_edges = np.arange(3,26,1)\n", - "bin_against = means['uWind_80m']\n", + "bin_edges = np.arange(3, 26, 1)\n", + "bin_against = means[\"uWind_80m\"]\n", "\n", - "# Apply function for means, maxs, and mins \n", - "[bin_means, bin_means_std] = loads.general.bin_statistics(means,bin_against,bin_edges)\n", - "[bin_maxs, bin_maxs_std] = loads.general.bin_statistics(maxs,bin_against,bin_edges)\n", - "[bin_mins, bin_mins_std] = loads.general.bin_statistics(mins,bin_against,bin_edges)\n", + "# Apply function for means, maxs, and mins\n", + "[bin_means, bin_means_std] = loads.general.bin_statistics(means, bin_against, bin_edges)\n", + "[bin_maxs, bin_maxs_std] = loads.general.bin_statistics(maxs, bin_against, bin_edges)\n", + "[bin_mins, bin_mins_std] = loads.general.bin_statistics(mins, bin_against, bin_edges)\n", "\n", "bin_means" ] @@ -1637,8 +1643,8 @@ ], "source": [ "# Specify center of each wind speed bin, and signal name for analysis\n", - "bin_centers = np.arange(3.5,25.5,step=1) \n", - "signal_name = 'TB_ForeAft' \n", + "bin_centers = np.arange(3.5, 25.5, step=1)\n", + "signal_name = \"TB_ForeAft\"\n", "\n", "# Specify inputs to be used in plotting\n", "bin_mean = bin_means[signal_name]\n", @@ -1649,11 +1655,18 @@ "bin_min_std = bin_mins_std[signal_name]\n", "\n", "# Plot binned statistics\n", - "loads.graphics.plot_bin_statistics(bin_centers,bin_mean,bin_max,bin_min,\n", - " bin_mean_std,bin_max_std,bin_min_std,\n", - " xlabel='Wind Speed [m/s]',\n", - " ylabel=signal_name,\n", - " title='Binned Statistics')\n" + "loads.graphics.plot_bin_statistics(\n", + " bin_centers,\n", + " bin_mean,\n", + " bin_max,\n", + " bin_min,\n", + " bin_mean_std,\n", + " bin_max_std,\n", + " bin_min_std,\n", + " xlabel=\"Wind Speed [m/s]\",\n", + " ylabel=signal_name,\n", + " title=\"Binned Statistics\",\n", + ")" ] } ], diff --git a/examples/metocean_example.ipynb b/examples/metocean_example.ipynb index cc94569d7..c8675ac75 100644 --- a/examples/metocean_example.ipynb +++ b/examples/metocean_example.ipynb @@ -262,8 +262,8 @@ ], "source": [ "# Specify the parameter as continuous wind speeds and the buoy number to be 46022\n", - "ndbc_dict = {'parameter':'cwind','buoy_number':'46022'} \n", - "available_data = ndbc.available_data(ndbc_dict['parameter'], ndbc_dict['buoy_number'])\n", + "ndbc_dict = {\"parameter\": \"cwind\", \"buoy_number\": \"46022\"}\n", + "available_data = ndbc.available_data(ndbc_dict[\"parameter\"], ndbc_dict[\"buoy_number\"])\n", "available_data" ] }, @@ -333,7 +333,7 @@ "source": [ "# Slice the available data to only include 2018 and more recent\n", "years_of_interest = available_data[available_data.year == 2018]\n", - "years_of_interest\n" + "years_of_interest" ] }, { @@ -376,8 +376,8 @@ ], "source": [ "# Get dictionary of parameter data by year\n", - "ndbc_dict['filenames'] = years_of_interest['filename']\n", - "requested_data = ndbc.request_data(ndbc_dict['parameter'], ndbc_dict['filenames'])\n", + "ndbc_dict[\"filenames\"] = years_of_interest[\"filename\"]\n", + "requested_data = ndbc.request_data(ndbc_dict[\"parameter\"], ndbc_dict[\"filenames\"])\n", "requested_data" ] }, @@ -554,13 +554,15 @@ ], "source": [ "# Convert the header dates to a Datetime Index and remove NOAA date columns for each year\n", - "ndbc_dict['2018'] = ndbc.to_datetime_index(ndbc_dict['parameter'], requested_data['2018'])\n", + "ndbc_dict[\"2018\"] = ndbc.to_datetime_index(\n", + " ndbc_dict[\"parameter\"], requested_data[\"2018\"]\n", + ")\n", "\n", "# Replace 99, 999, 9999 with NaN\n", - "ndbc_dict['2018'] = ndbc_dict['2018'].replace({99.0:np.NaN, 999:np.NaN, 9999:np.NaN})\n", + "ndbc_dict[\"2018\"] = ndbc_dict[\"2018\"].replace({99.0: np.NaN, 999: np.NaN, 9999: np.NaN})\n", "\n", "# Display DataFrame of 46022 data from 2018\n", - "ndbc_dict['2018']" + "ndbc_dict[\"2018\"]" ] }, { @@ -648,7 +650,9 @@ ], "source": [ "# Input parameters for site of interest\n", - "temperatures = wind_toolkit.elevation_to_string('temperature',[2, 20, 40, 60, 80, 100, 120, 140, 160])\n", + "temperatures = wind_toolkit.elevation_to_string(\n", + " \"temperature\", [2, 20, 40, 60, 80, 100, 120, 140, 160]\n", + ")\n", "temperatures" ] }, @@ -658,11 +662,13 @@ "metadata": {}, "outputs": [], "source": [ - "wtk_inputs = {'time_interval':'1-hour',\n", - " 'wind_parameters':['windspeed_10m','winddirection_10m'],\n", - " 'temp_parameters':temperatures,\n", - " 'year':[2018],\n", - " 'lat_lon':(40.748, -124.527)}" + "wtk_inputs = {\n", + " \"time_interval\": \"1-hour\",\n", + " \"wind_parameters\": [\"windspeed_10m\", \"winddirection_10m\"],\n", + " \"temp_parameters\": temperatures,\n", + " \"year\": [2018],\n", + " \"lat_lon\": (40.748, -124.527),\n", + "}" ] }, { @@ -692,7 +698,7 @@ } ], "source": [ - "requested_region = wind_toolkit.region_selection(wtk_inputs['lat_lon'])\n", + "requested_region = wind_toolkit.region_selection(wtk_inputs[\"lat_lon\"])\n", "requested_region" ] }, @@ -725,7 +731,7 @@ } ], "source": [ - "wind_toolkit.plot_region(requested_region,lat_lon=wtk_inputs['lat_lon'])" + "wind_toolkit.plot_region(requested_region, lat_lon=wtk_inputs[\"lat_lon\"])" ] }, { @@ -859,8 +865,11 @@ ], "source": [ "wtk_wind, wtk_metadata = wind_toolkit.request_wtk_point_data(\n", - " wtk_inputs['time_interval'],wtk_inputs['wind_parameters'],\n", - " wtk_inputs['lat_lon'],wtk_inputs['year'])\n", + " wtk_inputs[\"time_interval\"],\n", + " wtk_inputs[\"wind_parameters\"],\n", + " wtk_inputs[\"lat_lon\"],\n", + " wtk_inputs[\"year\"],\n", + ")\n", "wtk_wind" ] }, @@ -908,21 +917,31 @@ ], "source": [ "# Get WIND Toolkit and NDBC wind data for 2018-01-11\n", - "ndbc_hourly_data = ndbc_dict['2018']['2018-01-11'].resample('h').nearest()\n", - "wtk_hourly_wind = wtk_wind['2018-01-11']\n", + "ndbc_hourly_data = ndbc_dict[\"2018\"][\"2018-01-11\"].resample(\"h\").nearest()\n", + "wtk_hourly_wind = wtk_wind[\"2018-01-11\"]\n", "\n", "# Plot the timeseries\n", "fig = plt.figure()\n", "ax = fig.add_subplot(111)\n", - "ax.set_xlabel('Time, UTC (h)')\n", - "ax.set_ylabel('Speed (m/s)')\n", - "ax.set_title('Hourly mean wind speeds on January 11, 2018')\n", + "ax.set_xlabel(\"Time, UTC (h)\")\n", + "ax.set_ylabel(\"Speed (m/s)\")\n", + "ax.set_title(\"Hourly mean wind speeds on January 11, 2018\")\n", "ax.grid()\n", "ax.set_ylim([5, 14])\n", "ax.set_xlim([0, 24])\n", - "line1 = ax.plot(ndbc_hourly_data.index.hour,ndbc_hourly_data['WSPD'].values,'o',label='NDBC 4m wind speed')\n", - "line2 = ax.plot(wtk_hourly_wind.index.hour,wtk_hourly_wind['windspeed_10m_0'].values,'x',label='WIND Toolkit 10m wind speed')\n", - "ax.legend()\n" + "line1 = ax.plot(\n", + " ndbc_hourly_data.index.hour,\n", + " ndbc_hourly_data[\"WSPD\"].values,\n", + " \"o\",\n", + " label=\"NDBC 4m wind speed\",\n", + ")\n", + "line2 = ax.plot(\n", + " wtk_hourly_wind.index.hour,\n", + " wtk_hourly_wind[\"windspeed_10m_0\"].values,\n", + " \"x\",\n", + " label=\"WIND Toolkit 10m wind speed\",\n", + ")\n", + "ax.legend()" ] }, { @@ -955,12 +974,13 @@ ], "source": [ "# Set the rose bin widths\n", - "width_direction = 10 # in degrees\n", - "width_velocity = 1 # in m/s\n", + "width_direction = 10 # in degrees\n", + "width_velocity = 1 # in m/s\n", "\n", "# Plot the wind rose\n", - "ax = plot_rose(ndbc_hourly_data['WDIR'],ndbc_hourly_data['WSPD'],\n", - " width_direction,width_velocity)\n" + "ax = plot_rose(\n", + " ndbc_hourly_data[\"WDIR\"], ndbc_hourly_data[\"WSPD\"], width_direction, width_velocity\n", + ")" ] }, { @@ -984,8 +1004,12 @@ } ], "source": [ - "ax2 = plot_rose(wtk_hourly_wind['winddirection_10m_0'],wtk_hourly_wind['windspeed_10m_0'],\n", - " width_direction,width_velocity)" + "ax2 = plot_rose(\n", + " wtk_hourly_wind[\"winddirection_10m_0\"],\n", + " wtk_hourly_wind[\"windspeed_10m_0\"],\n", + " width_direction,\n", + " width_velocity,\n", + ")" ] }, { @@ -1026,31 +1050,34 @@ ], "source": [ "wtk_temp, wtk_metadata = wind_toolkit.request_wtk_point_data(\n", - " wtk_inputs['time_interval'],wtk_inputs['temp_parameters'],\n", - " wtk_inputs['lat_lon'],wtk_inputs['year'])\n", + " wtk_inputs[\"time_interval\"],\n", + " wtk_inputs[\"temp_parameters\"],\n", + " wtk_inputs[\"lat_lon\"],\n", + " wtk_inputs[\"year\"],\n", + ")\n", "# wtk_temp = wtk_temp.shift(-7) # optionally UTC to local time\n", "\n", - "# Pick times corresponding to stable and unstable temperature profiles \n", - "stable_temp = wtk_temp.at_time('2018-01-11 03:00:00').values[0]\n", - "unstable_temp = wtk_temp.at_time('2018-01-11 15:00:00').values[0]\n", + "# Pick times corresponding to stable and unstable temperature profiles\n", + "stable_temp = wtk_temp.at_time(\"2018-01-11 03:00:00\").values[0]\n", + "unstable_temp = wtk_temp.at_time(\"2018-01-11 15:00:00\").values[0]\n", "\n", "# Find heights from temperature DataFrame columns\n", "heights = []\n", "for s in wtk_temp.keys():\n", - " s = s.removeprefix('temperature_')\n", - " s = s.removesuffix('m_0')\n", + " s = s.removeprefix(\"temperature_\")\n", + " s = s.removesuffix(\"m_0\")\n", " heights.append(float(s))\n", "heights = np.array(heights)\n", "\n", "# Plot the profiles\n", "fig = plt.figure()\n", "ax = fig.add_subplot(111)\n", - "ax.set_xlabel('Temperature (C)')\n", - "ax.set_ylabel('Height (m)')\n", - "ax.set_title('Temperature profiles from January 11, 2018')\n", + "ax.set_xlabel(\"Temperature (C)\")\n", + "ax.set_ylabel(\"Height (m)\")\n", + "ax.set_title(\"Temperature profiles from January 11, 2018\")\n", "ax.grid()\n", - "line1 = ax.plot(stable_temp,heights,'o-',label='time=03:00:00 UTC')\n", - "line2 = ax.plot(unstable_temp,heights,'x-',label='time=15:00:00 UTC')\n", + "line1 = ax.plot(stable_temp, heights, \"o-\", label=\"time=03:00:00 UTC\")\n", + "line2 = ax.plot(unstable_temp, heights, \"x-\", label=\"time=15:00:00 UTC\")\n", "ax.legend()" ] } diff --git a/examples/mooring_example.ipynb b/examples/mooring_example.ipynb index 1f0dd5e33..6340c190b 100644 --- a/examples/mooring_example.ipynb +++ b/examples/mooring_example.ipynb @@ -473,8 +473,8 @@ } ], "source": [ - "fpath = '.\\data\\mooring\\line1_test.out'\n", - "inputfile = '.\\data\\mooring\\TestInput.MD.dat'\n", + "fpath = \".\\data\\mooring\\line1_test.out\"\n", + "inputfile = \".\\data\\mooring\\TestInput.MD.dat\"\n", "\n", "ds = mooring.io.read_moordyn(fpath, input_file=inputfile)\n", "ds" @@ -917,7 +917,11 @@ } ], "source": [ - "print('The average lay length of the mooring line is: ' + str(laylength.mean().values.round()) + ' meters')" + "print(\n", + " \"The average lay length of the mooring line is: \"\n", + " + str(laylength.mean().values.round())\n", + " + \" meters\"\n", + ")" ] }, { @@ -273117,9 +273121,18 @@ "%matplotlib agg\n", "from IPython.display import HTML\n", "\n", - "dsani = ds.sel(Time=slice(0,10))\n", + "dsani = ds.sel(Time=slice(0, 10))\n", "\n", - "ani = mooring.graphics.animate(dsani, dimension='3d', interval=10, repeat=True, xlabel='X-axis',ylabel='Y-axis',zlabel='Depth [m]', title='Mooring Line Example')\n", + "ani = mooring.graphics.animate(\n", + " dsani,\n", + " dimension=\"3d\",\n", + " interval=10,\n", + " repeat=True,\n", + " xlabel=\"X-axis\",\n", + " ylabel=\"Y-axis\",\n", + " zlabel=\"Depth [m]\",\n", + " title=\"Mooring Line Example\",\n", + ")\n", "HTML(ani.to_jshtml())" ] }, @@ -391699,8 +391712,16 @@ ], "source": [ "%matplotlib agg\n", - "ani2d = mooring.graphics.animate(dsani, dimension='2d', xaxis='x',yaxis='z', repeat=True, \n", - " xlabel='X-axis',ylabel='Depth [m]', title='Mooring Line Example')\n", + "ani2d = mooring.graphics.animate(\n", + " dsani,\n", + " dimension=\"2d\",\n", + " xaxis=\"x\",\n", + " yaxis=\"z\",\n", + " repeat=True,\n", + " xlabel=\"X-axis\",\n", + " ylabel=\"Depth [m]\",\n", + " title=\"Mooring Line Example\",\n", + ")\n", "\n", "HTML(ani2d.to_jshtml())" ] diff --git a/examples/power_example.ipynb b/examples/power_example.ipynb index 3362958b8..8997df4ab 100644 --- a/examples/power_example.ipynb +++ b/examples/power_example.ipynb @@ -13,7 +13,9 @@ { "cell_type": "code", "execution_count": 1, - "metadata": {}, + "metadata": { + "scrolled": false + }, "outputs": [], "source": [ "import numpy as np\n", @@ -149,9 +151,13 @@ ], "source": [ "# Read in time-series data of voltage (V) and current (I)\n", - "power_data = pd.read_csv('data/power/2020224_181521_PowRaw.csv',skip_blank_lines=True,index_col='Time_UTC') \n", - "# Convert the time index to type \"datetime\" \n", - "power_data.index=pd.to_datetime(power_data.index)\n", + "power_data = pd.read_csv(\n", + " \"data/power/2020224_181521_PowRaw.csv\", skip_blank_lines=True, index_col=\"Time_UTC\"\n", + ")\n", + "\n", + "# Convert the time index to type \"datetime\"\n", + "power_data.index = pd.to_datetime(power_data.index)\n", + "\n", "# Display the data\n", "power_data.head()" ] @@ -174,29 +180,29 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA44AAAFNCAYAAABPFDGnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOx9d5wkR3n2U90zu3s56E45nBIoCxAIiRwEJohg44DBBkewjT+DsY2FsU2yTQ4WGZNFzkEB5ZxPWad4Ot1Jd7qc0+7OdNf3R9Vb9VZ1dU/Y3ZnZUz2/n3SzPT3d1dUV3vi8QkqJiIiIiIiIiIiIiIiIiIgyJP1uQERERERERERERERERMRgIyqOEREREREREREREREREZWIimNEREREREREREREREREJaLiGBEREREREREREREREVGJqDhGREREREREREREREREVCIqjhERERERERERERERERGViIpjRERERERERERERERERCWi4hgREREREdECQoirhBBbhRDDge/eJIRYKoTYJYRYK4S4SAjxvJLrfEsIMa7P3SKEuFQIcdzUP0FERERERMTEEBXHiIiIiIiICgghlgB4PgAJ4LXed+8G8FkA/wPgAACHA/gigNdVXPLjUsrZAA4FsAHAtya7ze1ACFHrx30jIiIiIqYnouIYERERERFRjbcAuAlKwXsrHRRCzAPwIQDvkFL+XEq5W0rZkFL+Rkr5L60uKqXcA+D7AE7S1zteeza3CSGWCSFeq48fqY8l+u//E0JsYO04TwjxLmqTEOLr2vO5RgjxX0KIVH/3Z0KI64UQnxFCbAbwgUnom4iIiIiIJwmi4hgREREREVGNtwD4nv7vd4QQB+jjZwIYAfCLbi4qhJgN4M0A7hBC1AH8BsAlAPYH8P8AfE8I8VQp5aMAdgB4uv7pCwDsEkIcr/9+IYCr9edvAWgCOEaf/3IAf8Vu+2wAK6C8o//dTbsjIiIiIp6ciIpjRERERERECXSu4hEAfiylvA3AIwDepL/eD8AmKWWzw8v+sxBiG4DlAGYD+DMAZ+jPH5VSjksprwBwPoA/1r+5GsALhRAH6r9/qv8+EsBcAHdphfZVAN6lvZ8bAHwGwBvZvZ+QUn5OStmUUu7tsN0REREREU9ixPyGiIiIiIiIcrwVwCVSyk367+/rY58BsBnAIiFErUPl8ZNSyn/nB4QQzwTwuJQyZ4dXAThEf74aKr9yNYBrAFwF4E8BjAK4VkqZCyGOAFAHsFYIQddIADzOrsk/R0REREREtI2oOEZERERERAQghJgB4A8BpEKIdfrwMID5QohTAdwIYAzA66E8gBPBEwAOE0IkTHk8HMBD+vPVAD4BpTheDeA6AF+GUhwpTPVx3Z5FFYqsnGA7IyIiIiKepIihqhEREREREWG8HkAG4AQAT9P/HQ/gWgBvkVJuB/CfAL4ghHi9EGKmEKIuhHilEOLjHd7rZgB7ALxHX+NFAF4D4IcAIKV8GMBeAH8C4Gop5Q4A6wG8AVpxlFKuhcqR/JQQYq4QIhFCHC2EeGGXzx8REREREWEQFceIiIiIiIgw3grgm1LKx6SU6+g/AJ8H8GYdovopAO8G8O8ANkJ5/f4ewC87uZGUchxKUXwlgE1QJT3eIqV8gJ12NYDNUsrH2d8CwO3snLcAGAJwH4CtUJ7QgzppS0RERERERAhCyhi1EhEREREREREREREREVGO6HGMiIiIiIiIiIiIiIiIqERUHCMiIiIiIiIiIiIiIiIqERXHiIiIiIiIiIiIiIiIiEpExTEiIiIiIiIiIiIiIiKiElFxjIiIiIiIiIiIiIiIiKhErd8NGBQsWrRILlmypN/NiIiIiIiIiIiIiIiI6Atuu+22TVLKxaHvouKosWTJEixdurTfzYiIiIiIiIiIiIiIiOgLhBCryr6LoaoRERERERERERERERERlYiKY0REREREREREREREREQlouIYERERERERERERERERUYmoOEZERERERERERERERERUIiqOEREREREREREREREREZWIimNEREREREREREREREREJaLiGBEREREREREREREREVGJKVcchRCpEOIOIcT5+u/vCSEeFELcK4T4hhCiro8LIcS5QojlQoi7hRDPYNd4qxDiYf3fW9nx04QQ9+jfnCuEEPr4QiHEpfr8S4UQC6b6OSMiIiIiIiIiIiIiIvZV9MLj+E4A97O/vwfgOAAnA5gB4K/08VcCOFb/9zYAXwKUEgjg/QCeDeB0AO9niuCXAPw1+90r9PFzAFwupTwWwOX674iIiIiIiIiIiIiIiIguMKWKoxDiUACvBvA1OialvFBqALgFwKH6q9cB+I7+6iYA84UQBwH4HQCXSim3SCm3ArgUwCv0d3OllDfpa30HwOvZ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\n", + "image/png": "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vvlm7d69W1lZWZKkH/3oR3r66af197//XZJ0wQUXqLq6Ws8884zRjtGjR2vYsGFauXKlgsGgysvL9cMf/lDXXXed0ZbS0lL95je/0YUXXhjXulVVVamwsFCHDh0y1gkAACBRev7o/xmPdyw9y8GWAACQHHMf/4v+3zu7JElPfX+Mhp/QweEWAfFrTpzINWMr6uvrtXr1alVXV6uyslI1NTXy+XzKzs42lsnJyZHf79err74qSdqwYYOKioqM4J0kTZo0SX6/Xxs3bjSWGTdunBG8k6SpU6dq27ZtOnDggLHMpEmTLO2ZOnWqNmzYIEn66KOPtHv3bssyhYWFGjVqlLFMJDU1NaqqqrL8AwAAAAAAiWHNwHNNiANIOMf37r/+9a/Ky8tTdna2rrrqKj311FMaNGiQRo8erdzcXN1444364osvVF1dreuuu0719fXatet4dH337t3q3Lmz5e8FAgF17NhRu3fvNpYpLS21LBN6HmsZ8/vmz0VaJpK77rpLhYWFxr/u3bs367sBAAAAAADRmeveUQMPqczxAF5FRYW2bNmijRs36uqrr9Zll12m9957TyUlJVqzZo3+8Ic/KC8vT4WFhTp48KBGjBghv0ei6osWLdKhQ4eMfzt37nS6SQAAAAAApAxLBh4zsCOFOV7dOCsrS3379pUkjRw5Um+++aZWrFihBx98UFOmTNH27du1b98+BQIBFRUVqaysTL1795YklZWVae/evZa/V1dXp/3796usrMxYxj5zbeh5rGXM74de69Kli2WZYcOGRV237OxsyxBgAAAAAACQOBmmBB8y8JDKXJfK1tDQoJqaGstrxcXFKioq0vr167V3715985vflCRVVlbq4MGD2rx5s7Hs+vXr1dDQoFGjRhnLvPzyyzp27JixzLp161RRUaEOHToYy/zpT3+y/D/XrVunyspKSVKvXr1UVlZmWaaqqkobN240lgEAAAAAAMmVYYpqMAstUpmjGXiLFi3StGnTdMIJJ+jw4cN6/PHH9eKLL+r555+XJP3617/WwIEDVVJSog0bNujaa6/VggULVFFRIUkaOHCgzjjjDF155ZVauXKljh07pmuuuUYXXnihysvLJUkXXXSRbrvtNs2aNUs33nijtm7dqhUrVugXv/iF0Y5rr71W48eP1z333KOzzjpLq1ev1qZNm7Rq1SpJks/n0/z5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0003adiwYZo7d666deumtWvX6qWXXtKECRN07733SpIOHz6suXPnauzYsbryyiv12WefqaamRt26dXN2xQAAAAAAAJBWUi6A99lnn2nevHlau3at7rzzTl1zzTWWGWN37typhx56SKeffrrGjx9vfO62227Tk08+qccff1wnnniiDhw4oFmzZun999/X1q1bnVodAAAAAAAApLmUCuDt2LFDc+bMUU1NjbKyspSZmal/+7d/U48ePYwsvPr6eh08eFCdOnWSJCO498wzz+iKK67QSy+9pIEDB0qSPvnkE3Xt2tXJVQIAAAAAAECaS6kaeN26dVNFRYWWLl2qOXPm6ODBg3r44YclSRkZGcZ/Q8E7s3/84x/q3Lmz5T2CdwAAAAAAAHBawOkGJFIgENBPf/pT5efnS5JeeuklvfDCC3rjjTc0evTosBlmjx49Kkl65pln9MADD+h73/ueOnfu7EjbAQAAAAAAgEg8n4FXX19veZ6fn2+8NnPmTGVnZ+uRRx6RJEvwbseOHVq2bJkmTZqkOXPm6Nprr9X111+fvIYDAAAAAAAAcfBcAC+UNRcSGhr74YcfSpJR606SKisrNWHCBL3zzjt64oknLJ/r2bOnunXrpnPPPVd79uzR97///SS0HgAAAAAAAGgez0xisXr1aj300EMqKCjQ17/+dV1wwQUqLS3VoUOHNG/ePG3btk2vvPKKsrKyJMkYLvvhhx9q4cKFysrK0l133aUHHnhAgwcP1mWXXWYJ9gEAAAAAAABu5PoMvIMHD2rmzJlasGCBJk6cqJKSEi1fvlz//d//LUkqLCzU0KFDNWbMGB06dMj4XGi4bO/evTVt2jS9/vrrGjx4sFatWqXi4mJJIngHAAAAAAAA13P9JBZvvvmmtm7dqldffVV9+vSRJI0ePVr//Oc/jWWuueYaZWdnh302GAxq06ZNeuSRR3TgwAHdeeedmj9/frKaDgAAAAAAALSaawN4wWBQPp9Pr7zyitq3b69AoLGpXbt21dixY3X48GHl5+crOzvbWN7M5/PpjjvuUNeuXfV///d/xuy0AAAAAAAAgFe4qgbeyy+/rKNHj+r00083Ana/+93vtHjxYlVWVmrixIm64447dODAAZWXlys/P1+XXXaZMQHFzp079ctf/lLnnHOOKisrJR2f9KJdu3aOrRMAAAAAAADQGq6ogbdv3z5ddtllmjBhgm688UZ9/PHHxnszZ87ULbfcon79+unWW2/VhRdeqG3btumpp57SuHHjtGrVKr333nuSpB07dujJJ5/UmjVrjM8TvAMAAAAAAICXOR7Aq6ur05o1a7Rnzx6tXr1aH3zwgVavXq3a2lpjmUsvvVSTJk1Sfn6+5s2bp9LSUlVUVOiMM85QVVWVPv30U0nS2LFj9eijj2r58uVOrQ4AAAAAAACQUI7XwAsEAhoxYoS6deum6dOn6+9//7uWL1+uM844Q8OGDTOWe/XVV9W5c2eVl5cbrx09elQ+n8+Y3EKSTj311GQ2HwAAAAAAAGhTrqiBZ5+AomvXrvrGN76hn//858bEE2+//baGDx+uxYsXa+LEifr444+1ePFinX322frZz36m7OzssEksAAAAAAAAAK9zRQAvpLa2VllZWVqzZo0uuugirV27VpMnTzbev+OOO/Sf//mfyszMVE1NjW644QbNnj3bwRYDAAAAAAAAbctVATyzMWPGKDc3V7/97W9VWlqq/fv3q2PHjqqurta2bds0YsQIp5sIAAAAAAAAtDnXBfDq6uoUCAT07rvvaujQoVq+fLm2b9+u119/XStXrtTIkSOdbiIAAAAAAACQNK4L4Jmdcsop2rRpk0444QQ9+OCDmjp1qtNNAgAAAAAAAJLK73QDItm+fbsGDx6sd999Vw899JB27NhB8A4AAAAAAABpyZUBvIyMDH3729/Wvn37NGvWLKebAwAAAAAAADjG1UNoAQAAAAAAgHTnygw8AAAAAAAAAMcRwAMAAAAAAABcjAAeAAAAAAAA4GIE8AAAAAAAAAAXI4AHAAAAAAAAuBgBPAAAAAAAAMDFCOABAAAAAAAALkYADwAAAAl3+eWXa8aMGU43AwAAICUEnG4AAAAAvMXn8zX5/i233KIVK1YoGAwmqUUAAACpjQAeAAAAmmXXrl3G49///vdasmSJtm3bZryWl5envLw8J5oGAACQkhhCCwAAgGYpKysz/hUWFsrn81ley8vLCxtCO2HCBM2bN0/z589Xhw4dVFpaqoceekjV1dX67ne/q/z8fPXt21fPPvus5f+1detWTZs2TXl5eSotLdUll1yiffv2JXmNAQAAnEUADwAAAEnx6KOPqri4WH/+8581b948XX311TrvvPM0ZswY/eUvf9GUKVN0ySWX6IsvvpAkHTx4UBMnTtTw4cO1adMmPffcc9qzZ4/OP/98h9cEAAAguQjgAQAAICmGDh2qxYsXq1+/flq0aJFycnJUXFysK6+8Uv369dOSJUv0+eef65133pEk3X///Ro+fLjuvPNODRgwQMOHD9cjjzyiF154Qe+//77DawMAAJA81MADAABAUgwZMsR4nJGRoU6dOmnw4MHGa6WlpZKkvXv3SpLefvttvfDCCxHr6W3fvl39+/dv4xYDAAC4AwE8AAAAJEVmZqbluc/ns7wWmt22oaFBknTkyBFNnz5dP/vZz8L+VpcuXdqwpQAAAO5CAA8AAACuNGLECD3xxBPq2bOnAgG6rQAAIH1RAw8AAACuNHfuXO3fv18zZ87Um2++qe3bt+v555/Xd7/7XdXX1zvdPAAAgKQhgAcAAABXKi8v12uvvab6+npNmTJFgwcP1vz581VUVCS/n24sAABIH75gMBh0uhEAAAAAAAAAIuPWJQAAAAAAAOBiBPAAAAAAAAAAFyOABwAAAAAAALgYATwAAAAAAADAxQjgAQAAAAAAAC5GAA8AAAAAAABwMQJ4AAAAAAAAgIsRwAMAAAAAAABcjAAeAAAAAAAA4GIE8AAAAAAAAAAXI4AHAAAAAAAAuNj/B9yFgfiUTE89AAAAAElFTkSuQmCC", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], "source": [ "# First seperate the voltage and current time-series into seperate dataFrames\n", - "voltage = power_data[['MODAQ_Va_V', 'MODAQ_Vb_V', 'MODAQ_Vc_V']]\n", - "current = power_data[['MODAQ_Ia_I','MODAQ_Ib_I','MODAQ_Ic_I']]\n", + "voltage = power_data[[\"MODAQ_Va_V\", \"MODAQ_Vb_V\", \"MODAQ_Vc_V\"]]\n", + "current = power_data[[\"MODAQ_Ia_I\", \"MODAQ_Ib_I\", \"MODAQ_Ic_I\"]]\n", "\n", "# Set the power factor for the system\n", - "power_factor = 0.96 \n", + "power_factor = 0.96\n", "\n", "# Compute the instantaneous AC power in watts\n", - "ac_power = power.characteristics.ac_power_three_phase(voltage, current, power_factor) \n", + "ac_power = power.characteristics.ac_power_three_phase(voltage, current, power_factor)\n", "# Display the result\n", - "ac_power.Power.plot(figsize=(15,5),title='AC Power').set(xlabel='Time',ylabel='Power [W]');" + "ac_power.Power.plot(figsize=(15, 5), title=\"AC Power\").set(\n", + " xlabel=\"Time\", ylabel=\"Power [W]\"\n", + ");" ] }, { @@ -211,7 +217,9 @@ { "cell_type": "code", "execution_count": 4, - "metadata": {}, + "metadata": { + "scrolled": true + }, "outputs": [ { "data": { @@ -238,49 +246,56 @@ " MODAQ_Vb_V\n", " MODAQ_Vc_V\n", " \n", + " \n", + " Time_UTC\n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " 1\n", + " 2020-02-24 18:15:21.499998208\n", " 902.215367\n", " 1218.092331\n", " 433.063162\n", " \n", " \n", - " 2\n", - " 8.499136\n", - " 12.753006\n", - " 28.996487\n", + " 2020-02-24 18:15:21.500018208\n", + " 8.397956\n", + " 12.601184\n", + " 28.651291\n", " \n", " \n", - " 3\n", + " 2020-02-24 18:15:21.500038209\n", " 509.904722\n", " 671.800108\n", " 268.237845\n", " \n", " \n", - " 4\n", + " 2020-02-24 18:15:21.500058210\n", " 10.176332\n", " 15.101179\n", " 26.504936\n", " \n", " \n", - " 5\n", - " 399.622022\n", - " 524.697779\n", - " 217.596577\n", + " 2020-02-24 18:15:21.500078210\n", + " 404.436745\n", + " 531.019439\n", + " 220.218222\n", " \n", " \n", "\n", "" ], "text/plain": [ - " MODAQ_Va_V MODAQ_Vb_V MODAQ_Vc_V\n", - "1 902.215367 1218.092331 433.063162\n", - "2 8.499136 12.753006 28.996487\n", - "3 509.904722 671.800108 268.237845\n", - "4 10.176332 15.101179 26.504936\n", - "5 399.622022 524.697779 217.596577" + " MODAQ_Va_V MODAQ_Vb_V MODAQ_Vc_V\n", + "Time_UTC \n", + "2020-02-24 18:15:21.499998208 902.215367 1218.092331 433.063162\n", + "2020-02-24 18:15:21.500018208 8.397956 12.601184 28.651291\n", + "2020-02-24 18:15:21.500038209 509.904722 671.800108 268.237845\n", + "2020-02-24 18:15:21.500058210 10.176332 15.101179 26.504936\n", + "2020-02-24 18:15:21.500078210 404.436745 531.019439 220.218222" ] }, "execution_count": 4, @@ -289,25 +304,23 @@ }, { "data": { - "image/png": "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Y8fi888/x/Llyw3HlZeX44svvnAsd9myZbjoootwww03oLGxEa+88gp+9rOfwefz4d1334XP58Prr7+Om2++GS+88IJtGXPnzsWFF16Iqqoq5OfnY82aNbj88sujthFBEATR8SFhj3BHW9UgYY8giE7EyJEjUVlZiYqKCsyfP7/V5XEh8lZFRQWuvPJKAIpQWVFRgbFjx7ao3PLyctTU1GDbtm3YsmULxo8fj7y8PHz77bdYvnw5vvzySzDG0Nzc7FhGIBDAwoULsXbtWixevBgff/wx5s6d26L6EARBEB0LEvYId/QALSTsEQQRX7xo4BLJwoULsWrVKrz11luoqqrStw8dOhQbN27EqFGj9G0bN27EsGHO9f34448xa9YsHDx4EG+++SY2b94MxhhCoRAYY3jggQf0chctWmQot7y83LWemhnmli1bdHPTW265BTNmzMCLL76IyspKTJ8+PWoZd955JzjnWLRoEfz+DuZSQBAEQbQI8tlrA84s72hBWQTIjJMgiE7K+eefj9tuuw0jRowwbF+1ahXuueceVFZWAgAqKytx991349prr7WUwTnHQw89hD179mDevHlYu3Ytvve972H79u2orKzEt99+i9LSUrz77ru47LLL8OSTT+KTTz4BAFRVVWH16tW45ZZbXOu5bNkyPPPMM3jzzTd1QfHIkSN6UJknn3wy6rVOnz4dX375JR5++GGDfyJBEATRuSFhrw3o3y0z2VVoOZpGj6JxEgTRySgpKcEVV1xh2V5WVob77rsPCxYswODBg7FgwQLcf//9KCsr0/e57rrr9NQLH374IdavX49AIICKigqceuqphvIWL16MiooKdO/eHc888wxWrlyJQYMGobi4GFdccQWmTZvmWs8hQ4YgIyMDM2fOREZGBgDg+uuvx0033YTRo0cjGAxGvVZJkrBkyRJUVVVFPR9BEATReWC8Q2X4NlJeXs4/+uijZFfDyO3ZAICLmq7Ba2HFNGf1/CG465UtAIDKe09KWtVaxAsXAZv/Dxh/CXBip0x9SBBEG7JlyxYMGTIk2dVoFzzyyCN49NFH8c477yA3NzfZ1dGhe0QQBKGizusBoE/DswDa51yeMbaRc27rE0CavQRRg7RkVyE+kBknQRBEQrj00kuxefPmdiXoEQRBEJ0Lss1LEP8KD9U/T+pfkMSatBIS9giCIBLO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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABNsAAAHGCAYAAABNZY0zAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOydd3gcxf3G3927U5csuXcwJgk9JCSQwI8WCCEhBBIIIRAgoZhQQkkIpNAh9GqMwVSDbYoLGNy7Me69y91ylVWs3q7s7u+Pvb2d2Z3d2zuddJL9/TwP+LRldrbOzDvfImmapoEgCIIgCIIgCIIgCIIgiFYjp7sCBEEQBEEQBEEQBEEQBHGkQGIbQRAEQRAEQRAEQRAEQaQIEtsIgiAIgiAIgiAIgiAIIkWQ2EYQBEEQBEEQBEEQBEEQKYLENoIgCIIgCIIgCIIgCIJIESS2EQRBEARBEARBEARBEESKILGNIAiCIAiCIAiCIAiCIFIEiW0EQRAEQRAEQRAEQRAEkSJIbCMIgiAIgiAIgiAIgiCIFEFiG0EQBEEQBEEQBEEQBEGkCBLbCIIgCILoEIwcORKSJGHlypVtUv7mzZvx+OOPo6SkpE3KZzl48CAef/xxrF27ts2P1RkpKSmBJEnC/37yk5+ku3oEQRAEQRCtwp/uChAEQRAEQbQHmzdvxhNPPIELLrgAxx57bJse6+DBg3jiiSdw7LHH4vTTT2/TY3Vm/vjHP+JXv/oVt6xHjx5pqg1BEARBEERqILGNIAiCIAiCSAs//OEP8ac//cnTtqqqIhQKISsrq41rRRAEQRAE0TrIjZQgCIIgiA7Ln//8Z+Tl5eHAgQO48sorkZeXhx49euCBBx6Aoijctp999hnOOOMM5Ofno6CgAKeeeipef/11ALqL6u9//3sAwIUXXhhzWZw/fz4A4KuvvsJll12Gvn37IjMzE4MHD8ZTTz1lO8YFF1yAU045BZs3b8aFF16InJwc9OvXDy+88EJsm/nz5+PHP/4xAOAvf/lL7FgjR44EAHz77bf4/e9/j4EDByIzMxMDBgzA/fffj+bm5qTPXVVVvPbaazj55JORlZWFXr164fbbb0d1dbXtmg4fPhwnn3wyMjMz0bdvX9x1112oqanhtjn22GPx5z//2bbvBRdcgAsuuIBb9sYbb+Dkk09GTk4OioqK8KMf/QiffPKJbd9EkSQJd999N8aMGROr7/Tp0wEABw4cwM0334xevXohMzMTJ598Mj744ANbGfv378eVV16J3Nxc9OzZE/fffz9mzJjB3ftEzzcYDOKxxx7D8ccfH7t/Dz74IILBoLD+EydOxCmnnBKrp3EOLAcOHMAtt9wSe/4GDRqEO+64A6FQCLt27YIkSXj11Vdt+y1evBiSJOHTTz/1cEUJgiAIgmgvyLKNIAiCIIgOjaIo+MUvfoGzzjoLL730EmbPno2XX34ZgwcPxh133AEAmDVrFv74xz/ioosuwvPPPw8AKC4uxqJFi3DvvffivPPOwz333IOhQ4fiP//5D0488UQAiP07cuRI5OXl4e9//zvy8vIwd+5cPProo6irq8OLL77I1ae6uhqXXnopfve73+Gaa67B+PHj8dBDD+HUU0/FL3/5S5x44ol48skn8eijj2LIkCE499xzAQBnn302AGDcuHFoamrCHXfcgW7dumH58uV44403sH//fowbNy7hcweA22+/HSNHjsRf/vIX3HPPPdi9ezeGDRuGNWvWYNGiRQgEAgCAxx9/HE888QQuvvhi3HHHHdi6dSveeustrFixgtvOK++++y7uueceXH311bj33nvR0tKC9evXY9myZbjuuuvi7t/U1ITKykpuWZcuXWL1mDt3LsaOHYu7774b3bt3x7HHHouysjL85Cc/iYlZPXr0wLRp03DLLbegrq4O9913HwCgubkZF110Efbu3Yt77rkHffv2xahRozB37tyEzpFFVVX85je/wcKFCzFkyBCceOKJ2LBhA1599VVs27YNEydO5LZfuHAhvvjiC9x5553Iz8/H0KFDcdVVV2Hv3r3o1q0bAN3l+Mwzz0RNTQ2GDBmCE044AQcOHMD48ePR1NSE4447Dueccw7GjBmD+++/nyt/zJgxyM/PxxVXXJH0OREEQRAE0QZoBEEQBEEQHYAPP/xQA6CtWLEituymm27SAGhPPvkkt+0PfvAD7Ywzzoj9fe+992oFBQVaJBJxLH/cuHEaAG3evHm2dU1NTbZlt99+u5aTk6O1tLTElp1//vkaAO3jjz+OLQsGg1rv3r21q666KrZsxYoVGgDtww8/9HSsZ599VpMkSduzZ09smddz//bbbzUA2pgxY7jtpk+fzi0vLy/XMjIytEsuuURTFCW23bBhwzQA2gcffBBbdswx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bN26FXPnznW7nmCtn4iIiMJPk4womM1m3HLLLXjzzTfxn//8B23btpU936tXL0RERODDDz+0TduzZw8OHTqEfv36NXZzm6QV13YLdhMal1OwjVkbREROJq0Bht8L5FwW7JYElNlsRmVNXVD+mc1mj9ras2dP5OTkyLLOSkpKkJubix49etimLVy4EEajER988AGGDBmC3NxcjBkzBlu2bMFvv/2Ge+65R7bemJgYZGZmIjs7G3379sXjjz+OV155BatWrcKWLVtk865evRpTp07FjBkznAJWhw8fxtKlS7F48WI88sgj6NSpE/Lz87F06VI8+eSTWLFiBXbs2OH2dc6dOxcbN25EZWWlbHpxcTGysrIwevRovPrqq+jduzfi4+ORmZmJqVOn4uTJk5reRy3rJyIiImWpccZgNyHkNMnRSBcuXIjXX38d//jHPxAfH2/rspCYmIjo6GgkJiZi7ty5WLJkCVJSUpCQkIBFixahX79+iiORkpwkARN7ZbufsTlhZhsRkXtdJga7BY2iqrYene57Pyjb/uGBUYgxenZ6NmfOHKxduxbTpk0DAKxZswazZ8/Gtm3bAAClpaV4//338fDDDyM6Olq2bGZmJqZNm4aNGzdi5cqVkFwMfjFz5kwsXboUJSUltkGozp07h02bNmHHjh3o2LEjysvL8cknn2DQoEEAgDfeeAO1tbWKGWzz58/H8uXLsX79evTp08fla5w2bRruuOMOvPHGG7jhBssI6mazGevWrcOsWbOg1+tRW1uLBx98EB06dMDJkyexZMkSzJo1C++8847b91DL+omIiEhZSgyDbY6aZEThpZdeQnl5OYYOHYqsrCzbv40bN9rmefrpp3HllVdi4sSJGDx4MDIzM13WGiG79PjIYDeh8THYRkRETdT06dPx6aef4uDBgzh48CA+++wzTJ8+3fb8vn37YDabUVhYqLh8YWEhysrKcOrUKZfb0el0aN++PQ4cOGCbtmHDBhQUFKBz587Q6/WYPHkyVq9ebXt+7969SExMRFZWltP6jEYj2rVrh71797p9jSkpKRg/frwsc27r1q04cOAAZs+eDcASdBwzZgzatWuHvn374rnnnsO7776L8+fP+2X9REREpCI1P9gtCDlNMrNNSxeLqKgovPjii3jxxRcboUXNyx/HdQ52E4KAAyQQEZFFdIQePzwwKmjb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Zdbvj/X7REREROGN3UiJiIgobOn1eiQlJeHkyZMAgJiYGEiSFORWUVNhNptRWVmJkydPIikpCXq9PthNIiIiohDAYBsRERGFtczMTACwBdyIPJWUlGT7HhEREREx2EZERERhTZIkZGVlIT09HbW1tcFuDjUxERERzGgjIiIiGQbbiIiIiGDpUsqgCRERERH5qlkPkPDiiy+iTZs2iIqKQp8+ffDll18Gu0lERERERERERNSMNdtg28aNG7FkyRLcf//9+Oabb9CtWzeMGjWK9ViIiIiIiIiIiChgJLPZbA52IwKhT58+uPTSS/HCCy8AAEwmE3JycrBo0SL8/ve/d5q/uroa1dXVtr/Ly8uRm5uLw4cPIyEhodHaTUREREREREREoaWiogI5OTk4e/YsEhMTXc7bLGu21dTUYOfOnbj77rtt03Q6HUaMGIEvvvhCcZlHH30Uf/rTn5ym5+TkBKydRERERERERETUdJw7dy48g22nT59GfX09MjIyZNMzMjLw008/KS5z9913Y8mSJba/z549i9atW+PQoUNu30QiIiIiIiIiImq+zGYzzp07h5YtW7qdt1kG27wRGRmJyMhIp+mJiYnsRkpEREREREREFOa0JmM1ywES0tLSoNfrceLECdn0EydOIDMzM0itIiIiIiIiIiKi5q5ZBtuMRiN69eqFDz/80DbNZDLhww8/RL9+/YLYMiIiIiIiIiIias6abTfSJUuWYObMmejduzcuu+wyPPPMM7hw4QJmz56tafnIyEjcf//9il1LiYiIiIiIiIiIlEhms9kc7EYEygsvvIAnn3wSx48fR/fu3fHcc8+hT58+wW4WERERERERERE1U8062EZERERERERERNSYmmXNNiIiIiIiIiIiomBgsI2IiIiIiIiIiMhPGGwjIiIiIiIiIiLyEwbbiIiIiIiIiIiI/ITBNiIiIiIiIiIiIj9hsI2IiIiIiIiIiMhPwjbYZjabg90EIiIiIiIiIiJqZsIq2LZt2zbcfPPNOHLkCCRJgslkCnaTiIiIiIiIiIioGQmLYNu5c+dwxx134IorrsDmzZuxdu1aAIBOFxYvn4iIiIiIiIiIGklYRJv27t2LL774Ai+88AKuvfZa/Pvf/8ZXX30FAMxuIyIiIiIiIiIivwmLYFuvXr1w9913Y86cOZgxYwYMBgPWrFkDgNltRERERERERETkP80u0rRz50785S9/wccff4yjR48CsAyGMHbsWABA3759MWTIEOzatQv/7//9PwBAfX19sJpLRERERERERETNSLMJtpWWlmLSpEkYOXIkNm7ciEmTJmHWrFmoq6uDJEkwm822oNrUqVPRokULvPbaazh//jz0ej1HJyUiIiIiIiIiIp81i2Db4cOHbYG17du345133sGaNWtw4sQJPPPMMwAASZKg1+sBAAUFBRg7diwOHz6MdevWAbDUdSMiIiIiIiIiIvJFswi2nT9/HomJiVi2bBnat2+PyMhIDBkyBJmZmaiqqpLNax0Q4brrrkNhYSE2b96MBQsWoLCwEKtXrw5G84mIiIiIiIiIqJkwBLsB/tCyZUs8+uijyM7OBmAJqMXHx+PcuXOIioqSzWsdECE5ORkxMTHYtm0bjh07hpKSElxzzTWN3XQiIiIiIiIiImpGmmywzWQy2QJniYmJSExMBGAZDEGn06G0tBS//vor+vbta5suSRIAoKKiAhMmTMCnn36Kp556CosXLw7KayAiIiIiIiIioualyXQj/dvf/ib72xpo+/LLLwEAdXV1AGALqO3cuRNxcXHo0KGDLNAGAAkJCZg+fTpOnz7NQBsREREREREREflNyAfbNm/ejKysLCxduhTHjx+3TTeZTHjuuefQt29fnD59GgaDJUnPOqro9u3bkZeXh/T0dEiShBUrVuAvf/mLbflZs2YhLi6ucV8MERERERERERE1ayEbbDt48CD69OmDG2+8EUuWLMGJEyeQmZlpe16n02Ho0KGYP38+SktLbdOtGWz/+c9/MH78eOzatQudO3fGfffdZ+tqSkREREREREREFAiS2ZoKFkJqamqwfPlyPPXUUzh79iwSEhJQW1uLQ4cOITU1FUlJSQDkddtE+/btQ69evRATE4PTp09jyZIleOKJJxr5VRARERERERERUbgJycw2o9GIOXPmID09HcXFxVi/fj26du2K66+/Hh07dsSLL76I06dPQ6fTwWQyOS1fU1ODmJgYjBgxAsePH2egjYiIiIiIiIiIGkVIZLbt3bsXrVu3RmRkJOrr66HX62EymfDEE09g+fLl6N69OxYuXIjs7Gy88847+OijjzB06FA888wzAIBz585h4cKFGDRoEG666SacOnUK1dXVyM7ODu4LIyIiIiIiIiKisBLUYNupU6ewaNEivPPOO3jkkUdwyy23yEYOPXz4MFatWoWioiIMGTLEttyf/vQnlJSU4PXXX0fnzp1RVlaGuXPnYu/evfj++++D9XKIiIiIiIiIiCjMBS3YduDAAcyfPx/V1dUwGo2IiIjAypUr0bp1a1t2W319Pc6ePYvU1FQAsAXi3n77bcyZMwcfffQRCgsLAQC//fYbWrVqFYyXQkREREREREREBCCINduys7PRoUMHPPbYY5g/fz7Onj2L1atXAwD0er3tf2ugTfTzzz8jPT1d9hwDbUREREREREREFGyGoG3YYMDDDz+M+Ph4AMBHH32ErVu3Yvv27ejbt6/TSKNVVVUAgLfffhsvvfQSbrzxRqSnpwel7UREREREREREREoaNbOtvr5e9nd8fLxt2pQpUxAZGYk1a9ZYGiYE2g4cOIAnnngCI0aMwPz583HbbbfhjjvuaLyGExERERERERERaRDQYJs1G83K2j30l19+AQBbbTYA6NevH4YOHYrvvvsOmzdvli3Xpk0bZGdnY9KkSThx4gR+97vfBbLZREREREREREREXgnIAAkbNmzAqlWrkJCQgGHDhuH6669HRkYGysvLsWjRIuzZsweffPIJjEYjANi6jP7yyy9YsmQJjEYjHn30Ubz00kvo2rUrZs6cKQvMERERERERERERhSK/ZradPXsWU6ZMwe23347hw4ejRYsWeOqpp/DGG28AABITE9GtWzf0798f5eXl9kY0dBlt164dxowZg88//xxdu3bFX/7yF6SlpQEAA21ERERERERERBTy/DpAwldffYXvv/8en376KfLy8gAAffv2xcGDB23z3HLLLYiMjHRa1mw24+uvv8aaNWtQVlaGRx55BIsXL/Zn84iIiIiIiIiIiALKL8E2s9kMSZLwySefICYmBgaDfbWtWrXCoEGDcO7cOcTHxyMyMtI2v0iSJDz44INo1aoVtmzZYhullIiIiIiIiIiIqKnwumbbxx9/jKqqKhQVFdmCa+vXr8e9996Lfv36Yfjw4XjwwQdRVlaGli1bIj4+HjNnzrQNbnD48GE8//zzGD9+PPr16wfAMqBCdHS0n14aERERERERERFR4/K4Ztvp06cxc+ZMDB06FHfddReOHDlie27KlCm4//77UVBQgD/+8Y+YPHky9uzZgzfffBODBw/GX/7yF/zwww8AgAMHDqCkpASbNm2yLc9AGxERERERERERNWUeBdvq6uqwadMmnDhxAhs2bMC+ffuwYcMG1NTU2Oa54YYbMGLECMTHx2PRokXIyMhAhw4dMHr0aFRUVODo0aMAgEGDBmHdunV46qmn/PuKiIiIiIiIiIiIgsSjmm0GgwE9e/ZEdnY2xo0bh59++glPPfUURo8eje7du9vm+/TTT5Geno6WLVvaplVVVUGSJNvACQAwYMAA318BERERERERERFRiPC4Zpvj4AatWrXClVdeiT//+c+2QQ2+/fZb9OjRA/feey+GDx+OI0eO4N5778XVV1+Nxx9/HJGRkU4DJBARERERERERETV1Xg+QUFNTA6PRiE2bNmHq1Kl45513MHLkSNvzDz74IF599VVERESguroad955J+bNm+e3hhMREREREREREYUar4Ntov79+yM2NhZ/+9vfkJGRgdLSUqSkpODChQvYs2cPevbs6Y+2EhERERERERERhTSfgm11dXUwGAzYvXs3unXrhqeeegr79+/H559/jpdffhm9evXyZ1uJiIiIiIiIiIhCml8y2wDgsssuw9dff43c3Fy88sorGDVqlD9WS0RERERERERE1GTofF3B/v370bVrV+zevRurVq3CgQMHGGgjIiIiIiIiIqKw5HOwTa/XY+LEiTh9+jTmzp3rjzYRERERERERERE1SX7rRkpERERERERERBTufM5sIyIiIiIiIiIiIgsG24iIiIiIiIiIiPyEwTYiIiIiIiIiIiI/YbCNiIiIiIiIiIjITxhsIyIiIiIiIiIi8hMG24iIiIiIiIiIiPyEwTYiIiIiIiIiIiI/YbCNiIiIqBmaNWsWrrnmmkbfbnFxMSRJgiRJWLx4saZlZs2aZVvm//2//xfQ9hEREREFmiHYDSAiIiIiz0iS5PL5+++/H88++yzMZnMjtUguISEBe/bsQWxsrKb5n332WTz22GPIysoKcMuIiIiIAo/BNiIiIqIm5tixY7bHGzduxH333Yc9e/bYpsXFxSEuLi4YTQNgCQZmZmZqnj8xMRGJiYkBbBERERFR42E3UiIiIqImJjMz0/YvMTHRFtyy/ouLi3PqRjp06FAsWrQIixcvRnJyMjIyMrBq1SpcuHABs2fPRnx8PPLz8/Huu+/KtvX9999jzJgxiIuLQ0ZGBmbMmIHTp0973OaVK1eioKAAUVFRyMjIwKRJk3x9G4iIiIhCEoNtRERERGFi3bp1SEtLw5dffolFixbh5ptvxrXXXov+/fvjm2++weWXX44ZM2agsrISAHD27FkMHz4cPXr0wNdff4333nsPJ06cwHXXXefRdr/++mvceuuteOCBB7Bnzx689957GDx4cCBeIhEREVHQsRspERERUZjo1q0b7r33XgDA3XffjcceewxpaWm46aabAAD33XcfXnrpJXz33Xfo27cvXnjhBfTo0QOPPPKIbR1r1qxBTk4O9u7di/bt22va7qFDhxAbG4srr7wS8fHxaN26NXr06OH/F0hEREQUApjZRkRERBQmLrnkEttjvV6P1NRUdO3a1TYtIyMDAHDy5EkAwLfffoutW7faasDFxcWhY8eOAID9+/dr3u7IkSPRunVrtGvXDjNmzMBrr71my54jIiIiam4YbCMiIiIKExEREbK/JUmSTbOOcmoymQAA58+fx7hx47Br1y7Zv3379nnUDTQ+Ph7ffPMN1q9fj6ysLNx3333o1q0bzp496/uLIiIiIgox7EZKRERERIp69uyJzZs3o02bNjAYfDttNBgMGDFiBEaMGIH7778fSUlJ+M9//oMJEyb4qbVEREREoYGZbURERESkaOHChSgtLcWUKVPw1VdfYf/+/Xj//fcxe/Zs1NfXa17P22+/jeeeew67du3CwYMH8de//hUmkwkdOnQIYOuJiIiIgoPBNiIiIiJS1LJlS3z22Weor6/H5Zdfjq5du2Lx4sVISkqCTqf9NDIpKQklJSUYPnw4CgsL8fLLL2P9+vXo3LlzAFtPREREFByS2Ww2B7sRRERERNQ8FBcXY/HixV7VY5MkCW+++SauueYav7eLiIiIqLEws42IiIiI/Kq8vBxxcXG46667NM2/YMECxMXFBbhVRERERI2DmW1ERERE5Dfnzp3DiRMnAFi6j6alpbld5uTJk6ioqAAAZGVlITY2NqBtJCIiIgokBtuIiIiIiIiIiIj8hN1IiYiIiIiIiIiI/ITBNiIiIiIiIiIiIj9hsI2IiIiIiIiIiMhPGGwjIiIiIiIiIiLyEwbbiIiIiIiIiIiI/ITBNiIiIiIiIiIiIj9hsI2IiIiIiIiIiMhPGGwjIiIiIiIiIiLyk/8P+08h5NY+D2cAAAAASUVORK5CYII=", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], "source": [ "# Compute the instantaneous frequency\n", - "inst_freq = power.characteristics.instantaneous_frequency(voltage) \n", + "inst_freq = power.characteristics.instantaneous_frequency(voltage)\n", "\n", "# Display the result\n", - "inst_freq.plot(figsize=(15,5), ylim=(0,100),\n", - " title='Instantaneous Frequency').set(xlabel='Time [s]',\n", - " ylabel='Frequency [Hz]');\n", + "inst_freq.plot(figsize=(15, 5), ylim=(0, 100), title=\"Instantaneous Frequency\").set(\n", + " xlabel=\"Time [s]\", ylabel=\"Frequency [Hz]\"\n", + ")\n", "inst_freq.head()" ] }, @@ -316,7 +329,7 @@ "metadata": {}, "source": [ "## Power Quality\n", - "The `power.quality` module can be used to compute harmonics of current. and voltage and current distortions following IEC/TS 62600-30 and IEC/TS 61000-4-7. Harmonics and harmonic distortion are required as part of a power quality assessment and characterize the stability of the produced power. " + "The `power.quality` module can be used to compute current or voltage harmonics and current distortions following IEC/TS 62600-30 and IEC/TS 61000-4-7. Harmonics and harmonic distortion are required as part of a power quality assessment and characterize the stability of the produced power. " ] }, { @@ -328,23 +341,21 @@ "outputs": [ { "data": { - "image/png": "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l0olJk+ezNlnn91VtmTJEubPn8/cuXOZN28eS5Ys6Vp3ySWXMGfOHBYsWMCRRx7JxRdfzPr163vsY8mSJZgZq1ev7lH+8MMPc9JJJ3H00Udz1FFHcf311+8x1quuuoprr70WgNNOO42+Tq55yy238PGPf7xPdQeDEsQRri1fIhcLqbVUj/JkLEnRjGIpGKbIRERERESGV01NDc888wzZbBaAe++9l5kzZ3atX7ZsGYsXL+auu+5i1apV3H333SxevJinn366q84111zDsmXLePbZZzn++OM5/fTTKRQKXevr6+s59dRTqa+v7yrbvHkz73vf+7jxxhtZvXo1f/zjH7npppu48847h+BdV5YmqRnh2nIl2mPO1HhVj/JkLEURKBSLwxOYiIiIiEine/4RNi8f3DanzYO3/cteq5111ln88pe/5Pzzz6e+vp4LL7yQhx56CIBrr72WL37xi8yZMweAOXPm8IUvfIFrrrmGW2+9tUc7ZsanP/1p7rzzTu655x7OO+882traePjhh7n//vs555xz+MpXvgLAddddxyWXXMIJJ5wAwKRJk7j66qv58pe/zDve8Y4+vb1bb72VD3/4w5RKJW6++WZOOumkPh+aSlIP4gjX3tFBW9yoS9b2KE/GkhTMKOazwxSZiIiIiMjwu+CCC/jpT39KLpfj6aef5uSTT+5at2LFCk488cQe9RctWsSKFSt6be+EE07oGk561113ceaZZ3LkkUcyceJEli5dusd2V65c2ee4Ozo6eOqpp7j++uu59NJL+7xdpVWsB9HMbgbOBra6+3FR2c+Ao6Iq44Amd1+4m23XAK1AAJQGcqPH/V2+tYGWWIwxqboe5al4Cjcjn28fpshERERERCJ96OmrlPnz57NmzRrq6+s566yzBtyeu3e9rq+v55Of/CRQTkTr6+t3SQz768ILLwTg9a9/PS0tLTQ1NTFu3LhBaXsgKjnE9Bbge8CPOwvc/b2dr83sX4HmPWz/RnffXrHo9hNtbZsJzBiXGd+jPBUv3/wwl28bjrBEREREREaMc889l8WLF/PAAw/Q0NDQVX7MMcewdOlSFixY0FW2dOlSjj322F7bevLJJ3nTm95EY2Mj9913H8uXL8fMCIIAM+Oaa67pave8887r0e6iRX3v1+p+C7vdLQ+Xig0xdfcHgcbdrbPyu38PUL+79fKKtvZNAIyvntCjPJ2IEsSCEkQRERERGd0uvfRSrrzySubNm9ejfPHixXzzm99kzZo1AKxZs4ZvfOMbfPazn92lDXfnu9/9Lps2beLMM8/kjjvu4P3vfz9r165lzZo1rFu3jjlz5vDQQw/xsY99jFtuuYWnnnoKgIaGBq644gq+/OUv9znmn/3sZ0B5NtSxY8cyduzY/r35QTZck9S8Dtji7s/1st6B35qZA//p7t/vrSEzuwy4DGD27NmDHuhw68huA2BC7ZQe5Z0JYr6gIaYiIiIiMrrNmjWLyy+/fJfyhQsX8q1vfYtzzjmHYrFIMpnk6quvZuHChV11Pve5z/G1r32Njo4OTjnlFO6//35SqRT19fV8/vOf79Heu971Lurr67nhhhu47bbbuOyyy2hubmbNmjXccsstvOENb+hzzJlMhuOPP55iscjNN9/c7/c+2Kz7GNtBb9zsEOD/Oq9B7FZ+A/C8u/9rL9vNdPcNZjYFuBf4RNQjuUeLFi3yvt5PZH9x7Y/+gR9xDz846UpOnnt+V/ltv/0S39p0F1fM+DIXvOU9wxihiIiIiIxGq1atYu7cucMdxohw/fXXc8MNN/Dggw8yfvz4vW8wSHb3GZjZ0oHM4TLks5iaWQJ4J/Cz3uq4+4boeStwJzAy5nwdBvlCEwBjaqf1KE8nMwAUCh1DHZKIiIiIiHTz0Y9+lOXLlw9pclgpwzHE9M3Aandfv7uVZlYDxNy9NXp9BvDVoQxwJMmVWiAFY2pn9CjPJMv3RSyWlCCKiIiIiIwUX//617n99tt7lL373e/miiuu2ON2P/zhD/n3f//3HmWvfe1rue666wY9xj2p5G0u6oHTgElmth640t1vAi5gp8lpzGwG8AN3PwuYCtwZzeKTAP7b3X9dqThHuoK3AjCmZnKP8q4Esaj7IIqIiIiIjBRXXHHFXpPB3fngBz/IBz/4wQpEtG8qliC6+4W9lF+ym7KNwFnR6xeBBTvXGa0KYQcxd2qSNT3Kq9LVABQDJYgiIiIiIjI4hvwaRNk3BbLUhEbMen5UVanOBDE3HGGJiIiIiMgBSAniCJe3ArW+600zU8nOBDE/1CGJiIiIiMgBSgniCJeLlajezUjgVKKcIJbUgygiIiIiIoNECeII5u7kYgE1pHZZl4yGmAahehBFREREZHQyMy666KKu5VKpxOTJkzn77LO7ypYsWcL8+fOZO3cu8+bNY8mSJV3rLrnkEubMmcOCBQs48sgjufjii1m/vufNFpYsWYKZsXr16h7lDz/8MCeddBJHH300Rx11FNdff/0eY73qqqu49tpr9+n9rVmzhuOOO27vFQeREsQRLFsM6Ig51ZbeZV0qWQtASQmiiIiIiIxSNTU1PPPMM2Sz5Ykb7733XmbOnNm1ftmyZSxevJi77rqLVatWcffdd7N48WKefvrprjrXXHMNy5Yt49lnn+X444/n9NNPp1AodK2vr6/n1FNPpb7+lRsxbN68mfe9733ceOONrF69mj/+8Y/cdNNN3HnnnUPwritrOO6DKH3Uli3SFofqePUu61KdPYhBYZd1IiIiIiJD6VuPfovVjav3XnEfHD3haD5/0uf3Wu+ss87il7/8Jeeffz719fVceOGFPPTQQwBce+21fPGLX2TOnDkAzJkzhy984Qtcc8013HrrrT3aMTM+/elPc+edd3LPPfdw3nnn0dbWxsMPP8z999/POeecw1e+8hUArrvuOi655BJOOOEEACZNmsTVV1/Nl7/8Zd7xjnfsNebnn3+ej3zkI2zbto14PM7tt9/OYYcdtk/Hp1LUgziCtbY20RqLUZuo3WVdZw9iQHGowxIRERERGTEuuOACfvrTn5LL5Xj66ac5+eSTu9atWLGCE088sUf9RYsWsWLFil7bO+GEE7qGk951112ceeaZHHnkkUycOJGlS5fusd2VK1f2Kea/+Zu/4WMf+xjLli3jkUceYfr06X3abiioB3EEa27aSMmM2tSYXdalovsiBqESRBEREREZXn3p6auU+fPns2bNGurr6znrrLMG3J67d72ur6/nk5/8JFBOROvr63dJDPdVa2srGzZs6OppzGQyA2pvsClBHMGaWjYCUJcZv8u6ZKI8cU2oHkQRERERGeXOPfdcFi9ezAMPPEBDQ0NX+THHHMPSpUtZsGBBV9nSpUs59thje23rySef5E1vehONjY3cd999LF++HDMjCALMjGuuuaar3fPOO69Hu4sWLarMGxxCGmI6gjW1bQJgbNXEXdYlLIG5E3hpqMMSERERERlRLr30Uq688krmzZvXo3zx4sV885vfZM2aNUB5VtBvfOMbfPazn92lDXfnu9/9Lps2beLMM8/kjjvu4P3vfz9r165lzZo1rFu3jjlz5vDQQw/xsY99jFtu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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABOcAAAHWCAYAAAA8fO0eAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACyWUlEQVR4nOzdd3RUdd7H8c+dmh46Seihg4IKiqCILCpiQ7GBIiI2FNYCWNC1YX107QV3XRBWV7FhWQsWBEUpKyAqRYHQSygJpE6f+/wxyWhMAplk0sj7dc49mbn3d3/3O8O453k+51cM0zRNAQAAAAAAAKhxltouAAAAAAAAAGioCOcAAAAAAACAWkI4BwAAAAAAANQSwjkAAAAAAACglhDOAQAAAAAAALWEcA4AAAAAAACoJYRzAAAAAAAAQC0hnAMAAAAAAABqCeEcAAAAAAAAUEsI5wAAANCgjR07Vu3bt6/tMgAAQANFOAcAABqcjIwMXX/99UpPT1dMTIySkpJ00kkn6dlnn5XL5art8irt008/1f3331/h9qeeeqqOOuqoMq9t2bJFhmHo73//e5SqAwAAQFlstV0AAABATfrkk0908cUXy+l0asyYMTrqqKPk9Xr13Xff6bbbbtOaNWv0z3/+s7bLrJRPP/1UL774YkQBHaRXXnlFwWCwtssAAAANFOEcAABoMDZv3qyRI0eqXbt2+vrrr5Wamhq+NmHCBG3cuFGffPJJVJ5VUFCg+Pj4UudN05Tb7VZsbGxUnlNfuN1uORwOWSx1b+KG3W6v7RIAAEADVvf+ryMAAIBq8vjjjys/P18zZswoEcwV69Spk26++WZJv0/rnDVrVql2hmGUGJ12//33yzAMrV27VpdddpkaN26sk08+WZLUvn17nXPOOfr888/Vt29fxcbG6h//+Ick6eDBg7rlllvUpk0bOZ1OderUSf/3f/9XYhTXH6eX/vOf/1THjh3ldDp1/PHH64cffgi3Gzt2rF588cVwfcVHNGVnZ2vKlCk6+uijlZCQoKSkJA0bNkw//fRTiXYLFy6UYRiaM2eO/va3v6lVq1aKi4tTbm6uxo4dq4SEBG3btk3nnHOOEhIS1KpVq3Dtv/zyi/7yl78oPj5e7dq10xtvvFGqjk2bNuniiy9WkyZNFBcXpxNPPLFUqFpcw9tvv62HH35YrVu3VkxMjIYMGaKNGzeWaFvWmnPBYFDPPvusjj76aMXExKh58+Y688wztXz58nCbL7/8UieffLIaNWqkhIQEde3aVXfddVdVvmIAANAAMXIOAAA0GP/973+Vnp6uAQMGVEv/F198sTp37qxHHnlEpmmGz//2228aNWqUrr/+el177bXq2rWrCgsLNWjQIO3cuVPXX3+92rZtq8WLF2vq1KnavXu3nnnmmRJ9v/HGG8rLy9P1118vwzD0+OOPa8SIEdq0aZPsdruuv/567dq1S19++aVee+21CtccCAS0f//+UucPHDhQ6tymTZv0wQcf6OKLL1aHDh20Z88e/eMf/9CgQYO0du1apaWllWj/4IMPyuFwaMqUKfJ4PHI4HOFnDhs2TKeccooef/xx/ec//9HEiRMVHx+vu+++W5dffrlGjBihl19+WWPGjFH//v3VoUMHSdKePXs0YMAAFRYW6qabblLTpk01e/ZsnXfeeXr33Xd1wQUXlKjhsccek8Vi0ZQpU5STk6PHH39cl19+uZYtW3bI7+Xqq6/WrFmzNGzYMF1zzTXy+/1atGiRli5dqr59+2rNmjU655xz1KtXL02bNk1Op1MbN27U999/X+HvHgAAQCKcAwAADURubq527typ4cOHV9szevfuXeZIr40bN2revHkaOnRo+NxDDz2kjIwM/fjjj+rcubMk6frrr1daWpqeeOIJTZ48WW3atAm337ZtmzZs2KDGjRtLkrp27arhw4fr888/1znnnKP+/furS5cu+vLLLzV69OgK1/zrr7+qefPmFWp79NFHa/369SWmpl5xxRXq1q2bZsyYoXvuuadEe7fbreXLl5eawut2uzV69GhNnTpVknTZZZcpLS1N48aN05tvvqlLL71UknT66aerW7dumj17dnik4mOPPaY9e/Zo0aJF4dGJ1157rXr16qVJkyZp+PDhJepzu91atWpVOBhs3Lixbr75Zq1evbrczTAWLFigWbNm6aabbtKzzz4bPj958uRw6Prll1/K6/Xqs88+U7NmzSr0/QEAAJSFaa0AAKBByM3NlSQlJiZW2zPGjx9f5vkOHTqUCOYk6Z133tHAgQPVuHFj7d+/P3ycdtppCgQC+vbbb0u0v/TSS8PBnCQNHDhQUmg0W1W0b99eX375Zanj9ddfL9XW6XSGg69AIKCsrKzwdM6VK1eWan/llVeWu7beNddcE37dqFEjde3aVfHx8brkkkvC57t27apGjRqV+IyffvqpTjjhhHAwJ0kJCQm67rrrtGXLFq1du7bEc6666qpwMCdV7Ht77733ZBiG7rvvvlLXiqcKN2rUSJL04YcfspkEAACoEkbOAQCABiEpKUmSlJeXV23PKJ56WZHzGzZs0M8//1zuqLW9e/eWeN+2bdsS74uDurKmn0YiPj5ep512WqnzW7ZsKXWueB22l156SZs3b1YgEAhfa9q0aan25X0fxWu4/VFycrJat25dap285OTkEp9x69at6tevX6k+u3fvHr7+xxFxlfneMjIylJaWpiZNmpTb5tJLL9W//vUvXXPNNbrzzjs1ZMgQjRgxQhdddFGd3PQCAADUXYRzAACgQUhKSlJaWppWr15dofblbabwx0Dqz8obJVbW+WAwqNNPP1233357mfd06dKlxHur1Vpmuz+ubVfdHnnkEd1zzz0aN26cHnzwQTVp0kQWi0W33HJLmaPHyvs+yvss1fEZq+t7i42N1bfffqsFCxbok08+0bx58/TWW2/pL3/5i7744otynwsAAPBnhHMAAKDBOOecc/TPf/5TS5YsUf/+/Q/ZtniE1cGDB0uc37p1a1Rq6dixo/Lz88sctVZZ0d6d9c/effddDR48WDNmzChx/uDBgzW27lq7du3022+/lTr/66+/hq9XVceOHfX5558rOzv7kKPnLBaLhgwZoiFDhuipp57SI488orvvvlsLFiyI6r8rAAA4sjHmHgAANBi333674uPjdc0112jPnj2lrmdkZIQ3AEhKSlKzZs1Krf320ksvRaWWSy65REuWLNHnn39e6trBgwfl9/sj7jM+Pj58f3WwWq2lRpy988472rlzZ7U8ryxnnXWW/ve//2nJkiXhcwUFBfrnP/+p9u3bq0ePHlV+xoUXXijTNPXAAw+Uulb8+bOzs0tdO+aYYyRJHo+nyjUAAICGg5FzAACgwejYsaPeeOMNXXrpperevbvGjBmjo446Sl6vV4sXL9Y777yjsWPHhttfc801euyxx3TNNdeob9+++vbbb7V+/fqo1HLbbbfpo48+0jnnnKOxY8eqT58+Kigo0C+//KJ3331XW7ZsiXg0Wp8+fSRJN910k4YOHSqr1aqRI0dGpV4pNPJw2rRpuuqqqzRgwAD98ssv+s9//qP09PSoPeNw7rzzTr35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IYQYJRKcG0IikeCKK64gkUiMdlLEKJE8ICQPCJB8ICQPCMkDQvKAkDwgJA+I2N7MB0rvjTFghRBCCCGEEEIIIYQQr0lqzgkhhBBCCCGEEEIIMUokOCeEEEIIIYQQQgghxCiR4JwQQgghhBBCCCGEEKNEgnNCCCGEEEIIIYQQQowSCc4N4cc//jFTpkwhmUwyd+5cVq9ePdpJEiPkz3/+M2eeeSbjx49HKcWyZcvKtmut+dKXvkRzczOpVIr58+ezYcOGsn06Ojo4//zzqayspLq6mosuuoi+vr59+C3EG3XVVVfxtre9jYqKChoaGjj77LNZt25d2T6FQoElS5ZQV1dHNpvl7//+79m+fXvZPps3b2bBggWk02kaGhq49NJLCYJgX34V8QZde+21HHPMMVRWVlJZWcm8efO44447Stvl+o893/zmN1FKsXTp0tI6yQcHvi9/+csopcqmGTNmlLZLHhgbXn75ZT784Q9TV1dHKpXi6KOP5tFHHy1tl/vCA9uUKVN2KweUUixZsgSQcmAsCMOQL37xixx88MGkUimmTp3KV7/6VQaPmSnlwIGvt7eXpUuXMnnyZFKpFCeccAKPPPJIafs+ywNalLnlllu04zj6F7/4hX766af1xz72MV1dXa23b98+2kkTI+BPf/qT/vznP69/+9vfakD/7ne/K9v+zW9+U1dVVelly5bpJ598Ur///e/XBx98sM7n86V9TjvtND1z5kz917/+VT/wwAN62rRp+rzzztvH30S8Eaeeeqq+/vrr9dq1a/WaNWv0GWecoSdNmqT7+vpK+1x88cV64sSJ+t5779WPPvqofvvb365POOGE0vYgCPRRRx2l58+fr5944gn9pz/9SdfX1+vPfvazo/GVxOv0hz/8Qf/v//6vXr9+vV63bp3+3Oc+p23b1mvXrtVay/Ufa1avXq2nTJmijznmGH3JJZeU1ks+OPBdccUV+sgjj9Tbtm0rTa2traXtkgcOfB0dHXry5Ml60aJFetWqVfqFF17Qd911l964cWNpH7kvPLDt2LGjrAy45557NKBXrFihtZZyYCz4+te/ruvq6vTy5cv1pk2b9O23366z2az+/ve/X9pHyoED34c+9CF9xBFH6JUrV+oNGzboK664QldWVuqtW7dqrfddHpDg3C7mzJmjlyxZUnodhqEeP368vuqqq0YxVWJv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OHEiiUSCadOm8fOf/xytNdOmTeM73/lOWRrWrFmz12oOvvjii0PWUjz55JNH/FhCCCGEEHuDBOeEEEIIIfaxX/7ylziOw0MPPcR1111HV1cX73nPezjuuON49NFHufPOO9m+fXtZU8xLL72UlStX8vvf/567776b+++/n8cff/x1Hdf3fU499VQqKip44IEHeOihh8hms5x22ml4nlfab8WKFTz//POsWLGCX/7yl9xwww1lAb4LLriAm2++mR/84Ac8++yz/Od//ifZbBalFIsXL96txuD111/Pu971LqZNm/bGTtirmDhxItu2bStNTzzxBHV1dbzrXe8a8WMJIYQQQuwN0qxVCCGEEGIvWL58OdlstvT69NNP5/bbbwdg+vTpfPvb3y5t+9rXvsZxxx3HN77xjdK6X/ziF0ycOJH169czfvx4fv7zn/OrX/2KU045BYgDfAcddNDrStOtt95KFEX87Gc/QykFxIGz6upq7r//ft773vcCUFNTw49+9CNM02TGjBksWLCAe++9l4997GOsX7+e2267jXvuuYf58+cDcMghh5SOsWjRIr70pS+xevVq5syZg+/73HTTTbvVpttT5513HqZplq1zXZcFCxYAYJpmqTlsoVDg7LPPZt68eXz5y19+Q8cTQgghhNjXJDgnhBBCCLEXvPvd7+baa68tvc5kMqXlWbNmle375JNPsmLFirJg3oDnn3+efD6P53nMnTu3tL62tpbDDjvsdaXpySefZOPGjVRUVJStLxQKPP/886XXRx55ZFlArLm5maeeegqIm6iapslJJ5005DHGjx/PggUL+MUvfsGcOXP44x//iOu6nHPOOa8rrQO++93vloKAAy677DLCMNxt38WLF9Pb28s999yDYUgDESGEEEK8NUhwTgghhBBiL8hkMsM24xwcqAPo6+vjzDPP5Fvf+tZu+zY3N+9xX21KKbTWZesG9xXX19fHrFmzuPHGG3d77+DBKmzb3u1zoygCIJVKvWY6PvrRj/KRj3yE7373u1x//fWce+65pNPpPfoOu2pqatrtPFZUVNDV1VW27mtf+xp33XUXq1ev3i34KIQQQgixP5PgnBBCCCHEKDv++OP5zW9+w5QpU7Cs3W/Ppk6dim3brFq1ikmTJgHQ2dnJ+vXry2qwjRs3jm3btpVeb9iwgVwuV3acW2+9lYaGBiorK99QWo8++miiKGLlypW71WgbcMYZZ5DJZLj22mu58847+fOf//yGjrWnfvOb3/CVr3yFO+64g6lTp+7VYwkhhBBCjDSp7y+EEEIIMcqWLFlCR0cH5513Ho888gjPP/88d911FxdeeCFhGJLNZrnooou49NJLue+++1i7di2LFi3arenme97zHn70ox/xxBNP8Oijj3LxxReX1YI7//zzqa+v56yzzuKBBx5g06ZN3H///Xzyk59k69ate5TWKVOmsHDhQhYvXsyyZctKn3HbbbeV9jFNk0WLFvHZz36W6dOnM2/evJE5UUNYu3YtF1xwAZdddhlHHnkkLS0ttLS00NHRsdeOKYQQQggxkiQ4J4QQQggxysaPH89DDz1EGIa8973v5eijj2bp0qVUV1eXAnBXX301J554ImeeeSbz58/nne985259111zzTVMnDiRE088kX/6p3/i3//938uak6bTaf785z8zadIkPvjBD3L44Ydz0UUXUSgUXldNumuvvZZ/+Id/4OMf/zgzZszgYx/7GP39/WX7XHTRRXiex4UXXvgmzsxre/TRR8nlcnzta1+jubm5NH3wgx/cq8cVQgghhBgpSu/aMYkQQgghhHhLOPnkkzn22GP53ve+N9pJ2c0DDzzAKaecwpYtW2hsbHzVfRctWkRXVxfLli3ba+nZF8cQQgghhHgjpOacEEIIIYQYMa7rsnXrVr785S9zzjnnvGZgbsDy5cvJZrMsX758RNPzwAMPkM1mhxwEQwghhBBifyADQgghhBBCiBFz8803c9FFF3Hsscfy3//933v0nm9/+9t84QtfAOLRaUfS7NmzWbNmDQDZbHZEP1sIIYQQYiRIs1YhhBBCCCGEEEIIIUaJNGsVQgghhBBCCCGEEGKUSHBOCCGEEEIIIYQQQohRIsE5IYQQQgghhBBCCCFGiQTnhBBCCCGEEEIIIYQYJRKcE0IIIYQQQgghhBBilEhwTgghhBBCCCGEEEKIUSLBOSGEEEIIIYQQQgghRokE54QQQgghhBBCCCGEGCX/H8UzmcNi2rOUAAAAAElFTkSuQmCC", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], "source": [ "# Set the nominal sampling frequency\n", - "sample_freq = 50000 #[Hz]\n", + "sample_freq = 50000 # [Hz]\n", "\n", "# Set the frequency of the grid the device would be conected to\n", - "grid_freq = 60 #[Hz] \n", + "grid_freq = 60 # [Hz]\n", "\n", "# Set the rated current of the device\n", "rated_current = 18.8 # [Amps]\n", @@ -353,9 +364,9 @@ "harmonics = power.quality.harmonics(current, sample_freq, grid_freq)\n", "\n", "# Plot the results\n", - "harmonics.plot(figsize=(15,5),xlim=(0,900),\n", - " title='Current Harmonics').set(ylabel='Harmonic Amplitude',\n", - " xlabel='Frequency [Hz]');" + "harmonics.plot(figsize=(15, 5), xlim=(0, 900), title=\"Current Harmonics\").set(\n", + " ylabel=\"Harmonic Amplitude\", xlabel=\"Frequency [Hz]\"\n", + ");" ] }, { @@ -396,6 +407,12 @@ " MODAQ_Ib_I\n", " MODAQ_Ic_I\n", " \n", + " \n", + " frequency\n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -433,12 +450,13 @@ "" ], "text/plain": [ - " MODAQ_Ia_I MODAQ_Ib_I MODAQ_Ic_I\n", - "0 0.247401 1.948879 1.991755\n", - "60 29.761108 29.305038 29.127020\n", - "120 1.870176 1.291483 1.206478\n", - "180 1.007562 0.648012 0.535090\n", - "240 0.727466 0.437456 0.370414" + " MODAQ_Ia_I MODAQ_Ib_I MODAQ_Ic_I\n", + "frequency \n", + "0 0.247401 1.948879 1.991755\n", + "60 29.761108 29.305038 29.127020\n", + "120 1.870176 1.291483 1.206478\n", + "180 1.007562 0.648012 0.535090\n", + "240 0.727466 0.437456 0.370414" ] }, "execution_count": 6, @@ -448,7 +466,7 @@ ], "source": [ "# Calcualte Harmonic Subgroups\n", - "h_s = power.quality.harmonic_subgroups(harmonics,grid_freq) \n", + "h_s = power.quality.harmonic_subgroups(harmonics, grid_freq)\n", "# Display the results\n", "h_s.head()" ] @@ -469,44 +487,11 @@ "outputs": [ { "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
MODAQ_Ia_IMODAQ_Ib_IMODAQ_Ic_I
THCD8.9725116.0966175.929491
\n", - "
" - ], "text/plain": [ - " MODAQ_Ia_I MODAQ_Ib_I MODAQ_Ic_I\n", - "THCD 8.972511 6.096617 5.929491" + "MODAQ_Ia_I 8.972511\n", + "MODAQ_Ib_I 6.096617\n", + "MODAQ_Ic_I 5.929491\n", + "dtype: float64" ] }, "execution_count": 7, @@ -515,15 +500,15 @@ } ], "source": [ - "#Finally we can compute the total harmonic current distortion as a percentage \n", - "THCD=power.quality.total_harmonic_current_distortion(h_s,rated_current) \n", + "# Finally we can compute the total harmonic current distortion as a percentage\n", + "THCD = power.quality.total_harmonic_current_distortion(h_s)\n", "THCD" ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -537,7 +522,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.5" + "version": "3.9.17" } }, "nbformat": 4, diff --git a/examples/qc_example.ipynb b/examples/qc_example.ipynb index d0afc5370..d1b25ad52 100644 --- a/examples/qc_example.ipynb +++ b/examples/qc_example.ipynb @@ -71,13 +71,13 @@ ], "source": [ "# Load data from the csv file into a DataFrame\n", - "data = pd.read_csv('data/qc/wave_elevation_data.csv', index_col='Time') \n", + "data = pd.read_csv(\"data/qc/wave_elevation_data.csv\", index_col=\"Time\")\n", "\n", "# Plot the data\n", - "data.plot(figsize=(15,5), ylim=(-60,60)) \n", + "data.plot(figsize=(15, 5), ylim=(-60, 60))\n", "\n", "# Print the first 5 rows of data\n", - "print(data.head()) " + "print(data.head())" ] }, { @@ -110,7 +110,7 @@ ], "source": [ "# Convert the index to datetime\n", - "data.index = utils.index_to_datetime(data.index, origin='2019-05-20') \n", + "data.index = utils.index_to_datetime(data.index, origin=\"2019-05-20\")\n", "\n", "# Print the first 5 rows of data\n", "print(data.head())" @@ -151,10 +151,10 @@ "outputs": [], "source": [ "# Define expected frequency of the data, in seconds\n", - "frequency = 0.002 \n", + "frequency = 0.002\n", "\n", "# Run the timestamp quality control test\n", - "results = qc.check_timestamp(data, frequency) " + "results = qc.check_timestamp(data, frequency)" ] }, { @@ -196,10 +196,10 @@ ], "source": [ "# Plot cleaned data\n", - "results['cleaned_data'].plot(figsize=(15,5), ylim=(-60,60)) \n", + "results[\"cleaned_data\"].plot(figsize=(15, 5), ylim=(-60, 60))\n", "\n", "# Print the first 5 rows of the cleaned data\n", - "print(results['cleaned_data'].head()) " + "print(results[\"cleaned_data\"].head())" ] }, { @@ -222,7 +222,7 @@ ], "source": [ "# Print the first 5 rows of the mask\n", - "print(results['mask'].head()) " + "print(results[\"mask\"].head())" ] }, { @@ -253,7 +253,7 @@ "source": [ "# Print the test results summary\n", "# The summary is transposed (using .T) so that it is easier to read.\n", - "print(results['test_results'].T) " + "print(results[\"test_results\"].T)" ] }, { @@ -300,16 +300,16 @@ ], "source": [ "# Define corrupt values\n", - "corrupt_values = [-999] \n", + "corrupt_values = [-999]\n", "\n", "# Run the corrupt data quality control test\n", - "results = qc.check_corrupt(results['cleaned_data'], corrupt_values) \n", + "results = qc.check_corrupt(results[\"cleaned_data\"], corrupt_values)\n", "\n", "# Plot cleaned data\n", - "results['cleaned_data'].plot(figsize=(15,5), ylim=(-60,60)) \n", + "results[\"cleaned_data\"].plot(figsize=(15, 5), ylim=(-60, 60))\n", "\n", "# Print test results summary\n", - "print(results['test_results'].T)" + "print(results[\"test_results\"].T)" ] }, { @@ -359,16 +359,16 @@ ], "source": [ "# Define expected lower and upper bound ([lower bound, upper bound])\n", - "expected_bounds = [-50, 50] \n", + "expected_bounds = [-50, 50]\n", "\n", "# Run expected range quality control test\n", - "results = qc.check_range(results['cleaned_data'], expected_bounds) \n", + "results = qc.check_range(results[\"cleaned_data\"], expected_bounds)\n", "\n", "# Plot cleaned data\n", - "results['cleaned_data'].plot(figsize=(15,5), ylim=(-60,60)) \n", + "results[\"cleaned_data\"].plot(figsize=(15, 5), ylim=(-60, 60))\n", "\n", "# Print test results summary\n", - "print(results['test_results'].T) " + "print(results[\"test_results\"].T)" ] }, { @@ -411,19 +411,19 @@ ], "source": [ "# Define expected lower bound (no upper bound is specified in this example)\n", - "expected_bound = [0.001, None] \n", + "expected_bound = [0.001, None]\n", "\n", "# Define the moving window, in seconds\n", - "window = 0.02 \n", + "window = 0.02\n", "\n", "# Run the delta quality control test\n", - "results = qc.check_delta(results['cleaned_data'], expected_bound, window) \n", + "results = qc.check_delta(results[\"cleaned_data\"], expected_bound, window)\n", "\n", "# Plot cleaned data\n", - "results['cleaned_data'].plot(figsize=(15,5), ylim=(-60,60))\n", + "results[\"cleaned_data\"].plot(figsize=(15, 5), ylim=(-60, 60))\n", "\n", "# Print test results summary\n", - "print(results['test_results'].T) " + "print(results[\"test_results\"].T)" ] }, { @@ -442,7 +442,7 @@ "outputs": [], "source": [ "# Extract final cleaned data for MHKiT analysis\n", - "cleaned_data = results['cleaned_data'] " + "cleaned_data = results[\"cleaned_data\"]" ] } ], diff --git a/examples/river_example.ipynb b/examples/river_example.ipynb index c03959924..aadc547fc 100644 --- a/examples/river_example.ipynb +++ b/examples/river_example.ipynb @@ -73,11 +73,13 @@ ], "source": [ "# Use the requests method to obtain 10 years of daily discharge data\n", - "data = river.io.usgs.request_usgs_data(station=\"15515500\",\n", - " parameter='00060',\n", - " start_date='2009-08-01',\n", - " end_date='2019-08-01',\n", - " data_type='Daily')\n", + "data = river.io.usgs.request_usgs_data(\n", + " station=\"15515500\",\n", + " parameter=\"00060\",\n", + " start_date=\"2009-08-01\",\n", + " end_date=\"2019-08-01\",\n", + " data_type=\"Daily\",\n", + ")\n", "\n", "# Print data\n", "print(data)" @@ -113,12 +115,12 @@ "column_name = data.columns[0]\n", "\n", "# Rename to a shorter key name e.g. 'Q'\n", - "data = data.rename(columns={column_name: 'Q'})\n", + "data = data.rename(columns={column_name: \"Q\"})\n", "\n", "# Convert to discharge data from ft3/s to m3/s\n", - "data.Q = data.Q / (3.28084)**3\n", + "data.Q = data.Q / (3.28084) ** 3\n", "\n", - "# Plot the daily discharge \n", + "# Plot the daily discharge\n", "ax = river.graphics.plot_discharge_timeseries(data.Q)" ] }, @@ -155,7 +157,7 @@ ], "source": [ "# Calculate exceedence probability\n", - "data['F'] = river.resource.exceedance_probability(data.Q)\n", + "data[\"F\"] = river.resource.exceedance_probability(data.Q)\n", "\n", "# Plot the flow duration curve (FDC)\n", "ax = river.graphics.plot_flow_duration_curve(data.Q, data.F)" @@ -199,7 +201,7 @@ ], "source": [ "# Load discharge to velocity curve at turbine location\n", - "DV_curve = pd.read_csv('data/river/tanana_DV_curve.csv')\n", + "DV_curve = pd.read_csv(\"data/river/tanana_DV_curve.csv\")\n", "\n", "# Create a polynomial fit of order 2 from the discharge to velocity curve.\n", "# Return the polynomial fit and and R squared value\n", @@ -241,10 +243,10 @@ ], "source": [ "# Use polynomial fit from DV curve to calculate velocity ('V') from discharge at turbine location\n", - "data['V'] = river.resource.discharge_to_velocity(data.Q, p)\n", + "data[\"V\"] = river.resource.discharge_to_velocity(data.Q, p)\n", "\n", - "# Plot the velocity duration curve (VDC) \n", - "ax = river.graphics.plot_velocity_duration_curve(data.V, data.F )" + "# Plot the velocity duration curve (VDC)\n", + "ax = river.graphics.plot_velocity_duration_curve(data.V, data.F)" ] }, { @@ -282,7 +284,7 @@ ], "source": [ "# Calculate the power produced from turbine velocity to power curve\n", - "VP_curve = pd.read_csv('data/river/tanana_VP_curve.csv')\n", + "VP_curve = pd.read_csv(\"data/river/tanana_VP_curve.csv\")\n", "\n", "# Calculate the polynomial fit for the VP curve\n", "p2, r_squared_2 = river.resource.polynomial_fit(VP_curve.V, VP_curve.P, 2)\n", @@ -321,10 +323,12 @@ ], "source": [ "# Calculate power from velocity at the turbine location\n", - "data['P'] = river.resource.velocity_to_power(data.V, \n", - " polynomial_coefficients=p2,\n", - " cut_in=VP_curve.V.min(), \n", - " cut_out=VP_curve.V.max())\n", + "data[\"P\"] = river.resource.velocity_to_power(\n", + " data.V,\n", + " polynomial_coefficients=p2,\n", + " cut_in=VP_curve.V.min(),\n", + " cut_out=VP_curve.V.max(),\n", + ")\n", "# Plot the power duration curve\n", "ax = river.graphics.plot_power_duration_curve(data.P, data.F)" ] @@ -356,7 +360,7 @@ ], "source": [ "# Calculate the Annual Energy produced\n", - "s = 365. * 24 * 3600 # Seconds in a year\n", + "s = 365.0 * 24 * 3600 # Seconds in a year\n", "AEP = river.resource.energy_produced(data.P, s)\n", "\n", "print(f\"Annual Energy Produced: {AEP/3600000:.2f} kWh\")" diff --git a/examples/short_term_extremes_example.ipynb b/examples/short_term_extremes_example.ipynb index 05cf9f8dc..193252ffe 100644 --- a/examples/short_term_extremes_example.ipynb +++ b/examples/short_term_extremes_example.ipynb @@ -39,7 +39,7 @@ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", - "from mhkit.loads import extreme \n", + "from mhkit.loads import extreme\n", "from mhkit.wave.resource import jonswap_spectrum, surface_elevation" ] }, @@ -57,7 +57,7 @@ "outputs": [], "source": [ "# short-term period in seconds\n", - "t_st = 3.0 * 60.0 * 60.0 " + "t_st = 3.0 * 60.0 * 60.0" ] }, { @@ -86,19 +86,18 @@ "T_min = 1 # s\n", "Tp = 8 # s\n", "Hs = 1.5 # m\n", - "df = 1/t_st\n", - "f_max = 1/T_min\n", - "Nf = int(f_max/df) + 1\n", + "df = 1 / t_st\n", + "f_max = 1 / T_min\n", + "Nf = int(f_max / df) + 1\n", "f = np.linspace(0.0, f_max, Nf)\n", "S = jonswap_spectrum(f, Tp, Hs)\n", "\n", "# time in seconds\n", - "time = np.linspace(0, t_st, 2*Nf+1)\n", + "time = np.linspace(0, t_st, 2 * Nf + 1)\n", "\n", "# 10 distinct time-series\n", "N = 10\n", - "qoi_timeseries = [surface_elevation(\n", - " S, time).values.squeeze() for i in range(N)]" + "qoi_timeseries = [surface_elevation(S, time).values.squeeze() for i in range(N)]" ] }, { @@ -145,15 +144,15 @@ "timeseries = qoi_timeseries[i]\n", "plt.plot(time, timeseries)\n", "plt.title(\"Full 3 hours\")\n", - "plt.xlabel('time [s]')\n", - "plt.ylabel('elevation [m]')\n", + "plt.xlabel(\"time [s]\")\n", + "plt.ylabel(\"elevation [m]\")\n", "\n", "plt.figure()\n", "timeseries = qoi_timeseries[i]\n", "plt.plot(time[time <= 120], timeseries[time <= 120])\n", "plt.title(\"First 2 minutes\")\n", - "plt.xlabel('time [s]')\n", - "plt.ylabel('elevation [m]');" + "plt.xlabel(\"time [s]\")\n", + "plt.ylabel(\"elevation [m]\");" ] }, { @@ -225,11 +224,16 @@ "i = 0 # select: 0-9\n", "\n", "plt.figure()\n", - "line, = plt.plot(time, qoi_timeseries[i], alpha=0.5, label='time-series')\n", - "plt.plot(time[np.argmax(qoi_timeseries[i])], block_maxima[i],\n", - " 'o', color=line.get_color(), label='maximum')\n", - "plt.xlabel('time [s]')\n", - "plt.ylabel('elevation [m]')\n", + "(line,) = plt.plot(time, qoi_timeseries[i], alpha=0.5, label=\"time-series\")\n", + "plt.plot(\n", + " time[np.argmax(qoi_timeseries[i])],\n", + " block_maxima[i],\n", + " \"o\",\n", + " color=line.get_color(),\n", + " label=\"maximum\",\n", + ")\n", + "plt.xlabel(\"time [s]\")\n", + "plt.ylabel(\"elevation [m]\")\n", "plt.legend();" ] }, @@ -260,11 +264,11 @@ ], "source": [ "plt.figure()\n", - "plt.plot(block_maxima, 'o')\n", + "plt.plot(block_maxima, \"o\")\n", "plt.title(\"Block maxima\")\n", - "plt.xlabel('time series')\n", - "plt.ylabel('maximum elevation [m]')\n", - "plt.ylim([0, np.max(block_maxima*1.1)]);" + "plt.xlabel(\"time series\")\n", + "plt.ylabel(\"maximum elevation [m]\")\n", + "plt.ylim([0, np.max(block_maxima * 1.1)]);" ] }, { @@ -328,22 +332,26 @@ ], "source": [ "# print distribution statistics\n", - "print(f'GEV:\\n Expected value: {ste_gev.expect()} m\\n 95% interval: ({ste_gev.ppf(0.025)} m, {ste_gev.ppf(0.975)} m)')\n", - "print(f'Gumbel:\\n Expected value: {ste_gum.expect()} m\\n 95% interval: ({ste_gum.ppf(0.025)} m, {ste_gum.ppf(0.975)} m)')\n", + "print(\n", + " f\"GEV:\\n Expected value: {ste_gev.expect()} m\\n 95% interval: ({ste_gev.ppf(0.025)} m, {ste_gev.ppf(0.975)} m)\"\n", + ")\n", + "print(\n", + " f\"Gumbel:\\n Expected value: {ste_gum.expect()} m\\n 95% interval: ({ste_gum.ppf(0.025)} m, {ste_gum.ppf(0.975)} m)\"\n", + ")\n", "\n", "# plot CDF and PDF\n", "x = np.linspace(0, 3, 1000)\n", - "fig, axs = plt.subplots(1,2)\n", + "fig, axs = plt.subplots(1, 2)\n", "axs[0].plot(x, ste_gev.pdf(x))\n", "axs[0].plot(x, ste_gum.pdf(x))\n", - "axs[0].plot(block_maxima, np.zeros(N), 'k.')\n", - "axs[1].plot(x, ste_gev.cdf(x), label='GEV')\n", - "axs[1].plot(x, ste_gum.cdf(x), label='Gumbel')\n", - "axs[0].set_ylabel('PDF')\n", - "axs[1].set_ylabel('CDF')\n", + "axs[0].plot(block_maxima, np.zeros(N), \"k.\")\n", + "axs[1].plot(x, ste_gev.cdf(x), label=\"GEV\")\n", + "axs[1].plot(x, ste_gum.cdf(x), label=\"Gumbel\")\n", + "axs[0].set_ylabel(\"PDF\")\n", + "axs[1].set_ylabel(\"CDF\")\n", "axs[1].legend()\n", - "axs[0].set_xlabel('elevation [m]')\n", - "axs[1].set_xlabel('elevation [m]');" + "axs[0].set_xlabel(\"elevation [m]\")\n", + "axs[1].set_xlabel(\"elevation [m]\");" ] }, { @@ -366,7 +374,7 @@ "outputs": [], "source": [ "t_end = 1.0 * 60.0 * 60.0\n", - "timeseries_1hr = qoi_timeseries[0][time" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "ax = tidal.graphics.plot_current_timeseries(data.d, data.s, flood)" - ] - }, + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\mcve343\\Anaconda3\\lib\\site-packages\\xarray\\backends\\cfgrib_.py:29: UserWarning: Failed to load cfgrib - most likely there is a problem accessing the ecCodes library. Try `import cfgrib` to get the full error message\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "from mhkit import tidal" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Loading Data from NOAA-Currents\n", + " \n", + "This example uses 1 year of data from the NOAA-Currents sites. A map of available currents stations is available at https://tidesandcurrents.noaa.gov/map/. The tidal io module includes two functions to import data: `request_noaa_data` which pulls data from the website, and `read_noaa_json` which loads a JSON file. The request function can save the JSON file for later use. \n", + "\n", + "For simplicity, this example loads data from a JSON file into a pandas DataFrame. This data contains 1 year of 6 minute averaged data from the Southampton Shoal Channel LB 6 (Station Number: s08010) in San Francisco Bay. The data includes 6 minute averaged direction [degrees] and speed [cm/s] indexed by time. The DataFrame key names returned by NOAA are 'd' for direction and 's' for speed. Since MHKIT uses SI units, speed is converted to m/s. " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The plot above shows missing data for most of early and mid-2017. The IEC standard recommends a minimum of 1 year of 10 minute averaged data (See IEC 201 for full description). For the demonstration, this dataset is sufficient. To look at a specific month we can slice the dataset before passing to the plotting function." - ] - }, + "name": "stdout", + "output_type": "stream", + "text": [ + " s d b\n", + "2016-11-08 12:04:00 0.673 358 4\n", + "2016-11-08 12:34:00 0.689 360 4\n", + "2016-11-08 12:46:00 0.738 356 4\n", + "2016-11-08 12:58:00 0.744 359 4\n", + "2016-11-08 13:10:00 0.648 358 4\n", + "... ... ... ..\n", + "2018-04-01 22:02:00 0.089 296 4\n", + "2018-04-01 22:14:00 0.102 356 4\n", + "2018-04-01 22:26:00 0.011 3 4\n", + "2018-04-01 22:38:00 0.060 193 4\n", + "2018-04-01 23:20:00 0.439 165 4\n", + "\n", + "[18890 rows x 3 columns]\n" + ] + } + ], + "source": [ + "# Load tidal data, South Hampton Shoal LB 6\n", + "data, metadata = tidal.io.noaa.read_noaa_json(\"data/tidal/s08010.json\")\n", + "\n", + "# Convert discharge data from cm/s to m/s\n", + "data.s = data.s / 100\n", + "\n", + "# Print data\n", + "print(data)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The data can also be obtained using the function `request_noaa_data` in the tidal IO module. \n", + "To use this function, we need a station number, parameter type, start date, and end date.\n", + "The station number can be found on the NOAA tides and currents website linked above. \n", + "The IEC standard recommends 1 year of 10-minute direction and velocity data. The request function allows users to easily pull any timeframe of data although NOAA limits any one pull to 30 days.\n", + "\n", + "The following code, which has been commented out for this demonstration, can be used to pull data from the NOAA website. This function can be used to save data to a JSON for later use." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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FStWRPph2bJlAIDVq1djcHAQ999/P6666ipceumlfd93IcJxW9xxe88992Dz5s049thj8ZznPKfrekcffTQuuuiivu+/kOC4Le643blzJ04//XTceuutOOqoo3Duuedi7969+NKXvoTHH38cV155JV7/+tf3ff+FAsfs3I3ZLVu24JZbbsHixYux//7747bbbsNLXvIS/Nd//Zf156+//no8+9nPxkknnYQDDzwQy5cvx7Zt2/C1r30N999/P8466yx885vfRK1W67sNCwWO2+KO22uuuQY333yz9b3//M//xF133YX3vve9eMtb3tJ3GxYKHLdzM26zXI9nsng4bos7bnkmi4fjtrjjdi7PZEUcB/o9qtUq/uAP/gAHHXQQtm7dii984QvYvn07XvWqV6Uy7M/MzODcc8/FD3/4Q5x44ok455xzcP/99+Pqq6/G4OAgvvOd7+Ckk06K/E7a/V0vSmUL9Ulp+Pa3v+1fc801fqPRiLz+8MMP+xs2bPAB+FdffXXw+q5du/yVK1f6g4OD/k9/+tPg9ampKf/kk0/2Afif/vSnI9e6//77/e9973v+rl27fN/3/TPPPNMH4N9xxx2p2/tXf/VXPgD/TW96U6rf+8UvfuHfdNNN/szMjO/7vg/AX79+fezPp+2XfjjvvPN8AP4HPvCByOtvetObfAD+a1/72sjrMzMz/le/+lX/oYce8n3f9y+77DIfgH/VVVeluu9ChOPWThHG7d133+0D8F/+8penus++AMetnSKM2ze84Q0+AP/CCy/06/V68Ppjjz3mb9q0yR8YGPBvv/32VG1YCHDM2sljzH7nO9/xf/e73/mtVsu/7rrrfAD+S17yktifn5mZ8ZvNZtfrs7OzQR9+5jOfSdWGhQLHrZ0ijNs4duzY4Y+MjPiDg4P+448/nvr3FwIct3akx22W6/FMFg/HrZ0ijFueyeLhuLVThHE7l2eyoo6DI444wgfgX3/99V3tWrVqlQ/Av+eee/r+O//+7//eB+BfdNFFkbPDNddc4wPwjzzyyK4zhdT+TlEmWygdGguEd7/73T4A/0//9E+D1z760Y/GLozf/va3fQD+6aefnnjdrJN5vV7316xZ4wPwf/vb36b6XZNek3kStn7pxe9//3sfgL958+auyWL37t3+okWL/JGREX/Pnj2x1+DmuT84bu3M1bjl5jkbHLd25mrcqk3rrbfe2nW9f/7nf/YB+G9+85sz/Q0LFY5ZO1nGrInrweGKK67wAfjvfve7M7dhocJxa2e+x+0HPvABH4D/whe+MPP9FzIct3Ykxm2W6/FM1h8ct3bmatzyTJYNjls7czVui3Imm89xMDw87I+Pj1vfe9aznuUD8H/2s5/19Xe0Wi1/48aNPgD/rrvu6nr/9NNP9wH43/72t2Ov4XouKZstlDU0FgiDg4MAgIGBgeC16667DgDw9Kc/vevnzzjjDIyOjuJHP/oRZmZmxNvzxS9+EY888gjOOOMMHH744eLX7xdbv/RC9dt5552HSiX6iIyNjeHUU0/F1NQUbrzxRrmG7qNw3NqZ63H70EMP4cMf/jD+/u//Hh/+8Ifxy1/+0qH1Cx+OWztzNW4feeQRAMCBBx7YdT312re+9a10jV/gcMzayTJmJWk2m4HG8DHHHDMvbSgyHLd25nvcXnXVVQCA17zmNfNy/6LDcWtHetzO93Ow0OC4tTPX45ZnsnRw3NqZq3FblDPZfI6Do48+Grt378Z3v/vdyOuPPvoobrzxRqxbtw5HHnlkX9e68847cd999+Gwww7D5s2bu94///zzAYR/Wx6UzRZKh8YCoNFo4JOf/CSA6AN7++23AwAOOeSQrt+p1WrYvHkzGo0G7rrrLvE2feQjHwEAvPa1rxW/dr/E9UsvkvpNf/13v/udYwv3bThu7czHuP3mN7+JP/qjP8Lb3vY2/NEf/RGOPfZYnH322bjvvvvSNn/Bw3FrZy7H7cqVKwEAd999d9fPq/5V1yUcs3FkHbMubN26Fe985ztx2WWX4U/+5E9w+OGH49prr8Uf/uEf4pnPfOactKEscNzamY9xq/OjH/0Iv/rVr3DooYfi7LPPnvP7Fx2OWzvS43a+n4OFBsetnfkYtzyT9Q/HrZ25HLdFOJPN9zi48sorsWTJEpx33nl4wQtegLe+9a249NJLceSRR2Lp0qW45pprMDIy0te1imCHLEIb0kCHxgLgr/7qr3Drrbfi/PPPx9Oe9rTg9V27dgEAlixZYv099frOnTtF23PPPffgW9/6FlasWIHnPe95otdOQ1y/9GK++m1fg+PWzlyO29HRUbzjHe/Az3/+c+zYsQM7duzAd7/7XZx99tm4/vrrg8JeJITj1s5cjltl+H3nO9+JZrMZvL5t2za8//3vB9AuqDY1NZXqb1iocMzayTpmXdi6dSve9a534fLLL8e//du/4c4778Rf/uVfpioWuK/AcWtnPsatjjLWvPrVr57ze5cBjls70uN2vp+DhQbHrZ25HLc8k6WH49bOXI7bIpzJ5nscnHLKKfjRj36EQw89FFdffTXe85734GMf+xjq9Tpe/vKX4wlPeELf1yqCHbIIbUhDbb4bQNy44oor8I//+I847LDD8B//8R+pftf3fQCA53mibbrqqqvQarXw8pe/HENDQ13vv/Od7+x67ZJLLsGmTZvE2pDUL/fccw8+8YlP9NUuG3n1274Ex62duR63q1atwuWXXx75uTPOOAPXXnstTjvtNNx444346Ec/ije84Q3p/pAFCsetnbket5dffjmuvfZaXH311fjtb3+Lc889F5OTk/jiF7+IsbExjI6OYnJyEtVqNfPftFDgmLWT55hN4vDDD4fv+2g2m3jwwQfxhS98AX/zN3+D733ve/jKV76C5cuXO99jIcBxa2e+xq1i165d+OxnP4vBwUFccsklYtddKHDc2pEety79TLrhuLUz1+OWZ7J0cNzametxO99nsiKMg2984xt40YtehCc+8Yn45Cc/icMPPxyPPPII/uVf/gVve9vb8JWvfAXf/e53Uau1Te8u40CizQvOFpp7lQ6SG6qQ5BFHHOE//PDDXe+feOKJiUVojjrqKB+A/5vf/Cb2HmkLItXrdX/t2rU+AP+2226z/gyArn/XXXdd7DWRsiBSr35RhXLMf4q3vOUtPgD/fe97n/X6f/qnf+oD8D/4wQ/GtoEF6OLhuLVThHGrc9VVV/kA/AsvvLDvv2Ehw3FrZ77G7WOPPea//vWv9zdv3uwPDAz4q1at8l/5ylf6d999t+95nr9kyZK+/4aFCsesHdcxG/fzWYvvfeYzn/EhWLix7HDc2inCuP2Xf/kXH2AxcBsct3akx22v69ngmSwejls7RRi3OjyTReG4tTNf43a+zmRFGAfbtm3zly5d6q9fv97fu3dv1/vPec5zfAD+xz/+8eC1pHHw5S9/2QfgP/OZz7Te7+qrr/YB+C94wQti29xrf7fQbKF0aJSU9773vT4A/+ijj/YfffRR68+85CUv8QH4n/rUp7req9fr/ujoqF+r1fzp6enY+6SdzD//+c/7APwzzzyzr5/vhzSTeT/90gu1aXjNa15jff+8887zAfjf+ta3Yq/BzbMdjls7RRm3Ol/84hd9AP7Tnva0TO1ZSHDc2iniuP3Od77jA/Cf8pSnZGrPQoFj1o7EmDVxdWjs3LnTB+AfddRRIu0pMxy3dooybo899tieBph9EY5bO9LjNuv1eCazw3FrpyjjVodnshCOWztFHLd5nsmKMg6+9KUvJTobr7zySh/oP2jpjjvu8AH4hx56qPX9v//7v/cB+G9/+9tjr+F6LimbLZQ1NErIP/zDP+Av/uIvsGXLFlx33XVYtWqV9efOOeccAMDXv/71rve+973vYXJyEqeccoo1JS4rSlv3Na95jdg1+6XffumFKnJ47bXXotVqRd7bs2cPfvjDH2JkZARPfvKTndu8L8Fxa6eo4/bGG28EABx44IGZ2rNQ4Li1U9Rxe9VVVwEAXvKSl2Rqz0KAY9aO1JiV5sEHHwSAIBV9X4Xj1k5Rxu2NN96IW265BYceeijOOuuseWlDEeG4tSM9bovyHCwUOG7tFHXc8kzWhuPWTlHHbV5nsiKNg9nZWQDA448/bn1fvd7vPQ466CBs3LgRv/vd76yF1r/2ta8BCP+2PCidLTR3lwkR5fLLL/cB+CeccIK/bdu2xJ/dtWuXv3LlSn9wcND/6U9/Grw+NTXln3zyyT4A/9Of/nTiNdJ4p++55x6/Uqn4K1asSPR0pgV9eKfT9Es/KM/jBz7wgcjrb3rTm3wA/mtf+9rE32c0UBSOWzvzPW5//OMf+zMzM13Xuf766/3h4WEfgP/DH/7QuV1lhePWznyP22az6e/Zs6frOiqiZMuWLf7s7Kxzu8oIx6wd6TGr008k1I9//GNrKvqePXv8pzzlKT4A/6//+q9F21UmOG7tzPe41XnlK1+ZKEGwL8Jxa0d63Lpej2eyKBy3duZ73PJMlgzHrZ35HrdzfSYr2jh48MEH/Vqt5lcqFf8b3/hG5L377rvP32+//XwA/le+8pU+/8IwC+Oiiy7ym81m8Po111zjA/CPPPLIyOsmrhkavl8uW6jn+52qHqTwfPKTn8Qll1yCarWK173uddbK85s2bYoU6rvmmmtw0UUXYXh4GC984QuxfPlyfOlLX8Ltt9+Oiy66CJ/97Ge7Crrov//1r38djz76KC688EKMjY0BAC699FKcdtppXfd+xzvegb/7u7/Dm9/8ZvzjP/5j5r/ztttuw3ve857I3z06OornP//5wWvve9/7sHLlyuD9tP3SizvvvBOnnHIKHnvsMTz72c/GEUccgRtvvBHXXXcdDj30UNxwww1YsWJF5Hfe85734LbbbgMA3Hzzzbjllltwyimn4JBDDgEAnHbaabj00kv7bsNCgeO2uOP2rLPOwq9//WucddZZ2H///QEAv/rVr/Dtb38bAPC3f/u3ePvb356qHxYKHLfFHbcTExNYvXo1zjvvPBx00EEAgO9///v4yU9+goMOOgjf+ta3RAvslQWO2bkbs9dccw2uueYaAMAjjzyCb3zjGzjwwANx+umnAwBWrlyJ973vfcHPP+c5z8H111+PM888Exs3bsTo6Cjuv/9+fO1rX8POnTtxyimn4Bvf+AYWL16cpisWBBy3xR23it27d2PdunWo1+t48MEHgzbuy3Dczs24zXo9nsnscNwWd9zyTBYPx21xx+1cnsmKOg4uv/xyXHbZZahUKnjmM58ZFAX//Oc/j4mJCTz3uc/F5z//+b7/zpmZGZxzzjm44YYbcOKJJ+Lcc8/Ffffdh6uvvhqDg4P4zne+g5NOOinyO1n3d3GUyhaau8uEiKE8XUn/bLp9P/jBD/zzzz/fX7p0qT88POwfffTR/vvf/36/0WhY79PrHnpRG0Wj0fDXrVvnA/GFkPolrlCN/u/uu+927pde3Hffff4ll1zir1mzxh8YGPA3btzov/71r4/1BisPbty/l7/85dk6pORw3BZ33H70ox/1n/GMZ/gHHHCAv2jRIn9wcNDfsGGD/4IXvMD/3ve+59Ab5YfjtrjjdnZ21n/lK1/pH3roof7o6Kg/OjrqP+EJT/Df9a53WaOE9hU4ZuduzPa65gEHHBD5+S9/+cv+i1/8Yv+QQw7xx8fH/Vqt5u+3337+ueee63/4wx/26/W6U5+UGY7b4o5bxQc/+EEfYDFwHY7buRm3Wa/HM5kdjtvijlueyeLhuC3uuJ3LM1mRx8E111zjP/3pT/dXrlzpV6tVf2xszD/55JP9D37wg7H3SWJyctL/m7/5G//ggw/2BwcH/ZUrV/oXXXSR/+tf/zpT38Tt75Ioiy2UGRqEEEIIIYQQQgghhBBCCCk8LApOCCGEEEIIIYQQQgghhJDCQ4cGIYQQQgghhBBCCCGEEEIKDx0ahBBCCCGEEEIIIYQQQggpPHRoEEIIIYQQQgghhBBCCCGk8NChQQghhBBCCCGEEEIIIYSQwkOHBiGEEEIIIYQQQgghhBBCCg8dGoQQQgghhBBCCCGEEEIIKTx0aBBCCCGEEEIIIYQQQgghpPDQoUEIIYQQQgghhBBCCCGEkMJDhwYhhBBCCCFkwfGJT3wCnufhE5/4xHw3hRBCCCGEECJEbb4bQAghhBBCCCFJeJ6X6uc//vGP59QSQgghhBBCyHxChwYhhBBCCCGk0Fx22WVdr11xxRXYtWsX3vCGN2Dp0qWR97Zs2YLNmzfjyU9+MtauXTtHrSSEEEIIIYTkjef7vj/fjSCEEEIIIYSQNGzatAn33nsv7r77bmzatGm+m0MIIYQQQgiZA1hDgxBCCCGEELLgiKuhsWnTJmzatAkTExN405vehA0bNmBkZARbtmzBNddcAwCo1+u4/PLLccghh2B4eBgHHXQQ/vVf/zX2Xt/4xjdwwQUXYOXKlRgaGsJBBx2Ev/iLv8DOnTvz+wMJIYQQQgjZB6HkFCGEEEIIIWSfol6v46lPfSq2b9+OZz/72ZidncWnP/1pPO95z8O1116LK6+8EjfddBPOP/98DA0N4XOf+xz+7M/+DCtXrsTFF18cudbll1+Oyy67DCtWrMAznvEMrFq1Cr/85S/xvve9D1/96ldxww03YMmSJfP0lxJCCCGEELKwoEODEEIIIYQQsk/x0EMP4fjjj8f111+PoaEhAMDLXvYynHHGGXje856HQw45BLfeemtQm+Mtb3kLDj30ULznPe+JODSuu+46XHbZZTj11FPxla98JeK4+MQnPoFXvOIVuOyyy3DFFVfM5Z9HCCGEEELIgoWSU4QQQgghhJB9jiuvvDJwZgDA6aefjs2bN2PXrl34v//3/0YKjW/atAmnnXYafvWrX6HZbAavf+ADHwAAfOQjH+nKwrjkkkuwZcsWfOpTn8r3DyGEEEIIIWQfghkahBBCCCGEkH2KpUuX4sADD+x6fd26dbj77rtxwgknWN9rNpt45JFHsH79egDAj370IwwMDOCzn/2s9T6zs7N4/PHHsW3bNqxYsUL2jyCEEEIIIWQfhA4NQgghhBBCyD5FXE2LWq0W+756r16vB69t27YNjUYD73rXuxLvNzExQYcGIYQQQgghAtChQQghhBBCCCEZWLJkCVqtFrZv3z7fTSGEEEIIIWSfgDU0CCGEEEIIISQDT37yk7Fjxw78+te/nu+mEEIIIYQQsk9AhwYhhBBCCCGEZOBNb3oTAODVr341Hnrooa739+7dix//+Mdz3SxCCCGEEEIWLJScIoQQQgghhJAMnHvuuXjPe96Dt771rTjkkENwwQUXYPPmzZiYmMC9996L7373uzjttNPw9a9/fb6bSgghhBBCyIKADg1CCCGEEEIIycj/+T//B6eeeio+8IEP4Ac/+AG++MUvYsmSJVi/fj1e85rX4MUvfvF8N5EQQgghhJAFg+f7vj/fjSCEEEIIIYQQQgghhBBCCEmCNTQIIYQQQgghhBBCCCGEEFJ46NAghBBCCCGEEEIIIYQQQkjhoUODEEIIIYQQQgghhBBCCCGFhw4NQgghhBBCCCGEEEIIIYQUHjo0CCGEEEIIIYQQQgghhBBSeOjQIIQQQgghhBBCCCGEEEJI4aFDgxBCCCGEEEIIIYQQQgghhYcODUIIIYQQQgghhBBCCCGEFB46NAghhBBCCCGEEEIIIYQQUnjo0CCEEEIIIYQQQgghhBBCSOGhQ4MQQgghhBBCCCGEEEIIIYWHDg1CCCGEEEIIIYQQQgghhBQeOjQIIYQQQgghhBBCCCGEEFJ4/n9EeL436oNHngAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Slice December of 2017 out of the full dataset\n", - "dec17_data = data.loc['2017-12-01':'2017-12-31']\n", - "\n", - "# Plot December of 2017 as current timeseries\n", - "ax = tidal.graphics.plot_current_timeseries(dec17_data.d, dec17_data.s, flood)" - ] - }, + "name": "stdout", + "output_type": "stream", + "text": [ + "Data request URL: https://tidesandcurrents.noaa.gov/api/datagetter?begin_date=20161101&end_date=20161201&station=s08010&product=currents&units=metric&time_zone=gmt&application=web_services&format=xml\n", + "Data request URL: https://tidesandcurrents.noaa.gov/api/datagetter?begin_date=20161201&end_date=20161231&station=s08010&product=currents&units=metric&time_zone=gmt&application=web_services&format=xml\n", + "Data request URL: https://tidesandcurrents.noaa.gov/api/datagetter?begin_date=20161231&end_date=20170130&station=s08010&product=currents&units=metric&time_zone=gmt&application=web_services&format=xml\n", + "Data request URL: https://tidesandcurrents.noaa.gov/api/datagetter?begin_date=20170130&end_date=20170301&station=s08010&product=currents&units=metric&time_zone=gmt&application=web_services&format=xml\n", + "Data request URL: https://tidesandcurrents.noaa.gov/api/datagetter?begin_date=20170301&end_date=20170331&station=s08010&product=currents&units=metric&time_zone=gmt&application=web_services&format=xml\n", + "Data request URL: https://tidesandcurrents.noaa.gov/api/datagetter?begin_date=20170331&end_date=20170430&station=s08010&product=currents&units=metric&time_zone=gmt&application=web_services&format=xml\n", + "Data request URL: https://tidesandcurrents.noaa.gov/api/datagetter?begin_date=20170430&end_date=20170530&station=s08010&product=currents&units=metric&time_zone=gmt&application=web_services&format=xml\n", + "Data request URL: https://tidesandcurrents.noaa.gov/api/datagetter?begin_date=20170530&end_date=20170629&station=s08010&product=currents&units=metric&time_zone=gmt&application=web_services&format=xml\n", + "Data request URL: https://tidesandcurrents.noaa.gov/api/datagetter?begin_date=20170629&end_date=20170729&station=s08010&product=currents&units=metric&time_zone=gmt&application=web_services&format=xml\n", + "Data request URL: https://tidesandcurrents.noaa.gov/api/datagetter?begin_date=20170729&end_date=20170828&station=s08010&product=currents&units=metric&time_zone=gmt&application=web_services&format=xml\n", + "Data request URL: https://tidesandcurrents.noaa.gov/api/datagetter?begin_date=20170828&end_date=20170927&station=s08010&product=currents&units=metric&time_zone=gmt&application=web_services&format=xml\n", + "Data request URL: https://tidesandcurrents.noaa.gov/api/datagetter?begin_date=20170927&end_date=20171027&station=s08010&product=currents&units=metric&time_zone=gmt&application=web_services&format=xml\n", + "Data request URL: https://tidesandcurrents.noaa.gov/api/datagetter?begin_date=20171027&end_date=20171126&station=s08010&product=currents&units=metric&time_zone=gmt&application=web_services&format=xml\n", + "Data request URL: https://tidesandcurrents.noaa.gov/api/datagetter?begin_date=20171126&end_date=20171226&station=s08010&product=currents&units=metric&time_zone=gmt&application=web_services&format=xml\n", + "Data request URL: https://tidesandcurrents.noaa.gov/api/datagetter?begin_date=20171226&end_date=20180125&station=s08010&product=currents&units=metric&time_zone=gmt&application=web_services&format=xml\n", + "Data request URL: https://tidesandcurrents.noaa.gov/api/datagetter?begin_date=20180125&end_date=20180224&station=s08010&product=currents&units=metric&time_zone=gmt&application=web_services&format=xml\n", + "Data request URL: https://tidesandcurrents.noaa.gov/api/datagetter?begin_date=20180224&end_date=20180326&station=s08010&product=currents&units=metric&time_zone=gmt&application=web_services&format=xml\n", + "Data request URL: https://tidesandcurrents.noaa.gov/api/datagetter?begin_date=20180326&end_date=20180401&station=s08010&product=currents&units=metric&time_zone=gmt&application=web_services&format=xml\n" + ] + } + ], + "source": [ + "# data, metadata = tidal.io.noaa.request_noaa_data(station='s08010', parameter='currents',\n", + "# start_date='20161101', end_date='20180401',\n", + "# proxy=None, write_json='data/s08010.json')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Principal Flow Directions\n", + "As an initial check on the data, a velocity plot can be created to identify data gaps. To consider the velocity in one of the principal flow directions we apply the `principal_flow_directions` function. This function returns 2 directions (in degrees) corresponding to the flood and ebb directions of the tidal site. Principal flow directions are calculated based on the highest frequency directions. These directions are often close to 180 degrees apart but are not required to be.\n", + "\n", + "The `plot_current_timeseries` function plots velocity in either direction using the speed timeseries. " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# Specify histogram bin width for directions to calculate the principal flow directions\n", + "width_direction = 1 # in degrees\n", + "\n", + "# Compute two principal flow directions\n", + "direction1, direction2 = tidal.resource.principal_flow_directions(\n", + " data.d, width_direction\n", + ")\n", + "\n", + "# Set flood and ebb directions based on site knowledge\n", + "flood = direction1 # Flow into\n", + "ebb = direction2 # Flow out" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The time series of current data can be plotted using the `plot_current_timeseries` function, which can include either the flood or ebb directions." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Joint Probability Distribution\n", - "\n", - "Direction and velocity can be viewed as a joint probability distribution on a polar plot. This plot helps visually show the flood and ebb directions and the frequency of particular directional velocities. " + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABjUAAAMWCAYAAAC5gwQ2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd5wdVd0/8M+WbHqHUJKQANKrEKlSBdToozx2RVAUFbEhj+WnKEVBUOnSewepoYWQTkJ6732zm+xutvd297bfHze7O3d35k47M+fMzOftyxebW2a+d8qZmfM9JS+dTqdBRERERERERERERESkuHzZARAREREREREREREREVnBpAYREREREREREREREQUCkxpERERERERERERERBQITGoQEREREREREREREVEgMKlBRERERERERERERESBwKQGEREREREREREREREFApMaREREREREREREREQUCExqEBERERERERERERFRIBTKDiDqUqkUKioqMHz4cOTl5ckOh4iIiIiIiIiIiIjId+l0Gi0tLTj00EORn2/cH4NJDckqKiowceJE2WEQEREREREREREREUm3d+9eTJgwwfB9JjUkGz58OIDMjhoxYoTkaOyJx+OYOXMmLrvsMgwYMEB2OBRRPA7JTzzeSDYeg6QCHoekEh6PJBuPQVIBj0PyE4838lJzczMmTpzYU2duhEkNybqHnBoxYkQgkxpDhgzBiBEjWIiRNDwOyU883kg2HoOkAh6HpBIejyQbj0FSAY9D8hOPN/KD2TQNnCiciIiIiIiIiIiIiIgCgUkNIiIiIiIiIiIiIiIKBCY1iIiIiIiIiIiIiIgoEJjUICIiIiIiIiIiIiKiQGBSg4iIiIiIiIiIiIiIAoFJDSIiIiIiIiIiIiIiCgQmNYiIiIiIiIiIiIiIKBCY1CAiIiIiIiIiIiIiokBgUoOIiIiIiIiIiIiIiAKBSQ0iIiIiIiIiIiIiIgoEJjWIiIiIiIiIiIiIiCgQmNQgIiIiIiIiIiIiIqJAYFKDiIiIiIiIiIiIiIgCgUkNIiIiIiIiIiIiIiIKBCY1iIiIiIiIiIiIiIgoEJjUICIiIiIiIiIiIiKiQGBSg4iIiIiIiIiIiIiIAoFJDSIiIiIiIiIiIiIiCgQmNYiIiIiIiIiIiIiIKBCY1CAiIiIiIiIiIiIiokBgUoOIiIiIiIiIiIiIiAKBSQ0iIiIiIiIiIiIiIgoEJjWIiIiIiIiIiIiIiCgQmNQgIiIiIiIiIiIiIqJAYFKDiIiIiIiIiIiIiIgCgUkNIiIiIiIiIiIiIiIKBCY1iIiIiIiIiIiIiIgoEJjUICIiIiIiIiIiIiKiQGBSg4iIiIiIiIiIiCJtxsZK7KxukR0GEVlQKDsAIiIiIiIiIiIiIlkW76zFtS+uAgCU3PklydEQkRn21CAiIiIiIiIiIqLI2lDeJDsEIrKBSQ0iIiIiIiIiIiIiIgoEJjWIiIiIiIiIiIiIiCgQmNQgIiIiIiIiIiIiIqJAYFKDiIiIiIiIiIiIiIgCgUkNIiIiIiIiIiIiiqy8PNkREJEdTGoQEREREREREREREVEgMKlBRERERERERERERESBwKQGEREREREREREREREFApMaREREREREREREREQUCExqEBERERERERERERFRIDCpQUREREREREREREREgcCkBhERERERERERERERBQKTGkREREREREREREREFAhMahAREREREREREVFk5SFPdghEZAOTGkREREREREREREREFAhMahARERERERERERERUSAwqUFERERERERERERERIHApAYREREREREREREREQUCkxpERERERERERERERBQITGoQEREREREREREREVEgMKlBRERERERERERERESBwKQGEREREREREREREREFApMaREREREREREREFFl5ebIjICI7mNQgIiIiIiIiIiIiIqJAYFKDiIiIiIiIiIiIiIgCgUkNIiIiIiIiIiIiIiIKBCY1iIiIiIiIiIiIiIgoEJjUICIiIiIiIiIiIiKiQGBSg4iIiIiIiIiIiIiIAoFJDSIiIiIiIiIiIiIiCgQmNYiIiIiIiIiIiIiIKBCY1CAiIiIiIiIiIiIiokBgUoOIiIiIiIiIiIiIiAKBSQ0iIiIiIiIiIiIiIgoEJjWIiIiIiIiIiIiIiCgQmNQgIiIiIiIiIiIiIqJAYFKDiIiIiIiIiIiIiIgCgUkNIiIiIiIiIiIiIiIKBCY1iIiIiIiIiIiIAi6ZSqOsoV12GEREnmNSg4iIiIiIiIiIKOCufWkNPvvPeZi1uUp2KEREnmJSg4iIiIiIiIiIKODmb68FANz8zkbJkQRPXl6e7BCIyAYmNYiIiIiIiIiISFlPfbIb5945F3vrObSSFRVNnbJDICLyFJMaRERERERERESkrL+/vxnljR2448MtskMJpM54Eul0WnYYRETCMKlBRERERERERERK6ehK4r8r9qC6pbfXQSLJinm7qls6cexfZ+Cqp5fLDiWQVpTU444Pt6AznpQdChFpFMoOgIiIiIiIiIiISOsf07fghaWlmDhmcM9rTGnY9+7aCgDAwh21kiMJpm8+ugQAMHxgIX558VGSoyGibuypQURERERERERESpm9pQoAsLe+Q3IkwcYJsMUorm2THQIRaTCpQURERERERERESoklUrJDCIV85jSIKISY1CAiIiIiIiIiIqXUt3XJDiEUmNOwhhOpEwULkxpEREREREREREQUWe+uq5AdAhHZwKQGERERERERERFRCOVz/ClL1pc1yQ6BiGxgUoOIiIiIiIiIiCiEmNKwb19TB254bS02ljPRQaSqQtkBEBERERERERERmeG0Bw7kMa1h129eXYvlu+vx1upy2aEQkQH21CAiIiIiIiIiIgohpjTs21nd2v9FJtSIlMKkBhERERERERERUUCVN3YY9mJhRw37uMmI1Mfhp4iIiIiIiIiIiALohSUl+Os7m3DuQfrtlvNYRS8GNyORUthTg4iIiIiIiIiIKID+NWMbAGBRlUFSg5XxYnD4KSKlMKlBREREREREREQUQsxp2MdEEJH6mNQgIiIiIiIiIiIKIpMKeFbQZ3TGk5i1uQqtsYSFT3OjEamOSQ0iIiIiIiIiIgoAjgHUj8km4ZwaGbd/sAU/eX4lfvbCStmhEJEATGoQERERERERERGFEHtqZPx35V4AwKKddaaf5TYjUh+TGkREREREREREREFkOvwUa+gBIN/GZuAWI1IfkxpEREREREREREQhxAr6jHwmd4hChUkNIiIiIiIiIiKiEGJdfgY3A1G4MKlBREREREREREQUQkxqZNjpqcFtRqQ+JjWIiIiIiIiIiIgCyKz+PY99FADYS1RwmxGpj0kNIiIiIiIiIiKiEGKvgwyjCdPrWmOobOr0OZrw2V7Vgg/W75MdBkVIoewAiIiIiIiIiIiIiLxilNw5/bbZ/gYSIHvq2rG0uA7/e9p43PLuJizfXY/3fvVZFOh89rJ7FwAARg85E+d86gB/A6VIYlKDiIiIiIiIiMhH766rwNEHDcOxB4+QHUqgpNOyIwiOBdtrsLKkHkeO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WREREREREVG61FeWJCIiIiJdGVD6AgCQ40k8b8WsYEddRQF+/a1xSV/vW5xrUkuIiIiIiIjIabhSg4iIiMgkRq9QeOCM8ehbnIvfnzNR98/Ws+0XzxmIE8f3w+/OmRgLwJTkeXXcAhERERERETkVV2oQEREROcSCoVVYMLTK6mYoyvd58KPjRwEAnrhwKn76whpcs3iIxa0iIiIiIiIiO2BQg4iIiIgsM7xvER46a4LVzSAiIiIiIiKbYPopIiIiIpNYXcCbiIiIiIiIyO4Y1CAicijJqArERGRblQG/1U0gIiIiIiIiygjTTxEROVQ4bHRJYiKym2sPG4Jdh9pw0vhqzb/LSwoRERERERGJgEENIiIioixRmp+DB84Yb3UziIiIiIiIiNLG9FNEREQkvNuPGgYA+PnJo61tCBERERERERFZiis1iIiISHinT6nBCeOr4fe6rW6KrpjSiYiIiIiIiEgbrtQgInIoFgonp3FaQIOIiIiIiIiItGNQg4iIiMgijD0SERERERERacOgBhERERERERERERER2QKDGkREDhVmsn4iIiIiIiIiInIYBjWIiIiITGLvWjcMlBIREREREZH1GNQgInIoew+eEmWH48b2s7oJRERERERERLbisboBRERERNlCnhbur+dPwYSaEgtbQ0RERERERGQ/XKlBREREZIHR1cW2WlE1fWA5AKAi4LO4JURERERERJTNuFKDiIiIiBTdfvRwDOtThCUje1vdFCIiIiIiIspiDGoQERERWSBss8LbAb8X355ZZ3UziIiIiIiIKMsxqEFE5FBj+xdjSK8ABpTlWd0UIupkp3RTRERERERERCJiUIOIyKE8bheeuWwGB1GJiIiIiIiIiMgxWCiciMjBGNAgIiIiIiIiIiInYVCDiIiIiIiIiIiIiIhsgUENIiIiIpP0KfYDACQJ8LrYDSMiIiIiIiLSijU1iIiIiEzi87jx6a2L4JYkuFxMD0dERERERESkFYMaRERERCYq8LH7RURERERERJQu5j0gIiIiIiIiIiIiIiJbYFCDiIiIiIiIiIiIiIhsgUENIiIiIiIiIiIiIiKyBQY1iIiIiIiIiIiIiIjIFhjUICIiIiIiIiIiIiIiW2BQg4iIiIiIiIiIiIiIbIFBDSIiIiIiIiIiIiIisgUGNYiIiIiIiIiIiIiIyBYY1CAiIiIi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", + "text/plain": [ + "
" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ax = tidal.graphics.plot_current_timeseries(data.d, data.s, flood)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The plot above shows missing data for most of early and mid-2017. The IEC standard recommends a minimum of 1 year of 10 minute averaged data (See IEC 201 for full description). For the demonstration, this dataset is sufficient. To look at a specific month we can slice the dataset before passing to the plotting function." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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cITYUNVjelxWQXT4eNhsNpo0acKgQYPo06cPLpeL+fPns2zZMnJzc8/avLWNZs2a0aVLF1auXEl2dvZJx5+vYtiibdu2qKrqjWbVBpo0acK9997LnXfeidPpPPkOQaoMHVEtj9PlnXfeISEhgYkTJzJ69Gj++c9/MnToUF5//fUKLen27dtHampqpS2YXnvtNVq0aMFTTz3FoEGDuP/++7nyyiu58MILUVWVDz74oEbe/A9GiKuQRx99lPfff5+srCwaNmx40vFvvvkm99xzD7t27WLEiBHcd9999O/fn++//56+ffvy9ddf/6Hxp8OWLVt4/PHHj9vW5kzmvuWWW5g+fTrXXnstvXv35p577uGDDz444zUG8eF0Ornzzju57777Ktjqn69IKVm9ejXx8fE0adKkupdzRpyqKHY6nSxZsgRd1+nXr1+t6n/5Rzi8L4/nb5/CP8a+we8/rA7Y5na7SekUwy0v9KfbsCY4tCi6d+pFnch6DLyoC//+/h72Z+eimyox91Ahy+ZtweX0UHS0FPArnxWgKIKufZobIVspCS13IhW/WuBjRKSugPDoxhjV2CgFRmqx+bVloCUF6H77q/gEgdtpC1iH93/p+15Ty7Br4Rxj6YVHGgYtUhpBZ93vT7gANOHEI3V0cwKX1LxBbV/NsN8dACGQIX5fW2ZhUqLofge29tN9Cz94oIDx919k1mb7XqwupZEqfYya7zG4jTfd3aLPyPZ0Hdias40Qgri4OLp168aIESOIjo5m2bJlLF68mEOHDh3XzTmIj6SkJHr16sWGDRu89YSVcb6LYTDSxbt3786+ffvYt29fdS+nynjkkUcQQvDaa69V91KC1ECslnQTJkwgPT2dV199lZ07dzJx4kTS0tJO2lfdIiEhgfT0dO655x6ys7N54403mDdvHhdffDGLFi3iyiuvPMuv5MwIFtRUIR9++CEtW7akSZMmvPDCC/zzn/884fiePXuycOFCBgwYEPD8okWLGDZsGHfccQeXXXaZN230dMefKpqmMX78eDp16kSrVq347LPP/vBay8rKmD59Oj/99JM3myApKYkpU6Zw6623ntb6glTk1VdfRQjBww8/XN1LqTK2b99OaWkpPXr0OK9NcE5WU1xeXs7SpUuJjIykW7du1XLBmHuwgDf/+V/27z7CsLE9uOrOETXinD9+43vs2XkY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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Set the joint probability bin widths\n", - "width_direction = 1 # in degrees\n", - "width_velocity = 0.1 # in m/s\n", - "\n", - "# Plot the joint probability distribution\n", - "ax = tidal.graphics.plot_joint_probability_distribution(data.d, data.s, \\\n", - " width_direction, width_velocity, metadata=metadata, flood=flood, ebb=ebb)" + "data": { + "image/png": "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FStWRPph2bJlAIDVq1djcHAQ999/P6666ipceumlfd93IcJxW9xxe88992Dz5s049thj8ZznPKfrekcffTQuuuiivu+/kOC4Le643blzJ04//XTceuutOOqoo3Duuedi7969+NKXvoTHH38cV155JV7/+tf3ff+FAsfs3I3ZLVu24JZbbsHixYux//7747bbbsNLXvIS/Nd//Zf156+//no8+9nPxkknnYQDDzwQy5cvx7Zt2/C1r30N999/P8466yx885vfRK1W67sNCwWO2+KO22uuuQY333yz9b3//M//xF133YX3vve9eMtb3tJ3GxYKHLdzM26zXI9nsng4bos7bnkmi4fjtrjjdi7PZEUcB/o9qtUq/uAP/gAHHXQQtm7dii984QvYvn07XvWqV6Uy7M/MzODcc8/FD3/4Q5x44ok455xzcP/99+Pqq6/G4OAgvvOd7+Ckk06K/E7a/V0vSmUL9Ulp+Pa3v+1fc801fqPRiLz+8MMP+xs2bPAB+FdffXXw+q5du/yVK1f6g4OD/k9/+tPg9ampKf/kk0/2Afif/vSnI9e6//77/e9973v+rl27fN/3/TPPPNMH4N9xxx2p2/tXf/VXPgD/TW96U6rf+8UvfuHfdNNN/szMjO/7vg/AX79+fezPp+2XfjjvvPN8AP4HPvCByOtvetObfAD+a1/72sjrMzMz/le/+lX/oYce8n3f9y+77DIfgH/VVVeluu9ChOPWThHG7d133+0D8F/+8penus++AMetnSKM2ze84Q0+AP/CCy/06/V68Ppjjz3mb9q0yR8YGPBvv/32VG1YCHDM2sljzH7nO9/xf/e73/mtVsu/7rrrfAD+S17yktifn5mZ8ZvNZtfrs7OzQR9+5jOfSdWGhQLHrZ0ijNs4duzY4Y+MjPiDg4P+448/nvr3FwIct3akx22W6/FMFg/HrZ0ijFueyeLhuLVThHE7l2eyoo6DI444wgfgX3/99V3tWrVqlQ/Av+eee/r+O//+7//eB+BfdNFFkbPDNddc4wPwjzzyyK4zhdT+TlEmWygdGguEd7/73T4A/0//9E+D1z760Y/GLozf/va3fQD+6aefnnjdrJN5vV7316xZ4wPwf/vb36b6XZNek3kStn7pxe9//3sfgL958+auyWL37t3+okWL/JGREX/Pnj2x1+DmuT84bu3M1bjl5jkbHLd25mrcqk3rrbfe2nW9f/7nf/YB+G9+85sz/Q0LFY5ZO1nGrInrweGKK67wAfjvfve7M7dhocJxa2e+x+0HPvABH4D/whe+MPP9FzIct3Ykxm2W6/FM1h8ct3bmatzyTJYNjls7czVui3Imm89xMDw87I+Pj1vfe9aznuUD8H/2s5/19Xe0Wi1/48aNPgD/rrvu6nr/9NNP9wH43/72t2Ov4XouKZstlDU0FgiDg4MAgIGBgeC16667DgDw9Kc/vevnzzjjDIyOjuJHP/oRZmZmxNvzxS9+EY888gjOOOMMHH744eLX7xdbv/RC9dt5552HSiX6iIyNjeHUU0/F1NQUbrzxRrmG7qNw3NqZ63H70EMP4cMf/jD+/u//Hh/+8Ifxy1/+0qH1Cx+OWztzNW4feeQRAMCBBx7YdT312re+9a10jV/gcMzayTJmJWk2m4HG8DHHHDMvbSgyHLd25nvcXnXVVQCA17zmNfNy/6LDcWtHetzO93Ow0OC4tTPX45ZnsnRw3NqZq3FblDPZfI6Do48+Grt378Z3v/vdyOuPPvoobrzxRqxbtw5HHnlkX9e68847cd999+Gwww7D5s2bu94///zzAYR/Wx6UzRZKh8YCoNFo4JOf/CSA6AN7++23AwAOOeSQrt+p1WrYvHkzGo0G7rrrLvE2feQjHwEAvPa1rxW/dr/E9UsvkvpNf/13v/udYwv3bThu7czHuP3mN7+JP/qjP8Lb3vY2/NEf/RGOPfZYnH322bjvvvvSNn/Bw3FrZy7H7cqVKwEAd999d9fPq/5V1yUcs3FkHbMubN26Fe985ztx2WWX4U/+5E9w+OGH49prr8Uf/uEf4pnPfOactKEscNzamY9xq/OjH/0Iv/rVr3DooYfi7LPPnvP7Fx2OWzvS43a+n4OFBsetnfkYtzyT9Q/HrZ25HLdFOJPN9zi48sorsWTJEpx33nl4wQtegLe+9a249NJLceSRR2Lp0qW45pprMDIy0te1imCHLEIb0kCHxgLgr/7qr3Drrbfi/PPPx9Oe9rTg9V27dgEAlixZYv099frOnTtF23PPPffgW9/6FlasWIHnPe95otdOQ1y/9GK++m1fg+PWzlyO29HRUbzjHe/Az3/+c+zYsQM7duzAd7/7XZx99tm4/vrrg8JeJITj1s5cjltl+H3nO9+JZrMZvL5t2za8//3vB9AuqDY1NZXqb1iocMzayTpmXdi6dSve9a534fLLL8e//du/4c4778Rf/uVfpioWuK/AcWtnPsatjjLWvPrVr57ze5cBjls70uN2vp+DhQbHrZ25HLc8k6WH49bOXI7bIpzJ5nscnHLKKfjRj36EQw89FFdffTXe85734GMf+xjq9Tpe/vKX4wlPeELf1yqCHbIIbUhDbb4bQNy44oor8I//+I847LDD8B//8R+pftf3fQCA53mibbrqqqvQarXw8pe/HENDQ13vv/Od7+x67ZJLLsGmTZvE2pDUL/fccw8+8YlP9NUuG3n1274Ex62duR63q1atwuWXXx75uTPOOAPXXnstTjvtNNx444346Ec/ije84Q3p/pAFCsetnbket5dffjmuvfZaXH311fjtb3+Lc889F5OTk/jiF7+IsbExjI6OYnJyEtVqNfPftFDgmLWT55hN4vDDD4fv+2g2m3jwwQfxhS98AX/zN3+D733ve/jKV76C5cuXO99jIcBxa2e+xq1i165d+OxnP4vBwUFccsklYtddKHDc2pEety79TLrhuLUz1+OWZ7J0cNzametxO99nsiKMg2984xt40YtehCc+8Yn45Cc/icMPPxyPPPII/uVf/gVve9vb8JWvfAXf/e53Uau1Te8u40CizQvOFpp7lQ6SG6qQ5BFHHOE//PDDXe+feOKJiUVojjrqKB+A/5vf/Cb2HmkLItXrdX/t2rU+AP+2226z/gyArn/XXXdd7DWRsiBSr35RhXLMf4q3vOUtPgD/fe97n/X6f/qnf+oD8D/4wQ/GtoEF6OLhuLVThHGrc9VVV/kA/AsvvLDvv2Ehw3FrZ77G7WOPPea//vWv9zdv3uwPDAz4q1at8l/5ylf6d999t+95nr9kyZK+/4aFCsesHdcxG/fzWYvvfeYzn/EhWLix7HDc2inCuP2Xf/kXH2AxcBsct3akx22v69ngmSwejls7RRi3OjyTReG4tTNf43a+zmRFGAfbtm3zly5d6q9fv97fu3dv1/vPec5zfAD+xz/+8eC1pHHw5S9/2QfgP/OZz7Te7+qrr/YB+C94wQti29xrf7fQbKF0aJSU9773vT4A/+ijj/YfffRR68+85CUv8QH4n/rUp7req9fr/ujoqF+r1fzp6enY+6SdzD//+c/7APwzzzyzr5/vhzSTeT/90gu1aXjNa15j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", + "text/plain": [ + "
" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Slice December of 2017 out of the full dataset\n", + "dec17_data = data.loc[\"2017-12-01\":\"2017-12-31\"]\n", + "\n", + "# Plot December of 2017 as current timeseries\n", + "ax = tidal.graphics.plot_current_timeseries(dec17_data.d, dec17_data.s, flood)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Joint Probability Distribution\n", + "\n", + "Direction and velocity can be viewed as a joint probability distribution on a polar plot. This plot helps visually show the flood and ebb directions and the frequency of particular directional velocities. " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Rose plot\n", - "\n", - "A rose plot shows the same information as the joint probability distribution but the probability is now the r-axis, and the velocity is the contour value. As compared to a joint probability distribution plot, a rose plot can be more readable when using larger bins sizes." + "data": { + "image/png": "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cITYUNVjelxWQXT4eNhsNpo0acKgQYPo06cPLpeL+fPns2zZMnJzc8/avLWNZs2a0aVLF1auXEl2dvZJx5+vYtiibdu2qKrqjWbVBpo0acK9997LnXfeidPpPPkOQaoMHVEtj9PlnXfeISEhgYkTJzJ69Gj++c9/MnToUF5//fUKLen27dtHampqpS2YXnvtNVq0aMFTTz3FoEGDuP/++7nyyiu58MILUVWVDz74oEbe/A9GiKuQRx99lPfff5+srCwaNmx40vFvvvkm99xzD7t27WLEiBHcd9999O/fn++//56+ffvy9ddf/6Hxp8OWLVt4/PHHj9vW5kzmvuWWW5g+fTrXXnstvXv35p577uGDDz444zUG8eF0Ornzzju57777Ktjqn69IKVm9ejXx8fE0adKkupdzRpyqKHY6nSxZsgRd1+nXr1+t6n/5Rzi8L4/nb5/CP8a+we8/rA7Y5na7SekUwy0v9KfbsCY4tCi6d+pFnch6DLyoC//+/h72Z+eimyox91Ahy+ZtweX0UHS0FPArnxWgKIKufZobIVspCS13IhW/WuBjRKSugPDoxhjV2CgFRmqx+bVloCUF6H77q/gEgdtpC1iH93/p+15Ty7Br4Rxj6YVHGgYtUhpBZ93vT7gANOHEI3V0cwKX1LxBbV/NsN8dACGQIX5fW2ZhUqLofge29tN9Cz94oIDx919k1mb7XqwupZEqfYya7zG4jTfd3aLPyPZ0Hdias40Qgri4OLp168aIESOIjo5m2bJlLF68mEOHDh3XzTmIj6SkJHr16sWGDRu89YSVcb6LYTDSxbt3786+ffvYt29fdS+nynjkkUcQQvDaa69V91KC1ECslnQTJkwgPT2dV199lZ07dzJx4kTS0tJO2lfdIiEhgfT0dO655x6ys7N54403mDdvHhdffDGLFi3iyiuvPMuv5MwIFtRUIR9++CEtW7akSZMmvPDCC/zzn/884fiePXuycOFCBgwYEPD8okWLGDZsGHfccQeXXXaZN230dMefKpqmMX78eDp16kSrVq347LPP/vBay8rKmD59Oj/99JM3myApKYkpU6Zw6623ntb6glTk1VdfRQjBww8/XN1LqTK2b99OaWkpPXr0OK9NcE5WU1xeXs7SpUuJjIykW7du1XLBmHuwgDf/+V/27z7CsLE9uOrOETXinD9+43vs2XkY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", + "text/plain": [ + "
" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Set the joint probability bin widths\n", + "width_direction = 1 # in degrees\n", + "width_velocity = 0.1 # in m/s\n", + "\n", + "# Plot the joint probability distribution\n", + "ax = tidal.graphics.plot_joint_probability_distribution(\n", + " data.d,\n", + " data.s,\n", + " width_direction,\n", + " width_velocity,\n", + " metadata=metadata,\n", + " flood=flood,\n", + " ebb=ebb,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Rose plot\n", + "\n", + "A rose plot shows the same information as the joint probability distribution but the probability is now the r-axis, and the velocity is the contour value. As compared to a joint probability distribution plot, a rose plot can be more readable when using larger bins sizes." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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vCdPnsyHH36Im5sbL7/8MnZ2dmzdupXp06ezfft2du3ahaWlZa7za7VaevTowY0bN3j66acxNzfn999/Z+rUqWRmZjJnzpyH/o0Mr5sbN26QlpaGvb39Q48xSEpKon379lhaWjJgwAA0Gg2//vorI0aMwMzMzHjDxeCll15i3bp1eHl5MWLECFQqFRs3bmTMmDHs27cvz42eKVOmYGZmRuvWrfH09CQpKYmQkBAmTpzIkSNH+Pnnnwsd679FR0cTEhKCtbU177333kP3v//1d//17N+/n6effhpHR0e2bt3KokWLuHXrFqtWrSqRa3nvvff43//+R58+fejRowe7d+/m22+/5fz58+zduzfP/kV9TaxYsYLXX38da2tr+vbtS/Xq1blw4QLffvstW7Zs4fDhw3h5eT30+Sltf/31F3fu3MHHx8f4mn2YNWvWAPfeh65cucLWrVtJSkrCy8uLp556isqVK5dmyEIIUb4pQgghiuzEiROKhYWFolKplJdffln55ZdflMuXLz/wmPnz5yuA0rt3b0Wr1RrL4+LilBo1aiiAsn//fmP57t27FUCZNWtWvvV5e3sr3t7eucpWrFihAMqKFSvyPWbWrFkKoDg4OCgnT57Mte3FF19UAGXt2rW5ymNiYhSdTpenrq+++koBlAULFuQbg1qtVvbu3Wssz8nJUbp166YASqVKlZQff/wx13Gvv/66Aii///57rvLAwEAFUGrXrq3cuXPHWJ6Zmam0adNGAZTVq1fnOgZQAgMD830ODhw4oACKt7e3Eh8fbyzXarVKr169FECZN29ermO8vb0VQHn66aeVjIwMY3l8fLxSqVIlxdHRUcnOzs73fPfT6/VK69atFUBp3Lix8tlnnylHjhxRNBrNA48DFEB57bXXcv0toqKiFLVardSrVy/X/j/99JMCKC1atFDS0tKM5WlpaUpAQIAC5Hn+L168mOe8OTk5yssvv6wASlhYWK5tQ4cOVQAlOjr6ode9atUqBVDat2//0H3/zfD3DwgIUBITE3Ndi5+fn2JmZqbcuHGjRK7Fy8tLuXLlirFcq9UqHTt2VADl8OHDuY4p6mvi3LlzioWFhVK7du088YaEhChmZmZKv3798r32wjLsv3v37ofua7jmfv36KbNmzVJmzZqlTJ06VXnxxRcVOzs7xdvbWzl48GChz+3o6KhYW1sr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w8bGhtq1a7NixYoixVIcknQLIcQTSKfTsWHDBrp27UqDBg2IjIzk+++/Jzo6mvnz51O1alVTh/jYkDHdoiiCgoL47bffuHbtGn369OH999+natWqjBs3jrNnz5o6PCGeOObm5gwZMoSVK1fmSlTXr19PdnY2L7/8MpGRkfTs2ZNnn32WkydPsm7dOg4cOMDYsWPzrVNRFIKDg7lz5w579+5l586dXLp0KddEhH/++SfPPvsszzzzDMePHyckJIQWLVrkW9/Ro0cBWLFiBTdv3uTo0aP4+PjQrVu3PAnlihUrGDZs2ANbkD/66CMaN27MX3/9xdSpU5k4cSI7d+584PM0ffp03n33XU6cOEGdOnV48cUX0el0wL1VC7Kysti3bx+RkZF88MEH2NvbP7C+/GRkZPDZZ5+xdu1atm/fzp49e3j22WfZunUrW7du5YcffuCbb77h119/zXXc5s2b6devHwD/+c9/OH36NNu2bePMmTN8+eWXuLq6FjmWIlOEEEI8MeLj45V58+Yp1apVU6pVq6a88847ytWrV00d1mMtNTVV2bx5sxKbdks5dedaqZ8vOztb+f3335Xs7OxSP5cofTk5Ocr27duV3r17K5aWlkpQUJDy+++/KzqdztShCVHhZWZmKqdPn1YyMzMfuN+ZM2cUQAkNDTWWderUSXnxxRcVRVGUwYMHK2+88UauY/bv36+YmZkZ6/b29lY++eQTRVEUZceOHYparc71+RsVFaUAypEjRxRFUZS2bdsqL7/8coEx3V+foigKoGzcuDHXPuvWrVOcnZ0VjUajKIqinDhxQlGpVEp0dPQD633qqadylQ0aNEh5+umn8z1XdHS0Aijffvttnms5c+aMoiiK0qhRI2X27NkFnvNh16YoirJixQoFUC5evGgsGzlypGJra6ukpqYay3r27KmMHDnS+LtGo1EcHByUkydPKoqiKH369FGGDx/+wPOvWLFCqVSp0kPjLOzrR1EURVq6hRDiCXD06FEGDx5MjRo12Lx5M/Pnz+fKlSssWrSIGjVqmDq8Ci1H0ROXcYdjCdFsufI3X5/ez+yjW3lz3y8M2rGC50N+QK/X0+23FTyz5UeycnSmDllUIIbZz7ds2cLFixdp0qQJI0eOxNfXlw8++IDExERThyjEY69evXq0a9eO77//HoBLly6xf/9+Xn31VQCOHTvG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3/zmN5w5c4bFixej0+n47LPPOHv2LKmpqd0afWVmZvLaa6/xzjvv4O19/dF1crmcCRMmYG9vz+HDh4mIiMDPb3BuGA11w63Hz8+PhoYG0tLSBn3qhZBYWFjw5ptv8rvf/Y67775baqomITHImDzS/emnnzJ16lRsbW2xtbVl6tSpPbrPASQlJSGTyVi3bh3Hjx/nxhtvxM7ODgcHBxYuXNij3ftQZN68eQZ9ud122209TCx0zrdLSEigpqaGU6dO9fv8vvLqq6+SmZnJJ598ctUvSUP31mg06HS6bhcPcrm8xyB6CcM5d+4cL774Im+++eaIShtuamoiPT2diRMn4uTkJLScazLYEe+mpib279+PTqdj1qxZkuE2EYOVYt7c1vn5KaWBGsbGjRvJy8ujoaGB9957r0/PmThxIuvWrevxb9GiRX3eV19KpVAoSEpK4p///Cd///vfycjIYNq0aWzbto2vvvqq6/yjR4+Snp7Oe++9xwcffMCHH37Iu+++2/W4no6ODu677z5mzJhh0M1qmUzGmDFjiI2N5cyZM5w6dcrk373DxXDrGT9+PJaWlpw4cYL/9hMeEdxyyy3MnTuX1atXCy1FQmLEYVLTvXr1apYuXcr58+e5//77Wb58OWVlZSxdupTHH3+81+ekp6cTHx+PmZlZV330jh07mDdvHiqVypRyhxT6O699nb1p6Pl6Tp8+zfr163nuuecYP368YSKvsbetrS0333wzd911F4899hiLFy/m9ddf5+677+7XHhL/Y9WqVcydO5dbbrlFaCmDhkajIT09HV9fX3x8fISW0ycGy3hXVlayf/9+3N3diY2NHTFRGyGYMn5wIkM6XafxNldAi6p9UPYUAwkJCQQHBw96ScXXX39NVVUVd911F5MnT+563NLSkhdeeAHonAurp6Skc+Z7TExM12PTpk3rdgzg9ddfJzs7m48++qhfr8nNzY1Zs2Zx6dIlUlNTaW83zXtpuBlu6AwCTJ48mdra2hHXWO3tt9/u6gkjISExeJgsvfzAgQO8+eabhIWFkZKS0jU/cv369UydOpWNGzdy2223ERfXfRzKjz/+yFdffcUdd9zR9di9997L559/zo4dO/pcZ7Vu3TqD9K5atQpHR0eDnmMqzp07x549e/Dw8CAiIsLo5+vp6Ohg6dKlhIWF8fTTTxtd66effspjjz3G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Emg0GtjZ2aFjx47o0qULfH19dcW6U6dOBjOLgIiIqClYuomIiJpIq9WivLwchYWFKCwsREFBge7PO2/FxcWorKyEmZkZHB0d4ejoCLlcDqlUqrtZW1vD2toaMpkMNjY2sLGxga2tLWxtbXUfy+VyyOXy+y4C9zClu7q6Gjdv3kR5eTnKyspQXl6OiooKlJeX49atW6ioqIBSqcStW7dw69Yt3L59G5WVlaisrMSNGzdw48YN3Lx5EwDg4OCgO8Dg6uqK9u3bo127dro/27VrBxcXF5ibm+vl34CIiKi1Y+kmIiJqAUqlskExv3HjRoNiW190KyoqcOvWLd3nKisroVQqUV1drduXubk5RCIRTExMYGJiApFIBLFYrLtPrVYD+PuggEajgVarhVqthlarhUqlgkqlAgCYmJhAKpVCJpPpir9MJoO1tTVsbGx0f955n7Ozs65QKxQKTv8mIiJ6AJZuIiIiA6BSqVBZWakbea4v1BqNBmq1usHH9WX8nzexWAyxWKwr0ZaWllyQjIiISM9YuomIiIiIiIj0pHUstUpERERERETUBrF0ExEREREREekJSzcRERERERGRnrB0ExEREREREekJSzcRERERERGRnrB0ExEREREREekJSzcRERERERGRnrB0ExEREREREekJSzcRERERERGRnrB0ExERGTi1Wo3Vq1cjLCwM9vb2MDU1hUKhQM+ePTFjxgz88ccfQkckIiIyWiKtVqsVOgQRERE1jVqtxvDhwxEXFwe5XI5hw4bBzc0NpaWluHTpEhITExEUFITDhw8LHZWIiMgoSYQOQERERE0XGxuLuLg4+Pv74+DBg7C1tW3w+Zs3b+LUqVMCpSMiIiJOLyciIjJgiYmJAICYmJi7CjcA2NnZITIysqVjERER0f9i6SYiIjJgTk5OAICMjAyBkxAREVFjeE43ERGRATt79iyCgoKgUqkwceJEREdHIzAwEN7e3kJHIyIiInCkm4iIyKD5+/vj559/houLC3766SeMHz8eHTp0gKOjI8aMGYOdO3cKli0mJgYikQjZ2dmCZfintWvXQiQSYe3atUJHISIiI8HSTUREZODGjh2LnJwc7Nq1C++//z6GDx8OtVqNzZs3Y9iwYZg+fTqaa2KbSCS6741lloiIqCGuXk5ERNQGmJqaIioqClFRUQD+vpTY77//jueffx5r1qzByJEjER0d3WyP9+GHHzZ6f0BAQLM9BhERUVvA0k1ERNQGicVijB8/HikpKVi0aBH27dvXrKX7o48+arZ9ERERtWWcXk5ERNSGWVtbA0CzTS9vLhs3bsSAAQNga2sLS0tL9OjRA5988gmqq6sb3f7kyZMYPXo0FAoFzM3N4enpiZdeegkFBQWNbn/p0iWMGzcOdnZ2kEqlCA4Oxp9//qnPp0RERNQojnQTEREZsNjYWDg6OmLQoEEwMWl4LL2oqAirV68GAISGhgoRr1Fvv/02Fi9eDCcnJ0yaNAlSqRQ7d+7E/PnzERcXh71798LMzEy3/bZt2zBu3DiIRCKMHTsWHh4eOHnyJFatWoVt27bh8OHD6NChg277zMxM9OvXDyUlJXj66acREBCAS5cuYdSoURg6dKgQT5mIiIwYSzcREZEBO3bsGJYvXw4XFxeEhIToLhWWlZWFHTt2oKqqCtHR0Rg7dmyzPm5j08u9vLwQExNz369LTEzE4sWL4enpiePHj0OhUAAAPv30U0RHR2Pnzp1YsmQJ5s+fDwBQKpV4/vnnodFokJCQgODgYN2+Pv30U7z77rt48cUXsWfPHt39M2fORElJCZYtW4ZZs2bp7t+2bRtGjRrV9CdNRETUBLxONxERkQHLzc3FH3/8gb179yI1NRWFhYWorq6Gg4MDevXqhYkTJ2LixIl3jYI3lUgkuufnwsLCcODAAd3fY2Ji8OOPPyIrKwteXl4AgBkzZuC///0vVq9ejRkzZjT4+vT0dHTr1g2enp64cuUKAGDDhg2YPHkyJk2ahA0bNjTYvq6uDj4+PsjJyUF2djY8PT2Rl5cHd3d3eHt7IzMzE2KxuMHXhIeH4+DBg/jhhx8eeICAiIioOXCkm4iIyIC5u7tj5syZmDlzZos+blOP2ScnJwMAIiIi7vpcly5d4ObmhqysLJSVlUEul993e1NTU4SFhWHdunVITk6Gp6enbvuQkJC7Cjfwf6WbiIiopXAhNSIiImox5eXlAAAXF5dGP9+uXbsG2zV1e2dn50a3v9d+iIiI9IWlm4iIiFqMra0tgL8XeWtMYWFhg+2aun1xcXGj299rP0RERPrC0k1EREQtplevXgDQ4NzvepcuXUJeXh68vb0hl8sfuL1KpcLhw4cBAL17926w/eHDh6FWq+/6msb2Q0REpE8s3URERNRinn/+eQDAokWLcP36dd39arUab7zxBjQaDaZPn667f9SoUbC3t0dsbCySkpIa7GvZsmW4cuUKIiMj4eHhAQBwc3PDU089haysLKxcubLB9tu2beP53ERE1OK4kBoRERG1mODgYLz11ltYvHgxevTogbFjx0IqleKvv/7C+fPnERISgjfffFO3vUwmw5o1azBu3DiEhYVh3Lhx8PDwwKlTp7B79264uLjgu+++a/AY33zzDfr164fZs2dj9+7d8Pf3x6VLl7BlyxaMGDEC27dvb+mnTURERowj3URERNSiPv/8c8TGxsLHxwfr1q3D119/DY1Gg0WLFmHPnj0wMzNrsH10dDQSExMxdOhQ7Nq1C1988QUuXryIf/3rXzh16hQ6dOjQYHsfHx8kJSVhzJgxSExMxPLly5Gbm4utW7di9OjRLflUiYiIeJ1uIiIiIiIiIn3hSDcRERERERGRnrB0ExEREREREekJSzcRERERERGRnrB0ExEREREREekJSzcRERERERGRnrB0ExEREREREekJSzcRERERERGRnrB0ExEREREREekJSzcRERERERGRnrB0ExEREREREekJSzcRERERERGRnrB0ExEREREREekJSzcRERERERGRnvx//LdVHQ0PisIAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Define bin sizes\n", - "width_direction = 10 # in degrees\n", - "width_velocity = 0.25 # in m/s\n", - "\n", - "# Create a rose plot\n", - "ax = tidal.graphics.plot_rose(data.d, data.s, width_direction, \\\n", - " width_velocity, metadata=metadata, flood=flood, ebb=ebb)" + "data": { + "image/png": "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vCdPnsyHH36Im5sbL7/8MnZ2dmzdupXp06ezfft2du3ahaWlZa7za7VaevTowY0bN3j66acxNzfn999/Z+rUqWRmZjJnzpyH/o0Mr5sbN26QlpaGvb39Q48xSEpKon379lhaWjJgwAA0Gg2//vorI0aMwMzMzHjDxeCll15i3bp1eHl5MWLECFQqFRs3bmTMmDHs27cvz42eKVOmYGZmRuvWrfH09CQpKYmQkBAmTpzIkSNH+Pnnnwsd679FR0cTEhKCtbU177333kP3v//1d//17N+/n6effhpHR0e2bt3KokWLuHXrFqtWrSqRa3nvvff43//+R58+fejRowe7d+/m22+/5fz58+zduzfP/kV9TaxYsYLXX38da2tr+vbtS/Xq1blw4QLffvstW7Zs4fDhw3h5eT30+Sltf/31F3fu3MHHx8f4mn2YNWvWAPfeh65cucLWrVtJSkrCy8uLp556isqVK5dmyEIIUb4pQgghiuzEiROKhYWFolKplJdffln55ZdflMuXLz/wmPnz5yuA0rt3b0Wr1RrL4+LilBo1aiiAsn//fmP57t27FUCZNWtWvvV5e3sr3t7eucpWrFihAMqKFSvyPWbWrFkKoDg4OCgnT57Mte3FF19UAGXt2rW5ymNiYhSdTpenrq+++koBlAULFuQbg1qtVvbu3Wssz8nJUbp166YASqVKlZQff/wx13Gvv/66Aii///57rvLAwEAFUGrXrq3cuXPHWJ6Zmam0adNGAZTVq1fnOgZQAgMD830ODhw4oACKt7e3Eh8fbyzXarVKr169FECZN29ermO8vb0VQHn66aeVjIwMY3l8fLxSqVIlxdHRUcnOzs73fPfT6/VK69atFUBp3Lix8tlnnylHjhxRNBrNA48DFEB57bXXcv0toqKiFLVardSrVy/X/j/99JMCKC1atFDS0tKM5WlpaUpAQIAC5Hn+L168mOe8OTk5yssvv6wASlhYWK5tQ4cOVQAlOjr6ode9atUqBVDat2//0H3/zfD3DwgIUBITE3Ndi5+fn2JmZqbcuHGjRK7Fy8tLuXLlirFcq9UqHTt2VADl8OHDuY4p6mvi3LlzioWFhVK7du088YaEhChmZmZKv3798r32wjLsv3v37ofua7jmfv36KbNmzVJmzZqlTJ06VXnxxRcVOzs7xdvbWzl48GChz+3o6KhYW1srixcvVszNzY2vWUCxs7NTvvvuu0LXJYQQjxtJuoUQopjWr1+vVK1aNdeXy8qVKyvPPvus8ueff+bZ38/PT1GpVMq5c+fybPvmm28UQBk+fLixrDST7hkzZuTZFhoaqgDKO++8U/BF30ev1yuOjo5Kly5d8o1h8ODBeY4xJF8dO3bMs23v3r0KoMyePTtXuSGR+HdirSj//xx17tw5V/mDku7XXntNAZTly5fn2Xb27FnFzMxM8fX1zVVuSLDyS+aGDBmiAEpkZGS+5/u3q1evKkFBQbleNxYWFkrr1q2Vjz76SElNTc1zDKDY2toqKSkpebZ16tRJAXJt69q1qwIoO3fuzLP/jh07FCDP360gERERCqDMmTMnV3lRku4PPvhAAZRBgwYV6pz3M/z9d+3alWfbzJkzFUDZsmVLoep62LV8++23eY75/vvvFUBZunRprvKiviYmTJigAPm+NyiKogQHBytmZmZKcnKysawsku78HjY2NsqkSZNy3eR6EI1GY7zRplKplClTpihXr15VEhMTle+//16xt7dXVCqVEhISUuhrEUKIx4l0LxdCiGIaMGAA/fr1Y/fu3Rw4cIDjx49z4MABNmzYwIYNG3j11Vf59ttvUalUpKamcunSJapXr06dOnXy1GUY//3XX3+VSewtWrTIU1ajRg3g3iRw99NqtXz99desXbuW06dPk5ycnGtM8PXr1/M9R/PmzfOUVatW7aHb8htXDhAYGJinrGPHjpibm3P8+PF8j8mPYd8uXbrk2Va3bl2qV69OdHQ0SUlJubrlOzk54efnl+eYgp63gtSoUYOQkBDOnDnDzp07iYiI4MiRI4SHhxMeHs6yZcsIDQ3NNV4foE6dOvl24zecPykpybj9+PHjmJmZ5fucdenSBbVanee1lpiYyEcffcTWrVu5fPlynmXLCvo7F4byz/jmRxnTW5TXbHGvpSjngKK9JsLCwoB7czUcOXIkzzG3bt1Cr9dz4cKFfP9/lJYVK1YYh2Hk5OQQGxvLqlWrmD17Nps3byYiIuKhwyAM4+RzcnJ4/vnnWbBggXHb8OHDSUtLY/z48XzwwQcEBQWV2rUIIUR5JUm3EEI8AgsLC3r06EGPHj2Ae186f/vtN1599VW+//57+vbtS79+/UhOTgbAw8Mj33qqVq0KYNyvtOU3+ZthYqt/TzQ1aNAgNm7cSM2aNenXrx8eHh7GMbdLlizJdyKrh53jQdsKWsvX3d09T5lhXeFbt27le0x+CvO3uHr1KsnJybmS7vxivj/uok425u/vj7+/v/H3s2fP8uqrrxIWFsbEiRPZuHFjrv2Lcv7k5GTj2vH57e/q6prrOUtKSqJly5ZER0fTqlUrhgwZgouLC+bm5iQlJfHpp58W+HcujIfdUCmMwr5mH+VaivL/oqD9CzomMTERgI8++ijfYwzS0tIeuL00qdVqvL29mTlzJufPn+enn35i6dKlTJ069YHH2draYmlpSXZ2Nv369cuzvX///owfPz7fmw1CCPEkkKRbCCFKkFqtZuDAgURGRjJv3jxCQkLo16+f8ct5XFxcvsfdvHkTyP0l3jCZmE6ny/eY5OTkAr/0l5SIiAg2btxI165d2bZtW64kTq/X8+GHH5bq+e8XHx+fZ5KpnJwcEhMTcXR0LHQ99/8t8mulzO9vURbq1avHDz/8QK1atQgJCXmkuipVqsSdO3fQarV5Em+dTkdCQkKu5+zbb78lOjqaWbNm5ZnlPSwsjE8//fSR4unQoQNw7/VU2q/b0r6W4jJcc3JycpFer6bSunVrfvrpp0InynXr1iUyMjLfmfednZ0ByMzMLMkQhRCiwpAlw4QQohQYuvkautU6ODjg5+fH9evXuXDhQp79d+/eDUBAQICxzPBF9dq1a3n2v3jxYr7LGKnVaqDora4FuXjxIgD9+vXLk7wdOXKkTL9E5zd79P79+9HpdDRr1ixXuZmZWYHPgWHfPXv25Nl28eJFYmNj8fX1LXDZrtL079dNcTVr1gy9Xs++ffvybNu3bx85OTm5XmuGv/Nzzz2XZ//8nvei8vX1pVu3bmg0moe29AKP1Kpe2tdSXG3atAHuvWYrAkPX+PyWl8uPYQm8qKioPNtOnToFkGfIhBBCPCkk6RZCiGJYs2YNO3fuzPcLaVxcHMuXLwegU6dOxvJXX30VRVGYNGlSroQwISGBuXPnGvcxqFevHo6OjmzatClXV+DMzEzGjx+fb1yGZXnyS9SLw/Al+d8J6q1btxgzZkyJnKOw5s6dm2uMrEajMXZ7/fdyWZUrVy7wOTA8x/PmzeP27dvG8pycHN599130ej2vvfZaSYcP3Fs667PPPst3GIGiKMyfPx/I/bopDsM1Tp06lYyMDGN5RkYGU6ZMAch1jYa/s+Hmj8Hx48dzjc99FEuXLsXR0ZEFCxawePHifHtwXL16lRdeeME4/rk4yuJaimPs2LFYWFgwceLEfJcazM7OLjcJ+d27d1mxYgWQe6m9Bxk5ciTm5uYsWbIk15rjGo2G6dOnA/DCCy+UeKxCCFERSPdyIYQohvDwcD799FM8PDzo0KEDvr6+wL2k6s8//yQzM5N+/foxYMAA4zHvvvsu27ZtY9OmTTRp0oRevXoZ1+m+desW7733nrEbLtwbL/72228ze/ZsmjVrRv/+/dHpdOzcuZNq1aoZx8ner23bttja2rJkyRISExON46DHjRtXrC69LVu2pH379mzYsIF27drRoUMH4uPj2bZtG3Xr1s03htJSv359GjRokGud7kuXLvHMM88wePDgXPt27dqVtWvX0q9fP5o1a4a5uTmdOnWiU6dOtGvXjvfee48PP/yQhg0bMmDAAOzs7Ni2bRunTp2iQ4cOTJo0qVSuITk5mbfeeotJkybRvn17GjZsiIODA7du3SI0NJTLly9TpUoVFi9e/Ejneemll9i0aRO//PILDRo0IDg4GJVKxe+//050dDQDBw7k5ZdfNu4/ZMgQPvroIyZOnMiePXuoXbs2Fy5c4I8//uDZZ59l3bp1j3rp1KtXj//9738899xzvPvuu3z66ad07dqVatWqkZ6ezt9//83BgwdRqVRMnjy52Ocpi2spjnr16vH999/z6quv0qBBA5566inq1KmDVqvl6tWr7N+/Hzc3N86ePfvI51q4cCErV67Md9v48eNz9XL4/fffiYmJAf5/IrUtW7aQmJhIy5YtGTVqVKHOWa9ePT744APeeecdGjduTHBwMLa2tvzvf//j/PnztG7d+pH+rkIIUaGZdO50IYSooK5evap8/vnnSnBwsFKnTh3FwcFBsbCwUDw8PJSnn35a+eGHH5ScnJw8x2VmZirz589XGjRooFhbWyv29vZK+/btlZ9//jnf8+j1euWDDz5QatasqVhYWCg1atRQJk2apKSnp+e7ZJiiKMq2bduUNm3aKHZ2dsYlgAzLOhmWDMtvSaHo6GgFUIYOHZqrPDExURk9erTi7e2tWFlZKTVr1lSmTp1aYAwPWrbsQcugFXR+wzJIGo1GmT59uuLj46NYWloqvr6+yuzZs/Nd4zo+Pl558cUXlSpVqihmZmb5nnPNmjVK+/btFXt7e8XKykqpX7++Mm/ePCUzMzNPfQU914ry4Of03zQajbJx40Zl9OjRSrNmzZQqVaoo5ubmiqOjoxIQEKBMmzZNuXXrVp7jeMASaAUt3ZWTk6N88cUXSvPmzRUbGxvFxsZGCQgIUD7//PN8X5tRUVFKnz59FDc3N8XW1lYJCAhQli9fXuDfpShLht0vNTVV+fjjj5XOnTsrbm5uua5/ypQpeda7f9CyWQW91kryWgp6zRb3NXHy5Ell6NChipeXl2Jpaak4OzsrDRo0UN544408S2oVd8mwBz02btyY65r//XBwcFBatmypfPjhh/n+X3iYP/74Q+nSpYvi6OioWFlZKf7+/sp///vfXGuZCyHEk0alKI84cEwIIYQoRZ07d2bv3r2PPM5ZCCGEEMIUZEy3EEIIIYQQQghRSiTpFkIIIYQQQgghSokk3UIIIYQQQgghRCmRMd1CCCGEEEIIIUQpkZZuIYQQQgghhBCilEjSLYQQQgghhBBClBJJuoUQQgghhBBCiFIiSbcQQgghhBBCCFFKJOkWQgghhBBCCCFKiSTdQgghhBBCCCFEKZGkWwghhBBCCCGEKCWSdAshhBBCCCGEEKVEkm4hhBBCCCGEEKKUSNIthBBCCCGEEEKUEkm6hRBCCCGEEEKIUiJJtxBCCCGEEEIIUUok6RZCCCGEEEIIIUqJJN1CCCGEEEIIIUQpkaRbCCGEqKBUKhUqlQpvb280Gk2++/j4+KBSqdDpdGUcnRBCCCFAkm4hhBCiwrt69SpLliwxdRhCCCGEyIdKURTF1EEIIYQQouhUKhXOzs7GluxLly7h6uqaax8fHx+uXLmCVqvF3NzcRJEKIYQQTy5p6RZCCCEqMFtbW/7zn/+QkpLCnDlzTB2OEEIIIf5Fkm4hhBCighszZgx+fn58/fXXnD9/3tThCCGEEOI+knQLIYQQFZyFhQULFy5Eq9UyZcoUU4cjhBBCiPtI0i2EEEI8BgYMGEDbtm3ZuHEjBw4cMHU4QgghhPiHJN1CCCHEY2Lx4sUAvPPOO8g8qUIIIUT5IEm3EEII8Zho27YtAwYM4MiRI/zyyy+mDkcIIYQQSNIthBBCPFYWLlyIhYUFU6dOJTs729ThCCGEEE88SbqFEEKIx4ifnx9vvvkm0dHRLF261NThCCGEEE88SbqFEEKIRzB79mxUKhV79uwp9DGdO3dGpVKVWkwzZ87EycmJ+fPnk5aWVmrnEUIIIcTDSdIthBBC3EelUj30ceLECVOH+UAuLi5MmzaNu3fvkpiYaOpwhBBCiCeauakDEEIIIcqjWbNmFbjNw8OjDCMpnvHjx7Ns2TJiYmJMHYoQQgjxRJOkWwghhMjH7NmzTR3CQz1oWTArKyuio6PLMBohhBBC5Ee6lwshhBAlZNWqVTRr1gwbGxuqVKnCq6++SlxcXIH7Z2VlMWPGDHx9fbGyssLPz485c+bIrONCCCHEY0SSbiGEEKIEfPLJJ4waNYomTZowYcIE6taty4oVK2jXrh23b9/O95iBAwfy/fff06dPH8aOHYtKpWL27Nk899xzD2zFFkIIIUTFId3LhRBCiHwU1L3c2tqaKVOm5Cnftm0b4eHhNGvWzFg2ceJElixZwpQpU/juu+/yHHPmzBmioqJwdnYGYP78+XTp0oU//viDH3/8kcGDB5fMxQghhBDCZFSK3EoXQgghjB62lFelSpVISkoy/j579mzmzJnDq6++miexTk5Oxtvbm6ysLJKSkrCysgLuLRm2d+9eVq9enSex3rNnD126dKFz587s3r27ZC5KCCGEECYj3cuFEEKIfCiKku/j/oT7foGBgXnKKlWqRNOmTdFoNJw5c6ZQx3Ts2BFzc3OOHz/+yNcghBBCCNOTpFsIIYQoAe7u7vmWG5YXS05OLtQxarWaypUrk5KSUrIBCiGEEMIkJOkWQgghSkB8fHy+5YbZyytVqlSoY3JyckhMTMTR0bFkAxRCCCGESUjSLYQQQpSAvXv35ilLTk7mxIkTWFtb4+/vX6hj9u/fj06nyzUhmxBCCCEqLkm6hRBCiBLwww8/5BmHPXv2bJKTk3nxxReNk6jdb+7cudy9e9f4u0ajYerUqQAMHz68dAMWQgghRJmQJcOEEEKIfBS0ZBhAcHAwTZs2zVXWq1cv2rdvz8CBA6latSoHDhzgwIED+Pj4sHDhwnzrqV+/Pg0aNGDAgAFYWFiwadMmLl26xDPPPCPLhQkhhBCPCUm6hRBCiHzMmTOnwG0+Pj55ku4JEybQv39/PvnkE9atW4e9vT3Dhg3j/fffp0qVKvnWs27dOubOnctPP/3EjRs38PT0ZPbs2UyZMuWhS5cJIYQQomKQdbqFEEIIIYQQQohSIi3dQgghRBlLT08nMTGR1NRUUlNTSUtLy/Wv4eeUlBTjv4afU1NTyczMRK/XGx85OTkoioJerzfOll61alVUKhVmZmbGh1qtRq1WY29vj4ODg/Hh6Oho/Pn+bYafDf86Ojri6uqKubl8fRBCCCEKS1q6hRBCiBKgKAqpqancuHGDmzdvGh/Xr1/nxo0bxvK4uDjS0tJQqVTY2trmetjZ2eX62c7Ozpj0Ojo6Gv+1s7MzJtAqlcr4s5mZGadOnSIpKYk2bdpgZmZGTk4OOp3OmKBnZ2cbE/n7E3zDIyMjw/hIT0/P9XtWVhZmZma4urri4eFB1apV8fT0pFq1alSrVo2qVasaHx4eHlhaWpr6zyKEEEKYnCTdQgghRCEoikJ8fDznz5/n/PnznDt3jujoaGMyHR8fT2ZmJtbW1ri6uuLi4oKjoyNeXl5UrVqVatWqUb16dby8vPD29qZKlSqo1eoSj1Or1bJ161Z69eqFhYVFidat0Wi4du0aV65c4erVq1y/ft147bdu3SIhIYGEhATu3LmDXq/HxcXFmJxXr16d2rVrU6dOHerUqUPt2rWxtbUt0fiEEEKI8kiSbiGEEOI+ycnJXLhwwZhcnz17lnPnznHx4kXS0tLw8PDA29sbHx8fvL298fT0NCbTPj4+uLi4YGZmRkpKCvv37+eZZ54p0/hLM+kurOzsbK5du2Z8xMbGEhsbS3R0tDFhT0tLo1q1atSuXZt69epRt25dY0Lu4+NjstiFEEKIkiaDsoQQQjyR4uPjOXbsGKdOneLcuXOcPXuWCxcucPv2bZycnIwt0rVq1SIoKIgGDRrQqFEjHB0dC1W/lZUVOp0OnU73xI2BtrS0xM/PDz8/v3y36/V6rl27RmRkJKdPn+bcuXNs2bKFK1eucO3aNRRFwdvbm7p161K3bl3q1atHs2bNaNSoEdbW1mV8NUIIIcSjebK+BQghhHgixcXFcezYMY4dO8bRo0c5duwYN2/exMvLizp16uDn58eAAQOoX78+jRs3pmrVqo98TktLS1QqFVlZWU9c0v0wZmZmeHt74+3tTe/evXNt0+l0nDt3jlOnTnH69GkuXLjAwYMHOXv2LBkZGfj7+9OyZUtatGhBQEAATZo0kURcCCFEuSbfAoQQQjxWbt68mSfBjo+Px9vbG39/f5o2bcqIESPo0KEDlStXLrU4VCoV1tbWaDQa7OzsSu08jxtzc3MaNGhAgwYNcpXr9XrOnDnDwYMHOXr0KKtXr2bq1KmkpaVRr149YyLevHlzmjRpgo2NjYmuoPRNnjyZiIgIzp8/T0JCAjY2Nnh7exMcHMzYsWPzfV0fOnSIefPmcfjwYTQaDbVq1eLVV19l3LhxRZ5boCh1xcXFMXHiREJCQlCpVHTt2pWPP/4YDw+PPPXOmDGDpUuXcvr0aTw9PYv2pAghRDkmY7qFEEJUWBkZGRw6dIgDBw4YE+xbt27h7e1N/fr1adq0Ka1bt6ZDhw64uLiUeXx79+6lVq1aZZpAlIcx3WVFr9dz/vx5498/MjKSM2fOkJqaSt26dWnZsiWtW7cmMDAQf39/VCqVqUMuEZaWlgQEBFC/fn2qVKlCeno6hw8fJiIigmrVqhEWFoaXl5dx/02bNvHcc89hbW3NoEGDcHFxYcuWLZw7d44BAwawfv36Qp+7KHXp9Xpat25NVFQUgwcPRlEUVq9eTePGjTl8+DBmZmbGff/++29atmzJ559/zhtvvFEyT5QQQpQTknQLIYSoMAxJ9u7duwkNDeXYsWNUrlyZgIAAAgICaNOmDe3bt8fJycnUoQIQHh6Om5sbNWvWLLNzPklJd370ej0XLlwwJuLHjx/n5MmT2NvbExgYSFBQEJ07d67QSbhGo8m3S/306dN5//33GTVqFF9++SUAKSkp+Pn5kZKSwsGDB2nRooWxjqCgIMLCwlizZg0vvPDCQ89b1LrCw8Np06YNK1euZOjQoQB89913jBgxgvDwcFq1agXcG1LQunVrHB0dCQ0NrbB/FyGEKIjZw3cRQgghTCMjI4OQkBBmzJhBu3btcHJy4pVXXuHkyZM8++yzHD9+nOvXr/Pnn38yd+5cnnnmmXKTcAPG7uWi7JiZmVG3bl1ee+01vvrqK8LDw7l79y6rVq2iRo0arF69mubNm1OlShWef/55vvzyS86cOUNFaoMoaAz7wIEDAbh06ZKxbP369SQkJPDiiy8ak2RDHfPmzQNg2bJlhTpvUeu6cuUKgDG5Bmjbtm2ubQCLFi3izJkzLF++XBJuIcRjScZ0CyGEKDcyMjIICwsztmRHRETg4uJCy5Yt6d+/P9988w3169fP1S21PLOysiIjI8PUYTzxrK2t6dWrF7169QLuvc52797Nzp07WblyJRMnTsTBwYHOnTsbW8Lr1atX4RLALVu2ANC4cWNj2e7duwF46qmn8uzfqVMnbG1tCQsLIysrCysrqwfWX9S6vL29AYiIiMDf3x+Ao0ePAhi3nTt3jjlz5jB37lxq1apVpOsVoqRptVpycnJMHYYo59RqdZF7kkn3ciGEECZ17tw5Nm/ezKZNmzhy5AjOzs60bNmSTp060atXrwqVZP9bTEwMN2/eNLbulYUnvXt5cdyfhB86dIiTJ0/i4OBA9+7dCQ4OpmfPnlSqVMnUYeaxaNEi0tLSSE5OJiIiggMHDtCsWTN27txpnEytZcuWREREEBERQfPmzfPU0bBhQ6Kiojh9+rQxMS5IUevS6/W0bNmSs2fPMmTIEOOY7oYNG3L48GFUKhWdOnVCo9Fw+PDhIk/oJkRJSUlJISEhgaysLFOHIioIKysrXF1dC72MqLR0CyGEKFM6nY6DBw+yefNmfv/9d2JjY2nZsiVPPfUUX375JQ0aNKiwSfa/WVlZSffyCsDW1pZnnnmGZ555BriXhO/atYstW7Ywbdo0XnnlFTp27EhwcDB9+vTBx8fHtAH/Y9GiRcTHxxt/f/rpp1m5cmWu2cuTk5MBCrxpYChPSkp66PmKWpeZmRlbtmxh4sSJ/Prrr6hUKvr168cnn3yCmZkZS5cuJTw8nIiICFJSUhg3bhybNm1Cq9XSo0cPvvzyS5nFXJS6lJQUrl+/jr29Pa6urlhYWFS4Xi6i7CiKglarJTk5mevXrwMUKvGWpFsIIUSpS0lJYfv27WzatIk///wTMzMzOnXqxPTp03n22WfL1TjskmRtbS0tJxWQra0tffv2pW/fvgBERkaybt06fvjhB95++23q1KlDcHAw/fr1o0WLFia7SRQXFwdAfHw8hw4dYsqUKTRt2pQ//viDgICAQtVh6PBYEklGfnVVq1aNdevW5dn3ypUrTJs2jSlTptC4cWOCg4PZs2cPX3zxBY6OjowdO5Znn33W2CIuRGlJSEjA3t6e6tWry2tNFIqNjQ0ODg7ExsaSkJAgSbcQQgjTiYmJYcuWLWzatIl9+/bh5eVFly5dWLduHV27dsXc/PH/CDIk3Xq9/rFpvX8SNWrUiEaNGjFv3jxu377NL7/8wh9//MFnn32Gra0tffr0oV+/fnTt2hVbW9syj8/d3Z3+/fvTvHlzateuzZAhQzh16hTw/63Phlbqf0tJScm134OUZF1vvPEGXl5ezJgxgwsXLrBp0ybmzp3LkCFDAEhNTWXIkCHs3r2boKCgh9YnRHFotVqysrJwdXWVhFsUiUqlolKlSly/fh2tVvvQ4VzyDUAIIUSJOXnyJDNmzKBhw4bUrl2bH374gTZt2nDs2DEuXrzI8uXL6dmz5xORcAPGiamktfvx4ebmxpgxY9i2bRsJCQl89dVXZGdnM3r0aFxcXOjduzffffcdd+/eLfPYvLy8qF+/PlFRUSQkJABQt25dAM6fP59nf51OR3R0NObm5oVa1q6k6lqxYgW7du3iu+++w9LSkjNnzgDkap03jBmPiop6aFxCFJdh0jSZ/0IUh+F1U5jJ9yTpFkII8UiuXr3KwoULqV+/Pq1bt+bo0aOMHj2aGzducOTIEebNm0ejRo1MHaZJmJmZYWlpKUn3Y8rKyor+/fuzevVqrl69yr59+/D39+eTTz7B3d2d4OBgfvvttzId13/jxg0A46Rkhlbi7du359l33759ZGRk0K5du4fOXF5Sdd28eZO3336bcePG0aZNG+D/u6Xf//9E5kIQZUlauUVxFOV1I0m3EEKIIrt79y7Lly+nU6dO+Pn5sWXLFkaNGsXNmzf53//+x5gxY3BzczN1mOWCTKb2ZDAzM6NVq1Z89NFHnDp1iiNHjlC9enUmTJiAu7s7I0aMYM+ePej1+kc6z9mzZ41jue+n1+uZPn06t27dol27djg7OwMwYMAAXF1dWbt2LREREcb9NRoNM2bMAGD06NG56kpOTubs2bPcvHkzV3lx6vq3MWPG4OTkxPz5841lDRo0AP5/ybP7fzZsE0KIiuzJ6N8nhBDikWk0GrZu3crq1avZunUrtWvX5rnnnuOHH34wrrkr8pLJ1J5MTZs25fPPP+ezzz5j586drFq1iv79+2NnZ8dLL73E4MGDi9UDZPv27UyaNMl4w6ty5crEx8ezd+9eLl++jIeHB8uXLzfu7+joyPLlyxkwYACdO3fmhRdewMXFhc2bN3Pu3DkGDBjAoEGDcp1j48aNDB8+nKFDh7Jy5cpHqut+v/zyCxs3bmTHjh3Y2dkZy2vVqkX//v1ZsWIFaWlpODo6snLlSlq1akWXLl2K/BwJIUR5Iy3dQgghCqTX69mzZw8jRozA3d2dt956C09PT8LDw4mKiuK///2vJNwPIS3dTzYzMzN69uzJzz//TFxcHB988AGRkZG0atWKBg0a8OGHH3Lt2rVC19etWzfeeOMNEhMT2bBhAx999BG//fYbLi4uzJo1i6ioKOrXr5/rmODgYPbu3UunTp347bffWLp0KRYWFnz88cesXbu2SF0ki1tXYmIi48aNY/jw4XTv3j3P9u+//54hQ4awY8cO1qxZQ+/evdmwYYN0+xWPDR8fH5YsWVJu6ytKvSqVit9//73Ez31/DCqVCpVKVajlDEuS4bwlvaqKSjEMpBFCCCH+cfr0aVatWsVPP/1Eeno6Tz31FMOGDaN79+4yC3cRRUVFodPpaNKkSZmcT6vVsnXrVnr16iWTA5Vjd+7cYfXq1fzyyy8cPXqUdu3aMWTIEAYOHIiDg4OpwxPiiaDRaIiOjsbX1xdra+t89+nTpw+ZmZns2rUrz7awsDDatWvHsWPHHrpMn4+PDxMmTGDChAklETq3b9/Gzs7OuGKCSqVi48aNBAcHP1K9hYkzLi4OZ2fnQs0FUdwYXnvtNV5//XXc3d1L5OaboXfOqFGjHrhfXFwc69atY9asWQ9N+Avz+jGQb05CCCGAe5MY/fzzz3To0IFmzZrx999/s3DhQuLi4lizZg09e/aUhLsYpHu5yI+LiwsTJkzg0KFDXLhwgY4dO/LRRx9RtWpVRo4cyfHjx00dohACeO211wgNDeXKlSt5tn3//fc0bdr0oQl3aXBzczPJEoUAHh4epZZwGzg4OODh4VEiCfedO3c4dOgQffr0eei+Hh4ehVr2sKjk25MQQjzhLly4wLvvvku1atWYOnUqgYGBxMTEsH37dl555ZVS/2B93FlbW0v3cvFAPj4+zJs3j7Nnz7J582YSEhJo164dLVu2ZMWKFWRkZJg6RCGeWL1796ZKlSq55jcAyMjIYN26dbz22msAHDp0iE6dOmFjY0ONGjUYP3486enpBdZ79epV+vXrh729PY6OjgwcOJD4+Phc+2zevJkWLVpgbW2Nq6srzz77rHHb/d3AfXx8AOjfvz8qlQofHx9iYmIwMzPLNekhwNKlS/H29uZBnZ1TU1N56aWXsLe3p1q1aixdujTX9vu7l8fExKBSqdiwYQNdunTB1taWJk2aEBYWZtz/ypUr9OnTB2dnZ+zs7GjQoAFbt24t8Pz5WblyJU5OTvzxxx/UrVsXW1tbBgwYQHp6OqtWrcLHxwdnZ2fGjRuXZwmvP//8kyZNmuDp6cndu3d5+eWXcXNzw8bGhtq1a7NixYoixVIcknQLIcQTSKfTsWHDBrp27UqDBg2IjIzk+++/Jzo6mvnz51O1alVTh/jYkDHdoiiCgoL47bffuHbtGn369OH999+natWqjBs3jrNnz5o6PCGeOObm5gwZMoSVK1fmSlTXr19PdnY2L7/8MpGRkfTs2ZNnn32WkydPsm7dOg4cOMDYsWPzrVNRFIKDg7lz5w579+5l586dXLp0KddEhH/++SfPPvsszzzzDMePHyckJIQWLVrkW9/Ro0cBWLFiBTdv3uTo0aP4+PjQrVu3PAnlihUrGDZs2ANbkD/66CMaN27MX3/9xdSpU5k4cSI7d+584PM0ffp03n33XU6cOEGdOnV48cUX0el0wL1VC7Kysti3bx+RkZF88MEH2NvbP7C+/GRkZPDZZ5+xdu1atm/fzp49e3j22WfZunUrW7du5YcffuCbb77h119/zXXc5s2b6devHwD/+c9/OH36NNu2bePMmTN8+eWXuLq6FjmWIlOEEEI8MeLj45V58+Yp1apVU6pVq6a88847ytWrV00d1mMtNTVV2bx5sxKbdks5dedaqZ8vOztb+f3335Xs7OxSP5cofTk5Ocr27duV3r17K5aWlkpQUJDy+++/KzqdztShCVHhZWZmKqdPn1YyMzMfuN+ZM2cUQAkNDTWWderUSXnxxRcVRVGUwYMHK2+88UauY/bv36+YmZkZ6/b29lY++eQTRVEUZceOHYparc71+RsVFaUAypEjRxRFUZS2bdsqL7/8coEx3V+foigKoGzcuDHXPuvWrVOcnZ0VjUajKIqinDhxQlGpVEp0dPQD633qqadylQ0aNEh5+umn8z1XdHS0Aijffvttnms5c+aMoiiK0qhRI2X27NkFnvNh16YoirJixQoFUC5evGgsGzlypGJra6ukpqYay3r27KmMHDnS+LtGo1EcHByUkydPKoqiKH369FGGDx/+wPOvWLFCqVSp0kPjLOzrR1EURVq6hRDiCXD06FEGDx5MjRo12Lx5M/Pnz+fKlSssWrSIGjVqmDq8Ci1H0ROXcYdjCdFsufI3X5/ez+yjW3lz3y8M2rGC50N+QK/X0+23FTyz5UeycnSmDllUIIbZz7ds2cLFixdp0qQJI0eOxNfXlw8++IDExERThyjEY69evXq0a9eO77//HoBLly6xf/9+Xn31VQCOHTvG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3/zmN5w5c4bFixej0+n47LPPOHv2LKmpqd0afWVmZvLaa6/xzjvv4O19/dF1crmcCRMmYG9vz+HDh4mIiMDPb3BuGA11w63Hz8+PhoYG0tLSBn3qhZBYWFjw5ptv8rvf/Y67775baqomITHImDzS/emnnzJ16lRsbW2xtbVl6tSpPbrPASQlJSGTyVi3bh3Hjx/nxhtvxM7ODgcHBxYuXNij3ftQZN68eQZ9ud122209TCx0zrdLSEigpqaGU6dO9fv8vvLqq6+SmZnJJ598ctUvSUP31mg06HS6bhcPcrm8xyB6CcM5d+4cL774Im+++eaIShtuamoiPT2diRMn4uTkJLScazLYEe+mpib279+PTqdj1qxZkuE2EYOVYt7c1vn5KaWBGsbGjRvJy8ujoaGB9957r0/PmThxIuvWrevxb9GiRX3eV19KpVAoSEpK4p///Cd///vfycjIYNq0aWzbto2vvvqq6/yjR4+Snp7Oe++9xwcffMCHH37Iu+++2/W4no6ODu677z5mzJhh0M1qmUzGmDFjiI2N5cyZM5w6dcrk373DxXDrGT9+PJaWlpw4cYL/9hMeEdxyyy3MnTuX1atXCy1FQmLEYVLTvXr1apYuXcr58+e5//77Wb58OWVlZSxdupTHH3+81+ekp6cTHx+PmZlZV330jh07mDdvHiqVypRyhxT6O699nb1p6Pl6Tp8+zfr163nuuecYP368YSKvsbetrS0333wzd911F4899hiLFy/m9ddf5+677+7XHhL/Y9WqVcydO5dbbrlFaCmDhkajIT09HV9fX3x8fISW0ycGy3hXVlayf/9+3N3diY2NHTFRGyGYMn5wIkM6XafxNldAi6p9UPYUAwkJCQQHBw96ScXXX39NVVUVd911F5MnT+563NLSkhdeeAHonAurp6Skc+Z7TExM12PTpk3rdgzg9ddfJzs7m48++qhfr8nNzY1Zs2Zx6dIlUlNTaW83zXtpuBlu6AwCTJ48mdra2hHXWO3tt9/u6gkjISExeJgsvfzAgQO8+eabhIWFkZKS0jU/cv369UydOpWNGzdy2223ERfXfRzKjz/+yFdffcUdd9zR9di9997L559/zo4dO/pcZ7Vu3TqD9K5atQpHR0eDnmMqzp07x549e/Dw8CAiIsLo5+vp6Ohg6dKlhIWF8fTTTxtd66effspjjz3G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Emg0GtjZ2aFjx47o0qULfH19dcW6U6dOBjOLgIiIqClYuomIiJpIq9WivLwchYWFKCwsREFBge7PO2/FxcWorKyEmZkZHB0d4ejoCLlcDqlUqrtZW1vD2toaMpkMNjY2sLGxga2tLWxtbXUfy+VyyOXy+y4C9zClu7q6Gjdv3kR5eTnKyspQXl6OiooKlJeX49atW6ioqIBSqcStW7dw69Yt3L59G5WVlaisrMSNGzdw48YN3Lx5EwDg4OCgO8Dg6uqK9u3bo127dro/27VrBxcXF5ibm+vl34CIiKi1Y+kmIiJqAUqlskExv3HjRoNiW190KyoqcOvWLd3nKisroVQqUV1drduXubk5RCIRTExMYGJiApFIBLFYrLtPrVYD+PuggEajgVarhVqthlarhUqlgkqlAgCYmJhAKpVCJpPpir9MJoO1tTVsbGx0f955n7Ozs65QKxQKTv8mIiJ6AJZuIiIiA6BSqVBZWakbea4v1BqNBmq1usHH9WX8nzexWAyxWKwr0ZaWllyQjIiISM9YuomIiIiIiIj0pHUstUpERERERETUBrF0ExEREREREekJSzcRERERERGRnrB0ExEREREREekJSzcRERERERGRnrB0ExEREREREekJSzcRERERERGRnrB0ExEREREREekJSzcRERERERGRnrB0ExERGTi1Wo3Vq1cjLCwM9vb2MDU1hUKhQM+ePTFjxgz88ccfQkckIiIyWiKtVqsVOgQRERE1jVqtxvDhwxEXFwe5XI5hw4bBzc0NpaWluHTpEhITExEUFITDhw8LHZWIiMgoSYQOQERERE0XGxuLuLg4+Pv74+DBg7C1tW3w+Zs3b+LUqVMCpSMiIiJOLyciIjJgiYmJAICYmJi7CjcA2NnZITIysqVjERER0f9i6SYiIjJgTk5OAICMjAyBkxAREVFjeE43ERGRATt79iyCgoKgUqkwceJEREdHIzAwEN7e3kJHIyIiInCkm4iIyKD5+/vj559/houLC3766SeMHz8eHTp0gKOjI8aMGYOdO3cKli0mJgYikQjZ2dmCZfintWvXQiQSYe3atUJHISIiI8HSTUREZODGjh2LnJwc7Nq1C++//z6GDx8OtVqNzZs3Y9iwYZg+fTqaa2KbSCS6741lloiIqCGuXk5ERNQGmJqaIioqClFRUQD+vpTY77//jueffx5r1qzByJEjER0d3WyP9+GHHzZ6f0BAQLM9BhERUVvA0k1ERNQGicVijB8/HikpKVi0aBH27dvXrKX7o48+arZ9ERERtWWcXk5ERNSGWVtbA0CzTS9vLhs3bsSAAQNga2sLS0tL9OjRA5988gmqq6sb3f7kyZMYPXo0FAoFzM3N4enpiZdeegkFBQWNbn/p0iWMGzcOdnZ2kEqlCA4Oxp9//qnPp0RERNQojnQTEREZsNjYWDg6OmLQoEEwMWl4LL2oqAirV68GAISGhgoRr1Fvv/02Fi9eDCcnJ0yaNAlSqRQ7d+7E/PnzERcXh71798LMzEy3/bZt2zBu3DiIRCKMHTsWHh4eOHnyJFatWoVt27bh8OHD6NChg277zMxM9OvXDyUlJXj66acREBCAS5cuYdSoURg6dKgQT5mIiIwYSzcREZEBO3bsGJYvXw4XFxeEhIToLhWWlZWFHTt2oKqqCtHR0Rg7dmyzPm5j08u9vLwQExNz369LTEzE4sWL4enpiePHj0OhUAAAPv30U0RHR2Pnzp1YsmQJ5s+fDwBQKpV4/vnnodFokJCQgODgYN2+Pv30U7z77rt48cUXsWfPHt39M2fORElJCZYtW4ZZs2bp7t+2bRtGjRrV9CdNRETUBLxONxERkQHLzc3FH3/8gb179yI1NRWFhYWorq6Gg4MDevXqhYkTJ2LixIl3jYI3lUgkuufnwsLCcODAAd3fY2Ji8OOPPyIrKwteXl4AgBkzZuC///0vVq9ejRkzZjT4+vT0dHTr1g2enp64cuUKAGDDhg2YPHkyJk2ahA0bNjTYvq6uDj4+PsjJyUF2djY8PT2Rl5cHd3d3eHt7IzMzE2KxuMHXhIeH4+DBg/jhhx8eeICAiIioOXCkm4iIyIC5u7tj5syZmDlzZos+blOP2ScnJwMAIiIi7vpcly5d4ObmhqysLJSVlUEul993e1NTU4SFhWHdunVITk6Gp6enbvuQkJC7Cjfwf6WbiIiopXAhNSIiImox5eXlAAAXF5dGP9+uXbsG2zV1e2dn50a3v9d+iIiI9IWlm4iIiFqMra0tgL8XeWtMYWFhg+2aun1xcXGj299rP0RERPrC0k1EREQtplevXgDQ4NzvepcuXUJeXh68vb0hl8sfuL1KpcLhw4cBAL17926w/eHDh6FWq+/6msb2Q0REpE8s3URERNRinn/+eQDAokWLcP36dd39arUab7zxBjQaDaZPn667f9SoUbC3t0dsbCySkpIa7GvZsmW4cuUKIiMj4eHhAQBwc3PDU089haysLKxcubLB9tu2beP53ERE1OK4kBoRERG1mODgYLz11ltYvHgxevTogbFjx0IqleKvv/7C+fPnERISgjfffFO3vUwmw5o1azBu3DiEhYVh3Lhx8PDwwKlTp7B79264uLjgu+++a/AY33zzDfr164fZs2dj9+7d8Pf3x6VLl7BlyxaMGDEC27dvb+mnTURERowj3URERNSiPv/8c8TGxsLHxwfr1q3D119/DY1Gg0WLFmHPnj0wMzNrsH10dDQSExMxdOhQ7Nq1C1988QUuXryIf/3rXzh16hQ6dOjQYHsfHx8kJSVhzJgxSExMxPLly5Gbm4utW7di9OjRLflUiYiIeJ1uIiIiIiIiIn3hSDcRERERERGRnrB0ExEREREREekJSzcRERERERGRnrB0ExEREREREekJSzcRERERERGRnrB0ExEREREREekJSzcRERERERGRnrB0ExEREREREekJSzcRERERERGRnrB0ExEREREREekJSzcRERERERGRnrB0ExEREREREekJSzcRERERERGRnvx//LdVHQ0PisIAAAAASUVORK5CYII=", + "text/plain": [ + "
" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Define bin sizes\n", + "width_direction = 10 # in degrees\n", + "width_velocity = 0.25 # in m/s\n", + "\n", + "# Create a rose plot\n", + "ax = tidal.graphics.plot_rose(\n", + " data.d,\n", + " data.s,\n", + " width_direction,\n", + " width_velocity,\n", + " metadata=metadata,\n", + " flood=flood,\n", + " ebb=ebb,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Velocity Duration Curve\n", + "\n", + "The velocity duration curve shows the probability of achieving a particular velocity value. After computing the exceedance probability, the rank order of velocity values can be plotted as follows." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Velocity Duration Curve\n", - "\n", - "The velocity duration curve shows the probability of achieving a particular velocity value. After computing the exceedance probability, the rank order of velocity values can be plotted as follows." + "data": { + "image/png": "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Y4qJiSn07IXPP/9cnTp10rx589SzZ089/vjjatu2rSZPnqy2bdsWe+G9OM8++6xuu+027dy5U3feeacefvhhOZ1Ovfjii4qJiVFOTk6h7SdNmqTo6GjNnj1b0dHRevLJJ3XDDTcoISFBH3744UWP1b17dz322GOSpJYtWxY8U2L06NFq1aqVGjVqpB49emjx4sWKi4sr8voVK1Zo69at6tevn0JDQy/p/C7m3CyZuLg4de3aVTabTffee6/Cw8M1c+ZMDR8+XHPmzFH79u2Vnp6uIUOGqEGDBvr555919913F9nfzz//rJycHN18882Flr/++uvq2rWrNmzYoGuuuUZPPPGE+vXrp9zcXM2fP/+KzwMAAAAob3jGBgAAAFCBVa1aVf3799e0adM0ffr0IhfMJ02aJOnM8zjOiYuL0/3336/IyEgtWbKk0O2eFi1apF69eunRRx/V7NmzL3rsFStW6M0331SdOnW0du1aVatWTZI0duxY9evXT3PnztVbb72lF198UdKZmQsPPvig/P39tWzZMjVt2rTQ/g4dOnTR43Xv3l1169bVhAkT1KpVq2KfffHggw9q8eLFmjhxosaNG1do3SeffCJJuv/++y96nEt1rthYv3691qxZo2bNmkmS/vnPf6p27dqaN2+eNmzYoF9//VXt27eXJGVnZ6tevXpaunSpsrKy5OnpWbC/WbNmycfHR7169SpYlpCQoJdfflldu3bVwoULZbfbC2VISkpyybkAAAAA5QkzNgAAAIAK7lxp8dfbUcXHx2v+/PkKDQ3VTTfdVLD8o48+Um5ursaPH1/kGRY9e/ZU37599eOPPyo1NfWix/38888lSS+99FJBqSFJVqtV77zzjsxmsz799NNCx83Ly9M///nPIqWGJIWHh1/iGV9Y//79VbNmTU2dOlXZ2dkFy0+dOqXp06erXr16uvbaa6/4ONL/io2pU6cWlBqS5O/vr4iICOXl5entt98uKDUkycPDQw0aNJDT6VR6enrB8qysLM2bN099+vQpVHbs2LFD+fn5ioqKKlJqSFJISIhLzgUAAAAoT5ixAQAAAFRwPXv2VL169bRs2TLt3LlTUVFRkqTPPvtM+fn5GjZsmKzW//3XYNWqVZKk2NhYrV27tsj+EhMT5XA4tGvXLrVp0+aCx920aZMkqUePHkXWRUVFqVatWtq3b5+S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", + "text/plain": [ + "
" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Calculate exceedance probability of data\n", + "data[\"F\"] = tidal.resource.exceedance_probability(data.s)\n", + "\n", + "# Plot the velocity duration curve (VDC)\n", + "ax = tidal.graphics.plot_velocity_duration_curve(data.s, data.F)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plot by phase direction\n", + "\n", + "MHKiT can produce plots of velocity by probability and exceedance probability for each tidal phase. Using the ebb and flood direction calculated earlier we can simply pass our directions, velocities, ebb, and flood direction to createthe following plots:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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Y4qJiSn07IXPP/9cnTp10rx589SzZ089/vjjatu2rSZPnqy2bdsWe+G9OM8++6xuu+027dy5U3feeacefvhhOZ1Ovfjii4qJiVFOTk6h7SdNmqTo6GjNnj1b0dHRevLJJ3XDDTcoISFBH3744UWP1b17dz322GOSpJYtWxY8U2L06NFq1aqVGjVqpB49emjx4sWKi4sr8voVK1Zo69at6tevn0JDQy/p/C7m3CyZuLg4de3aVTabTffee6/Cw8M1c+ZMDR8+XHPmzFH79u2Vnp6uIUOGqEGDBvr555919913F9nfzz//rJycHN18882Flr/++uvq2rWrNmzYoGuuuUZPPPGE+vXrp9zcXM2fP/+KzwMAAAAob3jGBgAAAFCBVa1aVf3799e0adM0ffr0IhfMJ02aJOnM8zjOiYuL0/3336/IyEgtWbKk0O2eFi1apF69eunRRx/V7NmzL3rsFStW6M0331SdOnW0du1aVatWTZI0duxY9evXT3PnztVbb72lF198UdKZmQsPPvig/P39tWzZMjVt2rTQ/g4dOnTR43Xv3l1169bVhAkT1KpVq2KfffHggw9q8eLFmjhxosaNG1do3SeffCJJuv/++y96nEt1rthYv3691qxZo2bNmkmS/vnPf6p27dqaN2+eNmzYoF9//VXt27eXJGVnZ6tevXpaunSpsrKy5OnpWbC/WbNmycfHR7169SpYlpCQoJdfflldu3bVwoULZbfbC2VISkpyybkAAAAA5QkzNgAAAIAK7lxp8dfbUcXHx2v+/PkKDQ3VTTfdVLD8o48+Um5ursaPH1/kGRY9e/ZU37599eOPPyo1NfWix/38888lSS+99FJBqSFJVqtV77zzjsxmsz799NNCx83Ly9M///nPIqWGJIWHh1/iGV9Y//79VbNmTU2dOlXZ2dkFy0+dOqXp06erXr16uvbaa6/4ONL/io2pU6cWlBqS5O/vr4iICOXl5entt98uKDUkycPDQw0aNJDT6VR6enrB8qysLM2bN099+vQpVHbs2LFD+fn5ioqKKlJqSFJISIhLzgUAAAAoT5ixAQAAAFRwPXv2VL169bRs2TLt3LlTUVFRkqTPPvtM+fn5GjZsmKzW//3XYNWqVZKk2NhYrV27tsj+EhMT5XA4tGvXLrVp0+aCx920aZMkqUePHkXWRUVFqVatWtq3b5+S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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Calculate exceedance probability of data\n", - "data['F'] = tidal.resource.exceedance_probability(data.s)\n", - "\n", - "# Plot the velocity duration curve (VDC)\n", - "ax = tidal.graphics.plot_velocity_duration_curve(data.s, data.F)" + "data": { + "text/plain": [ + "" ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" }, { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Plot by phase direction\n", - "\n", - "MHKiT can produce plots of velocity by probability and exceedance probability for each tidal phase. Using the ebb and flood direction calculated earlier we can simply pass our directions, velocities, ebb, and flood direction to createthe following plots:" + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/gAAAK4CAYAAADA9FZPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAADTT0lEQVR4nOzde3yU5Z3//9d9mMwMiByLYkRAxEi/FIEUaYNQpApdbBF3cSvKt1XQ3a5a1HapuLYCrfVEt7au2N1VpNuyYlu/rdhKS4poOcRF5CA/uohIQTBiMUgAYSYz9+H3R8iYyDEkcCf39X4+Hj68yAyTz8X1nuuea+5r7rHCMAwRERERERERkVbNjroAEREREREREWk6LfBFREREREREYkALfBEREREREZEY0AJfREREREREJAa0wBcRERERERGJAS3wRURERERERGJAC3wRERERERGRGNACX0RERERERCQGtMAXERERERERiQEt8EVERERERERioEUu8J999lm+/vWvM2zYMM4880wsy2LixIkn9VjvvPMOkyZN4pxzziGZTNKzZ0/uuOMO9uzZ08xVi4iIiIiIiETHjbqAI7nvvvt4/fXXOeOMMzj33HN54403TupxtmzZQllZGbt27eKqq67ioosu4tVXX+XHP/4xf/jDH1ixYgWdO3du5upFRERERERETr8WeQb/kUce4c0332Tfvn385Cc/OenHueWWW9i1axePPvoozz33HA8++CBLlizhzjvvZNOmTdxzzz3NWLWIiIiIiIhIdKwwDMOoiziWl19+mcsuu4zrr7+eefPmnfDf27JlCxdccAG9evXirbfewrY/ei9j//79dOvWjSAI2LVrF2ecccapKF1ERERERETktGmRZ/Cbw0svvQTAqFGjGizuAdq1a8fQoUPJZDKsXLkyivJEREREREREmlWL/Ax+c9i0aRMAffr0OeLtffr0oby8nDfffJPPf/7zR7xPTU0NNTU1hT8HQcAHH3xA586dsSyr+YsWERERERERqScMQ/bv388555xz2Mnrj4vtAn/v3r0AtG/f/oi31/28urr6qI/xwAMPMHPmzGavTURERERERKQxduzYwbnnnnvM+8R2gX88dZceONaZ+LvvvptvfOMbhT/v3buX8847j23bttGxY0d83wfAcZwGbc/zsCyr0LZtG9u2j9rO5/M4jlNo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LaFPn9o+zZlTTnFxbZ/mz19Ip05Z0mmP+fMXkk57dOqUZf782j4VF+9nzpzaPvXpU81jj9X2qX//Kh5+uLZPQ4bsZObM2j6NGLGDadNq+zRmzFZuv712nMaP38zNN9eO08SJG5k4sbZPN9+8nvHja/t0++1rGTOmrk+vMmLEjiP06WGy2exh4zRnzhyKi71W2qeG49Sr136eeeYi/uM/XjzCOIXMnz+fMAwPy9677757qE+5Ften5s/eX4HarxGr/3yqu3jzmDEftsI+fTRO3/nOSp555iIuvfTdY4xT7e+vrq5u9fMexG8ub2qfVq5cyZlnnonjOE3uU0lJX66++mo2b95MaWkp119/Pa+//jqlpaXcdNNNvPLKK5SWljJlyhRefPFFSktLmTZtGr/73e8oLS3lu9/9Lr/85S8pLS3lBz/4AT/96U8pLS1l9uzZzJ49m9LSUn7605/ygx/8gNLSUn75y1/y3e9+l9LSUn73u98xbdo0SktLefHFF5kyZQqlpaW88sor3HTTTZSWlvL6669z/fXXU1payubNm7n66qspLS2lsrKS0aNHM2zYMCorKxk2bBijR4+msrKS0tLSI/appKQv//u//9vis3eirLCFXXb7H/7hH3jiiSd44oknuOmmmw67/V/+5V944IEHeOCBBwoLuyP51re+xaxZs7Btm3Xr1vGpT32qcFsmk+HCCy/knXfeoaKi4qjb9Y90Br979+588MEHdOzYscW8U2hZFmvWrKF///6kUilWr17NpZdeyopvZxnQK95n8Fdvcxn6XYeKigouvvjiBu+qrV27lsGDB/Pa9xMM6Nl6+nQy47TmbZdf7bmV8ePHU1paWsje66+/zqc//WlWfT/JoJ6tq0+NHafXt+b49LcDVq1axaBBgxo8n9auXcull17KsnuyDOrVevp0ouPkkWBN8hsMqvkh67fmGfb9FMuXL2fgwIEt4mxCHM+QtLQ+AaxZs4aLL764cCb/WH16/fXXKSsrw/dX4HmlMT+Dv45UaijLly+ntLS0ME7r1q3j0ksvpaZmGUFQ2sr6dPg4QcjXv/46//mf/di/P/WxcVpDOj2MZcuWMWjQoAbZW716NYMHD8a2X6OoqH+L6lPzZ28N2exgXnvtNS6++OLC82nNmjUMHjwY130N2764lfXpo3Fq0ybH1772//HYYxcTBPZRxmkt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PFAXGUgkEowZM6bW+/70pz+xefNmrr/+eoqKirR9vxGqq3WgX79+uK7Lzp07yeVyVZ+YXGnr1q0AdOrUqW4HIOekruY/l8sBnPSDFCtvTyQSdVG2NEJ6PSiV9HowYsz9hT6pTXFxcQiEs2bNqnH7pEmTQiD81re+VXVbLpcLt23bFu7cufOcziONS11l4J//+Z9DILz66qvDgwcP1nvdUnfqKgO1KS0tDYFwzpw5dVqz1K26ysCdd94ZAmFpaWmN21etWhValhW2aNEiPHz4cH0MQc5BXcz/M888EwLhRRddFO7fv7/GfStWrAgtywqTyWT4t7/9rf4GInXi0/4Gul4PFr5zyYBeD0aPFYaffMKGNAq7du2id+/eHDhwgCFDhnDFFVewceNGXnrpJbp168aGDRto06YNAHv27KFz58507NiRPXv2nPV5pHGpiww88cQTjBo1CsdxuOeee2p9f12nTp0YNWpUA41KzkRdrQO1efDBB5k2bRpz5sxh7Nix9TwSOVt1lYEDBw7Qp08fdu7cSb9+/ao+RX/JkiVYlsXChQu54447DIxQTqUu5j8IAgYMGMALL7xAs2bNuP3222nXrh3btm3jt7/9LWEY8uijjzJx4kRDo5RTWbp0KUuXLgXg3XffZeXKlVx66aX07dsXgAsvvJCf/vSngF4PFqq6yIBeD0aU4V8wSC3eeuutcNSoUWG7du3CWCwW/t3f/V04YcKEE37rtnv37hAIO3bseE7nkcbnXDNQeZX2VF833HBDww1IzlhdrQPH0xX880ddZeDgwYPhpEmTwk6dOoWxWCxs3bp1OHjw4PDVV19tgFHI2aqL+c/lcuHPfvaz8Etf+lLYrFmz0HGc8DOf+Uw4aNCgcOXKlQ00Ejkbn/Y8Xn2+9XqwMNVFBvR6MJp0BV9ERERERESkAOhT9EVEREREREQKgBp8ERERERERkQKgBl9ERERERESkAKjBFxERERERESkAavBFRERERERECoAafBEREREREZECoAZfREREREREpACowRcREREREREpAGrwRURERERERAqAGnwREZHz2KhRo7Asiz179jTY9+zUqROdOnVqsO9X3S9/+Ussy6r6uvXWW43UcSZuu+22GjX/8pe/NF2SiIgUKDX4IiIi9WDEiBFYlsXPf/7zT33sTTfdhGVZ/Pa3v22AyupHZePdUM3r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", + "text/plain": [ + "
" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tidal.graphics.tidal_phase_probability(data.d, data.s, flood, ebb)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/gAAAK4CAYAAADA9FZPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAADTT0lEQVR4nOzde3yU5Z3//9d9mMwMiByLYkRAxEi/FIEUaYNQpApdbBF3cSvKt1XQ3a5a1HapuLYCrfVEt7au2N1VpNuyYlu/rdhKS4poOcRF5CA/uohIQTBiMUgAYSYz9+H3R8iYyDEkcCf39X4+Hj68yAyTz8X1nuuea+5r7rHCMAwRERERERERkVbNjroAEREREREREWk6LfBFREREREREYkALfBEREREREZEY0AJfREREREREJAa0wBcRERERERGJAS3wRURERERERGJAC3wRERERERGRGNACX0RERERERCQGtMAXERERERERiQEt8EVERERERERioEUu8J999lm+/vWvM2zYMM4880wsy2LixIkn9VjvvPMOkyZN4pxzziGZTNKzZ0/uuOMO9uzZ08xVi4iIiIiIiETHjbqAI7nvvvt4/fXXOeOMMzj33HN54403TupxtmzZQllZGbt27eKqq67ioosu4tVXX+XHP/4xf/jDH1ixYgWdO3du5upFRERERERETr8WeQb/kUce4c0332Tfvn385Cc/OenHueWWW9i1axePPvoozz33HA8++CBLlizhzjvvZNOmTdxzzz3NWLWIiIiIiIhIdKwwDMOoiziWl19+mcsuu4zrr7+eefPmnfDf27JlCxdccAG9evXirbfewrY/ei9j//79dOvWjSAI2LVrF2ecccapKF1ERERERETktGmRZ/Cbw0svvQTAqFGjGizuAdq1a8fQoUPJZDKsXLkyivJEREREREREmlWL/Ax+c9i0aRMAffr0OeLtffr0oby8nDfffJPPf/7zR7xPTU0NNTU1hT8HQcAHH3xA586dsSyr+YsWERERERERqScMQ/bv388555xz2Mnrj4vtAn/v3r0AtG/f/oi31/28urr6qI/xwAMPMHPmzGavTURERERERKQxduzYwbnnnnvM+8R2gX88dZceONaZ+LvvvptvfOMbhT/v3buX8847j23bttGxY0d83wfAcZwGbc/zsCyr0LZtG9u2j9rO5/M4jlNo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LaFPn9o+zZlTTnFxbZ/mz19Ip05Z0mmP+fMXkk57dOqUZf782j4VF+9nzpzaPvXpU81jj9X2qX//Kh5+uLZPQ4bsZObM2j6NGLGDadNq+zRmzFZuv712nMaP38zNN9eO08SJG5k4sbZPN9+8nvHja/t0++1rGTOmrk+vMmLEjiP06WGy2exh4zRnzhyKi71W2qeG49Sr136eeeYi/uM/XjzCOIXMnz+fMAwPy9677757qE+5Ften5s/eX4HarxGr/3yqu3jzmDEftsI+fTRO3/nOSp555iIuvfTdY4xT7e+vrq5u9fMexG8ub2qfVq5cyZlnnonjOE3uU0lJX66++mo2b95MaWkp119/Pa+//jqlpaXcdNNNvPLKK5SWljJlyhRefPFFSktLmTZtGr/73e8oLS3lu9/9Lr/85S8pLS3lBz/4AT/96U8pLS1l9uzZzJ49m9LSUn7605/ygx/8gNLSUn75y1/y3e9+l9LSUn73u98xbdo0SktLefHFF5kyZQqlpaW88sor3HTTTZSWlvL6669z/fXXU1payubNm7n66qspLS2lsrKS0aNHM2zYMCorKxk2bBijR4+msrKS0tLSI/appKQv//u//9vis3eirLCFXXb7H/7hH3jiiSd44oknuOmmmw67/V/+5V944IEHeOCBBwoLuyP51re+xaxZs7Btm3Xr1vGpT32qcFsmk+HCCy/knXfeoaKi4qjb9Y90Br979+588MEHdOzYscW8U2hZFmvWrKF///6kUilWr17NpZdeyopvZxnQK95n8Fdvcxn6XYeKigouvvjiBu+qrV27lsGDB/Pa9xMM6Nl6+nQy47TmbZdf7bmV8ePHU1paWsje66+/zqc//WlWfT/JoJ6tq0+NHafXt+b49LcDVq1axaBBgxo8n9auXcull17KsnuyDOrVevp0ouPkkWBN8hsMqvkh67fmGfb9FMuXL2fgwIEt4mxCHM+QtLQ+AaxZs4aLL764cCb/WH16/fXXKSsrw/dX4HmlMT+Dv45UaijLly+ntLS0ME7r1q3j0ksvpaZmGUFQ2sr6dPg4QcjXv/46//mf/di/P/WxcVpDOj2MZcuWMWjQoAbZW716NYMHD8a2X6OoqH+L6lPzZ28N2exgXnvtNS6++OLC82nNmjUMHjwY130N2764lfXpo3Fq0ybH1772//HYYxcTBPZRxmkt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PFAXGUgkEowZM6bW+/70pz+xefNmrr/+eoqKirR9vxGqq3WgX79+uK7Lzp07yeVyVZ+YXGnr1q0AdOrUqW4HIOekruY/l8sBnPSDFCtvTyQSdVG2NEJ6PSiV9HowYsz9hT6pTXFxcQiEs2bNqnH7pEmTQiD81re+VXVbLpcLt23bFu7cufOcziONS11l4J//+Z9DILz66qvDgwcP1nvdUnfqKgO1KS0tDYFwzpw5dVqz1K26ysCdd94ZAmFpaWmN21etWhValhW2aNEiPHz4cH0MQc5BXcz/M888EwLhRRddFO7fv7/GfStWrAgtywqTyWT4t7/9rf4GInXi0/4Gul4PFr5zyYBeD0aPFYaffMKGNAq7du2id+/eHDhwgCFDhnDFFVewceNGXnrpJbp168aGDRto06YNAHv27KFz58507NiRPXv2nPV5pHGpiww88cQTjBo1CsdxuOeee2p9f12nTp0YNWpUA41KzkRdrQO1efDBB5k2bRpz5sxh7Nix9TwSOVt1lYEDBw7Qp08fdu7cSb9+/ao+RX/JkiVYlsXChQu54447DIxQTqUu5j8IAgYMGMALL7xAs2bNuP3222nXrh3btm3jt7/9LWEY8uijjzJx4kRDo5RTWbp0KUuXLgXg3XffZeXKlVx66aX07dsXgAsvvJCf/vSngF4PFqq6yIBeD0aU4V8wSC3eeuutcNSoUWG7du3CWCwW/t3f/V04YcKEE37rtnv37hAIO3bseE7nkcbnXDNQeZX2VF833HBDww1IzlhdrQPH0xX880ddZeDgwYPhpEmTwk6dOoWxWCxs3bp1OHjw4PDVV19tgFHI2aqL+c/lcuHPfvaz8Etf+lLYrFmz0HGc8DOf+Uw4aNCgcOXKlQ00Ejkbn/Y8Xn2+9XqwMNVFBvR6MJp0BV9ERERERESkAOhT9EVEREREREQKgBp8ERERERERkQKgBl9ERERERESkAKjBFxERERERESkAavBFRERERERECoAafBEREREREZECoAZfREREREREpACowRcREREREREpAGrwRURERERERAqAGnwREZHz2KhRo7Asiz179jTY9+zUqROdOnVqsO9X3S9/+Ussy6r6uvXWW43UcSZuu+22GjX/8pe/NF2SiIgUKDX4IiIi9WDEiBFYlsXPf/7zT33sTTfdhGVZ/Pa3v22AyupHZePdUM3r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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "tidal.graphics.tidal_phase_probability(data.d, data.s, flood, ebb) " + "data": { + "text/plain": [ + "" ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" }, { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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iLkccNbDcMItVhciIiIiIhYxdKr/Aw88QCwWY9asWTz22GOZW/o1cDgcnHDCCXzxxRfNObyIiBxQGj76NXz4a9BWLSIiIiKyH80a+H/66adcdNFFHH744fts06NHDzZv3tzswppr6tSpXHzxxXTu3Bmv10vnzp0588wzef/99/doO2PGDEaPHk2bNm0oLCxk8ODBPP7447aa0iGHLujrzoeD/kzQ193qUsSmDiljnz8Br18HiWj2CxNbCQaDfPjhhwSDQatLERtTzsQMypkYzY4Za9bAv6qqim7duu23TSqVIhaLNauo5nrooYc45ZRTmDJlCmeffTY///nPOffcc6msrGTy5MmN2k6YMCHT9sILL+SWW24hFovx05/+lMsvv9zUuiW3eRMheu/4BG9C91EXYxxyxha9CS9cBOGqrNYl9uL1eunduzder/YrEeMoZ2IG5UyMZseMuZvzpA4dOrBy5cr9tlm0aBHdu5v3Cemrr77KPffcw+mnn85///tfSkpKGj0ej8cz/x8KhbjhhhtwuVxMnjyZY445BoBx48YxatQoXn/9dV5++WVdABAAfIkgA7a9bXUZYmNZydi6afD0WfW3+yvb/4VZaZl8Ph8DBgywugyxOeVMzKCcidHsmLFmfeI/atQo3n33XVasWLHXx7/44gs+/fRTzjrrrEMqrqlSqRR33HEHfr+fl156aY9BP4DH48n8/2uvvUZFRQVjx47NDPqh/h/4oYceAuBvf/ub8YVLXkg4vewq7EtCu/qLQbKWsR1L4V+nw9aF2SlMbCWRSLBr1y4SiYTVpYiNKWdiBuVMjGbHjDVr4H/nnXficrk4+eST+fvf/55Zy79o0SKefPJJzj33XEpKSrj99tuzWuy+zJgxg7Vr13LOOefQunVr3nvvPX73u9/xpz/9ifLy8j3aT5o0CYCzzz57j8dOOeUUCgsLKS8vJxrVmlmBGm8npg64lxpvJ6tLEZvKasaqt8Az34HVkw/9WGIrNTU1TJ06lZqaGqtLERtTzsQMypkYzY4Za9bAf8CAAbzxxhtEo1FuueUW/vWvf5FOpxk8eHBmrfx///tfevToke1696rh7gGdOnVi6NChfPe73+VXv/oVP/nJTxg+fDgjRoxgx44dmfbLli0DoF+/fnscy+1207t3bxKJBKtXr97na0ajUUKhUKM/QOa/Df8fDoeB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mvh7LBZj8+bNFBUV7fb7JPPU1tZSUVHBypUru/T1GyRzKWOSDsqZpINyJumgnEmqZVLGTNOkrq6O3r1773Zct5z4tx4Jaf3kf3u1tbVtxu2Mx+PB42l7dczW5RpiT/n5+V3+f3zJbMqYpINyJumgnEk6KGeSapmSsd3NW1t1yyscDB06FICFCxfu9PmqqioAhgwZkraaRERERERERFKhW078jznmGADeeecdYrFYm+fq6uqYNm0aPp+Pww8/3IryRERERERERJKmW078Bw0axIknnsiyZcv4wx/+0Oa52267jYaGBi6++GJycvbsdhliTx6Ph9tuu22HUztEkkUZk3RQziQdlDNJB+VMUs2OGTPM9q77b1OLFy9mzJgxbNiwgTPOOIPhw4fzySefMGXKFIYMGcL06dMpKiqyukwRERERERGRvdJtJ/4AK1eu5NZbb+Wtt96iurqasrIyzjzzTG677TYKCwutLk9ERERERERkr3Xrib+IiIiIiIiI3XXLc/xFREREREREugtN/EVERERERERsTBN/6XZWrVrF97//fXr37o3H46F///5ce+21bNmypUPfX11dzd/+9jfOOuss9tlnH3w+H36/n7Fjx/L444/vcItI6Z72Nmc7849//APDMDAMg7/97W9JrFYyVTJz9tFHH3HOOedQVlaGx+OhrKyME088kTfeeCMFlUumSFbGXnnlFY4//njKy8vx+XwMHDiQ8847jxkzZqSocskU//vf//jJT37CUUcdRX5+PoZh8H//93+deq1U/O4Ve0hGzjJ9DqBz/KVb2f5uDsOGDWPmzJlMmTKFoUOHMm3atHbv5vDnP/+ZH/7wh5SWlnLsscfSt29f1q9fzwsvvEAgEODss8/mf//7H4ZhpOmnkq4mGTnb3sqVKxk1ahTRaJT6+nomTZrEpZdemqKfQDJBMnP261//mltuuYXi4mJOPfVUysrK2LRpE7Nnz+aYY47hd7/7XYp/GumKkpWx66+/ngceeICioiLOPPNMiouLWbRoEa+88gqRSIS///3vXHzxxWn4iaQrOuCAA/jyyy/Jzc2lvLyc+fPnc+GFF/LPf/5zj14nFb97xT6SkbOMnwOYIt3IiSeeaALmo48+2ubx6667zgTMK664ot3XeP/9982XXnrJjEQibR5fu3atWVFRYQLmc889l9S6JbMkI2fbisVi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S9rbnO2KPvGXbSUrZ9XV1eZ1111n9u/f33S73WZhYaF5+umnmzNmzEjDTyFdWTIyFgqFzIceesg87LDDzLy8PNPpdJo9e/Y0J0yYYL799ttp+kmkq2pvv2rbTLX3XtbRvEr3k4ycZfocQJ/4i4iIiIiIiNiYruovIiIiIiIiYmOa+IuIiIiIiIjYmCb+IiIiIiIiIjamib+IiIiIiIiIjWniLyIiIiIiImJjmviLiIiIiIiI2Jgm/iIiIiIiIiI2pom/iIiIiIiIiI1p4i8iImJT/fv3p3///mnb3rJlyzAMg4kTJ6Ztm9uaOHEihmEkvn7zm99YUseeyM3NbVPzsmXLrC5JRERsSBN/ERERSanWCXm6JrXXXHMNt912G2PHjk3L9tavX4/T6eTqq6/e4++9+eabue2229h///1TUJmIiEicy+oCRERExB769OnDvHnz8Pv9ltZx7bXXpnWlw8svv0wsFuOss87a4++9+eabgfhqiS+//DLZpYmIiACa+IuIiEiSuN1uhg0bZnUZaffiiy9SVFTEuHHjrC5FRERkp7TUX0REJM1mzJiBYRicffbZuxwzePBgPB4PmzdvbvP422+/zSmnnEJxcTEej4dBgwZxww03UFNT0+HtNzc3c++99zJq1Ciys7PJz8/nqKOO4j//+c8uv2fmzJl85zvfoU+fPng8HsrKyjjxxBP573//mxizs3P8DcPgqaeeAmDAgAGJc9lbP5E//PDDcTqduzwN4P7778cwDB544IEO/3y78q1vfQvDMAiHw9x5550MGjQIr9fL0KFDmTRpUmLcH/7wB0aOHInP56O8vJzbb7+dWCy209cMBAJMnjyZ0047DafTCUAwGOShhx7iwAMPpKCggOzsbCoqKjjttNN499139/rnEBER2VP6xF9ERCTNjjjiCIYMGcJrr71GdXU1RUVFbZ6fPn06ixYt4pxzzqGwsDDx+J133sltt91GUVEREyZMoKSkhK+++or777+fN954g+nTp7e7zD4UCnHiiSfy0UcfMWLECH70ox/R2NjIc889xwUXXMDs2bP57W9/2+Z7Jk2axA9/+EOcTienn346gwcPZsOGDXz66af88Y9/5Nvf/vYut3fbbbfx0ksv8eWXX3LNNdfQo0cPgMSfV111FZdccgmTJk3i7rvvbvO9pmny17/+FY/HwyWXXNJeWzvs/PPP55NPPuGUU07B7Xbzv//9j8svv5ysrCxmzZrFM888w6mnnsrxxx/Pq6++yh133IHP5+MXv/jFDq/1+uuvEwqF2hzEufjii/nvf//LyJEjufjii/H5fKxZs4apU6fy9ttvc8IJJyTtZxEREekQU0RERNLu7rvvNgHzscce2+G5K664wgTMV155JfHY5MmTTcA88sgjzZqamjbjn3zySRMwr7nmmjaP9+vXz+zXr99Ot3vqqaea4XA48fi6devMiooKEzA/+uijxONz5841XS6XWVBQYM6ZM2eHWlesWJH476VLl5qAeckll7QZc8kll5iAuXTp0h2+v7m52SwuLjZLS0vb1GOapvn++++bgPnd7353h+/bmd1txzRN8+ijjzYB8+CDDza3bNmSeHzx4sWm2+02/X6/2b9/f3PVqlWJ52pqaszi4mKzuLh4h/pM0zTPPfdcMycnx2xqakqMNwzDHD16tBmJRHYYv2nTpk7VLiIisje01F9ERMQCF110EQ6HI7EMvlUwGOTZZ5+lpKSEk08+OfH4o48+CsBf//rXHT7VnzhxIgcccADPPPNMu9t94oknEkvnXa6tC/969erFLbfckhjT6k9/+hORSIRbbrmFfffdd4fXq6io6MBPu2sej4fvfe97rFu3jldeeaXNc3/5y18AuPLKK/dqG9v77W9/m1hxADBw4EDGjh1LIBDglltuoU+fPonn/H4/p512Gps2bWL16tVtXqe5uZm33nqLk08+Ga/XC4DD4cA0TTweDw7HjrtZ26/uEBERSQct9RcREbFARUUFxx57LO+99x7ffPMNI0aMAOCVV16hpqaG6667rs3EfMaMGbjd7jbn1G8rFAqxcePGnZ460Kquro7FixdTXl7OkCFDdnj++OOPB+Dzzz9PPPbxxx8DtDkIkWxXXnkl999/P3/5y18SS+Y3bNjASy+9xIgRIzjqqKOSur3Ro0fv8Fjv3r3bfW7VqlX069cv8fg777xDfX19m6v55+Xlcdppp/Hqq69y4IEHcs455zB27FgOO+wwsrOzk/pziIiIdJQm/iIiIha55JJLeO+993jqqacS59W3rgDY/pz26upqIpEId9xxx25fs76+fpcT/0AgAEBpaelOny8rK2szDkhcNHDbT8GTbeDAgYwfP563336bpUuXMmDAAJ588klCoRBXXHFF0re3s+sgtB5k2d1z4XC4zeMvvvgiWVlZTJgwoc3jzz77LL/97W955plnuPXWWwHwer18+9vf5v7776dnz55J+TlEREQ6Skv9RURELHL22WeTl5fHP//5T6LRKBs2bODtt99m//33Z//9928z1u/3U1BQgGmau/3a9hPp7bVOatetW7fT59euXdtmHGy9CN/2y9yT7aqrrsI0TSZNmpT40+fzcdFFF6V0u50VjUZ59dVXOfbYY3c4WODz+bj99ttZuHAhK1as4J///Cdjx47l6aef5txzz7WoYhER6c408RcREbFIdnY25557LmvWrOG9997jX//6F5FIZKdXsD/88MPZsmULc+fO7fT28vLyGDRoEKtXr6aqqmqH56dMmQLAQQcd1Ga7EL+NYGe13uYuGo3ucsyECRPo168fTzzxBG+++SaLFy/m29/+NgUFBZ3ebip9+OGHVFdXt1nmvzMVFRVceOGFvP322wwePJgPP/xwh1s0ioiIpJom/iIiIhZqvef9008/zdNPP43L5eLCCy/cYdx1110HwGWXXcaaNWt2eL6hoSFxPv7ufP/738c0TW644YY2E/FNmzZx1113Jca0+uEPf4jL5eLOO+9k/vz5O7zeqlWr2t1m66kHK1eu3OUYh8PBFVdcwfr167n00kuB5F/UL5leeOEFHA4HZ5xxRpvHN27cyCeffLLD+IaGBurq6nA6nW2u3SAiIpIO+s0jIiJioaOOOooBAwbw3HPPEQ6HOe200ygpKdlh3HHHHcdvfvMbbrrpJgYPHswpp5zCgAEDqK+vZ/ny5VRWVjJ27Fjeeuut3W7v+uuv58033+Tll19m//3355RTTqGxsZHnnnuODRs28POf/5yxY8cmxo8YMYI//vGPXHnllRxwwAGcfvrpDB48mE2bNvHpp5/i9/sTKwV25bjjjuO+++7jsssu45xzziE3N5cePXrw4x//uM24H/zgB9x+++2sXbuW/fbbL7HaoCt66aWXGDNmDL169Wrz+OrVqzn88MMZPnw4Bx10EBUVFdTW1vLaa6+xbt06fvzjH5Ofn29R1SIi0l1p4i8iImIhwzC4+OKLExft29ky/1a/+MUvOPLII3n00UeZOnUqL7/8Mn6/nz59+nD55Zfz3e9+t93tZWVl8e677/Lggw/yzDPP8Nhjj+Fyudh///15+OGHueCCC3b4nssuu4yRI0dy//3388EHH/DSSy9RXFzMfvvtl/h0fnfGjx/PAw88wKRJk3jooYcIhUL069dvh4l/SUkJEyZM4MUXX+zSn/Z/+umnrFq1KrEKY1v9+/fnjjvu4IMPPmDKlCls2rSJwsJChg4dym9+8xvOP/98CyoWEZHuzjBN07S6CBEREZFYLMagQYPYuHEja9as2eNPxidOnMhTTz3F0qVL6d+/f2qKBG6++WbuvfdelixZwoABA5LymumqXUREuied4y8iIiJdwn//+1+WLVvGxRdfvFfL4QcMGIBhGPzmN79JYnVbvfjii+y///5JmfTn5uZiGEbiNo4iIiKpoKX+IiIiYqlf//rXbN68mccff5zc3FxuuummTr3OmWee2ebT8m2vVZBM8+bNS9pr3XzzzYRCocTfW2+fKCIikkxa6i8iIiKWMgwDt9vNvvvuywMPPMCxxx5rdUkiIiK2ok/8RURExFL6DEJERCS1dI6/iIiIiIiIiI1p4i8iIiIiIiJiY5r4i4iIiIiIiNiYJv4iIiIiIiIiNqaJv4iIiIiIiIiNaeIvIiIiIiIiYmOa+IuIiIiIiIjYmCb+IiIiIiIiIjamib+IiIiIiIiIjf0/1qhXxg7oJ6IAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "tidal.graphics.tidal_phase_exceedance(data.d, data.s, flood, ebb)" + "data": { + "image/png": "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iLkccNbDcMItVhciIiIiIhYxdKr/Aw88QCwWY9asWTz22GOZW/o1cDgcnHDCCXzxxRfNObyIiBxQGj76NXz4a9BWLSIiIiKyH80a+H/66adcdNFFHH744fts06NHDzZv3tzswppr6tSpXHzxxXTu3Bmv10vnzp0588wzef/99/doO2PGDEaPHk2bNm0oLCxk8ODBPP7447aa0iGHLujrzoeD/kzQ193qUsSmDiljnz8Br18HiWj2CxNbCQaDfPjhhwSDQatLERtTzsQMypkYzY4Za9bAv6qqim7duu23TSqVIhaLNauo5nrooYc45ZRTmDJlCmeffTY///nPOffcc6msrGTy5MmN2k6YMCHT9sILL+SWW24hFovx05/+lMsvv9zUuiW3eRMheu/4BG9C91EXYxxyxha9CS9cBOGqrNYl9uL1eunduzder/YrEeMoZ2IG5UyMZseMuZvzpA4dOrBy5cr9tlm0aBHdu5v3Cemrr77KPffcw+mnn85///tfSkpKGj0ej8cz/x8KhbjhhhtwuVxMnjyZY445BoBx48YxatQoXn/9dV5++WVdABAAfIkgA7a9bXUZYmNZydi6afD0WfW3+yvb/4VZaZl8Ph8DBgywugyxOeVMzKCcidHsmLFmfeI/atQo3n33XVasWLHXx7/44gs+/fRTzjrrrEMqrqlSqRR33HEHfr+fl156aY9BP4DH48n8/2uvvUZFRQVjx47NDPqh/h/4oYceAuBvf/ub8YVLXkg4vewq7EtCu/qLQbKWsR1L4V+nw9aF2SlMbCWRSLBr1y4SiYTVpYiNKWdiBuVMjGbHjDVr4H/nnXficrk4+eST+fvf/55Zy79o0SKefPJJzj33XEpKSrj99tuzWuy+zJgxg7Vr13LOOefQunVr3nvvPX73u9/xpz/9ifLy8j3aT5o0CYCzzz57j8dOOeUUCgsLKS8vJxrVmlmBGm8npg64lxpvJ6tLEZvKasaqt8Az34HVkw/9WGIrNTU1TJ06lZqaGqtLERtTzsQMypkYzY4Za9bAf8CAAbzxxhtEo1FuueUW/vWvf5FOpxk8eHBmrfx///tfevToke1696rh7gGdOnVi6NChfPe73+VXv/oVP/nJTxg+fDgjRoxgx44dmfbLli0DoF+/fnscy+1207t3bxKJBKtXr97na0ajUUKhUKM/QOa/Df8fDoeB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mvh7LBZj8+bNFBUV7fb7JPPU1tZSUVHBypUru/T1GyRzKWOSDsqZpINyJumgnEmqZVLGTNOkrq6O3r1773Zct5z4tx4Jaf3kf3u1tbVtxu2Mx+PB42l7dczW5RpiT/n5+V3+f3zJbMqYpINyJumgnEk6KGeSapmSsd3NW1t1yyscDB06FICFCxfu9PmqqioAhgwZkraaRERERERERFKhW078jznmGADeeecdYrFYm+fq6uqYNm0aPp+Pww8/3IryRERERERERJKmW078Bw0axIknnsiyZcv4wx/+0Oa52267jYaGBi6++GJycvbsdhliTx6Ph9tuu22HUztEkkUZk3RQziQdlDNJB+VMUs2OGTPM9q77b1OLFy9mzJgxbNiwgTPOOIPhw4fzySefMGXKFIYMGcL06dMpKiqyukwRERERERGRvdJtJ/4AK1eu5NZbb+Wtt96iurqasrIyzjzzTG677TYKCwutLk9ERERERERkr3Xrib+IiIiIiIiI3XXLc/xFREREREREugtN/EVERERERERsTBN/6XZWrVrF97//fXr37o3H46F///5ce+21bNmypUPfX11dzd/+9jfOOuss9tlnH3w+H36/n7Fjx/L444/vcItI6Z72Nmc7849//APDMDAMg7/97W9JrFYyVTJz9tFHH3HOOedQVlaGx+OhrKyME088kTfeeCMFlUumSFbGXnnlFY4//njKy8vx+XwMHDiQ8847jxkzZqSocskU//vf//jJT37CUUcdRX5+PoZh8H//93+deq1U/O4Ve0hGzjJ9DqBz/KVb2f5uDsOGDWPmzJlMmTKFoUOHMm3atHbv5vDnP/+ZH/7wh5SWlnLsscfSt29f1q9fzwsvvEAgEODss8/mf//7H4ZhpOmnkq4mGTnb3sqVKxk1ahTRaJT6+nomTZrEpZdemqKfQDJBMnP261//mltuuYXi4mJOPfVUysrK2LRpE7Nnz+aYY47hd7/7XYp/GumKkpWx66+/ngceeICioiLOPPNMiouLWbRoEa+88gqRSIS///3vXHzxxWn4iaQrOuCAA/jyyy/Jzc2lvLyc+fPnc+GFF/LPf/5zj14nFb97xT6SkbOMnwOYIt3IiSeeaALmo48+2ubx6667zgTMK664ot3XeP/9982XXnrJjEQibR5fu3atWVFRYQLmc889l9S6JbMkI2fbisVi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S9rbnO2KPvGXbSUrZ9XV1eZ1111n9u/f33S73WZhYaF5+umnmzNmzEjDTyFdWTIyFgqFzIceesg87LDDzLy8PNPpdJo9e/Y0J0yYYL799ttp+kmkq2pvv2rbTLX3XtbRvEr3k4ycZfocQJ/4i4iIiIiIiNiYruovIiIiIiIiYmOa+IuIiIiIiIjYmCb+IiIiIiIiIjamib+IiIiIiIiIjWniLyIiIiIiImJjmviLiIiIiIiI2Jgm/iIiIiIiIiI2pom/iIiIiIiIiI1p4i8iImJT/fv3p3///mnb3rJlyzAMg4kTJ6Ztm9uaOHEihmEkvn7zm99YUseeyM3NbVPzsmXLrC5JRERsSBN/ERERSanWCXm6JrXXXHMNt912G2PHjk3L9tavX4/T6eTqq6/e4++9+eabue2229h///1TUJmIiEicy+oCRERExB769OnDvHnz8Pv9ltZx7bXXpnWlw8svv0wsFuOss87a4++9+eabgfhqiS+//DLZpYmIiACa+IuIiEiSuN1uhg0bZnUZaffiiy9SVFTEuHHjrC5FRERkp7TUX0REJM1mzJiBYRicffbZuxwzePBgPB4PmzdvbvP422+/zSmnnEJxcTEej4dBgwZxww03UFNT0+HtNzc3c++99zJq1Ciys7PJz8/nqKOO4j//+c8uv2fmzJl85zvfoU+fPng8HsrKyjjxxBP573//mxizs3P8DcPgqaeeAmDAgAGJc9lbP5E//PDDcTqduzwN4P7778cwDB544IEO/3y78q1vfQvDMAiHw9x5550MGjQIr9fL0KFDmTRpUmLcH/7wB0aOHInP56O8vJzbb7+dWCy209cMBAJMnjyZ0047DafTCUAwGOShhx7iwAMPpKCggOzsbCoqKjjttNN499139/rnEBER2VP6xF9ERCTNjjjiCIYMGcJrr71GdXU1RUVFbZ6fPn06ixYt4pxzzqGwsDDx+J133sltt91GUVEREyZMoKSkhK+++or777+fN954g+nTp7e7zD4UCnHiiSfy0UcfMWLECH70ox/R2NjIc889xwUXXMDs2bP57W9/2+Z7Jk2axA9/+EOcTienn346gwcPZsOGDXz66af88Y9/5Nvf/vYut3fbbbfx0ksv8eWXX3LNNdfQo0cPgMSfV111FZdccgmTJk3i7rvvbvO9pmny17/+FY/HwyWXXNJeWzvs/PPP55NPPuGUU07B7Xbzv//9j8svv5ysrCxmzZrFM888w6mnnsrxxx/Pq6++yh133IHP5+MXv/jFDq/1+uuvEwqF2hzEufjii/nvf//LyJEjufjii/H5fKxZs4apU6fy9ttvc8IJJyTtZxEREekQU0RERNLu7rvvNgHzscce2+G5K664wgTMV155JfHY5MmTTcA88sgjzZqamjbjn3zySRMwr7nmmjaP9+vXz+zXr99Ot3vqqaea4XA48fi6devMiooKEzA/+uijxONz5841XS6XWVBQYM6ZM2eHWlesWJH476VLl5qAeckll7QZc8kll5iAuXTp0h2+v7m52SwuLjZLS0vb1GOapvn++++bgPnd7353h+/bmd1txzRN8+ijjzYB8+CDDza3bNmSeHzx4sWm2+02/X6/2b9/f3PVqlWJ52pqaszi4mKzuLh4h/pM0zTPPfdcMycnx2xqakqMNwzDHD16tBmJRHYYv2nTpk7VLiIisje01F9ERMQCF110EQ6HI7EMvlUwGOTZZ5+lpKSEk08+OfH4o48+CsBf//rXHT7VnzhxIgcccADPPPNMu9t94oknEkvnXa6tC/969erFLbfckhjT6k9/+hORSIRbbrmFfffdd4fXq6io6MBPu2sej4fvfe97rFu3jldeeaXNc3/5y18AuPLKK/dqG9v77W9/m1hxADBw4EDGjh1LIBDglltuoU+fPonn/H4/p512Gps2bWL16tVtXqe5uZm33nqLk08+Ga/XC4DD4cA0TTweDw7HjrtZ26/uEBERSQct9RcREbFARUUFxx57LO+99x7ffPMNI0aMAOCVV16hpqaG6667rs3EfMaMGbjd7jbn1G8rFAqxcePGnZ460Kquro7FixdTXl7OkCFDdnj++OOPB+Dzzz9PPPbxxx8DtDkIkWxXXnkl999/P3/5y18SS+Y3bNjASy+9xIgRIzjqqKOSur3Ro0fv8Fjv3r3bfW7VqlX069cv8fg777xDfX19m6v55+Xlcdppp/Hqq69y4IEHcs455zB27FgOO+wwsrOzk/pziIiIdJQm/iIiIha55JJLeO+993jqqacS59W3rgDY/pz26upqIpEId9xxx25fs76+fpcT/0AgAEBpaelOny8rK2szDkhcNHDbT8GTbeDAgYwfP563336bpUuXMmDAAJ588klCoRBXXHFF0re3s+sgtB5k2d1z4XC4zeMvvvgiWVlZTJgwoc3jzz77LL/97W955plnuPXWWwHwer18+9vf5v7776dnz55J+TlEREQ6Skv9RURELHL22WeTl5fHP//5T6LRKBs2bODtt99m//33Z//9928z1u/3U1BQgGmau/3a9hPp7bVOatetW7fT59euXdtmHGy9CN/2y9yT7aqrrsI0TSZNmpT40+fzcdFFF6V0u50VjUZ59dVXOfbYY3c4WODz+bj99ttZuHAhK1as4J///Cdjx47l6aef5txzz7WoYhER6c408RcREbFIdnY25557LmvWrOG9997jX//6F5FIZKdXsD/88MPZsmULc+fO7fT28vLyGDRoEKtXr6aqqmqH56dMmQLAQQcd1Ga7EL+NYGe13uYuGo3ucsyECRPo168fTzzxBG+++SaLFy/m29/+NgUFBZ3ebip9+OGHVFdXt1nmvzMVFRVceOGFvP322wwePJgPP/xwh1s0ioiIpJom/iIiIhZqvef9008/zdNPP43L5eLCCy/cYdx1110HwGWXXcaaNWt2eL6hoSFxPv7ufP/738c0TW644YY2E/FNmzZx1113Jca0+uEPf4jL5eLOO+9k/vz5O7zeqlWr2t1m66kHK1eu3OUYh8PBFVdcwfr167n00kuB5F/UL5leeOEFHA4HZ5xxRpvHN27cyCeffLLD+IaGBurq6nA6nW2u3SAiIpIO+s0jIiJioaOOOooBAwbw3HPPEQ6HOe200ygpKdlh3HHHHcdvfvMbbrrpJgYPHswpp5zCgAEDqK+vZ/ny5VRWVjJ27Fjeeuut3W7v+uuv58033+Tll19m//3355RTTqGxsZHnnnuODRs28POf/5yxY8cmxo8YMYI//vGPXHnllRxwwAGcfvrpDB48mE2bNvHpp5/i9/sTKwV25bjjjuO+++7jsssu45xzziE3N5cePXrw4x//uM24H/zgB9x+++2sXbuW/fbbL7HaoCt66aWXGDNmDL169Wrz+OrVqzn88MMZPnw4Bx10EBUVFdTW1vLaa6+xbt06fvzjH5Ofn29R1SIi0l1p4i8iImIhwzC4+OKLExft29ky/1a/+MUvOPLII3n00UeZOnUqL7/8Mn6/nz59+nD55Zfz3e9+t93tZWVl8e677/Lggw/yzDPP8Nhjj+Fyudh///15+OGHueCCC3b4nssuu4yRI0dy//3388EHH/DSSy9RXFzMfvvtl/h0fnfGjx/PAw88wKRJk3jooYcIhUL069dvh4l/SUkJEyZM4MUXX+zSn/Z/+umnrFq1KrEKY1v9+/fnjjvu4IMPPmDKlCls2rSJwsJChg4dym9+8xvOP/98CyoWEZHuzjBN07S6CBEREZFYLMagQYPYuHEja9as2eNPxidOnMhTTz3F0qVL6d+/f2qKBG6++WbuvfdelixZwoABA5LymumqXUREuied4y8iIiJdwn//+1+WLVvGxRdfvFfL4QcMGIBhGPzmN79JYnVbvfjii+y///5JmfTn5uZiGEbiNo4iIiKpoKX+IiIiYqlf//rXbN68mccff5zc3FxuuummTr3OmWee2ebT8m2vVZBM8+bNS9pr3XzzzYRCocTfW2+fKCIikkxa6i8iIiKWMgwDt9vNvvvuywMPPMCxxx5rdUkiIiK2ok/8RURExFL6DEJERCS1dI6/iIiIiIiIiI1p4i8iIiIiIiJiY5r4i4iIiIiIiNiYJv4iIiIiIiIiNqaJv4iIiIiIiIiNaeIvIiIiIiIiYmOa+IuIiIiIiIjYmCb+IiIiIiIiIjamib+IiIiIiIiIjf0/1qhXxg7oJ6IAAAAASUVORK5CYII=", + "text/plain": [ + "
" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "base", - "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" - }, - "vscode": { - "interpreter": { - "hash": "1b38577481a8c337d860514619746143ecc67292e11e5807b52b737c5351e332" - } + }, + "metadata": {}, + "output_type": "display_data" } + ], + "source": [ + "tidal.graphics.tidal_phase_exceedance(data.d, data.s, flood, ebb)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "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": 4 + "vscode": { + "interpreter": { + "hash": "1b38577481a8c337d860514619746143ecc67292e11e5807b52b737c5351e332" + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 } diff --git a/examples/tidal_performance_example.ipynb b/examples/tidal_performance_example.ipynb index 1eb311853..a3cd56c62 100644 --- a/examples/tidal_performance_example.ipynb +++ b/examples/tidal_performance_example.ipynb @@ -1,690 +1,715 @@ { - "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Tidal Power Performance Analysis\n", - "\n", - "The following example demonstrates a simple workflow for conducting the power performance analysis of a turbine, given turbine specifications, power data, and Acoustic Doppler Current Profiler (ADCP) water measurements.\n", - "\n", - "In this case, the turbine specifications can be broken down into\n", - " 1. Shape of the rotor's swept area\n", - " 2. Turbine rotor diameter/height and width\n", - " 3. Turbine hub height (center of swept area)\n", - "\n", - "Additional data needed:\n", - " - Power data from the current energy converter (CEC)\n", - " - 2-dimensional water velocity data\n", - "\n", - "In this jupyter notebook, we'll be covering the following three topics:\n", - " 1. CEC power-curve\n", - " 2. Velocity profiles\n", - " 3. CEC efficiency profile (or power coefficient profile)\n", - "\n", - "Start by importing the necessary tools:" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\Users\\mcve343\\Anaconda3\\lib\\site-packages\\xarray\\backends\\cfgrib_.py:29: UserWarning: Failed to load cfgrib - most likely there is a problem accessing the ecCodes library. Try `import cfgrib` to get the full error message\n", - " warnings.warn(\n" - ] - } - ], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "from mhkit.tidal import performance\n", - "from mhkit.dolfyn import load" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this case, we'll use ADCP data from the ADCP example notebook. I am importing a dataset from the ADCP example notebook. This data retains the original timestamps (1 Hz sampling frequency) and was rotated into the principal coordinate frame (streamwise-cross_stream-up)." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "# Open processed ADCP dataset\n", - "ds = load('data/tidal/adcp.principal.a1.20200815.nc')" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, since we don't have power data, we'll invent a mock timeseries based off the cube of water velocity, just to have something to work with." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "# Streamwise and hub-height water velocity\n", - "streamwise_vel = ds['vel'].sel(dir='streamwise')\n", - "hub_height_vel = abs(streamwise_vel.isel(range=10))\n", - "\n", - "# Emulate power data\n", - "power = hub_height_vel**3 * 1e5\n", - "# Emulate cut-in speed by setting power at flow speeds below 0.5 m/s to 0 W\n", - "power = power.where(abs(streamwise_vel.mean('range')) > 0.5, 0)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The first step for any of the following calculations is to first split velocity into ebb and flood tide. You'll need some background information on the site to know which direction is positive and which is negative in the data." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "ebb = streamwise_vel.where(streamwise_vel > 0)\n", - "flood = streamwise_vel.where(streamwise_vel < 0)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "With the ebb and flood velocities, we can also divide the power data into that for ebb and flood tides." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "# Make sure ebb and flood are on same timestamps\n", - "power = power.interp(time=streamwise_vel['time'])\n", - "\n", - "power_ebb = power.where(~ebb.mean('range').isnull(), 0)\n", - "power_flood = power.where(~flood.mean('range').isnull(), 0)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Power-curve\n", - "\n", - "Now with power and velocity divided into ebb and flood tides, we can calculate the power curve for the CEC in both conditions\n" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "power_curve_ebb = performance.power_curve(\n", - " power_ebb,\n", - " velocity=ebb,\n", - " hub_height=4.2,\n", - " doppler_cell_size=0.5, \n", - " sampling_frequency=1, \n", - " window_avg_time=600,\n", - " turbine_profile='circular',\n", - " diameter=3,\n", - " height=None,\n", - " width=None)\n", - "power_curve_flood = performance.power_curve(\n", - " power_flood,\n", - " velocity=flood,\n", - " hub_height=4.2,\n", - " doppler_cell_size=0.5, \n", - " sampling_frequency=1, \n", - " window_avg_time=600,\n", - " turbine_profile='circular',\n", - " diameter=3,\n", - " height=None,\n", - " width=None)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
U_avgU_avg_power_weightedP_avgP_stdP_maxP_min
U_bins
(0.0, 0.1]0.0674590.0000000.0000000.0000000.0000000.000000
(0.1, 0.2]0.1156140.0000000.0000000.0000000.0000000.000000
(0.2, 0.3]0.2496760.2256390.0000000.0000000.0000000.000000
(0.3, 0.4]0.3396000.3155610.0000000.0000000.0000000.000000
(0.4, 0.5]0.4593930.4372492890.7249862660.8100225551.535008229.914964
(0.5, 0.6]0.5485070.53297419677.3435184645.89093624323.23445415031.452582
(0.6, 0.7]0.6714490.65536240369.4355173679.26013545506.30667737083.470337
(0.7, 0.8]0.7261890.70484552413.9720242856.73714257360.86147350670.102583
(0.8, 0.9]0.8439580.82591679944.0008559798.56967496206.92802566531.815452
(0.9, 1.0]0.9387010.920960103970.0421755828.263891112163.97743499100.055332
(1.0, 1.1]1.0466071.026293148511.10000818809.350864171583.550611124179.073981
(1.1, 1.2]1.1473481.127691200340.8205816299.518554209073.741656187772.752668
\n", - "
" - ], - "text/plain": [ - " U_avg U_avg_power_weighted P_avg P_std \\\n", - "U_bins \n", - "(0.0, 0.1] 0.067459 0.000000 0.000000 0.000000 \n", - "(0.1, 0.2] 0.115614 0.000000 0.000000 0.000000 \n", - "(0.2, 0.3] 0.249676 0.225639 0.000000 0.000000 \n", - "(0.3, 0.4] 0.339600 0.315561 0.000000 0.000000 \n", - "(0.4, 0.5] 0.459393 0.437249 2890.724986 2660.810022 \n", - "(0.5, 0.6] 0.548507 0.532974 19677.343518 4645.890936 \n", - "(0.6, 0.7] 0.671449 0.655362 40369.435517 3679.260135 \n", - "(0.7, 0.8] 0.726189 0.704845 52413.972024 2856.737142 \n", - "(0.8, 0.9] 0.843958 0.825916 79944.000855 9798.569674 \n", - "(0.9, 1.0] 0.938701 0.920960 103970.042175 5828.263891 \n", - "(1.0, 1.1] 1.046607 1.026293 148511.100008 18809.350864 \n", - "(1.1, 1.2] 1.147348 1.127691 200340.820581 6299.518554 \n", - "\n", - " P_max P_min \n", - "U_bins \n", - "(0.0, 0.1] 0.000000 0.000000 \n", - "(0.1, 0.2] 0.000000 0.000000 \n", - "(0.2, 0.3] 0.000000 0.000000 \n", - "(0.3, 0.4] 0.000000 0.000000 \n", - "(0.4, 0.5] 5551.535008 229.914964 \n", - "(0.5, 0.6] 24323.234454 15031.452582 \n", - "(0.6, 0.7] 45506.306677 37083.470337 \n", - "(0.7, 0.8] 57360.861473 50670.102583 \n", - "(0.8, 0.9] 96206.928025 66531.815452 \n", - "(0.9, 1.0] 112163.977434 99100.055332 \n", - "(1.0, 1.1] 171583.550611 124179.073981 \n", - "(1.1, 1.2] 209073.741656 187772.752668 " - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "power_curve_flood" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next we can plot the two power curves. A velocity bin is missing in the ebb tide power curve in this example because the data is so short, there are no samples for that bin." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3gAAAJaCAYAAAB9feXHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3xUVfr48c/MZNKTSSMNUugkBAgBwUhJUGkiouuiK4iiroqg6GLf/bmWxbKuuK4sRVwEV1Hc74quZRelBaTXQCB0AiGQkJDeM5m5vz9u5pJJo6Xneb9e8wq599yZM2PMybnnOc+jUxRFQQghhBBCCCFEm6dv6Q4IIYQQQgghhGgcMsETQgghhBBCiHZCJnhCCCGEEEII0U7IBE8IIYQQQggh2gmZ4AkhhBBCCCFEOyETPCGEEEIIIYRoJ2SCJ4QQQgghhBDthEzwhBBCCCGEEKKdcGjpDnQ0VquV8+fP4+HhgU6na+nuCCFEh6EoCoWFhQQHB6PXy/1NGxmXhBCi5TTF2CQTvGZ2/vx5QkJCWrobQgjRYZ09e5YuXbq0dDdaDRmXhBCi5TXm2CQTvGbm4eEBqP8RPT09W7g3QgjRcRQUFBASEqL9HhYqGZeEEKLlNMXYJBO8ZmYLf/H09JSBVAghWoCEIdqTcUkIIVpeY45NsglBCCGEEEIIIdoJmeAJIYQQQgghRDshEzwhhBBCCCGEaCdkD14roygKlZWVWCyWlu6KENfFaDRiMBhauhtCiEYgY5NoDwwGAw4ODrIPV7R7MsFrRSoqKkhPT6ekpKSluyLEddPpdHTp0gV3d/eW7ooQ4jrI2CTaE1dXV4KCgnB0dGzprgjRZGSC10pYrVZSUlIwGAwEBwfj6Ogod5hEm6UoCllZWaSlpdGzZ09ZyROijZKxSbQXiqJQUVFBVlYWKSkp9OzZs9GKSgvR2sgEr5WoqKjAarUSEhKCq6trS3dHiOvWqVMnTp8+jdlslgmeEG2UjE2iPXFxccFoNHLmzBkqKipwdnZu6S4J0STk1kUrI3eTRHshd/mFaD9kbBLthfwsi45AfsqFEEIIIYQQop2QCZ4QQgghhBBCtBOyB68dslgVdqbkkFlYhr+HM0O6+mDQS7icEEKIliNjkxBCNA9ZwWtnVh9MZ/if13Pfx9t5emUi9328neF/Xs/qg+lN/tpbt27FYDAwbty4Jn8tgNdeew2dTodOp8NgMBASEsJvf/tbsrKymuX1hRBCXBkZm2RsEkI0H5ngtSOrD6bzxOd7Sc8vszuekV/GE5/vbfKB9JNPPuGpp55i8+bNpKamNulr2fTt25f09HRSU1NZtGgR33//PQ888ECzvPbl2AoDCyFERyZjk4xNQojmJRO8VkxRFEoqKq/oUVhm5tXvDqHU9TxVX1/7LpnCMvMVPZ+i1PVM9SsuLuZf//oXTzzxBLfffjvLly/XzsXGxvLSSy/Ztc/KysJoNLJhwwYA0tPTmTBhAi4uLnTt2pUvvviC8PBwPvjggwZf18HBgcDAQDp37sztt9/O7Nmz+fnnnyktLcVqtfLGG2/QpUsXnJyciI6OZvXq1dq1d999N0899ZT2/TPPPINOp+PQoUMAVFZW4uHhwU8//aR+jorCu+++S7du3XBxcWHAgAH8+9//1q5PSEhAp9Px008/MXjwYJycnPjll1+u6nMUQojWTsYmGZuEEK2b7MFrxUrNFiL/+FOjPJcCZBSU0e+1n6+offIbY3F1vPIfj6+++orevXvTu3dv7r//fp566ileeeUVdDodU6dO5S9/+Qtvv/22ljr/q6++IiAggLi4OAAeeOABLl68SEJCAkajkTlz5pCZmXnV79PFxQWr1UplZSWLFy9m3rx5fPTRRwwcOJBPPvmEO+64g0OHDtGzZ0/i4+NZsmSJdu3GjRvx8/Nj48aN9O3bl127dlFWVsawYcMA+H//7/+xatUqFi1aRM+ePdm0aRP3338/nTp10t4HwAsvvMB7771Ht27d8PLyuur3IIQQrZmMTTI2CSFaN1nBE41i6dKl3H///QCMGzeOoqIi1q1bB8C9997L+fPn2bx5s9b+iy++YMqUKej1eo4cOcLatWv5+OOPGTp0KDExMfzjH/+gtLT0qvpw5MgRFi1axJAhQ/Dw8OC9997jxRdf5De/+Q29e/fmz3/+M9HR0dqd1/j4eA4dOsTFixfJzc3l0KFDPPPMMyQkJADqXc9Bgwbh7u5OcXEx77//Pp988gljx46lW7duTJ8+nfvvv5+PPvrIrh9vvPEGo0ePpnv37vj6+l7jJyqEEOJ6ydh0iYxNQnQcsoLXirkYDSS/MfaK2u5MyWH6sl2Xbbf8oRsY0tXnil77Sh09epSdO3eyatUqQA1Nuffee/nkk0+49dZb6dSpE6NHj2bFihWMGDGClJQUtm3bxqJFi7TrHRwciImJ0Z6zR48eeHt7X/a1k5KScHd3x2KxUF5ert35LCgo4Pz589odTpthw4axf/9+AKKiovD19WXjxo0YjUYGDBjAHXfcwYcffgiog6jt7mdycjJlZWWMHj3a7vkqKioYOHCg3bHBgwdf8WcnhBBtjYxNMjYJIVo3meC1Yjqd7opDUUb07ESQyZmM/LI69zrogECTMyN6dmr0tNRLly6lsrKSzp07a8cURcFoNJKbm4u3tzdTp07l6aefZv78+XzxxRf07duXAQMGaG3rciV7LXr37s13332HwWAgODgYJycnAAoKCgC0sJvqz2k7ptPpGDlyJAkJCTg6OhIfH09UVBQWi4WkpCS2bt3KM888A4DVagXgxx9/tHufgPaaNm5ubpfttxAd1cLEheh1emYMmFHr3OL9i7EqVmZGz2yBnokrJWOTjE1CdHStfSyTEM12wqDX8erESEAdMKuzff/qxMhGH0ArKyv55z//ybx580hMTNQe+/fvJywsjBUrVgBw5513UlZWxurVq/niiy+0kBmAPn36UFlZyb59+7RjJ06cIC8v77Kv7+joSI8ePejatavdYObp6UlwcLBd6A2o6bIjIiK07+Pj40lISCAhIYH4+Hh0Oh0jRozgvffeo7S0VLvLGhkZiZOTE6mpqfTo0cPuERISck2fnRAdkV6nZ0HiAhbvX2x3fPH+xSxIXIBeJ8NSeyJjk4xNQrRHrX0skxW8dmRcVBCL7o/h9e+T7dJRB5qceXViJOOighr9NX/44Qdyc3N55JFHMJlMdud+/etfs3TpUp588knc3NyYNGkSr7zyCocPH2bKlClauz59+nDrrbfy2GOPsWjRIoxGI88++ywuLi617nJejeeff55XX32V7t27Ex0dzbJly0hMTNQGdlAH0aeffhoHBwdGjBihHXv22WeJiYnB09MTAA8PD5577jl+97vfYbVaGT58OAUFBWzduhV3d3cefPDBa+6nEB2J7W7ngsQF2ve2AXFW9Kw674aKtk3GJnsyNgnR9lUfyxQUnhjwRKsay2SC186MiwpidGQgO1NyyCwsw9/DmSFdfRr97qjN0qVLufXWW2sNoKCmen7rrbfYu3cvMTExTJ06lQkTJjBy5EhCQ0Pt2v7zn//kkUceYeTIkQQGBvL2229z6NAh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4eHBHXfcwR133MHcuXMZO3Ysc+fOZfTo0U3yenWx/RETHh6ubfT/+OOPGTp0qF276p/z1KlTefrpp5k/fz5ffPEFffv2bXV3okXLO198ngslF3DQOdD/Yqp6MGwY/h7OV3C1jhwnNYSuh1ePpuukuHYyNsnY1IRkbBItZVfGLnLKcvBy8mJoSlV4ZrXsmXBp/12fXj0hsCvknLp0MmgABEc3U28bJhO81kynu7pQFJ9u6gPAoeqXf5chzfLD5ubmRo8etf8Y69GjB46OjmzevJkpU6YAaojK7t27eeaZZ7R28fHxbNiwgR07dvDGG2/g5eVFZGQkc+fOxd/fn4iICEDd3G2xWMjMzNRCMa5H9T6npaXh4OBQ5/toSjqdjj59+rB161ZAvcML2O2DMJlMBAUFsX37dkaOHAlAZWUle/bsISYm5qpfs7S0lCVLljBy5Egt7KZz586cOnWqwbued955J48//jirV6/miy++YNq0aVf92qL9s63eRfpG4npqu3owfDhDuvoQZHImI7+szn14OiDQ5EyZTp089PCWCV6rJGOTjE1VZGwS7YktPPOWgBswHlkKegfofWm13GJV2Fm9wHnJRTB1gdwzl/YXtxIywRNNys3NjSeeeILnn38eHx8fQkNDeffddykpKeGRRx7R2sXHx/O3v/0NHx8fIiMjtWPz58/X4u4BevXqxdSpU3nggQeYN28eAwcO5OLFi6xfv55+/fpx2223Nev7S01NJScnh9TUVCwWi3bXtUePHnZ3bW0SExN59dVXmTZtGpGRkTg6OrJx40Y++eQTXnzxRUDNKubi4sLq1avp0qULzs7OmEwmnn76ad555x169uxJREQE77//Pnl5eVfUz8zMTMrKyigsLGTPnj28++67XLx4UdskD/Daa68xe/ZsPD09GT9+POXl5ezevZvc3FzmzJkDqP89J02axCuvvMLhw4e1P4yEqG7Phar9d969IfsHQAehsRj0Ol6dGMkTn++tdY0OmGJYy5Od0pmZqd4hlRU80VRkbLInY5Po6MxWM2tT1wLVwjPDR4DrpULmRzIKKCirxM3RQN9gTzDoYdYOyE2FxBXgEVjXU7cImeC1Vx6B6gbPVvDD9s4772C1Wpk2bRqFhYUMHjyYn376CW9vb62N7c5fXFycFr4SFxfHBx98UCsL1rJly5g7dy7PPvss586d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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "def plot_power_curve(P_curve, ax):\n", - " ax.plot(P_curve['U_avg'], P_curve['P_avg'], '-o', color='C0', label='Avg Power')\n", - " ax.plot(P_curve['U_avg'], (P_curve['P_avg'] - P_curve['P_std']), '--+', color='C1', label='Power - 1 Std Dev')\n", - " ax.plot(P_curve['U_avg'], (P_curve['P_avg'] + P_curve['P_std']), '-+', color='C1', label='Power + 1 Std Dev')\n", - " ax.plot(P_curve['U_avg'], P_curve['P_min'], '--x', color='C2', label='Min Power')\n", - " ax.plot(P_curve['U_avg'], P_curve['P_max'], '-x', color='C2', label='Max Power')\n", - " ax.set(xlabel='Flow Speed at Hub Height [m/s]', ylabel='Power [W]')\n", - " ax.legend()\n", - "\n", - "fig, ax = plt.subplots(1,2, figsize=(10,7))\n", - "plot_power_curve(power_curve_ebb, ax[0])\n", - "plot_power_curve(power_curve_flood, ax[1])" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Velocity Profiles\n", - "Various velocity profiles can be created next from the water velocity data, and we can do this again with ebb and flood tide. These functions are following three steps:\n", - " 1. Reshape the data into bins by time (ensembles)\n", - " 2. Apply a function to the ensembles to get ensemble statistics (mean, root-mean-square (RMS), or standard devation)\n", - " 3. Regroup and bin the ensemble statistics by flow speed\n", - "\n", - "These profiles are created using the `velocity_profiles` method, and a profile is specified using the \"function\" argument. For the average velocity profiles, we'll set the function = 'mean'.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "avg_profile_ebb = performance.velocity_profiles(\n", - " velocity=ebb, \n", - " hub_height=4.2,\n", - " water_depth=10,\n", - " sampling_frequency=1, \n", - " window_avg_time=600,\n", - " function='mean')\n", - "avg_profile_flood = performance.velocity_profiles(\n", - " velocity=ebb, \n", - " hub_height=4.2,\n", - " water_depth=10,\n", - " sampling_frequency=1, \n", - " window_avg_time=600,\n", - " function='mean')\n" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### RMS Tidal Velocity\n", - "\n", - "For RMS velocity profiles, we'll set the function = 'rms'." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "rms_profile_ebb = performance.velocity_profiles(\n", - " velocity=ebb, \n", - " hub_height=4.2,\n", - " water_depth=10,\n", - " sampling_frequency=1, \n", - " window_avg_time=600,\n", - " function='rms')\n", - "rms_profile_flood = performance.velocity_profiles(\n", - " velocity=ebb, \n", - " hub_height=4.2,\n", - " water_depth=10,\n", - " sampling_frequency=1, \n", - " window_avg_time=600,\n", - " function='rms')" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Std Dev Tidal Velocity\n", - "\n", - "And to get the standard deviation, we'll set function = 'std'." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "std_profile_ebb = performance.velocity_profiles(\n", - " velocity=ebb, \n", - " hub_height=4.2,\n", - " water_depth=10,\n", - " sampling_frequency=1, \n", - " window_avg_time=600,\n", - " function='std')\n", - "std_profile_flood = performance.velocity_profiles(\n", - " velocity=ebb, \n", - " hub_height=4.2,\n", - " water_depth=10,\n", - " sampling_frequency=1, \n", - " window_avg_time=600,\n", - " function='std')" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, we can plot these variables together based on ebb and flood tides. The following code plots the mean and RMS profiles as line plots with \"x\" and \"+\" markers, respectively, and shades the area between +/- 1 standard deviation from the mean." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Flood Tide')" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0oAAAJuCAYAAACOkPJ5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeXxU133//9edRSON9gUhCQnEDkJgxBK22IaAMcFLncROWieO3SZu2qTN6uZbf5s0idPEv+SbJk3dLE2a1o2z2nHSOl4wNt5ZhADJIMQmLAQSEkL7Mlpm5t7fH1czkkDL3NG9oxnp83w8eICuZu69YEtvnXM/53MUTdM0hBBCCCGEEEIE2ab6BoQQQgghhBAi2shASQghhBBCCCGuIQMlIYQQQgghhLiGDJSEEEIIIYQQ4hoyUBJCCCGEEEKIa8hASQghhBBCCCGuIQMlIYQQQgghhLiGDJSEEEIIIYQQ4hoyUBJCCCGEEEKIa8hASYhRPP744yiKMuav1157LfhaRVH4m7/5m5DPeeTIEcP3M969XHtfDzzwAIWFhSGf96tf/arh+xFCCGGN8fLnoYceCr6usLCQBx54YErucaLs2Lp1a0iZ9dWvfjX4971w4cKE1926dStbt2417e8hxEQcU30DQkSz//qv/2LZsmXXHS8qKorofRw8eHDEx1//+td59dVXeeWVV0YcLyoqoqCggM985jORvD0hhBAmGy1/8vLypuhujPnhD39IZ2dn8OPnnnuOf/qnf7ru75Sfn4/L5eLgwYPk5uZOxa0KMS4ZKAkxjuLiYtatWzfVt8HGjRtHfDxr1ixsNtt1xwFSUlIidVtCCCEsEi35E45rJxNPnz4NjP13mjVrVkTuSwijpPROCJP8+7//O0uWLMHlclFUVMRvfvObUV/X1tbGn//5n5ORkUFiYiJ33HEH77zzjmn3MVrpXWdnJw8++CCZmZkkJSWxa9cuzp49O+r7z507x7333kt2djYul4vly5fzgx/8wLT7E0IIYY2LFy/ykY98ZMT373/+539GVdURr2ttbeWTn/wkc+bMIS4ujgULFvAP//AP9Pf3j3idkewI12ild5qm8e1vf5t58+YRHx/PmjVreOGFF0Z9f2dnJw899BDz588nLi6OOXPm8NnPfpaenh5T71PMTPJESYhx+P1+fD7fiGOKomC320cce+aZZ3j11Vd55JFHSExM5Ic//CF/9md/hsPh4O677x7x2o997GPccsst/OpXv+LSpUt86UtfYuvWrRw/fpy0tDTT/w6apnHXXXdx4MAB/vEf/5H169ezf/9+3vve91732qqqKjZv3szcuXP553/+Z3JycnjxxRf59Kc/TXNzM1/5yldMvz8hhBDXGy1/HI6xf2y7evUqmzdvZmBggK9//esUFhby7LPP8tBDD3H+/Hl++MMfAtDX18e2bds4f/48X/va11i1ahVvvvkmjz76KBUVFTz33HOAseww29e+9jW+9rWv8bGPfYy7776bS5cu8eCDD+L3+1m6dGnwdR6Ph5tvvpm6ujr+7//9v6xatYqTJ0/yj//4j5w4cYKXX34ZRVEsv18xjWlCiOv813/9lwaM+stut494LaAlJCRojY2NwWM+n09btmyZtmjRouvO+b73vW/E+/fv368B2j/90z+FfH/333+/lpiYOObn5s2bF/z4hRde0ADt+9///ojXfeMb39AA7Stf+Urw2K233qrl5+drHR0dI177N3/zN1p8fLzW2toa8j0KIYQwbrz88Xq9wdfNmzdPu//++4Mf//3f/70GaKWlpSPO99d//deaoijamTNnNE3TtB//+McaoD355JMjXvetb31LA7S9e/dqmmYsO0L9O5WVlY35uZqaGk3TNK2trU2Lj48fMytvvvnm4LFHH31Us9ls1533d7/7nQZozz//fMj3KMRopPROiHH8/Oc/p6ysbMSv0tLS6163fft2Zs+eHfzYbrfzoQ99iOrqaurq6ka89sMf/vCIjzdv3sy8efN49dVXLfk7BM577XXvvffeER/39fWxb98+3ve+9+F2u/H5fMFfu3fvpq+vj0OHDllyj0IIIUYaLX/Ge6L0yiuvUFRUxLve9a4Rxx944AE0TQs2/3nllVdITEy8rtoh0EFv3759QOjZYbaDBw/S19c3ZlYO9+yzz1JcXMzq1atHZNatt956XYdaIcIhpXdCjGP58uUhLabNyckZ81hLSwv5+fkTvralpWUSdzq2lpYWHA4HmZmZo97f8Nf5fD4ee+wxHnvssVHP1dzcbMk9CiGEGCnU/AloaWkZdWuIQKe8QMa0tLSQk5NzXUladnY2DodjxOtCyQ6zBa4/Xq4GXLlyherqapxO56jnkswSkyUDJSFM0NjYOOaxa0NmrNcu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HWjf30Cr1aJXr15wc3PTtw0YMAAigitXriA4OLhLMzfWnjGsWLEC0dHRWLhwIQBgyJAhcHJyQkxMDP74xz9a/LteljSPO8JS5jF1LtYm8z+nWZvqsTaZliXN446wlHncGbr1J0p2dnYICwtDamqqQXtqaiqioqKa3ScyMrLJ9vv27UN4eDhUKlWXZW1Oe/ID9av8mTNnYvPmzWY/b9fYMbi6uuLf//43Tp48qf9JSkpCv379cPLkSYwaNcpU0QG0728QHR2N77//HuXl5fq2vLw8KJVK+Pr6dmne5rRnDHfv3oVSafjyYWNjA+DHd78smSXN4/aypHlMnYu1yfzPadameqxNpmVJ87i9LGkedwpT3jnCEjXcenLDhg2Sk5Mj8+bNEycnJ7l48aKIiCxatEimT5+u377h1o0vvvii5OTkyIYNGyziFqxtzb9582axtbWVd999VwoLC/U/t2/fNkt+EePH0Ji57yxkbP6ysjLx9fWVn/3sZ/Kf//xHMjIyJDg4WJ5//nlzDcHoMSQnJ4utra2sW7dO8vPzZf/+/RIeHi4jR440S/6ysjLJzs6W7OxsASCrVq2S7Oxs/S1kLX0eG5vfEucxdS7WJvM/p1mbWJs6irXJ/PO4o7r9QklE5N133xV/f3+xs7OT4cOHS0ZGhv53M2bMkNjYWIPt09PTZdiwYWJnZycBAQHy3nvvmTixIWPyx8bGCoAmPzNmzDB98PsY+ze4n7mLkYjx+U+fPi1jxowRBwcH8fX1lfnz58vdu3dNnNqQsWNYs2aNhISEiIODg2i1Wnn22WflypUrJk5dLy0trcXntaXPY2PzW+o8ps7F2mT+5zRrE2tTR7A2WcY87giFiBV8FklERERERGRC3foaJSIiIiIiouZwoURERERERNQIF0pERERERESNcKFERERERETUCBdKREREREREjXChRERERERE1AgXSkRERERERI1woURERERERNQIF0pEFiA9PR0KhQK3b9+2yOM1Pq5CocDkyZM79dit2bRpk77vefPmmbRvIqLuiLWpdaxNDzculMhivP/++3BxcUFtba2+rby8HCqVCjExMQbbZmZmQqFQIC8vr9XjdtULMwBcu3YNKpUKn3zySbO/nz17NoYMGdLp/bYmKioKhYWFcHNzA1D/Qu7u7t5px8/NzcWmTZs65VgFBQVQq9UoLS1t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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "def plot_velocity_profiles(avg_profile, rms_profile, std_profile, ax):\n", - " alt = avg_profile.index\n", - " mean = avg_profile.values.T\n", - " rms = rms_profile.values.T\n", - " std = std_profile.values.T\n", - "\n", - " ax.plot(mean[0], alt, '-x', label=avg_profile.columns[0])\n", - " ax.plot(mean[1], alt, '-x', label=avg_profile.columns[1])\n", - " ax.plot(mean[2], alt, '-x', label=avg_profile.columns[2])\n", - "\n", - " ax.fill_betweenx(alt, mean[0]-std[0], mean[0]+std[0], facecolor='lightblue')\n", - " ax.fill_betweenx(alt, mean[1]-std[1], mean[1]+std[1], facecolor='moccasin')\n", - " ax.fill_betweenx(alt, mean[2]-std[2], mean[2]+std[2], facecolor='palegreen')\n", - "\n", - " ax.plot(rms[0], alt, '+', color='C0')\n", - " ax.plot(rms[1], alt, '+', color='C1')\n", - " ax.plot(rms[2], alt, '+', color='C2')\n", - " ax.set(xlabel='Water Velocity [m/s]', ylabel='Altitude [m]', ylim=(0,10))\n", - " ax.legend()\n", - "\n", - "fig, ax = plt.subplots(1, 2, figsize=(10, 7))\n", - "plot_velocity_profiles(avg_profile_ebb, rms_profile_ebb, std_profile_ebb, ax[0])\n", - "ax[0].set_title('Ebb Tide')\n", - "plot_velocity_profiles(avg_profile_flood, rms_profile_flood, std_profile_flood, ax[1])\n", - "ax[1].set_title('Flood Tide')" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Current Energy Converter Efficiency\n", - "\n", - "The CEC efficiency, or device power coefficient, can be found using the `device_efficiency` method." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "efficiency_ebb = performance.device_efficiency(\n", - " power=power_ebb,\n", - " velocity=ebb,\n", - " water_density=ds['water_density'],\n", - " capture_area=np.pi*1.5**2,\n", - " hub_height=4.2,\n", - " sampling_frequency=1,\n", - " window_avg_time=600)\n", - "efficiency_flood = performance.device_efficiency(\n", - " power=power_flood,\n", - " velocity=flood,\n", - " water_density=ds['water_density'],\n", - " capture_area=np.pi*1.5**2,\n", - " hub_height=4.2,\n", - " sampling_frequency=1,\n", - " window_avg_time=600)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And these efficiency curves can be plotted as profiles:" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Flood Tide')" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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BocjyeY2b96My5cvS/d1Oh1Wr16NDh06GPWCAcCXX35pdH/Xrl24cOGC1RYfHDJkSK3XXbVqldF9Dw8PDBkyBIcOHUL37t3Rp0+fGrdbE0oisi/Dhg3D8ePHcfDgQaPjK1asgEqlkuLBsGHDUFJSgu+//77GeYbHAdPjh6UNGDAAbm5udcbLm9177704d+4cAgICao1bpi5eTZbBnjCymKNHj9aYmQQAHTp0MFrTJjAwEEOHDsXrr78uzY48efJkrctU7N+/H8888wwefvhhZGZmYs6cOWjdujWef/55q7yHkSNHYvDgwZg1axZKS0vRp08f7Ny5E1988UWNc99//30MGjQId955J6ZMmYJ27dqhuLgYZ8+exU8//VRjcVgisi8vvfQSVqxYgXvuuQf/+te/EB4ejrVr12LJkiWYMmUKOnXqBAB48skn8dFHH2HChAnIyMhAt27dsGPHDixYsAB33303hg8fDsC8+GFJLVq0wMyZM/Hmm28axcuEhIQaw5HTp0/Hd999h8GDB+Oll15C9+7dodfrcfHiRWzcuBF///vf0b9/f6u2l24i98wAUr76ZiYBEEuXLpXOBSCmTp0qlixZIjp06CBcXFxEly5dxJdfflnra27cuFE88cQTws/PT7i7u4u7775bnDlzxqz2mTM7UgghCgoKxNNPPy38/PyEh4eHGDFihDh58mSts5vS09PF008/LVq3bi1cXFxEy5YtxcCBA82avUlETVPfTMKb3To7UgghLly4IMaPHy8CAgKEi4uL6Ny5s3jnnXeETqczOi83N1c899xzIjQ0VDg7O4vw8HAxe/ZsUV5ebnSeOfGjse/p1tmRQgih1+tFYmKiCAsLE66urqJ79+7ip59+ErGxsUazI4UQoqSkRLz22muic+fOwtXVVfj6+opu3bqJl156yWjmOlmfSggh5Ej+iIiIiJoz1oQRERERyYBJGBEREZEMmIQRERERyYBJGBEREZEMmIQRERERyYBJGBEREZEMHH6xVr1ejz///BPe3t419v0iIuUSQqC4uBitWrWCk5Myv08yPhE5JlPjk8MnYX/++SfCwsLkbgYRWUlmZmaN7a6UgvGJyLE1FJ8cPgnz9vYGUP2D8PHxkbk1RGQpRUVFCAsLk/7GlYjxicgxmRqfHD4JM3Tx+/j4MMgROSAlD+MxPhE5tobikzILKYiI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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "def plot_efficiency(efficiency, ax):\n", - " means = efficiency.U_avg.values.T\n", - " eta = efficiency.Efficiency.values.T\n", - " ax.plot(means, eta, '-o')\n", - " ax.set(xlabel=\"Hub Height Flow Velocity [m/s]\", ylabel='Efficiency [%]')\n", - "\n", - "fig, ax = plt.subplots(1, 2, figsize=(7, 6))\n", - "plot_efficiency(efficiency_ebb, ax[0])\n", - "ax[0].set_title('Ebb Tide')\n", - "plot_efficiency(efficiency_flood, ax[1])\n", - "ax[1].set_title('Flood Tide')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "base", - "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.15" - }, - "vscode": { - "interpreter": { - "hash": "357206ab7e4935423e95e994af80e27e7e6c0672abcebb9d86ab743298213348" - } - } + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tidal Power Performance Analysis\n", + "\n", + "The following example demonstrates a simple workflow for conducting the power performance analysis of a turbine, given turbine specifications, power data, and Acoustic Doppler Current Profiler (ADCP) water measurements.\n", + "\n", + "In this case, the turbine specifications can be broken down into\n", + " 1. Shape of the rotor's swept area\n", + " 2. Turbine rotor diameter/height and width\n", + " 3. Turbine hub height (center of swept area)\n", + "\n", + "Additional data needed:\n", + " - Power data from the current energy converter (CEC)\n", + " - 2-dimensional water velocity data\n", + "\n", + "In this jupyter notebook, we'll be covering the following three topics:\n", + " 1. CEC power-curve\n", + " 2. Velocity profiles\n", + " 3. CEC efficiency profile (or power coefficient profile)\n", + "\n", + "Start by importing the necessary tools:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\mcve343\\Anaconda3\\lib\\site-packages\\xarray\\backends\\cfgrib_.py:29: UserWarning: Failed to load cfgrib - most likely there is a problem accessing the ecCodes library. Try `import cfgrib` to get the full error message\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from mhkit.tidal import performance\n", + "from mhkit.dolfyn import load" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this case, we'll use ADCP data from the ADCP example notebook. I am importing a dataset from the ADCP example notebook. This data retains the original timestamps (1 Hz sampling frequency) and was rotated into the principal coordinate frame (streamwise-cross_stream-up)." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Open processed ADCP dataset\n", + "ds = load(\"data/tidal/adcp.principal.a1.20200815.nc\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, since we don't have power data, we'll invent a mock timeseries based off the cube of water velocity, just to have something to work with." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# Streamwise and hub-height water velocity\n", + "streamwise_vel = ds[\"vel\"].sel(dir=\"streamwise\")\n", + "hub_height_vel = abs(streamwise_vel.isel(range=10))\n", + "\n", + "# Emulate power data\n", + "power = hub_height_vel**3 * 1e5\n", + "# Emulate cut-in speed by setting power at flow speeds below 0.5 m/s to 0 W\n", + "power = power.where(abs(streamwise_vel.mean(\"range\")) > 0.5, 0)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The first step for any of the following calculations is to first split velocity into ebb and flood tide. You'll need some background information on the site to know which direction is positive and which is negative in the data." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "ebb = streamwise_vel.where(streamwise_vel > 0)\n", + "flood = streamwise_vel.where(streamwise_vel < 0)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the ebb and flood velocities, we can also divide the power data into that for ebb and flood tides." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# Make sure ebb and flood are on same timestamps\n", + "power = power.interp(time=streamwise_vel[\"time\"])\n", + "\n", + "power_ebb = power.where(~ebb.mean(\"range\").isnull(), 0)\n", + "power_flood = power.where(~flood.mean(\"range\").isnull(), 0)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Power-curve\n", + "\n", + "Now with power and velocity divided into ebb and flood tides, we can calculate the power curve for the CEC in both conditions\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "power_curve_ebb = performance.power_curve(\n", + " power_ebb,\n", + " velocity=ebb,\n", + " hub_height=4.2,\n", + " doppler_cell_size=0.5,\n", + " sampling_frequency=1,\n", + " window_avg_time=600,\n", + " turbine_profile=\"circular\",\n", + " diameter=3,\n", + " height=None,\n", + " width=None,\n", + ")\n", + "power_curve_flood = performance.power_curve(\n", + " power_flood,\n", + " velocity=flood,\n", + " hub_height=4.2,\n", + " doppler_cell_size=0.5,\n", + " sampling_frequency=1,\n", + " window_avg_time=600,\n", + " turbine_profile=\"circular\",\n", + " diameter=3,\n", + " height=None,\n", + " width=None,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
U_avgU_avg_power_weightedP_avgP_stdP_maxP_min
U_bins
(0.0, 0.1]0.0674590.0000000.0000000.0000000.0000000.000000
(0.1, 0.2]0.1156140.0000000.0000000.0000000.0000000.000000
(0.2, 0.3]0.2496760.2256390.0000000.0000000.0000000.000000
(0.3, 0.4]0.3396000.3155610.0000000.0000000.0000000.000000
(0.4, 0.5]0.4593930.4372492890.7249862660.8100225551.535008229.914964
(0.5, 0.6]0.5485070.53297419677.3435184645.89093624323.23445415031.452582
(0.6, 0.7]0.6714490.65536240369.4355173679.26013545506.30667737083.470337
(0.7, 0.8]0.7261890.70484552413.9720242856.73714257360.86147350670.102583
(0.8, 0.9]0.8439580.82591679944.0008559798.56967496206.92802566531.815452
(0.9, 1.0]0.9387010.920960103970.0421755828.263891112163.97743499100.055332
(1.0, 1.1]1.0466071.026293148511.10000818809.350864171583.550611124179.073981
(1.1, 1.2]1.1473481.127691200340.8205816299.518554209073.741656187772.752668
\n", + "
" + ], + "text/plain": [ + " U_avg U_avg_power_weighted P_avg P_std \\\n", + "U_bins \n", + "(0.0, 0.1] 0.067459 0.000000 0.000000 0.000000 \n", + "(0.1, 0.2] 0.115614 0.000000 0.000000 0.000000 \n", + "(0.2, 0.3] 0.249676 0.225639 0.000000 0.000000 \n", + "(0.3, 0.4] 0.339600 0.315561 0.000000 0.000000 \n", + "(0.4, 0.5] 0.459393 0.437249 2890.724986 2660.810022 \n", + "(0.5, 0.6] 0.548507 0.532974 19677.343518 4645.890936 \n", + "(0.6, 0.7] 0.671449 0.655362 40369.435517 3679.260135 \n", + "(0.7, 0.8] 0.726189 0.704845 52413.972024 2856.737142 \n", + "(0.8, 0.9] 0.843958 0.825916 79944.000855 9798.569674 \n", + "(0.9, 1.0] 0.938701 0.920960 103970.042175 5828.263891 \n", + "(1.0, 1.1] 1.046607 1.026293 148511.100008 18809.350864 \n", + "(1.1, 1.2] 1.147348 1.127691 200340.820581 6299.518554 \n", + "\n", + " P_max P_min \n", + "U_bins \n", + "(0.0, 0.1] 0.000000 0.000000 \n", + "(0.1, 0.2] 0.000000 0.000000 \n", + "(0.2, 0.3] 0.000000 0.000000 \n", + "(0.3, 0.4] 0.000000 0.000000 \n", + "(0.4, 0.5] 5551.535008 229.914964 \n", + "(0.5, 0.6] 24323.234454 15031.452582 \n", + "(0.6, 0.7] 45506.306677 37083.470337 \n", + "(0.7, 0.8] 57360.861473 50670.102583 \n", + "(0.8, 0.9] 96206.928025 66531.815452 \n", + "(0.9, 1.0] 112163.977434 99100.055332 \n", + "(1.0, 1.1] 171583.550611 124179.073981 \n", + "(1.1, 1.2] 209073.741656 187772.752668 " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "power_curve_flood" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we can plot the two power curves. A velocity bin is missing in the ebb tide power curve in this example because the data is so short, there are no samples for that bin." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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E6NHj2bFihWMGDGClJQUtm3bxqJFi7TrHRwciImJ0Z6zR48eeHt7X/a1k5KScHd3x2KxUF5ert35LCgo4Pz589odTpthw4axf/9+AKKiovD19WXjxo0YjUYGDBjAHXfcwYcffgiog6jt7mdycjJlZWWMHj3a7vkqKioYOHCg3bHBgwdf8WcnhBBtjYxNMjYJIVo3meC1Yjqd7opDUUb07ESQyZmM/LI69zrogECTMyN6dmr0tNRLly6lsrKSzp07a8cURcFoNJKbm4u3tzdTp07l6aefZv78+XzxxRf07duXAQMGaG3rciV7LXr37s13332HwWAgODgYJycnAAoKCgC0sJvqz2k7ptPpGDlyJAkJCTg6OhIfH09UVBQWi4WkpCS2bt3KM888A4DVagXgxx9/tHufgPaaNm5ubpfttxAd1cLEheh1emYMmFHr3OL9i7EqVmZGz2yBnokrJWOTjE1CdHStfSyTEM12wqDX8erESEAdMKuzff/qxMhGH0ArKyv55z//ybx580hMTNQe+/fvJywsjBUrVgBw5513UlZWxurVq/niiy+0kBmAPn36UFlZyb59+7RjJ06cIC8v77Kv7+joSI8ePejatavdYObp6UlwcLBd6A2o6bIjIiK07+Pj40lISCAhIYH4+Hh0Oh0jRozgvffeo7S0VLvLGhkZiZOTE6mpqfTo0cPuERISck2fnRAdkV6nZ0HiAhbvX2x3fPH+xSxIXIBeJ8NSeyJjk4xNQrRHrX0skxW8dmRcVBCL7o/h9e+T7dJRB5qceXViJOOighr9NX/44Qdyc3N55JFHMJlMdud+/etfs3TpUp588knc3NyYNGkSr7zyCocPH2bKlClauz59+nDrrbfy2GOPsWjRIoxGI88++ywuLi617nJejeeff55XX32V7t27Ex0dzbJly0hMTNQGdlAH0aeffhoHBwdGjBihHXv22WeJiYnB09MTAA8PD5577jl+97vfYbVaGT58OAUFBWzduhV3d3cefPDBa+6nEB2J7W7ngsQF2ve2AXFW9Kw674aKtk3GJnsyNgnR9lUfyxQUnhjwRKsay2SC186MiwpidGQgO1NyyCwsw9/DmSFdfRr97qjN0qVLufXWW2sNoKCmen7rrbfYu3cvMTExTJ06lQkTJjBy5EhCQ0Pt2v7zn//kkUceYeTIkQQGBvL2229z6NAh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4eHBHXfcwR133MHcuXMZO3Ysc+fOZfTo0U3yenWx/RETHh6ubfT/+OOPGTp0qF276p/z1KlTefrpp5k/fz5ffPEFffv2bXV3okXLO198ngslF3DQOdD/Yqp6MGwY/h7OV3C1jhwnNYSuh1ePpuukuHYyNsnY1IRkbBItZVfGLnLKcvBy8mJoSlV4ZrXsmXBp/12fXj0hsCvknLp0MmgABEc3U28bJhO81kynu7pQFJ9u6gPAoeqXf5chzfLD5ubmRo8etf8Y69GjB46OjmzevJkpU6YAaojK7t27eeaZZ7R28fHxbNiwgR07dvDGG2/g5eVFZGQkc+fOxd/fn4iICEDd3G2xWMjMzNRCMa5H9T6npaXh4OBQ5/toSjqdjj59+rB161ZAvcML2O2DMJlMBAUFsX37dkaOHAlAZWUle/bsISYm5qpfs7S0lCVLljBy5Egt7KZz586cOnWqwbued955J48//jirV6/miy++YNq0aVf92qL9s63eRfpG4npqu3owfDhDuvoQZHImI7+szn14OiDQ5EyZTp089PCWCV6rJGOTjE1VZGwS7YktPPOWgBswHlkKegfofWm13GJV2Fm9wHnJRTB1gdwzl/YXtxIywRNNys3NjSeeeILnn38eHx8fQkNDeffddykpKeGRRx7R2sXHx/O3v/0NHx8fIiMjtWPz58/X4u4BevXqxdSpU3nggQeYN28eAwcO5OLFi6xfv55+/fpx2223Nev7S01NJScnh9TUVCwWi3bXtUePHnZ3bW0SExN59dVXmTZtGpGRkTg6OrJx40Y++eQTXnzxRUDNKubi4sLq1avp0qULzs7OmEwmnn76ad555x169uxJREQE77//Pnl5eVfUz8zMTMrKyigsLGTPnj28++67XLx4UdskD/Daa68xe/ZsPD09GT9+POXl5ezevZvc3FzmzJkDqP89J02axCuvvMLhw4e1P4yEqG7Phar9d969IfsHQAehsRj0Ol6dGMkTn++tdY0OmGJYy5Od0pmZqd4hlRU80VRkbLInY5Po6MxWM2tT1wLVwjPDR4DrpULmRzIKKCirxM3RQN9gTzDoYdYOyE2FxBXgEVjXU7cImeC1Vx6B6gbPVvDD9s4772C1Wpk2bRqFhYUMHjyYn376CW9vb62N7c5fXFycFr4SFxfHBx98UCsL1rJly5g7dy7PPvss586d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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def plot_power_curve(P_curve, ax):\n", + " ax.plot(P_curve[\"U_avg\"], P_curve[\"P_avg\"], \"-o\", color=\"C0\", label=\"Avg Power\")\n", + " ax.plot(\n", + " P_curve[\"U_avg\"],\n", + " (P_curve[\"P_avg\"] - P_curve[\"P_std\"]),\n", + " \"--+\",\n", + " color=\"C1\",\n", + " label=\"Power - 1 Std Dev\",\n", + " )\n", + " ax.plot(\n", + " P_curve[\"U_avg\"],\n", + " (P_curve[\"P_avg\"] + P_curve[\"P_std\"]),\n", + " \"-+\",\n", + " color=\"C1\",\n", + " label=\"Power + 1 Std Dev\",\n", + " )\n", + " ax.plot(P_curve[\"U_avg\"], P_curve[\"P_min\"], \"--x\", color=\"C2\", label=\"Min Power\")\n", + " ax.plot(P_curve[\"U_avg\"], P_curve[\"P_max\"], \"-x\", color=\"C2\", label=\"Max Power\")\n", + " ax.set(xlabel=\"Flow Speed at Hub Height [m/s]\", ylabel=\"Power [W]\")\n", + " ax.legend()\n", + "\n", + "\n", + "fig, ax = plt.subplots(1, 2, figsize=(10, 7))\n", + "plot_power_curve(power_curve_ebb, ax[0])\n", + "plot_power_curve(power_curve_flood, ax[1])" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Velocity Profiles\n", + "Various velocity profiles can be created next from the water velocity data, and we can do this again with ebb and flood tide. These functions are following three steps:\n", + " 1. Reshape the data into bins by time (ensembles)\n", + " 2. Apply a function to the ensembles to get ensemble statistics (mean, root-mean-square (RMS), or standard devation)\n", + " 3. Regroup and bin the ensemble statistics by flow speed\n", + "\n", + "These profiles are created using the `velocity_profiles` method, and a profile is specified using the \"function\" argument. For the average velocity profiles, we'll set the function = 'mean'.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "avg_profile_ebb = performance.velocity_profiles(\n", + " velocity=ebb,\n", + " hub_height=4.2,\n", + " water_depth=10,\n", + " sampling_frequency=1,\n", + " window_avg_time=600,\n", + " function=\"mean\",\n", + ")\n", + "avg_profile_flood = performance.velocity_profiles(\n", + " velocity=ebb,\n", + " hub_height=4.2,\n", + " water_depth=10,\n", + " sampling_frequency=1,\n", + " window_avg_time=600,\n", + " function=\"mean\",\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### RMS Tidal Velocity\n", + "\n", + "For RMS velocity profiles, we'll set the function = 'rms'." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "rms_profile_ebb = performance.velocity_profiles(\n", + " velocity=ebb,\n", + " hub_height=4.2,\n", + " water_depth=10,\n", + " sampling_frequency=1,\n", + " window_avg_time=600,\n", + " function=\"rms\",\n", + ")\n", + "rms_profile_flood = performance.velocity_profiles(\n", + " velocity=ebb,\n", + " hub_height=4.2,\n", + " water_depth=10,\n", + " sampling_frequency=1,\n", + " window_avg_time=600,\n", + " function=\"rms\",\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Std Dev Tidal Velocity\n", + "\n", + "And to get the standard deviation, we'll set function = 'std'." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "std_profile_ebb = performance.velocity_profiles(\n", + " velocity=ebb,\n", + " hub_height=4.2,\n", + " water_depth=10,\n", + " sampling_frequency=1,\n", + " window_avg_time=600,\n", + " function=\"std\",\n", + ")\n", + "std_profile_flood = performance.velocity_profiles(\n", + " velocity=ebb,\n", + " hub_height=4.2,\n", + " water_depth=10,\n", + " sampling_frequency=1,\n", + " window_avg_time=600,\n", + " function=\"std\",\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we can plot these variables together based on ebb and flood tides. The following code plots the mean and RMS profiles as line plots with \"x\" and \"+\" markers, respectively, and shades the area between +/- 1 standard deviation from the mean." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Flood Tide')" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" }, - "nbformat": 4, - "nbformat_minor": 4 + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0oAAAJuCAYAAACOkPJ5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeXxU133//9edRSON9gUhCQnEDkJgxBK22IaAMcFLncROWieO3SZu2qTN6uZbf5s0idPEv+SbJk3dLE2a1o2z2nHSOl4wNt5ZhADJIMQmLAQSEkL7Mlpm5t7fH1czkkDL3NG9oxnp83w8eICuZu69YEtvnXM/53MUTdM0hBBCCCGEEEIE2ab6BoQQQgghhBAi2shASQghhBBCCCGuIQMlIYQQQgghhLiGDJSEEEIIIYQQ4hoyUBJCCCGEEEKIa8hASQghhBBCCCGuIQMlIYQQQgghhLiGDJSEEEIIIYQQ4hoyUBJCCCGEEEKIa8hASYhRPP744yiKMuav1157LfhaRVH4m7/5m5DPeeTIEcP3M969XHtfDzzwAIWFhSGf96tf/arh+xFCCGGN8fLnoYceCr6usLCQBx54YErucaLs2Lp1a0iZ9dWvfjX4971w4cKE1926dStbt2417e8hxEQcU30DQkSz//qv/2LZsmXXHS8qKorofRw8eHDEx1//+td59dVXeeWVV0YcLyoqoqCggM985jORvD0hhBAmGy1/8vLypuhujPnhD39IZ2dn8OPnnnuOf/qnf7ru75Sfn4/L5eLgwYPk5uZOxa0KMS4ZKAkxjuLiYtatWzfVt8HGjRtHfDxr1ixsNtt1xwFSUlIidVtCCCEsEi35E45rJxNPnz4NjP13mjVrVkTuSwijpPROCJP8+7//O0uWLMHlclFUVMRvfvObUV/X1tbGn//5n5ORkUFiYiJ33HEH77zzjmn3MVrpXWdnJw8++CCZmZkkJSWxa9cuzp49O+r7z507x7333kt2djYul4vly5fzgx/8wLT7E0IIYY2LFy/ykY98ZMT373/+539GVdURr2ttbeWTn/wkc+bMIS4ujgULFvAP//AP9Pf3j3idkewI12ild5qm8e1vf5t58+YRHx/PmjVreOGFF0Z9f2dnJw899BDz588nLi6OOXPm8NnPfpaenh5T71PMTPJESYhx+P1+fD7fiGOKomC320cce+aZZ3j11Vd55JFHSExM5Ic//CF/9md/hsPh4O677x7x2o997GPccsst/OpXv+LSpUt86UtfYuvWrRw/fpy0tDTT/w6apnHXXXdx4MAB/vEf/5H169ezf/9+3vve91732qqqKjZv3szcuXP553/+Z3JycnjxxRf59Kc/TXNzM1/5yldMvz8hhBDXGy1/HI6xf2y7evUqmzdvZmBggK9//esUFhby7LPP8tBDD3H+/Hl++MMfAtDX18e2bds4f/48X/va11i1ahVvvvkmjz76KBUVFTz33HOAseww29e+9jW+9rWv8bGPfYy7776bS5cu8eCDD+L3+1m6dGnwdR6Ph5tvvpm6ujr+7//9v6xatYqTJ0/yj//4j5w4cYKXX34ZRVEsv18xjWlCiOv813/9lwaM+stut494LaAlJCRojY2NwWM+n09btmyZtmjRouvO+b73vW/E+/fv368B2j/90z+FfH/333+/lpiYOObn5s2bF/z4hRde0ADt+9///ojXfeMb39AA7Stf+Urw2K233qrl5+drHR0dI177N3/zN1p8fLzW2toa8j0KIYQwbrz88Xq9wdfNmzdPu//++4Mf//3f/70GaKWlpSPO99d//deaoijamTNnNE3TtB//+McaoD355JMjXvetb31LA7S9e/dqmmYsO0L9O5WVlY35uZqaGk3TNK2trU2Lj48fMytvvvnm4LFHH31Us9ls1533d7/7nQZozz//fMj3KMRopPROiHH8/Oc/p6ysbMSv0tLS6163fft2Zs+eHfzYbrfzoQ99iOrqaurq6ka89sMf/vCIjzdv3sy8efN49dVXLfk7BM577XXvvffeER/39fWxb98+3ve+9+F2u/H5fMFfu3fvpq+vj0OHDllyj0IIIUYaLX/Ge6L0yiuvUFRUxLve9a4Rxx944AE0TQs2/3nllVdITEy8rtoh0EFv3759QOjZYbaDBw/S19c3ZlYO9+yzz1JcXMzq1atHZNatt956XYdaIcIhpXdCjGP58uUhLabNyckZ81hLSwv5+fkTvralpWUSdzq2lpYWHA4HmZmZo97f8Nf5fD4ee+wxHnvssVHP1dzcbMk9CiGEGCnU/AloaWkZdWuIQKe8QMa0tLSQk5NzXUladnY2DodjxOtCyQ6zBa4/Xq4GXLlyherqapxO56jnkswSkyUDJSFM0NjYOOaxa0NmrNcu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HWjf30Cr1aJXr15wc3PTtw0YMAAigitXriA4OLhLMzfWnjGsWLEC0dHRWLhwIQBgyJAhcHJyQkxMDP74xz9a/LteljSPO8JS5jF1LtYm8z+nWZvqsTaZliXN446wlHncGbr1J0p2dnYICwtDamqqQXtqaiqioqKa3ScyMrLJ9vv27UN4eDhUKlWXZW1Oe/ID9av8mTNnYvPmzWY/b9fYMbi6uuLf//43Tp48qf9JSkpCv379cPLkSYwaNcpU0QG0728QHR2N77//HuXl5fq2vLw8KJVK+Pr6dmne5rRnDHfv3oVSafjyYWNjA+DHd78smSXN4/aypHlMnYu1yfzPadameqxNpmVJ87i9LGkedwpT3jnCEjXcenLDhg2Sk5Mj8+bNEycnJ7l48aKIiCxatEimT5+u377h1o0vvvii5OTkyIYNGyziFqxtzb9582axtbWVd999VwoLC/U/t2/fNkt+EePH0Ji57yxkbP6ysjLx9fWVn/3sZ/Kf//xHMjIyJDg4WJ5//nlzDcHoMSQnJ4utra2sW7dO8vPzZf/+/RIeHi4jR440S/6ysjLJzs6W7OxsASCrVq2S7Oxs/S1kLX0eG5vfEucxdS7WJvM/p1mbWJs6irXJ/PO4o7r9QklE5N133xV/f3+xs7OT4cOHS0ZGhv53M2bMkNjYWIPt09PTZdiwYWJnZycBAQHy3nvvmTixIWPyx8bGCoAmPzNmzDB98PsY+ze4n7mLkYjx+U+fPi1jxowRBwcH8fX1lfnz58vdu3dNnNqQsWNYs2aNhISEiIODg2i1Wnn22WflypUrJk5dLy0trcXntaXPY2PzW+o8ps7F2mT+5zRrE2tTR7A2WcY87giFiBV8FklERERERGRC3foaJSIiIiIiouZwoURERERERNQIF0pERERERESNcKFERERERETUCBdKREREREREjXChRERERERE1AgXSkRERERERI1woURERERERNQIF0pEFiA9PR0KhQK3b9+2yOM1Pq5CocDkyZM79dit2bRpk77vefPmmbRvIqLuiLWpdaxNDzculMhivP/++3BxcUFtba2+rby8HCqVCjExMQbbZmZmQqFQIC8vr9XjdtULMwBcu3YNKpUKn3zySbO/nz17NoYMGdLp/bYmKioKhYWFcHNzA1D/Qu7u7t5px8/NzcWmTZs65VgFBQVQq9UoLS1tcbupU6eisLAQkZGRndIvEVFbsDZ1HtYmsjZcKJHFiI+PR3l5OY4dO6Zvy8zMhEajwdGjR3H37l19e3p6Onx8fNC3b1+T5RMRg0IJAN7e3pgwYQKSk5ObbF9ZWYktW7YgMTHRVBH17OzsoNFooFAouuT4PXv27LTi9sUXXyAuLg6urq4tbufg4ACNRgM7O7tO6ZeIqC1YmzoPaxNZGy6UyGL069cPPj4+SE9P17elp6fjqaeeQlBQELKysgza4+PjAQCffPIJwsPD4eLiAo1Gg2nTpuH69esAgIsXL+q369GjBxQKBWbOnAmgvri89dZbCAwMhIODA0JDQ7Ft2zaDPhQKBfbu3Yvw8HCo1WpkZmY2yZ2YmIi0tDRcvHjRoH3btm2oqqrCL37xi1b7as727dsxcOBAqNVqBAQE4O233zb4fXV1NV5++WX4+flBrVYjODgYGzZsMMh++/ZtpKenY9asWbhz547+9IA33ngDy5Ytw+DBg5v0GxYWhtdff73FbI3FxcXh97//PebNm4cePXrA29sb69evR0VFBWbNmgUXFxcEBQXh66+/brLvF198gUmTJulzjxw5Ek5OTnB3d0d0dDQKCgqMykJE1JlYmwyxNrE2dStCZEGmTZsmCQkJ+scjRoyQzz77TObMmSOvvPKKiIhUV1eLg4ODfPjhhyIismHDBtm9e7fk5+fLwYMHJSIiQsaPHy8iIrW1tbJ9+3YBILm5uVJYWCi3b98WEZFXXnlF+vfvL3v27JH8/HxJTk4WtVot6enpIiKSlpYmAGTIkCGyb98+OXfunBQXFzfJXFtbK1qtVpYsWWLQHhcXJ1OmTDGqr5KSEhEROXbsmCiVSlm2bJnk5uZKcnKyODg4SHJysv74U6ZMET8/P9mxY4fk5+fLN998I1u2bGlyvOrqannnnXfE1dVVCgsLpbCwUMrKyuTy5cuiVCrlyJEj+mOeOnVKFAqF5OfnN/v3aZyzQWxsrLi4uMjy5cslLy9Pli9fLkqlUsaPHy/r16+XvLw8mTNnjnh4eEhFRYV+v5KSElGpVHLp0iWpqakRNzc3WbBggZw7d05ycnJk06ZNUlBQ0KSvuXPnNpuPiKgrsDaViAhrE2tT98OFElmU9evXi5OTk9TU1EhpaanY2trKtWvXZMuWLRIVFSUiIhkZGQLggS+YR44cEQBSVlYmIs2/gJaXl4u9vb1kZWUZ7JuYmCjPPPOMwX6ff/55q7n/8Ic/iL+/v+h0OhEROX/+vCgUCtm7d69RfTVknDZtmowdO9Zg+4ULF0pISIiIiOTm5goASU1NbTZP4+MlJyeLm5tbk+3Gjx8vc+bM0T+eN2+exMXFPXCcLRWjxx57TP+4trZWnJycZPr06fq2wsJCASAHDx7Ut6WkpMjw4cNFROTmzZsCQF+gH4TFiIhMjbWpPiNr04OxNj2ceOodWZT4+HhUVFTg6NGjyMzMRN++fdGzZ0/Exsbi6NGjqKioQHp6Onr37o3AwEAAQHZ2Np566in4+/vDxcUFcXFxAIBLly49sJ+cnBxUVVVh7NixcHZ21v98/PHHyM/PN9g2PDy81dyJiYkoKCjAP//5TwDAxo0b4evrizFjxhjVV4PTp08jOjraoC06Ohpnz55FXV0dTp48CRsbG8TGxraarSW/+tWv8Omnn6Kqqgo1NTVISUnBc889165j3X9hsI2NDTw8PAxOn/D29gYA/akngOGpDY888ghmzpyJcePGYeLEiVi9ejUKCwvblYWIqDOxNtVjbWJt6m5szR2A6H59+vSBr68v0tLSUFJSon+x1Wg0ePTRR3HgwAGkpaVh9OjRAICKigokJCQgISEBn3zyCby8vHDp0iWMGzcO9+7de2A/Op0OAPDVV1+hV69eBr9Tq9UGj52cnFrNHRwcjJiYGCQnJyM+Ph4fffQRZs2aBaVSaVRfDUSkycWuIqL/bwcHh1YztcXEiROhVquxc+dOqNVqVFdX46c//Wm7jqVSqQweKxQKg7aG8TT8e9TU1GDPnj1YvHixfpvk5GS88MIL2LNnD7Zu3YrXXnsNqampiIiIaFcmIqLOwNpUj7WJtam74UKJLE58fDzS09NRUlKChQsX6ttjY2Oxd+9eHDp0CLNmzQIAnDlzBsXFxfjTn/4EPz8/ADC4MxEA/Z1o6urq9G0hISFQq9W4dOlSh9/5apCYmIg5c+bgqaeewpUrV/QZ29NXSEgI9u/fb9CWlZWFvn37wsbGBoMHD4ZOp0NGRgbGjBnT6vHs7OwMxt/A1tYWM2bMQHJyMtRqNZ5++mk4Ojq2KWNHpaWlwd3dHUOHDjVoHzZsGIYNG4bFixcjMjISmzdvZjEiIrNjbWJtYm3qfrhQIosTHx+P3/72t6ipqTF48Y6NjcWcOXNQVVWlv1tQ7969YWdnh7Vr1yIpKQnfffcdli9fbnA8f39/KBQKfPnll3jyySfh4OAAFxcXLFiwAC+++CJ0Oh0ee+wxlJaWIisrC87OzpgxY4bRuX/+85/jhRdewOzZs/HEE08gICAAANrV10svvYQRI0Zg+fLlmDp1Kg4ePIi//OUvWLduHQAgICAAM2bMwHPPPYc1a9YgNDQUBQUFuH79OqZMmdLkeAEBASgvL8c//vEPhIaGwtHRUV90nn/+eQwYMAAAcODAAaPH3V67du3Sn9oAABcuXMD69esxadIk+Pj4IDc3F3l5efjlL39pskxERA/C2sTaxNrUDZn3Eimipi5cuCAApH///gbtly9fFgASFBRk0L5582YJCAgQtVotkZGRsmvXLgEg2dnZ+m2WLVsmGo1GFAqFzJgxQ0REdDqdrF69Wvr16ycqlUq8vLxk3LhxkpGRISIPvji0Jb/+9a8FgGzevNmgvT19bdu2TUJCQkSlUknv3r1l5cqVBsesrKyUF198UbRardjZ2UmfPn1k48aNDzxeUlKSeHh4CIAmd0GKiYnRX4zbkpYumG18Eau/v7/8+c9/NmgDIDt37hQRET8/P4MLfouKimTy5Mn68fj7+8vrr78udXV1rfZFRNTVWJvqsTaxNnUnCpH7Ti4lom5HRNC/f3/Mnj0b8+fPb3Hbhu8IKSkp6dCX+p04cQKjR4/GjRs3mpw/3pq4uDgMHToU77zzTrv7JyIiy8baRJaAd70j6sauX7+OVatW4erVq/rz1tvC19cXzzzzTLv7ra2txdq1a40qRCkpKXB2dm72ixWJiOjhwdpEloKfKBF1YwqFAp6enli9ejWmTZvW6vaVlZW4evUqAMDZ2RkajaarI+qVlZXh2rVrAAB3d3d4enqarG8iIjId1iayFFwoERERERERNcJT74iIiIiIiBrhQomIiIiIiKgRLpSIiIiIiIga4UKJiIiIiIioES6UiIiIiIiIGuFCiYiIiIiIqBEulIiIiIiIiBrhQomIiIiIiKiR/wdzgV7aCsjPcAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def plot_velocity_profiles(avg_profile, rms_profile, std_profile, ax):\n", + " alt = avg_profile.index\n", + " mean = avg_profile.values.T\n", + " rms = rms_profile.values.T\n", + " std = std_profile.values.T\n", + "\n", + " ax.plot(mean[0], alt, \"-x\", label=avg_profile.columns[0])\n", + " ax.plot(mean[1], alt, \"-x\", label=avg_profile.columns[1])\n", + " ax.plot(mean[2], alt, \"-x\", label=avg_profile.columns[2])\n", + "\n", + " ax.fill_betweenx(alt, mean[0] - std[0], mean[0] + std[0], facecolor=\"lightblue\")\n", + " ax.fill_betweenx(alt, mean[1] - std[1], mean[1] + std[1], facecolor=\"moccasin\")\n", + " ax.fill_betweenx(alt, mean[2] - std[2], mean[2] + std[2], facecolor=\"palegreen\")\n", + "\n", + " ax.plot(rms[0], alt, \"+\", color=\"C0\")\n", + " ax.plot(rms[1], alt, \"+\", color=\"C1\")\n", + " ax.plot(rms[2], alt, \"+\", color=\"C2\")\n", + " ax.set(xlabel=\"Water Velocity [m/s]\", ylabel=\"Altitude [m]\", ylim=(0, 10))\n", + " ax.legend()\n", + "\n", + "\n", + "fig, ax = plt.subplots(1, 2, figsize=(10, 7))\n", + "plot_velocity_profiles(avg_profile_ebb, rms_profile_ebb, std_profile_ebb, ax[0])\n", + "ax[0].set_title(\"Ebb Tide\")\n", + "plot_velocity_profiles(avg_profile_flood, rms_profile_flood, std_profile_flood, ax[1])\n", + "ax[1].set_title(\"Flood Tide\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Current Energy Converter Efficiency\n", + "\n", + "The CEC efficiency, or device power coefficient, can be found using the `device_efficiency` method." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "efficiency_ebb = performance.device_efficiency(\n", + " power=power_ebb,\n", + " velocity=ebb,\n", + " water_density=ds[\"water_density\"],\n", + " capture_area=np.pi * 1.5**2,\n", + " hub_height=4.2,\n", + " sampling_frequency=1,\n", + " window_avg_time=600,\n", + ")\n", + "efficiency_flood = performance.device_efficiency(\n", + " power=power_flood,\n", + " velocity=flood,\n", + " water_density=ds[\"water_density\"],\n", + " capture_area=np.pi * 1.5**2,\n", + " hub_height=4.2,\n", + " sampling_frequency=1,\n", + " window_avg_time=600,\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And these efficiency curves can be plotted as profiles:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Flood Tide')" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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BocjyeY2b96My5cvS/d1Oh1Wr16NDh06GPWCAcCXX35pdH/Xrl24cOGC1RYfHDJkSK3XXbVqldF9Dw8PDBkyBIcOHUL37t3Rp0+fGrdbE0oisi/Dhg3D8ePHcfDgQaPjK1asgEqlkuLBsGHDUFJSgu+//77GeYbHAdPjh6UNGDAAbm5udcbLm9177704d+4cAgICao1bpi5eTZbBnjCymKNHj9aYmQQAHTp0MFrTJjAwEEOHDsXrr78uzY48efJkrctU7N+/H8888wwefvhhZGZmYs6cOWjdujWef/55q7yHkSNHYvDgwZg1axZKS0vRp08f7Ny5E1988UWNc99//30MGjQId955J6ZMmYJ27dqhuLgYZ8+exU8//VRjcVgisi8vvfQSVqxYgXvuuQf/+te/EB4ejrVr12LJkiWYMmUKOnXqBAB48skn8dFHH2HChAnIyMhAt27dsGPHDixYsAB33303hg8fDsC8+GFJLVq0wMyZM/Hmm28axcuEhIQaw5HTp0/Hd999h8GDB+Oll15C9+7dodfrcfHiRWzcuBF///vf0b9/f6u2l24i98wAUr76ZiYBEEuXLpXOBSCmTp0qlixZIjp06CBcXFxEly5dxJdfflnra27cuFE88cQTws/PT7i7u4u7775bnDlzxqz2mTM7UgghCgoKxNNPPy38/PyEh4eHGDFihDh58mSts5vS09PF008/LVq3bi1cXFxEy5YtxcCBA82avUlETVPfTMKb3To7UgghLly4IMaPHy8CAgKEi4uL6Ny5s3jnnXeETqczOi83N1c899xzIjQ0VDg7O4vw8HAxe/ZsUV5ebnSeOfGjse/p1tmRQgih1+tFYmKiCAsLE66urqJ79+7ip59+ErGxsUazI4UQoqSkRLz22muic+fOwtXVVfj6+opu3bqJl156yWjmOlmfSggh5Ej+iIiIiJoz1oQRERERyYBJGBEREZEMmIQRERERyYBJGBEREZEMmIQRERERyYBJGBEREZEMHH6xVr1ejz///BPe3t419v0iIuUSQqC4uBitWrWCk5Myv08yPhE5JlPjk8MnYX/++SfCwsLkbgYRWUlmZmaN7a6UgvGJyLE1FJ8cPgnz9vYGUP2D8PHxkbk1RGQpRUVFCAsLk/7GlYjxicgxmRqfHD4JM3Tx+/j4MMgROSAlD+MxPhE5tobikzILKYiIiIgUjkkYERERkQyYhBERERHJgEkYERERkQyYhBERERHJgEkYERERkQyYhBERERHJgEkYERERkQyYhBERERHJgEkYERERkQyYhBERERHJgEkYERERkQyYhBERERHJwFnuBhBZik4vsC89DznF5QjydkO/CH+onerfwZ6IyBEw/ikTkzByCOuPZmHeT8eRVVguHQv1dcPc0VEYFR0qY8uIiKyL8U+5OBxJirf+aBamrDxoFIAAILuwHFNWHsT6o1kytYyIyLoY/5SNSRgpmk4vMO+n4xC1PGY4Nu+n49DpazuDiEi5GP+Uj0kYKdq+9Lwa3wBvJgBkFZZjX3qe7RpFRGQDjH/KxySMFC2nuO4A1JjziIiUgvFP+ZiEkaIFebtZ9DwiIqUI8taYdN7nO9Jx4AJ7w+wRkzBStH4R/gj1rTvBUqF6llC/CH/bNYqIyMr0eoH1x7JNOve3PwrxYNJuPPbJHuw6exVCsEbMXjAJI0VTO6kwd3RUrY8ZVsiZOzqK6+UQkcPQ6QVe+d/vWL7rgnTs1ginun57Y8xtGNc3DC5qFXafz8X4T/fiof/sxtZTOUzG7ADXCSPF69m2BZydVNDeMgMo0EuDN8bexnVyiMhhVGr1eGn1Yaw9kgUnFfDOQz3gqVHXWCcs5JZ1wl4Y1hGfpJ7DV2mZOHAhH08lpyG6tQ+mDemIkVHBcOIXVVkwCSPF+2xHOrR6gd5t/TDzri54dc0RpF8txZx7ujIBIyLFunUV/O5tfDFt1UFsPXUFLmoVPnispxTjRkSF1Ltifms/d8wbE42pQyKxdPt5rNxzEUcvFeG5lQfQOdgbU4dG4p5uoRw1sDFZhyOTkpLQvXt3+Pj4wMfHBzExMVi3bp30uBACCQkJaNWqFdzd3REXF4djx47J2GKyN4XXqvDlnuou+alDIxHTIQD9r9d/nb9SImfTiIgabf3RLAxauAWPLd2DF78+jMeW7kHPf23E1lNX4ObihE8n9DX6kql2UiGmQwDG3N4aMR0C6kymgnzcMOeeKOx8ZSimDukAL40zTl0uxt++OoQRi1Lx3wN/oEqnt9XbbPZkTcLatGmDt956C/v378f+/fsxdOhQjBkzRkq03n77bSxatAgffvgh0tLSEBISghEjRqC4uFjOZpMdWb47A6WVOnQJ8caQzkEAgMggLwDAWSZhRKRAda2CX6mrLrmYGheJ2E4tm3QNf09X/OOuLtj58lDMGNEJfh4uOH+1FDO//Q1D/i8FX+69gAqtTjpfpxfYfS4XPxy+hN3ncrkArIWohJ1V5vn7++Odd97B008/jVatWmH69Ol4+eWXAQAVFRUIDg7GwoULMXnyZJNer6ioCL6+vigsLISPj481m042dq1Sizve2oL8a1V4f9ztGHN7awBA6ukrmPD5PnQM8sKmGbEyt5KsxRH+th3hPZBl6fQCgxZuqXcR1lBfN+x4eahFhw5LKrRYuecCPt1+HldLKgEAIT5umBzbHv6ernhr3clmuzdlYzZHN/Vv225qwnQ6Hb799luUlpYiJiYG6enpyM7OxsiRI6VzNBoNYmNjsWvXrjqTsIqKClRUVEj3i4qKrN52ksdX+zKRf60K4QEeuKfbjUDQ8XpPWPrVUlTp9HBRcxIwESlDQ6vgAzdWwY/pEGCx63ppnPFcbAdMiGmHr9Mu4uPU88guKse8n47Xer5hb8qkx3s5dCJm7c3RZf/f6ciRI/Dy8oJGo8Fzzz2HNWvWICoqCtnZ1eufBAcHG50fHBwsPVabxMRE+Pr6SrewsDCrtp/kUanV49Pt5wEAkwd3gPNNiVaorxs8XdXQ6gUu5JbK1UQiIrPJvQq+u6saT90RgdRZcXhj7G1Q19Hh0xz2prTF5uiyJ2GdO3fG4cOHsWfPHkyZMgUTJkzA8eM3Mm+VyvgTIISocexms2fPRmFhoXTLzMy0WttJPt8fuoSswnIEeWvwYO/WRo+pVKobdWE5rAsjIuWwl11ANM5qRLb0hq6e/MqR96a01ebosidhrq6uiIyMRJ8+fZCYmIgePXrg/fffR0hICADU6PXKycmp0Tt2M41GI822NNzIsej0Av9JPQcAeObOCGic1TXOiQzyBgCcucwkjIiUo1+EP0J86t6OyJa7gMjdKycnW22OLnsSdishBCoqKhAREYGQkBBs2rRJeqyyshKpqakYOHCgjC0kua0/mo3zV0vh6+6C8f3Daz2nY3B1T9gZ9oQRkYKonVTo3772Wi9b7wJiL71ytqbXC2w+edmkc5uagMpamP/qq68iPj4eYWFhKC4uxtdff42UlBSsX78eKpUK06dPx4IFC9CxY0d07NgRCxYsgIeHB8aPHy9ns0lGQggsSTkLAJgwsB28NLV/hCNbMgkjIuX5s6AMG49VJwC+7i4oLKuSHrt1FXxrM+zNm11YXuuwHAD4e7g6zN685VU6rDl0CUu3n8f5K6bVEzc1AZU1Cbt8+TKeeOIJZGVlwdfXF927d8f69esxYsQIAMCsWbNQVlaG559/Hvn5+ejfvz82btwIb29vOZtNMtp25iqO/VkEdxc1nhrYrs7zDD1h56+UQKcXXAWaiBRhwS8nUFalQ5/wFvj6rwOQlpFv1tIIlmTYm3fKyoNQAbUmYiWVWhz/swjd2vjarF2Wll9aiZV7LmD57gxpeQ4vjRpCAKWVulqfo0J1UtzUBFTWJOyzzz6r93GVSoWEhAQkJCTYpkFk95Zsre4Fe6xfW7TwdK3zvDYtPKBxdkKFVo8/8q8hPMDTVk0kImqU3edy8fPvWVCpgIT7boOz2smiy1A0xqjoUCQ93qvWZRr8PFxwIqsYTy1Lw5rnByLM30PGlprvYu41fLbjPL7Z/wfKqqqTrVa+bnh6UATG9WuLHWeuYMrKgwCME1BLDgvbzTphRA05cCEPe9Pz4KJW4dnBEfWeq3ZSoUNLLxzPKsKZyyVMwojIrml1esz7qXq3mPH92iK6tf30LI2KDq11b8prlVo8/J/dOJldjInJ+/DdlIHw86j7y7EtmLKw6uHMAizddh7rjmbBMLkxKtQHk2Pb4+5uodLaknUloJYcFmYSRoqxZGv1jMj7e7ZGqK97g+dHBlUnYWevlGA46p5RS0Qkt5V7LuBkdjH8PFwwc2RnuZtTg2Fvypt5u7lg2VP9cP+SnTh3pRR/XXEAKyb1g5tLzRnrtlDfwqojo0Kw5WQOPtl+3mhGY2ynlvjr4PYY2CGg1uWv6kpALTUszCSMFOFkdhE2n8yBSgVMju1g0nMMK+dzmQoisme5JRVYtOk0AODvIzvXW2phb0J83ZD8VF88nLQb+zLyMPPb3/DvcT3hZOM6XMPCqrfWrWUXluO5lQcR7KPB5aLq3XScnVS47/ZW+Ovg9ugS0vAyVrUloJbCJIwUISmluhfs7uhQdLg+87EhhuL8sznc8J2I7Nf/bTyFonItokJ9ML5fW7mbY7YuIT74zxO9MTF5H37+PQut/dwx++6uNru+KQurXi6qgJerGn+JCcfEge1MGk2xBbtbJ4zoVhdzr+Gn3/4EAEyJM60XDLixYOvZnBLY2T71REQAgN//KMDXadU7u8wbc5tiZ3LfERmIhQ92BwB8vO08VuzOsNm1TdlvEwD+/VhPzI7vajcJGMAkjBTg423noBfA4E4tzSpWDQ/wgLOTCqWVOpP+QImIbEmvF5j74zEIAYy9vRX6tlP2elsP9GqDmSM7AQASfjyGTcdNW/C0qUxdMLW4QmvllpiPSRjZtZyicnx74A8AwPNm9IIBgIvaCRGB1bMiuWgrEdmb/x26hEMXC+Dpqrbp8J01TR0SiXF9w6AXwAtfHcShi/lWvV6lVo9DFwtMOtceV/ZnEkZ27bMd6ajU6tGrrR/6N2JRPGn7osusCyMi+1FUXoW31p0EALwwrCOCfewvQWgMlUqFN8dGI65zS5RX6fHM8v24kGva6vPm0OkFvjvwB4a+m4JluzLqbxNst9+muZiEkd0qvFaFlXsuAKj+dlXb9OGGGLYvOsueMCKyI//+9QyullSgfaAnnr6j/nUPlcZZ7YSPxvdCdGsf5JZWYmJyGvJKKy3y2kIIbDyWjfj3t+Hv3/6GP/LL0NJbg3H9wqDCjYVUDWy936a5mISR3VqxOwOllTp0CfHG0C5BjXqNyOAbxflERPbgbE6x1Hvzz9FRcHV2vP+KPTXO+HxCX7T2c0f61VI8u2I/yqtq3wLIVLvP5eKBpF346xcHcPpyCXzcnPHyqC7Y9o8heOuB7kh6vBdCfI17FEN83ZD0eC+b7bdpLsf7zZNDKKvUIfl6kJoS16FRvWDATWuFcYYkmSkpKQndu3eHj48PfHx8EBMTg3Xr1kmPT5w4ESqVyug2YMAAGVtMSiCEQMKPx6HVCwzvGoy4zo37gqkEQT5uWP50X/i4OePAhXy8tPowdHrz4/CRPwrxxGd78djSPTh0sQDuLmo8H9cB22cNxZS4DnB3rV4cdlR0KHa8PBRfPTsA74+7HV89OwA7Xh5qtwkYwHXCyE59nXYReaWVaOvvgXu6Nf4PKCLQE04qoLCsCldKKuyyMJPsU5s2bfDWW28hMjISALB8+XKMGTMGhw4dwm233QYAGDVqFJKTk6XnuLoqZ5FNkseGY9nYcfYqXJ2d8M97o+RujtVFBnlj6ZN98MRn+7DuaDbmrz2Bf4427X2fu1KCRRtPY+2RLADVi6yO798W04ZG1hnLrbmwqjUwCSO7U6nV45Nt5wEAfx3cHs7qxnfYurmo0dbfAxm513D2cgmTMDLZ6NGjje7Pnz8fSUlJ2LNnj5SEaTQahISEyNE8UqCySh3e+PkEAGDy4PZoG6CsDa8bq3/7APzfIz3wt68O4fOd6Wjdwh0TB7arcyugPwvK8P6vZ/Dfg39ApxdQqYCxt7fGS8M7OdzPjEkY2Z3vD19CVmE5Wnpr8FDvNk1+vcgg7+ok7EoJBkYGWqCF1NzodDp8++23KC0tRUxMjHQ8JSUFQUFB8PPzQ2xsLObPn4+goLqHlyoqKlBRUSHdLyoqsmq7yb78J/UcLhWUoZWvG56Pi5S7OTZ1X49W+LOgDG+tO4k3fj6OD7acQcG1KunxUF83zBjRCaeyi7FizwVUavUAgOFdgzDzrs4mbS+kREzCyK7o9AL/Sa3eouiZQREW2Qi2Y7AXfj1xmXtIktmOHDmCmJgYlJeXw8vLC2vWrEFUVPVQSnx8PB5++GGEh4cjPT0dr7/+OoYOHYoDBw5Ao9HU+nqJiYmYN2+eLd8C2YnMvGtSbJtzT5RUx9ScTB7cHrvOXcW201eNEjAAyCosxz/++7t0v1+EP14e1Rm9w+1vWQlLYhJGdmXjsWycv1IKHzdn/GVAuEVe80ZxPtcKI/N07twZhw8fRkFBAb777jtMmDABqampiIqKwqOPPiqdFx0djT59+iA8PBxr167FAw88UOvrzZ49GzNmzJDuFxUVISwszOrvg+T35trjqNDqEdM+AHd3a55D2HoBnM6u/8uws5MKnzzRG0O6BDV6QpaSMAkjuyGEwJLrG3VPGNgOXhrLfDwjg7hWGDWOq6urVJjfp08fpKWl4f3338fHH39c49zQ0FCEh4fjzJkzdb6eRqOps5eMHNf2M1ew4dhlqJ1UmDfmtmaRXNRmX3oesovq32JIqxdwd3VuNj8jLlFBdmP7mas4cqkQbi5OmDiwncVet8P1BVuvllQi30ILBlLzJIQwqum6WW5uLjIzMxEaar/T4cn2KrV6JPx4DADwZEw4Ol1fu7A5MnWPR1PPcwRMwshuLEk5CwAY17ctArws11vgqXFGaz93AMDZK+wNI9O8+uqr2L59OzIyMnDkyBHMmTMHKSkp+Mtf/oKSkhLMnDkTu3fvRkZGBlJSUjB69GgEBgbi/vvvl7vpZEeW78rAuSulCPB0xfThneRujqxMnZ3enGaxcziS7MLBi/nYcz4Pzk4q/HVwe4u/fsdgL1wqKMOZyyXo286xCz3JMi5fvownnngCWVlZ8PX1Rffu3bF+/XqMGDECZWVlOHLkCFasWIGCggKEhoZiyJAhWL16Nby9m29PBxnLKSrH+5urh6dfHtUFvu4uMrdIXv0i/BHq64bswnLUtmSrCtUr3NvjHo/WwiSM7MKSrdW1YPf3bI1W13utLCmypRdSTl1hcT6Z7LPPPqvzMXd3d2zYsMGGrSElemv9SZRUaNEjzM8iy+0ondpJhbmjozBl5UGoAKNEzN73eLQWDkeS7E5lF+PXE5ehUgHPxXWwyjU6BrM4n4hs58CFPPzv4CUAwLz7boNTM0os6jMqOlSRezxaC3vCSHZJ12vBRt0WIhXRW1pkEDfyJiLb0OkF5l4vxn+kTxvcHuYnb4PszKjoUIyICqlzxfzmhEkYyUKnF9iXnoeTWUX48bc/AcCqK0gblqnIKixHcXkVvN2ad20GEVnP6rRMHL1UBG83Z8wa1UXu5tglpe3xaC1Mwsjm1h/NwryfjiOr8MY0ZFdnJ1wquIZubXytck1fdxcEeWuQU1yBszkl6Nm2hVWuQ0TNW8G1Sryz4SQA4KXhnRBowZne5HhYE0Y2tf5oFqasPGiUgAHVa+lMWXkQ649mWe3arAsjImtbtOk08q9VoVOwF56IscyuH+S4mISRzej0AvN+Ol7r1GSDeT8dh05f3xmN15F1YURkRSeyirByzwUAQMJ9t8FFzf9iqX78hJDN7EvPq9EDdjOB6pqtfel5Vrl+pLSHJJMwIrIsIaqL8fUCuKdbKAZ2CJS7SaQATMLIZuTesiKSG3kTkZX89HsW9qXnwc3FCa/e01Xu5pBCMAkjm5F7y4qO15OwP/LLUFaps8o1iKj5Ka3QYsHaEwCAqXGR0jZpRA1hEkY2Y9iyoq6VYFQAQq24ZUWAlwb+nq4QAjhnhT0kdXqB3edy8cPhS9h9LtdqtW1EZF8+2noW2UXlaOvvgWetsO0aOS4uUUE2c/OWFbey1ZYVkS29sK80D2dzShDd2nLLYdS27Eaorxvmjo5qditAEzUnGVdL8en2dADA6/dGwc1FLXOLSEnYE0Y2Zdiywt3F+KNnqy0rIoMtXxdW17Ib2YXlVl92g4hs7+Ze75dWH0alTo/YTi0xvGuQ3E0jhWFPGNncqOhQfL3vIlJOX8Vj/cJwX4/WNtuywlAXZqllKupbdkOguodv3k/HMSIqpFluyUHkaGrr9QaAIV1aQqXi3ziZhz1hJIuCMi0AIK5zEGI6BNgsQTGsFWapZSrkXnaDiGynrl5vAJj343H2epPZmISRLAquVQIA/D1dbXpdwzIVF3KvoULb9BmSci+7QUS2Ifdi0+SYmISRLPKvVQEAWnjYdiPtYB8NvDXO0OkFMq5ea/Lryb3sBhHZBnu9yRqYhJHNaXV6FJZVJ2F+HrbtCVOpVFJxviXqwgzLbtR5PVh32Q0isg32epM1MAkjmzMkYADg527bnjDgRnG+JWZIqp1U+Oe9UXU+LmD9ZTeIyPrY603WwCSMbM4wFOnj5gxnGTa4tfQekjpRXQNSW5rl6apGTHvuIUekdHIvNk2OiUkY2ZyhKL+FjYvyDQwzJM9ZIAmr0Orw9vpTAIAXhkXiq2cH4P1xt2PlpH6IbOmJ0kod3vv1dJOvQ0TyMiw2XRtbLTZNjodJGNlcXml1EmbrejADQ0/Y+Sul0Or0TXqtL/dcxMW8a2jprcHkwR0Q0yEAY25vjUEdWyLhvmgAwBd7LuBUNjcNJ1I6w2LTvreUUdhqsWlyPEzCyOYKrg9H+tt4ZqRBaz93uLuoUanT42Je42dIFpZV4d9bzgAAZozoBE+N8drHgzoGYmRUMHR6gX/9fAxCcOo6kdKNig7F34ZFAgBuD/PDV88OwI6XhzIBo0ZhEkY2l28YjpSpJ8zJSYUOQZ4AmlYXtiTlLAquVaFjkBce7t2m1nNeuycKrs5O2Hk2FxuOXW70tZSOm5uTIym6vth0VCsfmy42TY6H2xaRzRkK8+UajgSq68KOXirC2ZwS3HWb+c//I/8akndmAABm392lzgkGbQM88OydEfho6znM/+U44jq3bHYb/HJzc3I00hI7MszuJsfCnjCyufxSQ0+YfAEssol7SL678TQqtXrEtA/AkM71b9r7fFwkgn00yMwrw6fbzzfqekrFzc3JERVdT8JurQ0jMheTMLK5fJlnRwJNWyvs6KVCrDl0CQDw6t1dG9y011PjjNnxXQEAH209h6zCMrOvqUQNbW4OcJsXUqZCJmFkIUzCyOYKpC2L5EvCbu4J05uRBAghsOCXEwCAMbe3Qrc2viY9b8ztrdA7vAXKqnR4a91J8xusQNzmhRxVAZMwshAmYWRzedfkH45s6+8BV7UTyqv0uFRges9Uyqkr2HUuF65qJ8wc2dnk56lUKsy77zaoVMAPh//E/gzHTTzOXSnBx6nn8NqaIyadz21eSGmknjAZYxg5Bhbmk80ZFmuVszDfWe2E9i09cTK7GGdzShDm79Hgc3R6gcR11b1gE+9oZ9Jzbhbd2heP9gnD12mZSPjpGH6YOsiuZ1Xp9AL70vOQU1yOIO/qlcBra69Wp0daRj42n7iMzSdzkH611KzrcJsXUhoOR5KlMAkjmxJC3FgnTMaaMKB6SPJkdjHO5BRjSJf6i+sB4L8HMnH6cgl83V0wNS6yUdeceVdnrD2ShaOXivDN/kw81q9to17H2hqa0VhYVoXU01ew+cRlpJy6YrQfqItahQHtAzC0SxCWpJzD1eKKWuvCVKhe5JLbvJCSCCGYhJHFMAkjmyqu0EJ7vQbLT+aufGkPycsNz5C8VqnFuxurtx96YWhko4chAr00eHFYR7y59gTe2XAKd3cLtbtAbpjReGvilFVYjudWHkSnYK/q3QZuqqVr4eGCIV2CMLxrMO7sGAhvt+r3FOrrhikrD0IF1JqIcZsXUpryKj0qtdU7bdjb3y4pD5MwsinD8hTuLmrZ18sy7CF59krDSdin29ORU1yBMH93PBET3qTrThjYDl/tu4hzV0rx/q9n8M869qOTQ30zGg1OX09aI4O8MKxrEEZ0DUbPti1qTaYM27zc2qsGAMOjgrlOGCmOoRdM7aSCl4b/hVLT8BNENpUvzYyU/xtkx+DrMyQvl0AIUedSE1eKK/Bx6jkAwKy7ukDj3LTk0UXthH+Ovg0TPt+HFbszML5/GCKvJ4Rya2hGo8HiR3tgbM/adwm41ajoUIyICpHqyy7lX8PbG05j+5krUr0ZkVLcPBTZ0PI0RA3h7EiyKXtYI8ygXYAn1E4qFFdocbmoos7zFv96GqWVOvRo44t7u1um5ya2U0sM7xoEraHnSeZ9JYvLq7A67aLJMxrN/c9H7aSSNjefEheJ28P8UF6lR1LKucY0l0g2rAcjS2ISRjZVIPO+kTdzdXZCeED1DMe6Fm09m1OCr9MyAZi2MKs5XrsnCq5qJ2w/cxW/nsix2Ouauk+jTi+QcioHf/vqEPq8+Ste/u4Izpk4s7EpvVcqlQp/H9kJAPDl3ovNZvFacgyGGObDJIwsgMORZFN5pYZ9I+0jgHUMqi4yP5tTgjs7tqzx+ML1J6HTCwzvGoz+7QMseu12gZ6YdGcEklLO4c21xzG4U2CThzpN2afxVHYxvjv4B74/dAk5xTd6ACODvHB/z9ZYvisDV6w8o3FQZCD6tfPHvow8fLT1LN4c261Jr0dkK9w3kiyJSRjZlOFbpNzLUxh0DPLGhmOXcaaWPST3pedh0/HLUDup8Ep8F6tcf+qQSHx34A9cyL2Gz3ak4/lGLn0B1D2rMfv6rMaHe7fB8awiHPuzSHqshYcL7uvRCg/2boNurX2hUqnQoaVnrTMaDX2AlpjRqFKpMGNkJ4z7ZA9Wp2XiudgOaNPCvHXXiOTA4UiyJFmHIxMTE9G3b194e3sjKCgIY8eOxalTp4zOmThxIlQqldFtwIABMrWYmirfDhZqvZm0fdEty1QIITD/+vZE4/qGSedZmpfGWUrwPtxyFpfyy0waSryVKfs0fnvgDxz7swguahVGRgXj4yd6Y++rwzFvTDS6t/GThloNMxpDfI2HHEN83ZD0eC+LzWgc0D4Ad0QGoEon8MHmsxZ5TSJrYxJGliRrT1hqaiqmTp2Kvn37QqvVYs6cORg5ciSOHz8OT09P6bxRo0YhOTlZuu/qah//gZP57Gl2JHDTWmG31IT9/HsWfsssgKerGtOHd7JqG8be3hpf7LmAQxcLMGxRCsqr9NJjtw4l1mX3uasmzWp86o52eGFoxwZ7Im+d0VjfivlNMWNEZ+w8uwvfHsjEgPb+cHJSWe1aRJbAJIwsSdYkbP369Ub3k5OTERQUhAMHDmDw4MHScY1Gg5CQEJNes6KiAhUVN+pcioqK6jmbbM2wTpg9FOYDQIeWXlCpqpPD3JIKBHhpUKHV4e0N1ZtsT47tgJbeGqu2wclJhbuiQnDoYoFRAgZUDyVOWXlQ6oESQuBSQRlOZRfjZHYxTl8uxqnsYpy5XPvEglvdHuZn8lCwYUajNfUOb4HbWvng2J9FeOmb36TjpiafRLYm1YTZyRdJUja7qgkrLCwEAPj7Gxf9pqSkICgoCH5+foiNjcX8+fMRFFT7NjOJiYmYN2+e1dtKjSP1hNlJTZi7qxphLTxwMe8azuSUIMBLgy92X0BmXhmCvDV45s4Iq7dBpxdYvjuj1scMQ4kzvvkNn2w7jzOXS1BcoW30textTa71R7OMatQMbk0+ieyFIQnj7EiyBLtZokIIgRkzZmDQoEGIjo6WjsfHx+PLL7/Eli1b8O677yItLQ1Dhw416u262ezZs1FYWCjdMjMzbfUWyAQ3lqiwnwB2Y0iyBIXXqvDBlur6pL+P7AQPV+t/TzFlgdRrlTocvFiA4gotnJ1U6Bzsjft6tMI/7uqMzyb0QcrMOIT4uqGuATwVqnuX7GmfRkMdW20Myee8n46bXBdHZAuGvW85HEmWYDc9YdOmTcPvv/+OHTt2GB1/9NFHpX9HR0ejT58+CA8Px9q1a/HAAw/UeB2NRgONxrrDR9R4eXY2HAkAHVp6YstJYOOxbOw7n4vCsip0CvbCQ73DbHL9nOKGa7kA4MmYcPylfzgiAj3h6lzz+1PC6Cirz2q0pIaST4Hq/Sr3pedZfViUyFRFrAkjC7KLnrAXXngBP/74I7Zu3Yo2berfCiU0NBTh4eE4c+aMjVpHllJWqUPF9Y1v7aWeYv3RLHyz/w8AwPYzV/HT71kAgBFRwTZLWEwdIoyPDkXnEO9aEzDAdrMaLcXU5NPU84hsgTVhZEmy9oQJIfDCCy9gzZo1SElJQUREw/U3ubm5yMzMRGioff2HQg0zLE/horaPjW/rWlcLAJZsPYdurX1tkrj0i/BHqK8bsgvLm7xAqq1mNVqCqcmnvdWxUfMlhODsSLIoWXvCpk6dipUrV2LVqlXw9vZGdnY2srOzUVZWvY1JSUkJZs6cid27dyMjIwMpKSkYPXo0AgMDcf/998vZdGqEm9cIk3vj2/rW1TKwVT2S2kmFuaOjAKBGTVdjhhJv3qcxpkOAXSZgwI3k017r2JKSktC9e3f4+PjAx8cHMTExWLdunfS4EAIJCQlo1aoV3N3dERcXh2PHjsnSVrKN0kodtNdjApMwsgRZk7CkpCQUFhYiLi4OoaGh0m316tUAALVajSNHjmDMmDHo1KkTJkyYgE6dOmH37t3w9vaWs+nUCPml9rNGmDn1SLagtKFES7B08mlpbdq0wVtvvYX9+/dj//79GDp0KMaMGSMlWm+//TYWLVqEDz/8EGlpaQgJCcGIESNQXGzaciGkPIZeMBe1Cu4uTdtijAiwg+HI+ri7u2PDhg02ag1Zmz2tlm+P9UhKGkq0FEPyeet+lyF2sE7Y6NGjje7Pnz8fSUlJ2LNnD6KiorB48WLMmTNHmiC0fPlyBAcHY9WqVZg8ebIcTSYrK5RmRsrfm0+OQf7CHGo2pH0j7SAJs9d6JFsskGpvlJB86nQ6fPvttygtLUVMTAzS09ORnZ2NkSNHSudoNBrExsZi165ddSZhXExa2W7Ug/G/TrIMfpLIZm4s1Cr/cKQli+Gp6ew1+Txy5AhiYmJQXl4OLy8vrFmzBlFRUdi1axcAIDg42Oj84OBgXLhwoc7X42LSylZYVv1FkvVgZCl2sUQFNQ+GNcLsYTjS3uuRyD507twZhw8fxp49ezBlyhRMmDABx4/fWGD21iEpIUS9w1RcTFrZODOSLI1JGNmMva2W3xyL4ck8rq6uiIyMRJ8+fZCYmIgePXrg/fffl/ayzc7ONjo/JyenRu/YzTQajTTb0nAj5bixRpj8XyTJMXA4kmxGGo60owCmhHoksh9CCFRUVCAiIgIhISHYtGkTevbsCQCorKxEamoqFi5cKHMryVrYE0aWxiSMbOZGT5j9JGGA/dYjkbxeffVVxMfHIywsDMXFxfj666+RkpKC9evXQ6VSYfr06ViwYAE6duyIjh07YsGCBfDw8MD48ePlbjpZiWHfSG7eTZbCJIxsJs+QhNlBYT5RQy5fvownnngCWVlZ8PX1Rffu3bF+/XqMGDECADBr1iyUlZXh+eefR35+Pvr374+NGzdyDUMHxp4wsjQmYWQzBaX2NxxJVJfPPvus3sdVKhUSEhKQkJBgmwaR7KSaMCZhZCEszCebqNLpUVyhBcAkjIiUqYg9YWRhTMLIJgy1FCoV6ymISJkKDEmYnczwJuVjEkY2YdiyyNfdhTMPiUiRWBNGlsYkjGwiv9R+tiwiIjKXXi+k4UjWhJGlMAkjmzCsEebHbnwiUqCSSi301/c4Y0kFWQqTMLKJfDtdI4yIyBSF179Iapyd4Oailrk15CiYhJFNGJIwbvdBRErEejCyBiZhZBOG2ZH+XKiViBToxr6RjGFkOUzCyCYMhfnsCSMiJWJPGFkDkzCyCdaEEZGSGXrzmYSRJTEJI5swzI5swa58IlIgQ08YZ0aSJTEJI5uQesI82RNGRMpzY99IxjCyHCZhZBMF17h5NxEpF2vCyBqYhJHV6fUCBVJNGAMYESlPYZlh6zVnmVtCjoRJGFldUXmVtNI0Z0cSkRIVcvNusgImYWR1hqJ8L40zXJ35kSMi5WFNGFkD/0ckq7uxWj6/QRKRMnF2JFkDkzCyOsNCrSzKJyKl4jphZA1MwsjqpDXCuDwFESmQTi9QXK4FwCSMLItJGFkdZ0YSkZIVl1dJ/2YSRpbEJIysLo/DkUSkYIZ6MA9XNScXkUXx00RWZxiOZGE+ESkR68HIWpiEkdUZhiP9WRNGRArE1fLJWpiEkdXdWKKCSRgRKQ+TMLIWJmFkdfmlhn0jGcCISHmYhJG1MAkjq8u/xsJ8IlIuJmFkLUzCyKqEEFJRK9cJIyIlYhJG1sIkjKzqWqUOlTo9AA5HEpEyFXKGN1kJkzCyKsMaYa7OTnB3UcvcGiIi87EnjKyFSRhZlTQU6eEClUolc2uIiMxXUFb9ZZKbd5OlMQkjq2JRPhEpXWEZ940k62ASRlbFJIyIlK6ozFATxjhGlsUkjKwq37BvpCe/QRKRMhl2/WBPGFkakzCyqnypJozfIIlIeap0epRW6gAwCSPLYxJGVlXA4UgiUjDDUCQA+Lg5y9gSckRMwsiq8rm+DhEpmGF5Cm+NM5zV/C+TLIufKLIqFuYTkZIVXE/CuDwFWQOTMLIqQxLmzy2LiEiBuFArWROTMLKq/FIORxKRchUxCSMrYhJGVsXhSCJSssIyfpEk62ESRlZTodXh2vWp3UzCiEiJDFuvsSeMrIFJGFmNIXipnVTw5tRuIlIg1oSRNTEJI6sxDEX6ubvAyYmbdxOR8hRydiRZEZMwspq861sWsZaCiJSKNWFkTUzCyGoKuGURKVRiYiL69u0Lb29vBAUFYezYsTh16pTRORMnToRKpTK6DRgwQKYWk7UUsiaMrIhJGFmNNDOSa4SRwqSmpmLq1KnYs2cPNm3aBK1Wi5EjR6K0tNTovFGjRiErK0u6/fLLLzK1mKyFNWFkTayWJqu50RPG4EXKsn79eqP7ycnJCAoKwoEDBzB48GDpuEajQUhIiK2bRzbEJIysiT1hZDWGmjAOR5LSFRYWAgD8/f2NjqekpCAoKAidOnXCs88+i5ycnHpfp6KiAkVFRUY3sm9STZg74xhZHpMwshoOR5IjEEJgxowZGDRoEKKjo6Xj8fHx+PLLL7Flyxa8++67SEtLw9ChQ1FRUVHnayUmJsLX11e6hYWF2eItUCNVaHUoq6pe65A9YWQNsiZhphS/CiGQkJCAVq1awd3dHXFxcTh27JhMLSZzcDiSHMG0adPw+++/46uvvjI6/uijj+Kee+5BdHQ0Ro8ejXXr1uH06dNYu3Ztna81e/ZsFBYWSrfMzExrN5+awNALplKBax2SVciahJlS/Pr2229j0aJF+PDDD5GWloaQkBCMGDECxcXFMracTCGtE8bhSFKoF154AT/++CO2bt2KNm3a1HtuaGgowsPDcebMmTrP0Wg08PHxMbqR/TLsG+mtceZah2QVsqb2DRW/CiGwePFizJkzBw888AAAYPny5QgODsaqVaswefJkOZpNJspnTRgplBACL7zwAtasWYOUlBREREQ0+Jzc3FxkZmYiNDTUBi0kW7ixRhhjGFmHXdWE3Vr8mp6ejuzsbIwcOVI6R6PRIDY2Frt27ar1NVj4aj/yrw9H+ntyOJKUZerUqVi5ciVWrVoFb29vZGdnIzs7G2VlZQCAkpISzJw5E7t370ZGRgZSUlIwevRoBAYG4v7775e59WQp3DeSrM1ukrDail+zs7MBAMHBwUbnBgcHS4/dioWv9kGr06OonN8iSZmSkpJQWFiIuLg4hIaGSrfVq1cDANRqNY4cOYIxY8agU6dOmDBhAjp16oTdu3fD29tb5taTpXB5CrI2u6k0NBS/7tixo8ZjKpXxWLwQosYxg9mzZ2PGjBnS/aKiIiZiMigsq4IQ1f/2YwAjhRGGD28d3N3dsWHDBhu1huTCJIyszS6SMEPx67Zt24yKXw2LIGZnZxvVWeTk5NToHTPQaDTQaDTWbTA1yDAU6e3mDGe13XS4EhGZTErCOMObrETW/x2FEJg2bRr+97//YcuWLTWKXyMiIhASEoJNmzZJxyorK5GamoqBAwfaurlkhoLrMyP9uUYYESkUa8LI2mTtCZs6dSpWrVqFH374QSp+BQBfX1+4u7tDpVJh+vTpWLBgATp27IiOHTtiwYIF8PDwwPjx4+VsOjXA0BPGejAiUqoiDkeSlcmahCUlJQEA4uLijI4nJydj4sSJAIBZs2ahrKwMzz//PPLz89G/f39s3LiRxa927sbyFAxeRKRMN7YsYhwj65A1CWuo+BWoLspPSEhAQkKC9RtEFiNtWcSeMCJSKBbmk7WxYpqsIl/asohJGBEpUwGTMLIyJmFkFQXXOBxJRMpm6AnzYRJGVsIkjKwi73pNmB9nRxKRQt3YtohJGFkHkzCyigJpOJLBi4iUp7xKh0qtHgCHI8l6mISRVRgK8/1ZE0ZECmT4Iql2UsFLYxfrmpMDYhJGVsF1wohIyaR6MDfnOrfJI2oqJmFkcUKIG4X5nuzGJyLluVEPxi+SZD1Mwsjiiiu00Oqr14DjEhVEpEScGUm2wCSMLK6gtDp4ubuo4eailrk1RETmM/TmsyifrIlJGFlcPtcIIyKF42r5ZAsmTfmYMWOG2S/82muvwd/f3+znkfLlXU/CWEtBtvDqq6/C1dW8zxrjEzWkiPtGkg2YlIQtXrwYMTExJge6HTt2YNq0aQxyzZShG9+fC7WSDSxZsoTxiSyOPWFkCyYvfrJmzRoEBQWZdK63t3ejG0TKl1/KVabJthifyNK4byTZgkk1YcnJyfD19TX5RT/++GMEBwc3ulGkbDdqwtgTRta3ZMkSxieyOPaEkS2Y1BM2YcIEs150/PjxjWoMOQYW5pMtjR8/HhqNxqzziRoiJWGMY2RFTdqL4ejRo0hNTYVOp8PAgQPRp08fS7WLFMywWn4L1oSRjBifqCnYE0a20OglKj766CMMGzYMqamp2Lp1K4YNG4b58+dbsm2kUAUcjiSZMT5RUxVeYxJG1mdyT9gff/yBNm3aSPc//PBDHDt2DIGBgQCA3bt347777sOcOXMs30pSlDwW5pONMT6RJQkh2BNGNmFyT9iwYcPw/vvvQ4jq7WgCAgKwYcMGVFRUoLi4GL/++itatmxptYaScrAnjGyN8Yks6VqlTtp6jV8myZpMTsLS0tJw8uRJ9O/fH4cOHcInn3yCRYsWwd3dHX5+fli9ejWWL19uzbaSQuRznTCyMcYnsiRDL5iLWgV3br1GVmTycKSPjw+SkpKwc+dOTJw4EcOHD8f27duh0+mg0+ng5+dnxWaSUpRV6lBepQfAb5BkO4xPZEkFN9WDqVQqmVtDjszswvw77rgD+/fvh6+vL3r27Ilt27YxwJHE0Avm7KSCl6ZJk2+JzMb4RJZg6AnzYT0YWZnJ/0tqtVosXboUx48fR48ePTBnzhyMGzcOkydPxrJly/DBBx8gJCTEmm0lBZDWCPN05TdIshnGJ7KkQu4bSTZick/Ys88+iw8++ACenp5ITk7GSy+9hE6dOmHr1q246667EBMTg6SkJGu2lRTA0I3PhVrJlhifyJKKODOSbMTkJOz777/Hd999h7feegu//vor1q5dKz32zDPPYO/evdi+fbtVGknKYegJ8+PMSLIhxieypIKy6jjGJIyszeQkLCgoCBs3bkRlZSU2b96MgICAGo+vWrXK4g0kZckv5ZZFZHuMT2RJXCOMbMXkmrAPP/wQjz/+OGbMmIHQ0FB888031mwXKZRhyyIuT0G2xPhElnRj30jGMbIuk5OwESNGIDs7G1evXuWih1QnDkeSHBifyJIKuGUR2YhZS1SoVCoGOKoXC/NJLoxPZCkcjiRbMSkJ69WrF/Lz801+0UGDBuHSpUuNbhQpV14pe8LItu68807GJ7Iozo4kWzFpOPLw4cP47bff4O/vb9KLHj58GBUVFU1qGCmTYd9IfyZhZCNHjhxhfCKLktYJY48+WZnJNWHDhg2TNsdtCBfpbL4MhfktPBm8yHYYn8iSCtgTRjZiUhKWnp5u9gu3adPG7OeQ8uVzOJJs7Pfff4e3t7dZz2F8orro9YLDkWQzJiVh4eHh1m4HOYAqnR7FFVoAQAsmYWQjbdu2hY+Pj9zNIAdRUqmF/nqnKpMwsjazN/AmqothZqRKxeBFRMpUeD2OaZyd4Oailrk15OiYhJHFGIryfd1doHZi3Q0RKQ+XpyBbYhJGFpMnbVnEoUgiUiYmYWRLTMLIYgwzIzmtm4iUikkY2ZLZSdjEiROxbds2a7SFFI5rhJHcGJ+oqbhGGNmS2UlYcXExRo4ciY4dO2LBggVceZokN3rCmISRPBifqKkME4x82BNGNmB2Evbdd9/h0qVLmDZtGr799lu0a9cO8fHx+O9//4uqqiprtJEUwrB5N/eNJLlYKj4lJiaib9++8Pb2RlBQEMaOHYtTp04ZnSOEQEJCAlq1agV3d3fExcXh2LFjln5LZGMcjiRbalRNWEBAAF588UUcOnQI+/btQ2RkJJ544gm0atUKL730Es6cOWPpdpICGBZqbeHJnjCSjyXiU2pqKqZOnYo9e/Zg06ZN0Gq1GDlyJEpLS6Vz3n77bSxatAgffvgh0tLSEBISghEjRqC4uNiab4+sjEkY2VKTCvOzsrKwceNGbNy4EWq1GnfffTeOHTuGqKgovPfee5ZqIymEtGURhyPJDjQlPq1fvx4TJ07Ebbfdhh49eiA5ORkXL17EgQMHAFT3gi1evBhz5szBAw88gOjoaCxfvhzXrl3DqlWrbPH2yEoMq+X7MQkjGzA7CauqqsJ3332He++9F+Hh4fj222/x0ksvISsrC8uXL8fGjRvxxRdf4F//+pc12kt2rIDDkSQza8WnwsJCAJA2CU9PT0d2djZGjhwpnaPRaBAbG4tdu3bV+ToVFRUoKioyupF9KSi7vt4h4xjZgMkbeBuEhoZCr9fjsccew759+3D77bfXOOeuu+6Cn5+fBZpHSpJ3jftGkrysEZ+EEJgxYwYGDRqE6OhoAEB2djYAIDg42Ojc4OBgXLhwoc7XSkxMxLx580y+NtkehyPJlsxOwt577z08/PDDcHNzq/OcFi1aNGrTb1I2w6wif9aEkUysEZ+mTZuG33//HTt27KjxmEplvDOEEKLGsZvNnj0bM2bMkO4XFRUhLCzM5LaQ9TEJI1syOwm77777cO3atRpBLi8vD87OztxIt5nS6wWHI0l2lo5PL7zwAn788Uds27YNbdq0kY6HhIQAqO4RCw0NlY7n5OTU6B27mUajgUajMasNZFuGvSN93fllkqzP7JqwcePG4euvv65x/JtvvsG4ceMs0ihSnqLyKuhF9b85HElysVR8EkJg2rRp+N///octW7YgIiLC6PGIiAiEhIRg06ZN0rHKykqkpqZi4MCBjX8DJCudXqCoXAuAPWFkG2YnYXv37sWQIUNqHI+Li8PevXst0ihSHsPMSE9XNVyduRsWycNS8Wnq1KlYuXIlVq1aBW9vb2RnZyM7OxtlZWUAqochp0+fjgULFmDNmjU4evQoJk6cCA8PD4wfP95i74dsq7j8xlpyTMLIFswejqyoqIBWq61xvKqqSgpQ1PxIC7WyHoxkZKn4lJSUBKA6ebtZcnIyJk6cCACYNWsWysrK8PzzzyM/Px/9+/fHxo0b4e3t3ej2k7wM9WDuLvwySbZh9qesb9+++OSTT2oc/89//oPevXtbpFGkPDfqwZiEkXwsFZ+EELXeDAkYUN0blpCQgKysLJSXlyM1NVWaPUnKxH0jydbM7gmbP38+hg8fjt9++w3Dhg0DAGzevBlpaWnYuHGjxRtIypBXyuBF8mN8oqYouMaZkWRbZveE3XHHHdi9ezfCwsLwzTff4KeffkJkZCR+//133HnnndZoIykAe8LIHjA+UVMYesK4eTfZitk9YQBw++2348svv7R0W0jBDDVhXCOM5Mb4RI3FNcLI1hqVhOn1epw9exY5OTnQ6/VGjw0ePNgiDSNlMcyO5HAkyY3xiRqrkPtGko2ZnYTt2bMH48ePx4ULFyCEMHpMpVJBp9NZrHGkHPmlHI4k+TE+UVOwJ4xszewk7LnnnkOfPn2wdu1ahIaG1rtFBzUfXKKC7AHjEzVFIQvzycbMLsw/c+YMFixYgK5du8LPzw++vr5GN3Ns27YNo0ePRqtWraBSqfD9998bPT5x4kSoVCqj24ABA8xtMtmAYVYRtywiOVkyPlHzI/WEMY6RjZidhPXv3x9nz561yMVLS0vRo0cPfPjhh3WeM2rUKGRlZUm3X375xSLXJsvK5+xIsgOWjE/U/HA4kmzN7OHIF154AX//+9+RnZ2Nbt26wcXF+MPavXt3k18rPj4e8fHx9Z6j0WikzXLJPgkhkM91wsgOWDI+UfNTwCSMbMzsJOzBBx8EADz99NPSMZVKBSGEVQpfU1JSEBQUBD8/P8TGxmL+/PkICgqq8/yKigpUVFRI94uKiizaHqrpWqUOlbrqWWhcooLkZOv4RI6liEkY2ZjZSVh6ero12lGr+Ph4PPzwwwgPD0d6ejpef/11DB06FAcOHIBGo6n1OYmJiZg3b57N2kg3hiJdnZ3g7qKWuTXUnNkyPpHj4XAk2ZrZSVh4eLg12lGrRx99VPp3dHQ0+vTpg/DwcKxduxYPPPBArc+ZPXs2ZsyYId0vKipCWFiY1dvanN1clM/ZaCQnW8YncixVOj1KKqo3f/djbSvZSKO2if/iiy9wxx13oFWrVrhw4QIAYPHixfjhhx8s2rhbhYaGIjw8HGfOnKnzHI1GAx8fH6MbWVce1wgjOyJXfCJlMwxFAoCPW6PWMScym9lJWFJSEmbMmIG7774bBQUFUo2Fn58fFi9ebOn2GcnNzUVmZiZCQ0Oteh0yD2dGkr2QMz6RshmGIr00znBWN6p/gshsZn/SPvjgAyxduhRz5syBWn2j/qdPnz44cuSIWa9VUlKCw4cP4/DhwwCq6zkOHz6MixcvoqSkBDNnzsTu3buRkZGBlJQUjB49GoGBgbj//vvNbTZZkTQc6ck6CpKXJeMTNS+sByM5NKowv2fPnjWOazQalJaWmvVa+/fvx5AhQ6T7hlquCRMmICkpCUeOHMGKFStQUFCA0NBQDBkyBKtXr4a3t7e5zSYrMgxHso6C5GbJ+ETNC5MwkoPZSVhERAQOHz5cowB23bp1iIqKMuu14uLiauzvdrMNGzaY2zySQYE0HMngRfKyZHyi5oVJGMnB7CTsH//4B6ZOnYry8nIIIbBv3z589dVXSExMxKeffmqNNpKdy5dmR7InjOTF+ESNxSSM5GB2EvbUU09Bq9Vi1qxZuHbtGsaPH4/WrVvj/fffx7hx46zRRrJzLMwne8H4RI3FzbtJDo2ah/vss8/i2WefxdWrV6HX6+tdwZ4cn5SEsTCf7ADjEzWGoSeMW6+RLTVpMZTAwEBLtYMUzLBvJHvCyJ4wPpE5DPtG+rAnjGzIpCSsV69e2Lx5M1q0aIGePXvWuyr6wYMHLdY4UoYCDkeSjO68806kpKQwPlGTsCaM5GBSEjZmzBhpr8axY8dasz2kMBVaHUorqxfEZBJGcrjnnnsYn6jJmISRHExKwubOnVvrv4kMC7U6qQBvbvVBMnjllVfg4eEBgPGJGq+INWEkA7NXzE9LS8PevXtrHN+7dy/2799vkUaRctw8M9LJiZt3k7wYn6ixCjg7kmRgdhI2depUZGZm1jh+6dIlTJ061SKNIuUwFOXz2yPZA8YnaiwOR5IczE7Cjh8/jl69etU43rNnTxw/ftwijSLlYFE+2RPGJ2qMCq0OZVXVta1MwsiWzE7CNBoNLl++XON4VlYWnJ1ZE9Tc5F3jvpFkPxifqDEMvWAqFeDtxiSMbMfsJGzEiBGYPXs2CgsLpWMFBQV49dVXMWLECIs2juyfoY7Cnwu1kh1gfKLGMBTle2ucoWZtK9mQ2V8N3333XQwePBjh4eHo2bMnAODw4cMIDg7GF198YfEGkn3LL+VwJNkPxidqDKkejLWtZGNmJ2GtW7fG77//ji+//BK//fYb3N3d8dRTT+Gxxx6Diws/wM0NhyPJnjA+UWOwKJ/k0qgiCU9PT/z1r3+1dFtIgQzDkS34DZLsBOMTmcsQx/zc+WWSbMukJOzHH39EfHw8XFxc8OOPP9Z77n333WeRhpEy3Ni8m8GL5PHLL7/gwQcfZHyiRmNPGMnFpCRs7NixyM7ORlBQUL3bgqhUKuh0Oku1jRTgRk8YkzCSx/jx4xmfqEkKuXk3ycSkJEyv19f6b6I8qTCfwYvkUVBQAB8fHwCMT9Q47AkjuZi0RIW/vz+uXr0KAHj66adRXFxs1UaRMuj0AkXlhhXz2RNG8ggPD2d8oiYpvMadP0geJiVhlZWVKCoqAgAsX74c5eXlVm0UKUNhWRWEqP43gxfJpaqqivGJmoQ9YSQXk4YjY2JiMHbsWPTu3RtCCPztb3+Du7t7red+/vnnFm0g2S9DUb63mzNc1Gav+0tkEX379mV8oiZhEkZyMSkJW7lyJd577z2cO3cOAFBYWMhvm8SFWskuLF26FJ9++injEzUakzCSi0lJWHBwMN566y0AQEREBL744gsEBARYtWFk//INMyO5PAXJKCgoiPGJmqSASRjJxOzC/CFDhsDVlf/p0k1rhLEejGR0c2E+4xM1BnvCSC4szKdGK7jG4UiSHwvzqSnKq3So1FYvbcK9I8nWWJhPjZZXymndJD8W5lNTGHrB1E4qeGsatZMfUaOZXZivUqlY+EoAbvSE+bMnjGR0c2E+4xOZy7Drh4+bM1QqlcytoeaGhfnUaIaaMD8W5pOMrFWYv23bNrzzzjs4cOAAsrKysGbNGqNtkSZOnIjly5cbPad///7Ys2dPk69NtsN6MJKT2X2v6enp1mgHKZA0O5LDkWQnLBmfSktL0aNHDzz11FN48MEHaz1n1KhRSE5Olu5zUoDyMAkjOZm8wubdd9+NwsJC6f78+fNRUFAg3c/NzUVUVJRFG0f2jeuEkb2wRnyKj4/Hm2++iQceeKDOczQaDUJCQqSbv7+/2W0neUlJGOMYycDkJGzDhg2oqKiQ7i9cuBB5eXnSfa1Wi1OnTlm2dWTXbvSEMXiRvOSKTykpKQgKCkKnTp3w7LPPIicnp97zKyoqUFRUZHQjeRlqW9kTRnIwOQkThk0C67hPzYsQ4sYSFZ4MXiQvOeJTfHw8vvzyS2zZsgXvvvsu0tLSMHToUKNk8FaJiYnw9fWVbmFhYVZvJ9WvSBqO5MxIsj1+6qhRiiu00Oqr/6NjTxg1R48++qj07+joaPTp0wfh4eFYu3ZtnUOYs2fPxowZM6T7RUVFTMRkxpowkpPJSZhKpaoxfZfTeZuvgutrhLm5OMHNRS1za6i5s4f4FBoaivDwcJw5c6bOczQaDTQajQ1bRQ0xJGF+7vwySbZnchImhMDEiROlAFJeXo7nnnsOnp6eAFBvFzw5nnyuEUZ2xB7iU25uLjIzMxEaGmr1a5HlcN9IkpPJSdiECROM7j/++OM1znnyySeb3iJSBGmNMCZhZAesEZ9KSkpw9uxZ6X56ejoOHz4Mf39/+Pv7IyEhAQ8++CBCQ0ORkZGBV199FYGBgbj//vsb9yZIFoaeMB8mYSQDk5Owm9fCIcpnUT7ZEWvEp/3792PIkCHSfUMt14QJE5CUlIQjR45gxYoVKCgoQGhoKIYMGYLVq1fD29vb4m0h62FNGMmJhfnUKPmlXJ6CHFtcXFy9syw3bNhgw9aQtRhmR3IPXJKDyUtUEN1MWp6CSRgRKVT1UjvsCSP5MAmjRuGWRUSkdNcqddJSO0zCSA5MwqhR8liYT0QKZ6gHc3ZSwcOVS+2Q7TEJo0YxDEf6ezIJIyJlKrypHozrXpIcmIRRoxgK81nMSkRKZagH4/IUJBcmYdQoLMwnIqXj8hQkNyZh1Ch5TMKISOGKmISRzJiEkdnKq3Qor9ID4GKtRKRcN/aNZBwjeTAJI7MZVst3dlLBS8P1folImQrKqmMZe8JILkzCyGx5pTeWp+CMIiJSKtaEkdyYhJHZCrhQKxE5gMIyLQDOjiT5MAkjs93YvJtF+USkXDfWCWMsI3kwCSOzccsiInIEhddYE0byYhJGZssv5fIURKR8rAkjuTEJI7Plc99IInIATMJIbkzCyGyGwnx/rhFGRAql1wujvSOJ5MAkjMzGnjAiUrqSSi30ovrf7AkjuTAJI7OxJoyIlK7weo++q7MT3FzUMreGmismYWS2fA5HEpHCsR6M7IGsSdi2bdswevRotGrVCiqVCt9//73R40IIJCQkoFWrVnB3d0dcXByOHTsmT2NJwuFIIlK6Iu4bSXZA1iSstLQUPXr0wIcffljr42+//TYWLVqEDz/8EGlpaQgJCcGIESNQXFxs45aSQZVOj+Ly6lWmORxJREpVwJ4wsgOy7r4cHx+P+Pj4Wh8TQmDx4sWYM2cOHnjgAQDA8uXLERwcjFWrVmHy5Mm2bCpdZ5gZqVIxeBGRcnE4kuyB3daEpaenIzs7GyNHjpSOaTQaxMbGYteuXXU+r6KiAkVFRUY3spyCm1aYVjtx824iUiYmYWQP7DYJy87OBgAEBwcbHQ8ODpYeq01iYiJ8fX2lW1hYmFXb2dzc2LKIQ5FEpFxSEsY1wkhGdpuEGahUxr0tQogax242e/ZsFBYWSrfMzExrN7FZuVGUz8BFRMplKK1gTxjJSdaasPqEhIQAqO4RCw0NlY7n5OTU6B27mUajgUajsXr7miuuEUZEjqCIw5FkB+y2JywiIgIhISHYtGmTdKyyshKpqakYOHCgjC1r3jgcSUSOgDVhZA9k7QkrKSnB2bNnpfvp6ek4fPgw/P390bZtW0yfPh0LFixAx44d0bFjRyxYsAAeHh4YP368jK1u3gyF+S04HElEClZQxtIKkp+sSdj+/fsxZMgQ6f6MGTMAABMmTMCyZcswa9YslJWV4fnnn0d+fj769++PjRs3wtvbW64mN3t5huFIT/aEEZFysSeM7IGsSVhcXByEEHU+rlKpkJCQgISEBNs1iuplGI7kt0ciUrJCFuaTHbDbmjCyT4bhSH/WhBGRQun0AsUV1Tt/+DAJIxkxCSOzcN9IIlK64vIqGAZh2BNGcmISRmaRZkd6MnARkTIZ6sHcXdTQOKtlbg01Z0zCyGR6veBwJBEpHovyyV4wCSOTFZdrob/ehc/hSCJSKiZhZC+YhJHJDPVgnq5quDrzo0NEyiRtWcRZ3iQz/k9KJstjUT4ROQD2hJG9YBJGJpPqwbhQKxEpGJMwshdMwshk+aVcqJWIlI+bd5O9YBJGJsuX9o1kTxgRKZehJsyPSRjJjEkYmSyfm3cTkQOQhiMZy0hmTMLIZDcWamVPGBEpF2vCyF4wCSOTFXA4kogcgCEJ476RJDcmYWSyvFLDEhUMXESkXIYkjDVhJDcmYWQyQzEre8KISMk4HEn2gkkYmSyf64RRM7Jt2zaMHj0arVq1gkqlwvfff2/0uBACCQkJaNWqFdzd3REXF4djx47J01gymVanR0mFFgCTMJIfkzAyiRBCKszncCQ1B6WlpejRowc+/PDDWh9/++23sWjRInz44YdIS0tDSEgIRowYgeLiYhu3lMxRVK6V/s2aMJKbs9wNIGW4VqlDpVYPgMOR1DzEx8cjPj6+1seEEFi8eDHmzJmDBx54AACwfPlyBAcHY9WqVZg8ebItm0pmMEww8tI4w0XNfgiSFz+BZBLDUKSr2gkermqZW0Mkr/T0dGRnZ2PkyJHSMY1Gg9jYWOzatavO51VUVKCoqMjoRrbFejCyJ0zCyCRSUb6nC1QqlcytIZJXdnY2ACA4ONjoeHBwsPRYbRITE+Hr6yvdwsLCrNpOqonLU5A9YRJGJuGWRUQ13fqFRAhR75eU2bNno7CwULplZmZau4l0ixs9YazGIfnxU0gm4RphRDeEhIQAqO4RCw0NlY7n5OTU6B27mUajgUajsXr7qG431gjjF0qSH3vCyCSG4UguT0EEREREICQkBJs2bZKOVVZWIjU1FQMHDpSxZdSQwmusCSP7wZ4wMolhONKPw5HUTJSUlODs2bPS/fT0dBw+fBj+/v5o27Ytpk+fjgULFqBjx47o2LEjFixYAA8PD4wfP17GVlNDuHk32RMmYWSSG6vlM3BR87B//34MGTJEuj9jxgwAwIQJE7Bs2TLMmjULZWVleP7555Gfn4/+/ftj48aN8Pb2lqvJZALOjiR7wiSMTGKoCWNhPjUXcXFxEELU+bhKpUJCQgISEhJs1yhqsgImYWRHWBNGJuHsSCJyBOwJI3vCJIxMcvM6YURESlXEJIzsCJMwMgkL84nIEbAnjOwJkzAyST5rwojIARh69bnmIdkDJmHUoEqtHqWVOgCAP5MwIlKoSq0eZVXVsYw9YWQPmIRRgwquD0U6qQBvN06oJSJlMgxFAoC3G5Mwkh+TMGpQ3k31YE5O3LybiJTJkIR5uzlDzVhGdoBJGDUov5Q1FESkfHmlFQAAF7UKu8/lQqevex04IltgEkYNMgxHsh6MiJRq/dEsTP7iAAAgr7QKjy3dg0ELt2D90SyZW0bNGZMwalC+NJuISRgRKc/6o1mYsvKgFMsMsgvLMWXlQSZiJBsmYdSgG6vlcziSiJRFpxeY99Nx1DbwaDg276fjHJokWTAJowYZ1gjz92RPGBEpy770PGQVltf5uACQVViOfel5tmsU0XVMwqhBHI4kIqXKKa47AWvMeUSWxCSMGlTA4UgiUqggbzeLnkdkSUzCqEF53DeSiBSqX4Q/Qn3rTrBUAEJ93dAvwt92jSK6jkkYNciw1xprwohIadROKswdHVXrY4blWueOjuLirSQLJmHUIM6OJCIlGxUdik7BXjWOh/i6IenxXhgVHSpDq4gAbgRI9dLphbTVB4cjiUiJrlVqkX61FACw6JEeUDupEORdPQTJHjCSE5MwqldhWRXE9eVzuG0RESnR3vN5qNIJtPZzx/09W0OlYuJF9oHDkVQvw1Ckt5szXNT8uBCR8mw/cxUAMLhTIBMwsiv8X5XqdWN5Cg5FEpEybT9zBQAwKLKlzC0hMsYkjOqVX1pdD8aifCJSouzCcpzJKYFKBdwRGSB3c4iMMAmjenGNMCJSMkMvWPfWvoxjZHeYhFGddHqB3zLzpX9zg1siUpodZ6vrwe7syKFIsj9MwqhW649mYdDCLfhybyaA6kA2aOEWrD+aJXPLiIhMo9cL7LhelD+oY6DMrSGqiUkY1bD+aBamrDyIrELjDW2zC8sxZeVBJmJEpAjHs4qQW1oJD1c1erVtIXdziGpgEkZGdHqBeT8dR20Dj4Zj8346zqFJIrJ7hqHImPYBcHXmf3dkf/ipJCP70vNq9IDdTADIKizHvvQ82zWKiKgRpKUpOBRJdopJGBnJKa47AWvMeUREciir1CEto3piEYvyyV4xCSMjQd5uFj2PiEgO+zLyUKnVI9TXDR1aesrdHKJaMQkjI/0i/BHq64a6NvZQAQj1rd74lojIXu24PhR5Z0duVUT2i0kYGVE7qTB3dFStjxnC2NzRUVA7MagRkf3aLi1NwaFIsl92nYQlJCRApVIZ3UJCQuRulsMbFR2KpMd74dY8K8TXDUmP98Ko6FB5GkZEZIKconKczC6GSgUMimRRPtkvZ7kb0JDbbrsNv/76q3RfrVbL2JrmI7q1L/QCcFIBCx/sjjYtPNAvwp89YERk9wxLU9zWygf+ntyqiOyX3Sdhzs7OZvV+VVRUoKKiQrpfVFRkjWY5PMMSFN3b+OHhPmEyt4aIyHSGoUjOiiR7Z9fDkQBw5swZtGrVChERERg3bhzOnz9f7/mJiYnw9fWVbmFhTCAaw5CE9WcBPhEpiBDipiSMQ5Fk3+w6Cevfvz9WrFiBDRs2YOnSpcjOzsbAgQORm5tb53Nmz56NwsJC6ZaZmWnDFjsOQxLGWZBEpCQns4txtaQC7i5q9A7nVkVk3+x6ODI+Pl76d7du3RATE4MOHTpg+fLlmDFjRq3P0Wg00Gg0tmqiQ8opLsf5q6VQqYA+4UzCiEg5DBt292/vD40za4jJvtl1T9itPD090a1bN5w5c0bupji0tPTqVaa7hPjA18NF5tYQEZlum2GrIs6KJAVQVBJWUVGBEydOIDSUSyRY07706uFe1oMRkZKUV+mkUorBnViUT/bPrpOwmTNnIjU1Fenp6di7dy8eeughFBUVYcKECXI3zaHtZT0YESnQ/ox8VGj1CPbRoGOQl9zNIWqQXdeE/fHHH3jsscdw9epVtGzZEgMGDMCePXsQHh4ud9McVsG1Spy6XAwA6NuOSRgRKcf2s4ahyJbcqogUwa6TsK+//lruJjQ7+zPyIQTQvqUnWnpzggMRKcf201yagpTFrocjyfb2ZXB9MCJSnivFFTieVb049x0syieFYBJGRlgPRmQa7m1rX3adq+4Fiwr1YS8+KYZdD0eSbZVWaHH0UiEAoF9EgMytIbJ/3NvWfmzjUCQpEJMwkhy8mA+dXqC1nzta+7nL3Rwiu2fu3rZkHUII7LhelM/9IklJOBxJEu4XSWQec/e2raioQFFRkdGNmu5MTgkuF1VA4+yEPu24VREpB5MwkrAejMh0jdnbNjExEb6+vtItLCzMhi12XIYNu/tF+MPNhUPCpBxMwghA9UrThzMLADAJIzJFfHw8HnzwQXTr1g3Dhw/H2rVrAQDLly+v8zmzZ89GYWGhdMvMzLRVcx3a9jOGoUjWg5GysCaMAAC//1GISq0egV4aRAR6yt0cIsUxZW9bjUYDjYYz9yypQqvD3vPVvfisByOlYU8YATDeL5IrTROZj3vbyuPAhXyUVekQ6KVBlxBvuZtDZBYmYQSA9WBE5uLetvbBUA92Z8dAfoEkxeFwJEGr0+PAhXwATMKITMW9be3DjjNcH4yUi0kY4difRbhWqYOPmzM6B7M7n8gU3NtWfnmllTj6Z/UC04O4VREpEIcjSVofrF+EP5yc2J1PRMqw8+xVCAF0CfFGkI+b3M0hMhuTMJLqwfpzqyIiUhDD0hTsBSOlYhLWzOn1AmkZLMonImURQtyoB+vEpSlImZiENXOnLhejsKwKHq5q3NbKR+7mEBGZ5NyVUvxZWA5XtRP6teMXSFImJmHNnKEerHd4Czir+XEgImXYcX0osm9EC7i7cqsiUib+r9vMcdNuIlKiG+uDcSiSlItJWDMmhLhpkVYW5RORMlRq9dhzvnqXDxblk5IxCWvG0q+W4mpJBVydndC9ja/czSEiMsmhi/kordQhwNMVUaGsZSXlYhLWjBmGIm8P84ObC2sqiEgZDEORd0QGcm1DUjQmYc0Y68GISIm2n+VWReQYmIQ1Y9y0m4iUpuBaJX7/owAAi/JJ+ZiENVN/5F/DpYIyqJ1U6NW2hdzNISIyya5zuRAC6BjkhRBfblVEysYkrJkyrJIf3doXnhru405EymDYqoi9YOQImIQ1U6wHIyKlEUJg22nWg5HjYBLWTEn1YNzug4gUIiO3uozCRa1C//aMXaR8TMKaoSvFFTh/pRQqFdCXSRgRKYRhq6Le4S3g4coyClI+JmHNkKEerHOwN3w9XGRuDRGRabZxqyJyMEzCmiHWgxGR0lTp9Nh9rnqrItaDkaNgEtYMcb9IIlKa3zILUFKhRQsPF9zWituskWNgEtbMFF6rwsnsIgBA3wiuD0ZEymAYihwYGQg1tyoiB8EkrJnZfyEPQgDtAz0R5M2FDolIGQxF+YM5FEkOhElYM7OPWxURkcIUllXhcGYBAGAQi/LJgTAJa2a4XyQRKc3uc7nQC6B9S0+09nOXuzlEFsMkrBkprdDi6KVCAEzCiEg5tktDkewFI8fCJKwZOXSxAFq9QGs/d7Rp4SF3c4iITLLjbHVR/qBI1oORY2ES1ozsS69eY4e9YESkFBdyS3Eh9xqcnVQY0IHL6pBjYRLWjLAejIiUZvv1pSl6tW0BLw23KiLHwiSsmajQ6nDo+uwiJmFEpBQ7pK2KOBRJjodJWDPx+x+FqNTqEejlivaBnnI3h4ioQVqdHjvPXU/COrEonxwPk7Bm4ub1wVQqrjZNRPbv90uFKC7XwtfdBd1ac6sicjxMwpoJqR6sHYciiUgZtp+u7gW7IzKAWxWRQ2IS1gxodXocyOCm3USkLDvOVq8PNiiSQ5HkmJiENQPHs4pQWqmDj5szOod4y90cIqIGFZdX4eDFAgAsyifHxSSsGTDUg/Vt588ufSJShD3n86DTC7QL8ECYPxeXJsfEJKwZ4PpgRKQ0hq2K7uRWReTAmIQ5OL1eIC2DSRgRKYthkdZBHIokB8YkzMGdySlBwbUquLuoEc0p3kSkAJl515B+tRRqJxViuFUROTAmYQ7OsF9k7/AWcFHz101E9s+wYXfPMD/4uLnI3Boi6+H/yg6O9WBEpDQ7OBRJzQSTMAcmhDBaKZ+IyN7p9ELqCWNRPjk6JmEO7ELuNeQUV8BV7YTbw/zkbg4RUYOOXipEYVkVvN2c0aMN61jJsTEJc2CGXrAeYb5wc1HL3BoiooYZlqYY2CEAzqxjJQfHT7gDM9SD9edWRUSkEDeWpuBQJDk+JmEObF9G9cxI1oMRkRKUVGhx8GI+AGAwi/KpGXCWuwH2QqevLmLPKS5HkLcb+kVYfosfW1zDcJ11R7KQmVcGJxXQg/VgRIpmauywVYyxxvV0eoHlu9JRpRMI8tagTQtuVUSOTxFJ2JIlS/DOO+8gKysLt912GxYvXow777zTYq+//mgW5v10HFmF5dKxUF83zB0dhVHRoYq5Rm3X0Qtg1OJtFr8OEVWzl/hkqxhjjevd+lo5xRUYtHAL4xY5PLsfjly9ejWmT5+OOXPm4NChQ7jzzjsRHx+PixcvWuT11x/NwpSVB40CCQBkF5ZjysqDWH80SxHXsOV1iKiavcQnW//tW/J6jFvUnKmEEELuRtSnf//+6NWrF5KSkqRjXbt2xdixY5GYmNjg84uKiuDr64vCwkL4+PgYPabTCwxauKXGH//NWni4YP7YaDg1sotdrxd49fujKLhWVevjKgAhvm7Y8fLQJg0bNPReLHUdIntR39+2rdhDfHrjvtvw2o/H6owxhvOaEsdu1lBMM+d6toqPRLZmanyy6+HIyspKHDhwAK+88orR8ZEjR2LXrl21PqeiogIVFRXS/aKiojpff196Xr0BDgDyr1Xh+VWHzGi1eQSArMJy7EvPa9IeaQ29F0tdh4iq2Ut8mvb14Qbbau04Zq3rMW6Ro7PrJOzq1avQ6XQIDg42Oh4cHIzs7Oxan5OYmIh58+aZ9Po5xfUHOIOIQE8EeLqadO6tcksrkX611GJtaerzm3odIqpmL/GppbcGV4orGjyvKXHsZqbGNFOuZ6v4SGSv7DoJM1CpjLuhhRA1jhnMnj0bM2bMkO4XFRUhLCys1nODvN1Muv6C+7s1+lvY7nO5eGzpngbPM7UtTX1+U69DRMbkjk/PDW6PN9aeaPC8psSxm5ka00y5nq3iI5G9suvC/MDAQKjV6hrfKnNycmp8+zTQaDTw8fExutWlX4Q/Qn3dUFelgQrVs32ass6WLa5hy+sQUTV7iU9PxLSz6d++JWMN4xY1d3adhLm6uqJ3797YtGmT0fFNmzZh4MCBTX59tZMKc0dHAUCNIGC4P3d0VJMKQm1xDVteh4iq2Ut8cnV2sunfviVjDeMWNXd2nYQBwIwZM/Dpp5/i888/x4kTJ/DSSy/h4sWLeO655yzy+qOiQ5H0eC+E+Bp3d4f4uiHp8V4WWaPGFtew5XWIqJq9xCdb/+1b8nqMW9Sc2f0SFUD1Yohvv/02srKyEB0djffeew+DBw826bmmThN1tBXzbblqNpEc7GGJCsC+4pPSV8xn3CJHYerftiKSsKawl0BNRJblCH/bjvAeiKgmU/+27X44koiIiMgRMQkjIiIikgGTMCIiIiIZMAkjIiIikgGTMCIiIiIZMAkjIiIikgGTMCIiIiIZMAkjIiIikgGTMCIiIiIZMAkjIiIikgGTMCIiIiIZMAkjIiIikgGTMCIiIiIZOMvdAGsTQgCo3tGciByH4W/a8DeuRIxPRI7J1Pjk8ElYcXExACAsLEzmlhCRNRQXF8PX11fuZjQK4xORY2soPqmEkr9GmkCv1+PPP/+Et7c3VCoVioqKEBYWhszMTPj4+MjdPIfDn6/18WdcTQiB4uJitGrVCk5OyqysuDU+KZGjfR75fuybUt6PqfHJ4XvCnJyc0KZNmxrHfXx87PoXqHT8+Voff8ZQbA+YQV3xSYkc7fPI92PflPB+TIlPyvz6SERERKRwTMKIiIiIZNDskjCNRoO5c+dCo9HI3RSHxJ+v9fFnTPbE0T6PfD/2zdHej8MX5hMRERHZo2bXE0ZERERkD5iEEREREcmASRgRERGRDJiEEREREcnAIZOwJUuWICIiAm5ubujduze2b99e7/mpqano3bs33Nzc0L59e/znP/+xUUuVyZyfb0pKClQqVY3byZMnbdhi5di2bRtGjx6NVq1aQaVS4fvvv2/wOfz8kiWZ8/f9v//9DyNGjEDLli3h4+ODmJgYbNiwweicZcuW1RoDysvLrf1WAFgnXn333XeIioqCRqNBVFQU1qxZY+23ITHn/UycOLHW93PbbbdJ58j5+7FWvJPz92M24WC+/vpr4eLiIpYuXSqOHz8uXnzxReHp6SkuXLhQ6/nnz58XHh4e4sUXXxTHjx8XS5cuFS4uLuK///2vjVuuDOb+fLdu3SoAiFOnTomsrCzpptVqbdxyZfjll1/EnDlzxHfffScAiDVr1tR7Pj+/ZEnm/n2/+OKLYuHChWLfvn3i9OnTYvbs2cLFxUUcPHhQOic5OVn4+PgY/f1nZWXZ5fsxJV7t2rVLqNVqsWDBAnHixAmxYMEC4ezsLPbs2WN376egoMDofWRmZgp/f38xd+5c6Rw5fz/WiHdy/n4aw+GSsH79+onnnnvO6FiXLl3EK6+8Uuv5s2bNEl26dDE6NnnyZDFgwACrtVHJzP35GoJafn6+DVrnWEwJSvz8kiWZ+/ddm6ioKDFv3jzpfnJysvD19bVUE81ijXj1yCOPiFGjRhkdu+uuu8S4ceOa3N6GNPX3s2bNGqFSqURGRoZ0TM7fz80sFe/k/P00hkMNR1ZWVuLAgQMYOXKk0fGRI0di165dtT5n9+7dNc6/6667sH//flRVVVmtrUrUmJ+vQc+ePREaGophw4Zh69at1mxms8LPL1lKU/6+DfR6PYqLi+Hv7290vKSkBOHh4WjTpg3uvfdeHDp0yGLtrou14lVdf3Om/owayxK/n88++wzDhw9HeHi40XE5fj+NYUq8k+v301gOlYRdvXoVOp0OwcHBRseDg4ORnZ1d63Oys7NrPV+r1eLq1atWa6sSNebnGxoaik8++QTfffcd/ve//6Fz584YNmwYtm3bZosmOzx+fslSGvP3fat3330XpaWleOSRR6RjXbp0wbJly/Djjz/iq6++gpubG+644w6cOXPGou2/lbXiVV1/c6b+jBqrqb+frKwsrFu3Ds8884zRcbl+P41hSryT6/fTWM5yN8AaVCqV0X0hRI1jDZ1f23GqZs7Pt3PnzujcubN0PyYmBpmZmfi///s/DB482KrtbC74+SVLMjd+Gnz11VdISEjADz/8gKCgIOn4gAEDMGDAAOn+HXfcgV69euGDDz7Av//9b8s1vA7WiFeN/RlZQmOvvWzZMvj5+WHs2LFGx+X+/ZjLlHgn5+/HXA7VExYYGAi1Wl0j483JyamRGRuEhITUer6zszMCAgKs1lYlaszPtzYDBgywy29ZSsTPL1lKU/6+V69ejUmTJuGbb77B8OHD6z3XyckJffv2tXoMsFa8qutvzpzXbIymvB8hBD7//HM88cQTcHV1rfdcW/1+GsOUeCfX76exHCoJc3V1Re/evbFp0yaj45s2bcLAgQNrfU5MTEyN8zdu3Ig+ffrAxcXFam1Vosb8fGtz6NAhhIaGWrp5zRI/v2Qpjf37/uqrrzBx4kSsWrUK99xzT4PXEULg8OHDVo8B1opXdf3NmfOajdGU95OamoqzZ89i0qRJDV7HVr+fxjAl3sn1+2k0WaYDWJFhCu9nn30mjh8/LqZPny48PT2l2SCvvPKKeOKJJ6TzDVNeX3rpJXH8+HHx2WefcYp/Pcz9+b733ntizZo14vTp0+Lo0aPilVdeEQDEd999J9dbsGvFxcXi0KFD4tChQwKAWLRokTh06JA0BZ2fX7Imc/++V61aJZydncVHH31ktLxBQUGBdE5CQoJYv369OHfunDh06JB46qmnhLOzs9i7d6/dvR9T4tXOnTuFWq0Wb731ljhx4oR46623bL5Ehanvx+Dxxx8X/fv3r/U15fz9WCPeyfn7aQyHS8KEEOKjjz4S4eHhwtXVVfTq1UukpqZKj02YMEHExsYanZ+SkiJ69uwpXF1dRbt27URSUpKNW6ws5vx8Fy5cKDp06CDc3NxEixYtxKBBg8TatWtlaLUyGKbI33qbMGGCEIKfX7I+c/6+Y2Nj6/28CiHE9OnTRdu2bYWrq6to2bKlGDlypNi1a5ddvh9T49W3334rOnfuLFxcXESXLl1s+qXS3P/fCgoKhLu7u/jkk09qfT05fz/Windy/n7MpRLielUbEREREdmMQ9WEERERESkFkzAiIiIiGTAJIyIiIpIBkzAiIiIiGTAJIyIiIpIBkzAiIiIiGTAJIyIiIpIBkzAiIiIiGTAJk8HEiRNr7GRvSwkJCbj99tvNek5cXBymT59ulfbcLCMjAyqVCocPH7b6tSzF0m221s/A8Loqlcrs339TpaSkSNeW87NPDWN8qhvjE+OTpTEJM1FdgcnwyysoKLDq9eu7Trt27bB48WKTX2vmzJnYvHmz5Rp3nUqlwvfff2/SebfeBg0aZPH2NKSyshKBgYF48803a308MTERgYGBqKystGm7wsLCkJWVhejoaACW/4z9+uuvFvv9l5WVwcPDAydPnqz3vIEDByIrKwuPPPKIRa5LxhifGsb4ZBmMT5bFJKwZ8vLyQkBAgKxtSE5ORlZWlnT78ccfbd4GV1dXPP7441i2bBlq270rOTkZTzzxBFxdXW3aLrVajZCQEDg7O1vl9QMCAiz2+9+0aRPCwsLQpUuXes9zdXVFSEgI3N3dLXJdclyMT9UYn5pOCfGJSZiF1daVvnjxYrRr167GufPmzUNQUBB8fHwwefJki32jKSwsxF//+lfptYcOHYrffvutzjZqtVr87W9/g5+fHwICAvDyyy9jwoQJNb5Z6/V6zJo1C/7+/ggJCUFCQoL0mOH93X///VCpVLW+35v5+fkhJCREuvn7+9d5bmpqKvr16weNRoPQ0FC88sor0Gq1AICffvoJfn5+0Ov1AIDDhw9DpVLhH//4h/T8yZMn47HHHqv1tSdNmoRz585h27ZtRse3b9+OM2fOYNKkSQCqA17Xrl3h5uaGLl26YMmSJfW+v/raDFT/LBcuXIjIyEhoNBq0bdsW8+fPB2Dc3Z+RkYEhQ4YAAFq0aAGVSoWJEydixYoVCAgIQEVFhdF1H3zwQTz55JP1tu1Whl6UBQsWIDg4GH5+fpg3bx60Wi3+8Y9/wN/fH23atMHnn39e47k//PAD7rvvPgDAb7/9hiFDhsDb2xs+Pj7o3bs39u/fb1ZbyLoYnxifGmozwPhkS0zCZLJ582acOHECW7duxVdffYU1a9Zg3rx5TX5dIQTuueceZGdn45dffsGBAwfQq1cvDBs2DHl5ebU+Z+HChfjyyy+RnJyMnTt3oqioqNZu++XLl8PT0xN79+7F22+/jX/961/YtGkTACAtLQ3AjW+QhvtNdenSJdx9993o27cvfvvtNyQlJeGzzz6TuugHDx6M4uJiHDp0CEB1cAkMDERqaqr0GikpKYiNja319bt164a+ffsiOTnZ6Pjnn3+Ofv36ITo6GkuXLsWcOXMwf/58nDhxAgsWLMDrr7+O5cuXN6rNADB79mwsXLgQr7/+Oo4fP45Vq1YhODi4xmuFhYXhu+++AwCcOnUKWVlZeP/99/Hwww9Dp9MZfUO/evUqfv75Zzz11FOm/GiNbNmyBX/++Se2bduGRYsWISEhAffeey9atGiBvXv34rnnnsNzzz2HzMxM6Tl6vR4///wzxowZAwD4y1/+gjZt2iAtLQ0HDhzAK6+8AhcXF7PbQvJjfDIN4xPjU5MJMsmECROEWq0Wnp6eRjc3NzcBQOTn5wshhJg7d67o0aOH0XPfe+89ER4ebvRa/v7+orS0VDqWlJQkvLy8hE6nq/X6W7duFQBqXN/T01OoVCrx3nvvCSGE2Lx5s/Dx8RHl5eVGz+/QoYP4+OOPa21jcHCweOedd6T7Wq1WtG3bVowZM0Y6FhsbKwYNGmT0mn379hUvv/yydB+AWLNmTa3tvxkA4ebmZvQeDM9LT08XAMShQ4eEEEK8+uqronPnzkKv10vP/+ijj4x+Vr169RL/93//J4QQYuzYsWL+/PnC1dVVFBUViaysLAFAnDhxos72JCUlCU9PT1FcXCyEEKK4uFh4enpKP6+wsDCxatUqo+e88cYbIiYmplFtLioqEhqNRixdurTW9tz6eobfveEzZjBlyhQRHx8v3V+8eLFo37690XXre12DCRMmiPDwcKPPXufOncWdd94p3ddqtcLT01N89dVX0rGdO3eKwMBA6Xne3t5i2bJltV775mvd/Lkiy2B8Yny6GeOTcuITe8LMMGTIEBw+fNjo9umnnzbqtXr06AEPDw/pfkxMDEpKSowy+dps3769RhtatWolPX7gwAGUlJQgICAAXl5e0i09PR3nzp2r8XqFhYW4fPky+vXrJx1Tq9Xo3bt3jXO7d+9udD80NBQ5OTkmv+ebvffee0bvYcSIEbWed+LECcTExEClUknH7rjjDpSUlOCPP/4AUD0zKiUlBUIIbN++HWPGjEF0dDR27NiBrVu3Ijg4uN6agMceewx6vR6rV68GAKxevRpCCIwbNw5XrlxBZmYmJk2aZPTzfPPNN2v9eZrS5hMnTqCiogLDhg0z++d2s2effRYbN27EpUuXAFR/y584caLRdU112223wcnpRjgIDg5Gt27dpPtqtRoBAQFGv+8ffvgB9957r/S8GTNm4JlnnsHw4cPx1ltv1fnzIetgfGJ8YnxSXnyyTmWdg/L09ERkZKTRMcMfmoGTk1ONIsqqqiqTr9HQBzQiIgJ+fn5Gx24ukNTr9QgNDUVKSkqN5976vPque+t7AFCj61alUkm1DuYKCQmp8bOsjRCizrYZjsfFxeGzzz7Db7/9BicnJ0RFRSE2NhapqanIz8+vs6vfwNfXFw899BCSk5MxadIkJCcn46GHHoKPjw8uX74MAFi6dCn69+9v9Dy1Wt2oNluq+LNnz57o0aMHVqxYgbvuugtHjhzBTz/91KjXqu1329Dv+8cff0RiYqJ0PyEhAePHj8fatWuxbt06zJ07F19//TXuv//+RrWJzMP4xPh0M8YnZcQn9oRZWMuWLZGdnW0UJGpbT+W3335DWVmZdH/Pnj3w8vJCmzZtmnT9Xr16ITs7G87OzoiMjDS6BQYG1jjf19cXwcHB2Ldvn3RMp9NJNQzmcHFxgU6na1L7bxUVFYVdu3YZ/Tx37doFb29vtG7dGsCNuovFixcjNjYWKpUKsbGxSElJqbfe4maTJk3Czp078fPPP2Pnzp1SwWtwcDBat26N8+fP1/h5RkRENKrNHTt2hLu7u8nTsA2zn2r72T7zzDNITk7G559/juHDhyMsLMyk12yqM2fOICMjAyNHjjQ63qlTJ7z00kvYuHEjHnjggRq1LCQvxifGJ8Yn+4pPTMIsLC4uDleuXMHbb7+Nc+fO4aOPPsK6detqnFdZWYlJkybh+PHjUlY+bdo0oy7Xxhg+fDhiYmIwduxYbNiwARkZGdi1axdee+21OmeCvPDCC0hMTMQPP/yAU6dO4cUXX0R+fr7Z3cbt2rXD5s2bkZ2djfz8/Ca9D4Pnn38emZmZeOGFF3Dy5En88MMPmDt3LmbMmCH9rHx9fXH77bdj5cqViIuLA1Ad+A4ePIjTp09Lx+oTGxuLyMhIPPnkk4iMjMTgwYOlxxISEpCYmIj3338fp0+fxpEjR5CcnIxFixY1qs1ubm54+eWXMWvWLKxYsQLnzp3Dnj178Nlnn9X6euHh4VCpVPj5559x5coVlJSUSI/95S9/waVLl7B06VI8/fTTJv5Um+6HH37A8OHDpSGrsrIyTJs2DSkpKbhw4QJ27tyJtLQ0dO3a1WZtooYxPjE+MT7ZV3xiEmZhXbt2xZIlS/DRRx+hR48e2LdvH2bOnFnjvGHDhqFjx44YPHgwHnnkEYwePdpoSnVjqVQq/PLLLxg8eDCefvppdOrUCePGjUNGRkats1sA4OWXX8Zjjz2GJ598EjExMfDy8sJdd90FNzc3s6797rvvSuuy9OzZs8nvBQBat26NX375Bfv27UOPHj3w3HPPYdKkSXjttdeMzhsyZAh0Op0U0Fq0aIGoqCi0bNnS5D+0p59+Gvn5+TWCxTPPPINPP/0Uy5YtQ7du3RAbG4tly5bV+U3TlDa//vrr+Pvf/45//vOf6Nq1Kx599NE661dat26NefPm4ZVXXkFwcDCmTZsmPebj44MHH3wQXl5eNl3p+YcffpBmHQHVQx+5ubl48skn0alTJzzyyCOIj4+3yIw6shzGJ8Ynxif7ik8qUdvgOjVrer0eXbt2xSOPPII33nhD7uZQA0aMGIGuXbvi3//+d73nZWRkICIiAocOHWrStiBXr15FaGgoMjMzERISYtZzJ06ciIKCApNWLieqDeOTsjA+1Y89YYQLFy5g6dKlUlf2lClTkJ6ejvHjx8vdNKpHXl4evv76a2zZsgVTp041+XkDBw7EwIEDm3TdRYsWmRXgtm/fDi8vL3z55ZeNvi41T4xPysT4ZBr2hBEyMzMxbtw4HD16FEIIREdH46233jKqOyD7065dO+Tn5+P111+vdUjpVlqtFhkZGQAAjUZjsyJZoLomwzBV3cvLy+xvqNR8MT4pE+OTaZiEEREREcmAw5FEREREMmASRkRERCQDJmFEREREMmASRkRERCQDJmFEREREMmASRkRERCQDJmFEREREMmASRkRERCSD/wdwc5X5GA5HEgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def plot_efficiency(efficiency, ax):\n", + " means = efficiency.U_avg.values.T\n", + " eta = efficiency.Efficiency.values.T\n", + " ax.plot(means, eta, \"-o\")\n", + " ax.set(xlabel=\"Hub Height Flow Velocity [m/s]\", ylabel=\"Efficiency [%]\")\n", + "\n", + "\n", + "fig, ax = plt.subplots(1, 2, figsize=(7, 6))\n", + "plot_efficiency(efficiency_ebb, ax[0])\n", + "ax[0].set_title(\"Ebb Tide\")\n", + "plot_efficiency(efficiency_flood, ax[1])\n", + "ax[1].set_title(\"Flood Tide\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "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.15" + }, + "vscode": { + "interpreter": { + "hash": "357206ab7e4935423e95e994af80e27e7e6c0672abcebb9d86ab743298213348" + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 } diff --git a/examples/upcrossing_example.ipynb b/examples/upcrossing_example.ipynb new file mode 100644 index 000000000..cbb67838a --- /dev/null +++ b/examples/upcrossing_example.ipynb @@ -0,0 +1,182 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# MHKit Upcrossing Analysis Example\n", + "\n", + "The following shows an example of using the upcrossing functionality in the [MHKiT Utils module](https://mhkit-software.github.io/MHKiT/mhkit-python/api.utils.html).\n", + "\n", + "This example performs an upcrossing analysis on a surface elevation trace to plot some quantities of interest. Such an upcrossing analysis could be applied to any time domain signal, such as a device response." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from mhkit.wave.resource import jonswap_spectrum, surface_elevation\n", + "from mhkit.utils import upcrossing, peaks, troughs, heights, periods\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Compute the surface elevation" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Peak period and significant wave height\n", + "Tp = 10 # s\n", + "Hs = 2.5 # m\n", + "gamma = 3.3\n", + "\n", + "# Create frequency vector using a return period of 1hr\n", + "Tr = 3600 # s\n", + "df = 1.0 / Tr # Hz\n", + "f = np.arange(0, 1, df)\n", + "\n", + "# Calculate spectrum\n", + "spec = jonswap_spectrum(f, Tp, Hs, gamma)\n", + "\n", + "# Calculate surface elevation\n", + "fs = 10.0 # Hz\n", + "t = np.arange(0, Tr, 1 / fs)\n", + "\n", + "eta = surface_elevation(spec, t)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure()\n", + "plt.plot(t, eta)\n", + "plt.xlabel(\"t [s]\")\n", + "plt.ylabel(\"$\\eta$ [m]\")\n", + "plt.title(f\"Surface elevation for Tp={Tp}s, Hs={Hs}m\")\n", + "plt.grid()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plot the individual wave heights and periods" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "heights = heights(t, eta.values.squeeze())\n", + "periods = periods(t, eta.values.squeeze())\n", + "\n", + "plt.figure()\n", + "plt.plot(periods, heights, \"o\")\n", + "plt.xlabel(\"Zero crossing period [s]\")\n", + "plt.ylabel(\"Wave height [m]\")\n", + "plt.grid()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plot the crest probability of exceedance distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "crests = peaks(t, eta.values.squeeze())\n", + "crests_sorted = np.sort(crests)\n", + "\n", + "N = crests_sorted.size\n", + "\n", + "# Exceedance probability. Crests are in ascending order\n", + "# meaning the first element has P(exceedance) = 1, and\n", + "# the final element has P(exceedance) = 1 / N\n", + "Q = np.arange(N, 0, -1) / N\n", + "\n", + "plt.figure()\n", + "plt.semilogy(crests_sorted, Q, \"o\")\n", + "plt.xlabel(\"Crest height [m]\")\n", + "plt.ylabel(\"P(exceedance)\")\n", + "plt.grid()\n", + "plt.show()" + ] + } + ], + "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.17" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/wave_example.ipynb b/examples/wave_example.ipynb index 728a0b526..02680f530 100644 --- a/examples/wave_example.ipynb +++ b/examples/wave_example.ipynb @@ -236,12 +236,12 @@ } ], "source": [ - "ndbc_data_file = 'data/wave/data.txt'\n", + "ndbc_data_file = \"data/wave/data.txt\"\n", "\n", "# ndbc.read_file outputs the NDBC file data into two variables.\n", - " # raw_ndbc_data is a pandas DataFrame containing the file data. \n", - " # meta contains the meta data, if available. \n", - "[raw_ndbc_data, meta] = wave.io.ndbc.read_file(ndbc_data_file) \n", + "# raw_ndbc_data is a pandas DataFrame containing the file data.\n", + "# meta contains the meta data, if available.\n", + "[raw_ndbc_data, meta] = wave.io.ndbc.read_file(ndbc_data_file)\n", "raw_ndbc_data.head()" ] }, @@ -487,7 +487,7 @@ ], "source": [ "# Transpose raw NDBC data\n", - "ndbc_data = raw_ndbc_data.T \n", + "ndbc_data = raw_ndbc_data.T\n", "ndbc_data.head()" ] }, @@ -568,8 +568,8 @@ } ], "source": [ - "# Compute the enegy periods from the NDBC spectra data \n", - "Te = wave.resource.energy_period(ndbc_data) \n", + "# Compute the enegy periods from the NDBC spectra data\n", + "Te = wave.resource.energy_period(ndbc_data)\n", "Te.head()" ] }, @@ -642,8 +642,8 @@ } ], "source": [ - "# Compute the significant wave height from the NDBC spectra data \n", - "Hm0 = wave.resource.significant_wave_height(ndbc_data) \n", + "# Compute the significant wave height from the NDBC spectra data\n", + "Hm0 = wave.resource.significant_wave_height(ndbc_data)\n", "Hm0.head()" ] }, @@ -717,11 +717,11 @@ ], "source": [ "# Set water depth to 60 m\n", - "h = 60 \n", + "h = 60\n", "\n", "# Compute the energy flux from the NDBC spectra data and water depth\n", - "J = wave.resource.energy_flux(ndbc_data,h) \n", - "J.head() " + "J = wave.resource.energy_flux(ndbc_data, h)\n", + "J.head()" ] }, { @@ -756,8 +756,8 @@ } ], "source": [ - "# Convert the energy period DataFrame to a Series. \n", - "Te = Te.squeeze() \n", + "# Convert the energy period DataFrame to a Series.\n", + "Te = Te.squeeze()\n", "Te.head()" ] }, @@ -799,10 +799,10 @@ ], "source": [ "# Alternatively, convert to Series by calling a specific column in the DataFrame\n", - "Hm0= Hm0['Hm0']\n", + "Hm0 = Hm0[\"Hm0\"]\n", "print(Hm0)\n", "\n", - "J = J['J'] \n", + "J = J[\"J\"]\n", "print(J)" ] }, @@ -822,9 +822,9 @@ "outputs": [], "source": [ "# Set the random seed, to reproduce results\n", - "np.random.seed(1) \n", + "np.random.seed(1)\n", "# Generate random power values\n", - "P = pd.Series(np.random.normal(200, 40, 743),index = J.index) " + "P = pd.Series(np.random.normal(200, 40, 743), index=J.index)" ] }, { @@ -1407,18 +1407,20 @@ ], "source": [ "# Calculate capture length\n", - "L = wave.performance.capture_length(P, J) \n", + "L = wave.performance.capture_length(P, J)\n", "\n", "# Generate bins for Hm0 and Te, input format (start, stop, step_size)\n", - "Hm0_bins = np.arange(0, Hm0.values.max() + .5, .5) \n", + "Hm0_bins = np.arange(0, Hm0.values.max() + 0.5, 0.5)\n", "Te_bins = np.arange(0, Te.values.max() + 1, 1)\n", "\n", "# Create capture length matrices using mean, standard deviation, count, min and max statistics\n", - "LM_mean = wave.performance.capture_length_matrix(Hm0, Te, L, 'mean', Hm0_bins, Te_bins)\n", - "LM_std = wave.performance.capture_length_matrix(Hm0, Te, L, 'std', Hm0_bins, Te_bins)\n", - "LM_count = wave.performance.capture_length_matrix(Hm0, Te, L, 'count', Hm0_bins, Te_bins)\n", - "LM_min = wave.performance.capture_length_matrix(Hm0, Te, L, 'min', Hm0_bins, Te_bins)\n", - "LM_max = wave.performance.capture_length_matrix(Hm0, Te, L, 'max', Hm0_bins, Te_bins)\n", + "LM_mean = wave.performance.capture_length_matrix(Hm0, Te, L, \"mean\", Hm0_bins, Te_bins)\n", + "LM_std = wave.performance.capture_length_matrix(Hm0, Te, L, \"std\", Hm0_bins, Te_bins)\n", + "LM_count = wave.performance.capture_length_matrix(\n", + " Hm0, Te, L, \"count\", Hm0_bins, Te_bins\n", + ")\n", + "LM_min = wave.performance.capture_length_matrix(Hm0, Te, L, \"min\", Hm0_bins, Te_bins)\n", + "LM_max = wave.performance.capture_length_matrix(Hm0, Te, L, \"max\", Hm0_bins, Te_bins)\n", "\n", "# Show mean capture length matrix\n", "LM_mean" @@ -2002,7 +2004,9 @@ ], "source": [ "# Create capture length matrices using frequency\n", - "LM_freq = wave.performance.capture_length_matrix(Hm0, Te, L,'frequency', Hm0_bins, Te_bins)\n", + "LM_freq = wave.performance.capture_length_matrix(\n", + " Hm0, Te, L, \"frequency\", Hm0_bins, Te_bins\n", + ")\n", "\n", "# Show capture length matrix using frequency\n", "LM_freq" @@ -2022,7 +2026,9 @@ "outputs": [], "source": [ "# Demonstration of arbitrary matrix generator\n", - "PM_mean_not_standard = wave.performance.capture_length_matrix(Hm0, Te, P, 'mean', Hm0_bins, Te_bins)" + "PM_mean_not_standard = wave.performance.capture_length_matrix(\n", + " Hm0, Te, P, \"mean\", Hm0_bins, Te_bins\n", + ")" ] }, { @@ -2041,7 +2047,9 @@ "outputs": [], "source": [ "# Demonstration of passing a callable function to the matrix generator\n", - "LM_variance = wave.performance.capture_length_matrix(Hm0, Te, L, np.var, Hm0_bins, Te_bins)" + "LM_variance = wave.performance.capture_length_matrix(\n", + " Hm0, Te, L, np.var, Hm0_bins, Te_bins\n", + ")" ] }, { @@ -2599,7 +2607,7 @@ ], "source": [ "# Create wave energy flux matrix using mean\n", - "JM = wave.performance.wave_energy_flux_matrix(Hm0, Te, J, 'mean', Hm0_bins, Te_bins)\n", + "JM = wave.performance.wave_energy_flux_matrix(Hm0, Te, J, \"mean\", Hm0_bins, Te_bins)\n", "\n", "# Create power matrix using mean\n", "PM_mean = wave.performance.power_matrix(LM_mean, JM)\n", @@ -2639,7 +2647,9 @@ "print(\"MAEP from timeseries = \", maep_timeseries)\n", "\n", "# Calcaulte maep from matrix\n", - "maep_matrix = wave.performance.mean_annual_energy_production_matrix(LM_mean, JM, LM_freq)\n", + "maep_matrix = wave.performance.mean_annual_energy_production_matrix(\n", + " LM_mean, JM, LM_freq\n", + ")\n", "print(\"MAEP from matrices = \", maep_matrix)" ] }, @@ -2671,7 +2681,7 @@ ], "source": [ "# Plot the capture length mean matrix\n", - "ax = wave.graphics.plot_matrix(LM_mean) " + "ax = wave.graphics.plot_matrix(LM_mean)" ] }, { @@ -2715,10 +2725,17 @@ "source": [ "# Customize the matrix plot\n", "import matplotlib.pylab as plt\n", - "plt.figure(figsize=(6,6))\n", + "\n", + "plt.figure(figsize=(6, 6))\n", "ax = plt.gca()\n", - "wave.graphics.plot_matrix(PM_mean, xlabel='Te (s)', ylabel='Hm0 (m)', \\\n", - " zlabel='Mean Power (kW)', show_values=False, ax=ax)" + "wave.graphics.plot_matrix(\n", + " PM_mean,\n", + " xlabel=\"Te (s)\",\n", + " ylabel=\"Hm0 (m)\",\n", + " zlabel=\"Mean Power (kW)\",\n", + " show_values=False,\n", + " ax=ax,\n", + ")" ] } ], diff --git a/examples/wecsim_example.ipynb b/examples/wecsim_example.ipynb index 4106fb52f..3dceda943 100644 --- a/examples/wecsim_example.ipynb +++ b/examples/wecsim_example.ipynb @@ -26,7 +26,7 @@ "metadata": {}, "outputs": [], "source": [ - "from mhkit import wave\n", + "from mhkit import wave\n", "import scipy.io as sio\n", "import matplotlib.pyplot as plt" ] @@ -59,7 +59,7 @@ ], "source": [ "# Relative location and filename of simulated WEC-Sim data (run with mooring)\n", - "filename = './data/wave/RM3MooringMatrix_matlabWorkspace_structure.mat' \n", + "filename = \"./data/wave/RM3MooringMatrix_matlabWorkspace_structure.mat\"\n", "\n", "# Load data using the `wecsim.read_output` function which returns a dictionary of dataFrames\n", "wecsim_data = wave.io.wecsim.read_output(filename)" @@ -226,13 +226,13 @@ ], "source": [ "# Store WEC-Sim output from the Wave Class to a new dataFrame, called `wave_data`\n", - "wave_data = wecsim_data['wave']\n", + "wave_data = wecsim_data[\"wave\"]\n", "\n", "# Display the wave type from the WEC-Sim Wave Class\n", "wave_type = wave_data.name\n", "print(\"WEC-Sim wave type:\", wave_type)\n", "\n", - "# View the WEC-Sim output dataFrame for the Wave Class \n", + "# View the WEC-Sim output dataFrame for the Wave Class\n", "wave_data" ] }, @@ -313,8 +313,8 @@ } ], "source": [ - "# Store WEC-Sim output from the Body Class to a new dictionary of dataFrames, i.e. 'bodies'. \n", - "bodies = wecsim_data['bodies']\n", + "# Store WEC-Sim output from the Body Class to a new dictionary of dataFrames, i.e. 'bodies'.\n", + "bodies = wecsim_data[\"bodies\"]\n", "\n", "# Data fron each body is stored as its own dataFrame, i.e. 'body1' and 'body2'.\n", "bodies.keys()" @@ -343,8 +343,8 @@ } ], "source": [ - "# Store Body Class dataFrame for Body 1 as `body1`. \n", - "body1 = bodies['body1']\n", + "# Store Body Class dataFrame for Body 1 as `body1`.\n", + "body1 = bodies[\"body1\"]\n", "\n", "# Display the name of Body 1 from the WEC-Sim Body Class\n", "print(\"Name of Body 1:\", body1.name)" @@ -384,7 +384,7 @@ ], "source": [ "# Print a list of Body 1 columns that end with 'dof1'\n", - "[col for col in body1 if col.endswith('dof1')]" + "[col for col in body1 if col.endswith(\"dof1\")]" ] }, { @@ -427,11 +427,11 @@ "body1.position_dof3.plot()\n", "plt.xlabel(\"Time [s]\")\n", "plt.ylabel(\"Heave Position [m]\")\n", - "plt.title('Body 1')\n", + "plt.title(\"Body 1\")\n", "\n", - "# Use Pandas to calculate the maximum and minimum heave position of Body 1 \n", - "print(\"Body 1 max heave position =\", body1.position_dof3.max(),\"[m]\")\n", - "print(\"Body 1 min heave position =\", body1.position_dof3.min(),\"[m]\")" + "# Use Pandas to calculate the maximum and minimum heave position of Body 1\n", + "print(\"Body 1 max heave position =\", body1.position_dof3.max(), \"[m]\")\n", + "print(\"Body 1 min heave position =\", body1.position_dof3.min(), \"[m]\")" ] }, { @@ -472,14 +472,14 @@ ], "source": [ "# Create a list of Body 1 data columns that start with 'position'\n", - "filter_col = [col for col in body1 if col.startswith('position')]\n", + "filter_col = [col for col in body1 if col.startswith(\"position\")]\n", "\n", "# Plot filtered 'position' data for Body 1\n", "body1[filter_col].plot()\n", - "plt.xlabel('Time [s]')\n", - "plt.ylabel('Position [m or rad]')\n", - "plt.title('Body 1')\n", - "plt.legend(loc='center left', bbox_to_anchor=(1, 0.5))" + "plt.xlabel(\"Time [s]\")\n", + "plt.ylabel(\"Position [m or rad]\")\n", + "plt.title(\"Body 1\")\n", + "plt.legend(loc=\"center left\", bbox_to_anchor=(1, 0.5))" ] }, { @@ -763,8 +763,8 @@ } ], "source": [ - "# Store Body Class dataFrame for Body 2 as `body2` \n", - "body2 = bodies['body2']\n", + "# Store Body Class dataFrame for Body 2 as `body2`\n", + "body2 = bodies[\"body2\"]\n", "\n", "# Display the name of Body 2 from the WEC-Sim Body Class\n", "print(\"Name of Body 2:\", body2.name)\n", @@ -814,13 +814,13 @@ ], "source": [ "# Store WEC-Sim output from the PTO Class to a DataFrame, called `ptos`\n", - "ptos = wecsim_data['ptos']\n", + "ptos = wecsim_data[\"ptos\"]\n", "\n", "# Display the name of the PTO from the WEC-Sim PTO Class\n", "print(\"Name of PTO:\", ptos.name)\n", "\n", "# Print a list of available columns that end with 'dof1'\n", - "[col for col in ptos if col.endswith('dof1')]" + "[col for col in ptos if col.endswith(\"dof1\")]" ] }, { @@ -854,10 +854,10 @@ "source": [ "# Use Pandas to plot pto internal power in heave (DOF 3)\n", "# NOTE: WEC-Sim requires a negative sign to convert internal power to generated power\n", - "(-1*ptos.powerInternalMechanics_dof3/1000).plot()\n", + "(-1 * ptos.powerInternalMechanics_dof3 / 1000).plot()\n", "plt.xlabel(\"Time [s]\")\n", "plt.ylabel(\"Power Generated [kW]\")\n", - "plt.title('PTO')" + "plt.title(\"PTO\")" ] }, { @@ -1133,7 +1133,7 @@ ], "source": [ "# Store WEC-Sim output from the Constraint Class to a new dataFrame, called `constraints`\n", - "constraints = wecsim_data['constraints']\n", + "constraints = wecsim_data[\"constraints\"]\n", "\n", "# Display the name of the Constraint from the WEC-Sim Constraint Class\n", "print(\"Name of Constraint:\", constraints.name)\n", @@ -1376,7 +1376,7 @@ ], "source": [ "# Store WEC-Sim output from the Mooring Class to a new dataFrame, called `mooring`\n", - "mooring = wecsim_data['mooring']\n", + "mooring = wecsim_data[\"mooring\"]\n", "\n", "# View the PTO Class dataFrame\n", "mooring.head()" @@ -1411,8 +1411,8 @@ ], "source": [ "# Use the MHKiT Wave Module to calculate the wave spectrum from the WEC-Sim Wave Class Data\n", - "sample_rate=60\n", - "nnft=1000 # Number of bins in the Fast Fourier Transform\n", + "sample_rate = 60\n", + "nnft = 1000 # Number of bins in the Fast Fourier Transform\n", "ws_spectrum = wave.resource.elevation_spectrum(wave_data, sample_rate, nnft)\n", "\n", "# Plot calculated wave spectrum\n", @@ -1514,7 +1514,7 @@ "Hm0 = wave.resource.significant_wave_height(ws_spectrum)\n", "\n", "# Display calculated Peak Wave Period (Tp) and Significant Wave Height (Hm0)\n", - "display(Tp,Hm0)" + "display(Tp, Hm0)" ] } ], diff --git a/figures/logo.png b/logo.png similarity index 100% rename from figures/logo.png rename to logo.png diff --git a/mhkit/__init__.py b/mhkit/__init__.py index 49c1b44b9..05a04dcf1 100644 --- a/mhkit/__init__.py +++ b/mhkit/__init__.py @@ -11,12 +11,13 @@ # Register datetime converter for a matplotlib plotting methods from pandas.plotting import register_matplotlib_converters as _rmc + _rmc() # Ignore future warnings -_warn.simplefilter(action='ignore', category=FutureWarning) +_warn.simplefilter(action="ignore", category=FutureWarning) -__version__ = 'v0.7.0' +__version__ = "v0.7.0" __copyright__ = """ Copyright 2019, Alliance for Sustainable Energy, LLC under the terms of diff --git a/mhkit/dolfyn/__init__.py b/mhkit/dolfyn/__init__.py index 307a6932f..cb459e50f 100644 --- a/mhkit/dolfyn/__init__.py +++ b/mhkit/dolfyn/__init__.py @@ -1,5 +1,10 @@ from mhkit.dolfyn.io.api import read, read_example, save, load, save_mat, load_mat -from mhkit.dolfyn.rotate.api import rotate2, calc_principal_heading, set_declination, set_inst2head_rotmat +from mhkit.dolfyn.rotate.api import ( + rotate2, + calc_principal_heading, + set_declination, + set_inst2head_rotmat, +) from .rotate.base import euler2orient, orient2euler, quaternion2orient from .velocity import VelBinner from mhkit.dolfyn import adv diff --git a/mhkit/dolfyn/adp/__init__.py b/mhkit/dolfyn/adp/__init__.py index f1d1e0517..4dc7607ef 100644 --- a/mhkit/dolfyn/adp/__init__.py +++ b/mhkit/dolfyn/adp/__init__.py @@ -1,2 +1 @@ from . import api - diff --git a/mhkit/dolfyn/adp/clean.py b/mhkit/dolfyn/adp/clean.py index f4cc896b0..e89124d11 100644 --- a/mhkit/dolfyn/adp/clean.py +++ b/mhkit/dolfyn/adp/clean.py @@ -1,5 +1,6 @@ """Module containing functions to clean data """ + import numpy as np import xarray as xr from scipy.signal import medfilt @@ -40,15 +41,15 @@ def set_range_offset(ds, h_deploy): the surface and downward-facing ADCP's transducers. """ - r = [s for s in ds.dims if 'range' in s] + r = [s for s in ds.dims if "range" in s] for val in r: ds[val] = ds[val].values + h_deploy - ds[val].attrs['units'] = 'm' + ds[val].attrs["units"] = "m" - if hasattr(ds, 'h_deploy'): - ds.attrs['h_deploy'] += h_deploy + if hasattr(ds, "h_deploy"): + ds.attrs["h_deploy"] += h_deploy else: - ds.attrs['h_deploy'] = h_deploy + ds.attrs["h_deploy"] = h_deploy def find_surface(ds, thresh=10, nfilt=None): @@ -78,9 +79,13 @@ def find_surface(ds, thresh=10, nfilt=None): # This finds the first point that increases (away from the profiler) in # the echo profile edf = np.diff(ds.amp.values.astype(np.int16), axis=1) - inds2 = np.max((edf < 0) * - np.arange(ds.vel.shape[1] - 1, - dtype=np.uint8)[None, :, None], axis=1) + 1 + inds2 = ( + np.max( + (edf < 0) * np.arange(ds.vel.shape[1] - 1, dtype=np.uint8)[None, :, None], + axis=1, + ) + + 1 + ) # Calculate the depth of these quantities d1 = ds.range.values[inds] @@ -101,12 +106,17 @@ def find_surface(ds, thresh=10, nfilt=None): dfilt[dfilt == 0] = np.NaN d = dfilt - ds['depth'] = xr.DataArray(d.astype('float32'), - dims=['time'], - attrs={'units': 'm', - 'long_name': 'Depth', - 'standard_name': 'depth', - 'positive': 'down'}) + ds["depth"] = xr.DataArray( + d.astype("float32"), + dims=["time"], + attrs={ + "units": "m", + "long_name": "Depth", + "standard_name": "depth", + "positive": "down", + }, + ) + def find_surface_from_P(ds, salinity=35): """ @@ -137,9 +147,9 @@ def find_surface_from_P(ds, salinity=35): .. math:: \\rho - \\rho_0 = -\\alpha (T-T_0) + \\beta (S-S_0) + \\kappa P Where :math:`\\rho` is water density, :math:`T` is water temperature, - :math:`P` is water pressure, :math:`S` is practical salinity, - :math:`\\alpha` is the thermal expansion coefficient, :math:`\\beta` is - the haline contraction coefficient, and :math:`\\kappa` is adiabatic + :math:`P` is water pressure, :math:`S` is practical salinity, + :math:`\\alpha` is the thermal expansion coefficient, :math:`\\beta` is + the haline contraction coefficient, and :math:`\\kappa` is adiabatic compressibility. """ @@ -153,31 +163,37 @@ def find_surface_from_P(ds, salinity=35): a = 0.15 # thermal expansion coefficient, kg/m^3/degC b = 0.78 # haline contraction coefficient, kg/m^3/ppt k = 4.5e-3 # adiabatic compressibility, kg/m^3/dbar - rho = rho0 - a*(T-T0) + b*(S-S0) + k*P + rho = rho0 - a * (T - T0) + b * (S - S0) + k * P # Depth = pressure (conversion from dbar to MPa) / water weight - d = (ds.pressure*10000)/(9.81*rho) + d = (ds.pressure * 10000) / (9.81 * rho) - if hasattr(ds, 'h_deploy'): + if hasattr(ds, "h_deploy"): d += ds.h_deploy description = "Depth to Seafloor" else: description = "Depth to Instrument" - ds['water_density'] = xr.DataArray( - rho.astype('float32'), - dims=['time'], - attrs={'units': 'kg m-3', - 'long_name': 'Water Density', - 'standard_name': 'sea_water_density', - 'description': 'Water density from linear approximation of sea water equation of state'}) - ds['depth'] = xr.DataArray( - d.astype('float32'), - dims=['time'], - attrs={'units': 'm', - 'long_name': description, - 'standard_name': 'depth', - 'positive': 'down'}) + ds["water_density"] = xr.DataArray( + rho.astype("float32"), + dims=["time"], + attrs={ + "units": "kg m-3", + "long_name": "Water Density", + "standard_name": "sea_water_density", + "description": "Water density from linear approximation of sea water equation of state", + }, + ) + ds["depth"] = xr.DataArray( + d.astype("float32"), + dims=["time"], + attrs={ + "units": "m", + "long_name": description, + "standard_name": "depth", + "positive": "down", + }, + ) def nan_beyond_surface(ds, val=np.nan, beam_angle=None, inplace=False): @@ -204,7 +220,7 @@ def nan_beyond_surface(ds, val=np.nan, beam_angle=None, inplace=False): Notes ----- - Surface interference expected to happen at + Surface interference expected to happen at `distance > range * cos(beam angle) - cell size` """ @@ -212,29 +228,32 @@ def nan_beyond_surface(ds, val=np.nan, beam_angle=None, inplace=False): ds = ds.copy(deep=True) # Get all variables with 'range' coordinate - var = [h for h in ds.keys() if any(s for s in ds[h].dims if 'range' in s)] + var = [h for h in ds.keys() if any(s for s in ds[h].dims if "range" in s)] if beam_angle is None: - if hasattr(ds, 'beam_angle'): - beam_angle = ds.beam_angle * (np.pi/180) + if hasattr(ds, "beam_angle"): + beam_angle = ds.beam_angle * (np.pi / 180) else: - raise Exception("'beam_angle` not found in dataset attributes. "\ - "Please supply the ADCP's beam angle.") + raise Exception( + "'beam_angle` not found in dataset attributes. " + "Please supply the ADCP's beam angle." + ) # Surface interference distance calculated from distance of transducers to surface - if hasattr(ds, 'h_deploy'): - range_limit = ((ds.depth-ds.h_deploy) * np.cos(beam_angle) - - ds.cell_size) + ds.h_deploy + if hasattr(ds, "h_deploy"): + range_limit = ( + (ds.depth - ds.h_deploy) * np.cos(beam_angle) - ds.cell_size + ) + ds.h_deploy else: range_limit = ds.depth * np.cos(beam_angle) - ds.cell_size bds = ds.range > range_limit # Echosounder data needs only be trimmed at water surface - if 'echo' in var: + if "echo" in var: bds_echo = ds.range_echo > ds.depth - ds['echo'].values[..., bds_echo] = val - var.remove('echo') + ds["echo"].values[..., bds_echo] = val + var.remove("echo") # Correct rest of "range" data for surface interference for nm in var: @@ -251,7 +270,7 @@ def nan_beyond_surface(ds, val=np.nan, beam_angle=None, inplace=False): def correlation_filter(ds, thresh=50, inplace=False): """ - Filters out data where correlation is below a threshold in the + Filters out data where correlation is below a threshold in the along-beam correlation data. Parameters @@ -268,7 +287,7 @@ def correlation_filter(ds, thresh=50, inplace=False): Returns ------- ds : xarray.Dataset - Elements in velocity, correlation, and amplitude are removed if below the + Elements in velocity, correlation, and amplitude are removed if below the correlation threshold Notes @@ -280,27 +299,30 @@ def correlation_filter(ds, thresh=50, inplace=False): ds = ds.copy(deep=True) # 4 or 5 beam - if hasattr(ds, 'vel_b5'): - tag = ['', '_b5'] + if hasattr(ds, "vel_b5"): + tag = ["", "_b5"] else: - tag = [''] + tag = [""] # copy original ref frame coord_sys_orig = ds.coord_sys # correlation is always in beam coordinates - rotate2(ds, 'beam', inplace=True) + rotate2(ds, "beam", inplace=True) # correlation is always in beam coordinates for tg in tag: - mask = ds['corr'+tg].values <= thresh + mask = ds["corr" + tg].values <= thresh - for var in ['vel', 'corr', 'amp']: + for var in ["vel", "corr", "amp"]: try: - ds[var+tg].values[mask] = np.nan + ds[var + tg].values[mask] = np.nan except: - ds[var+tg].values[mask] = 0 - ds[var+tg].attrs['Comments'] = 'Filtered of data with a correlation value below ' + \ - str(thresh) + ds.corr.units + ds[var + tg].values[mask] = 0 + ds[var + tg].attrs["Comments"] = ( + "Filtered of data with a correlation value below " + + str(thresh) + + ds.corr.units + ) rotate2(ds, coord_sys_orig, inplace=True) @@ -332,22 +354,22 @@ def medfilt_orient(ds, nfilt=7): ds = ds.copy(deep=True) - if getattr(ds, 'has_imu'): + if getattr(ds, "has_imu"): q_filt = np.zeros(ds.quaternions.shape) for i in range(ds.quaternions.q.size): q_filt[i] = medfilt(ds.quaternions[i].values, nfilt) ds.quaternions.values = q_filt - ds['orientmat'] = quaternion2orient(ds.quaternions) + ds["orientmat"] = quaternion2orient(ds.quaternions) return ds else: # non Nortek AHRS-equipped instruments - do_these = ['pitch', 'roll', 'heading'] + do_these = ["pitch", "roll", "heading"] for nm in do_these: ds[nm].values = medfilt(ds[nm].values, nfilt) - return ds.drop_vars('orientmat') + return ds.drop_vars("orientmat") def val_exceeds_thresh(var, thresh=5, val=np.nan): @@ -373,15 +395,15 @@ def val_exceeds_thresh(var, thresh=5, val=np.nan): var = var.copy(deep=True) - bd = np.zeros(var.shape, dtype='bool') - bd |= (np.abs(var.values) > thresh) + bd = np.zeros(var.shape, dtype="bool") + bd |= np.abs(var.values) > thresh var.values[bd] = val return var -def fillgaps_time(var, method='cubic', maxgap=None): +def fillgaps_time(var, method="cubic", maxgap=None): """ Fill gaps (nan values) in var across time using the specified method @@ -404,14 +426,14 @@ def fillgaps_time(var, method='cubic', maxgap=None): xarray.DataArray.interpolate_na() """ - time_dim = [t for t in var.dims if 'time' in t][0] + time_dim = [t for t in var.dims if "time" in t][0] - return var.interpolate_na(dim=time_dim, method=method, - use_coordinate=True, - limit=maxgap) + return var.interpolate_na( + dim=time_dim, method=method, use_coordinate=True, limit=maxgap + ) -def fillgaps_depth(var, method='cubic', maxgap=None): +def fillgaps_depth(var, method="cubic", maxgap=None): """ Fill gaps (nan values) in var along the depth profile using the specified method @@ -434,8 +456,8 @@ def fillgaps_depth(var, method='cubic', maxgap=None): xarray.DataArray.interpolate_na() """ - range_dim = [t for t in var.dims if 'range' in t][0] + range_dim = [t for t in var.dims if "range" in t][0] - return var.interpolate_na(dim=range_dim, method=method, - use_coordinate=False, - limit=maxgap) + return var.interpolate_na( + dim=range_dim, method=method, use_coordinate=False, limit=maxgap + ) diff --git a/mhkit/dolfyn/adp/turbulence.py b/mhkit/dolfyn/adp/turbulence.py index 72c4704ae..d85f365ab 100644 --- a/mhkit/dolfyn/adp/turbulence.py +++ b/mhkit/dolfyn/adp/turbulence.py @@ -16,7 +16,7 @@ def _diffz_first(dat, z): 1 dimensional vector to be differentiated z : array-like Vertical dimension to differentiate across - + Returns ------- out : array-like @@ -36,7 +36,7 @@ def _diffz_centered(dat, z): 1 dimensional vector to be differentiated z : array-like Vertical dimension to differentiate across - + Returns ------- out : array-like @@ -48,7 +48,7 @@ def _diffz_centered(dat, z): Can use 2*np.diff b/c depth bin size never changes """ - return (dat[2:]-dat[:-2]) / (2*np.diff(z)[1:, None]) + return (dat[2:] - dat[:-2]) / (2 * np.diff(z)[1:, None]) def _diffz_centered_extended(dat, z): @@ -61,7 +61,7 @@ def _diffz_centered_extended(dat, z): 1 dimensional vector to be differentiated z : array-like Vertical dimension to differentiate across - + Returns ------- out : array-like @@ -70,19 +70,31 @@ def _diffz_centered_extended(dat, z): Notes ----- Top - bottom centered difference with endpoints determined - with a first difference. Ensures the output array is the + with a first difference. Ensures the output array is the same size as the input array. """ - out = np.concatenate((_diffz_first(dat[:2], z[:2]), - _diffz_centered(dat, z), - _diffz_first(dat[-2:], z[-2:]))) + out = np.concatenate( + ( + _diffz_first(dat[:2], z[:2]), + _diffz_centered(dat, z), + _diffz_first(dat[-2:], z[-2:]), + ) + ) return out class ADPBinner(VelBinner): - def __init__(self, n_bin, fs, n_fft=None, n_fft_coh=None, - noise=None, orientation='up', diff_style='centered_extended'): + def __init__( + self, + n_bin, + fs, + n_fft=None, + n_fft_coh=None, + noise=None, + orientation="up", + diff_style="centered_extended", + ): """ A class for calculating turbulence statistics from ADCP data @@ -99,12 +111,14 @@ def __init__(self, n_bin, fs, n_fft=None, n_fft_coh=None, n_fft_coh : int Number of data points to use for coherence and cross-spectra ffts Default: `n_fft_coh`=`n_fft` - noise : float, list or numpy.ndarray - Instrument's doppler noise in same units as velocity + noise : float or array-like + Instrument noise level in same units as velocity. Typically + found from `adp.turbulence.doppler_noise_level`. + Default: None. orientation : str, default='up' Instrument's orientation, either 'up' or 'down' diff_style : str, default='centered_extended' - Style of numerical differentiation using Newton's Method. + Style of numerical differentiation using Newton's Method. Either 'first' (first difference), 'centered' (centered difference), or 'centered_extended' (centered difference with first and last points extended using a first difference). @@ -115,11 +129,11 @@ def __init__(self, n_bin, fs, n_fft=None, n_fft_coh=None, self.orientation = orientation def _diff_func(self, vel, u): - """ Applies the chosen style of numerical differentiation to velocity data. + """Applies the chosen style of numerical differentiation to velocity data. - This method calculates the derivative of the velocity data 'vel' with respect to the 'range' - using the differentiation style specified in 'self.diff_style'. The styles can be 'first' - for first difference, 'centered' for centered difference, and 'centered_extended' for + This method calculates the derivative of the velocity data 'vel' with respect to the 'range' + using the differentiation style specified in 'self.diff_style'. The styles can be 'first' + for first difference, 'centered' for centered difference, and 'centered_extended' for centered difference with first and last points extended using a first difference. Parameters @@ -135,14 +149,14 @@ def _diff_func(self, vel, u): The calculated derivative of the velocity data. """ - if self.diff_style == 'first': - out = _diffz_first(vel[u].values, vel['range'].values) + if self.diff_style == "first": + out = _diffz_first(vel[u].values, vel["range"].values) return out, vel.range[1:] - elif self.diff_style == 'centered': - out = _diffz_centered(vel[u].values, vel['range'].values) + elif self.diff_style == "centered": + out = _diffz_centered(vel[u].values, vel["range"].values) return out, vel.range[1:-1] - elif self.diff_style == 'centered_extended': - out = _diffz_centered_extended(vel[u].values, vel['range'].values) + elif self.diff_style == "centered_extended": + out = _diffz_centered_extended(vel[u].values, vel["range"].values) return out, vel.range def dudz(self, vel, orientation=None): @@ -171,16 +185,16 @@ def dudz(self, vel, orientation=None): if not orientation: orientation = self.orientation sign = 1 - if orientation == 'down': + if orientation == "down": sign *= -1 - dudz, rng = sign*self._diff_func(vel, 0) - return xr.DataArray(dudz, - coords=[rng, vel.time], - dims=['range', 'time'], - attrs={'units': 's-1', - 'long_name': 'Shear in X-direction'} - ) + dudz, rng = sign * self._diff_func(vel, 0) + return xr.DataArray( + dudz, + coords=[rng, vel.time], + dims=["range", "time"], + attrs={"units": "s-1", "long_name": "Shear in X-direction"}, + ) def dvdz(self, vel): """ @@ -204,12 +218,12 @@ def dvdz(self, vel): """ dvdz, rng = self._diff_func(vel, 1) - return xr.DataArray(dvdz, - coords=[rng, vel.time], - dims=['range', 'time'], - attrs={'units': 's-1', - 'long_name': 'Shear in Y-direction'} - ) + return xr.DataArray( + dvdz, + coords=[rng, vel.time], + dims=["range", "time"], + attrs={"units": "s-1", "long_name": "Shear in Y-direction"}, + ) def dwdz(self, vel): """ @@ -233,12 +247,12 @@ def dwdz(self, vel): """ dwdz, rng = self._diff_func(vel, 2) - return xr.DataArray(dwdz, - coords=[rng, vel.time], - dims=['range', 'time'], - attrs={'units': 's-1', - 'long_name': 'Shear in Z-direction'} - ) + return xr.DataArray( + dwdz, + coords=[rng, vel.time], + dims=["range", "time"], + attrs={"units": "s-1", "long_name": "Shear in Z-direction"}, + ) def shear_squared(self, vel): """ @@ -266,8 +280,8 @@ def shear_squared(self, vel): """ shear2 = self.dudz(vel) ** 2 + self.dvdz(vel) ** 2 - shear2.attrs['units'] = 's-2' - shear2.attrs['long_name'] = 'Horizontal Shear Squared' + shear2.attrs["units"] = "s-2" + shear2.attrs["long_name"] = "Horizontal Shear Squared" return shear2 @@ -286,7 +300,7 @@ def doppler_noise_level(self, psd, pct_fN=0.8): Returns ------- - doppler_noise (xarray.DataArray): + doppler_noise (xarray.DataArray): Doppler noise level in units of m/s Notes @@ -299,19 +313,19 @@ def doppler_noise_level(self, psd, pct_fN=0.8): `N` is the constant variance or spectral density, and `f_{c}` is the characteristic frequency. - The characteristic frequency is then found as + The characteristic frequency is then found as .. :math: f_{c} = pct_fN * (f_{s}/2) where `f_{s}/2` is the Nyquist frequency. - Richard, Jean-Baptiste, et al. "Method for identification of Doppler noise - levels in turbulent flow measurements dedicated to tidal energy." International + Richard, Jean-Baptiste, et al. "Method for identification of Doppler noise + levels in turbulent flow measurements dedicated to tidal energy." International Journal of Marine Energy 3 (2013): 52-64. - Thiébaut, Maxime, et al. "Investigating the flow dynamics and turbulence at a - tidal-stream energy site in a highly energetic estuary." Renewable Energy 195 + Thiébaut, Maxime, et al. "Investigating the flow dynamics and turbulence at a + tidal-stream energy site in a highly energetic estuary." Renewable Energy 195 (2022): 252-262. """ @@ -320,38 +334,41 @@ def doppler_noise_level(self, psd, pct_fN=0.8): if not isinstance(pct_fN, float) or not 0 <= pct_fN <= 1: raise ValueError("`pct_fN` must be a float within the range [0, 1].") if len(psd.shape) != 2: - raise Exception('PSD should be 2-dimensional (time, frequency)') + raise Exception("PSD should be 2-dimensional (time, frequency)") # Characteristic frequency set to 80% of Nyquist frequency - fN = self.fs/2 + fN = self.fs / 2 fc = pct_fN * fN # Get units right if psd.freq.units == "Hz": f_range = slice(fc, fN) else: - f_range = slice(2*np.pi*fc, 2*np.pi*fN) + f_range = slice(2 * np.pi * fc, 2 * np.pi * fN) # Noise floor N2 = psd.sel(freq=f_range) * psd.freq.sel(freq=f_range) - noise_level = np.sqrt(N2.mean(dim='freq')) + noise_level = np.sqrt(N2.mean(dim="freq")) + time_coord = psd.dims[0] # no reason this shouldn't be time or time_b5 return xr.DataArray( - noise_level.values.astype('float32'), - dims=['time'], - attrs={'units': 'm s-1', - 'long_name': 'Doppler Noise Level', - 'description': 'Doppler noise level calculated ' - 'from PSD white noise'}) + noise_level.values.astype("float32"), + coords={time_coord: psd.coords[time_coord]}, + attrs={ + "units": "m s-1", + "long_name": "Doppler Noise Level", + "description": "Doppler noise level calculated " "from PSD white noise", + }, + ) def _stress_func_warnings(self, ds, beam_angle, noise, tilt_thresh): """ Performs a series of checks and raises warnings for ADCP stress calculations. - This method checks several conditions relevant for ADCP stress calculations and raises - warnings if these conditions are not met. It checks if the beam angle is defined, - if the instrument's coordinate system is aligned with the principal flow directions, - if the tilt is above a threshold, if the noise level is specified, and if the data + This method checks several conditions relevant for ADCP stress calculations and raises + warnings if these conditions are not met. It checks if the beam angle is defined, + if the instrument's coordinate system is aligned with the principal flow directions, + if the tilt is above a threshold, if the noise level is specified, and if the data set is in the 'beam' coordinate system. Parameters @@ -374,41 +391,50 @@ def _stress_func_warnings(self, ds, beam_angle, noise, tilt_thresh): """ # Error 1. Beam Angle - b_angle = getattr(ds, 'beam_angle', beam_angle) + b_angle = getattr(ds, "beam_angle", beam_angle) if b_angle is None: raise Exception( - " Beam angle not found in dataset and no beam angle supplied.") + " Beam angle not found in dataset and no beam angle supplied." + ) # Warning 1. Memo - warnings.warn(" The beam-variance algorithms assume the instrument's " - "(XYZ) coordinate system is aligned with the principal " - "flow directions.") + warnings.warn( + " The beam-variance algorithms assume the instrument's " + "(XYZ) coordinate system is aligned with the principal " + "flow directions." + ) # Warning 2. Check tilt - tilt_mask = calc_tilt(ds['pitch'], ds['roll']) > tilt_thresh + tilt_mask = calc_tilt(ds["pitch"], ds["roll"]) > tilt_thresh if sum(tilt_mask): pct_above_thresh = round(sum(tilt_mask) / len(tilt_mask) * 100, 2) - warnings.warn(f" {pct_above_thresh} % of measurements have a tilt " - f"greater than {tilt_thresh} degrees.") + warnings.warn( + f" {pct_above_thresh} % of measurements have a tilt " + f"greater than {tilt_thresh} degrees." + ) # Warning 3. Noise level of instrument is important considering 50 % of variance # in ADCP data can be noise if noise is None: - warnings.warn(' No "noise" input supplied. Consider calculating "noise" ' - 'using `calc_doppler_noise`') + warnings.warn( + ' No "noise" input supplied. Consider calculating "noise" ' + "using `calc_doppler_noise`" + ) noise = 0 # Warning 4. Likely not in beam coordinates after running a typical analysis workflow - if 'beam' not in ds.coord_sys: - warnings.warn(" Raw dataset must be in the 'beam' coordinate system. " - "Rotating raw dataset...") - ds.velds.rotate2('beam') + if "beam" not in ds.coord_sys: + warnings.warn( + " Raw dataset must be in the 'beam' coordinate system. " + "Rotating raw dataset..." + ) + ds.velds.rotate2("beam") return b_angle, noise - + def _check_orientation(self, ds, orientation, beam5=False): """ - Determines the beam order for the beam-stress rotation algorithm based on + Determines the beam order for the beam-stress rotation algorithm based on the instrument orientation. Note: Stacey defines the beams for down-looking Workhorse ADCPs. @@ -424,11 +450,11 @@ def _check_orientation(self, ds, orientation, beam5=False): ds : xarray.Dataset Raw dataset in beam coordinates orientation : str - The orientation of the instrument, either 'up' or 'down'. - If None, the orientation will be retrieved from the dataset or the + The orientation of the instrument, either 'up' or 'down'. + If None, the orientation will be retrieved from the dataset or the instance's default orientation. beam5 : bool, default=False - A flag indicating whether a fifth beam is present. + A flag indicating whether a fifth beam is present. If True, the number 4 will be appended to the beam order. Returns @@ -438,36 +464,38 @@ def _check_orientation(self, ds, orientation, beam5=False): phi2 : float, optional The mean of the roll values in radians. Only returned if 'beam5' is True. phi3 : float, optional - The mean of the pitch values in radians, negated for Nortek instruments. + The mean of the pitch values in radians, negated for Nortek instruments. Only returned if 'beam5' is True. """ if orientation is None: - orientation = getattr(ds, 'orientation', self.orientation) + orientation = getattr(ds, "orientation", self.orientation) - if 'TRDI' in ds.inst_make: - phi2 = np.deg2rad(self.mean(ds['pitch'].values)) - phi3 = np.deg2rad(self.mean(ds['roll'].values)) - if 'down' in orientation.lower(): + if "TRDI" in ds.inst_make: + phi2 = np.deg2rad(self.mean(ds["pitch"].values)) + phi3 = np.deg2rad(self.mean(ds["roll"].values)) + if "down" in orientation.lower(): # this order is correct given the note above beams = [0, 1, 2, 3] # for down-facing RDIs - elif 'up' in orientation.lower(): + elif "up" in orientation.lower(): beams = [0, 1, 3, 2] # for up-facing RDIs else: raise Exception( - "Please provide instrument orientation ['up' or 'down']") + "Please provide instrument orientation ['up' or 'down']" + ) # For Nortek Signatures - elif ('Signature' in ds.inst_model) or ('AD2CP' in ds.inst_model): - phi2 = np.deg2rad(self.mean(ds['roll'].values)) - phi3 = -np.deg2rad(self.mean(ds['pitch'].values)) - if 'down' in orientation.lower(): + elif ("Signature" in ds.inst_model) or ("AD2CP" in ds.inst_model): + phi2 = np.deg2rad(self.mean(ds["roll"].values)) + phi3 = -np.deg2rad(self.mean(ds["pitch"].values)) + if "down" in orientation.lower(): beams = [2, 0, 3, 1] # for down-facing Norteks - elif 'up' in orientation.lower(): + elif "up" in orientation.lower(): beams = [0, 2, 3, 1] # for up-facing Norteks else: raise Exception( - "Please provide instrument orientation ['up' or 'down']") + "Please provide instrument orientation ['up' or 'down']" + ) if beam5: beams.append(4) @@ -477,7 +505,7 @@ def _check_orientation(self, ds, orientation, beam5=False): def _beam_variance(self, ds, time, noise, beam_order, n_beams): """ - Calculates the variance of the along-beam velocities and then subtracts + Calculates the variance of the along-beam velocities and then subtracts noise from the result. Parameters @@ -496,19 +524,20 @@ def _beam_variance(self, ds, time, noise, beam_order, n_beams): Returns ------- bp2_ : xarray.DataArray - Enxemble-averaged along-beam velocity variance, + Enxemble-averaged along-beam velocity variance, written "beam-velocity prime squared bar" in units of m^2/s^2 """ # Concatenate 5th beam velocity if need be if n_beams == 4: - beam_vel = ds['vel'].values + beam_vel = ds["vel"].values elif n_beams == 5: - beam_vel = np.concatenate((ds['vel'].values, - ds['vel_b5'].values[None, ...])) + beam_vel = np.concatenate( + (ds["vel"].values, ds["vel_b5"].values[None, ...]) + ) # Calculate along-beam velocity prime squared bar - bp2_ = np.empty((n_beams, len(ds.range), len(time)))*np.nan + bp2_ = np.empty((n_beams, len(ds.range), len(time))) * np.nan for i, beam in enumerate(beam_order): bp2_[i] = np.nanvar(self.reshape(beam_vel[beam]), axis=-1) @@ -521,7 +550,7 @@ def _beam_variance(self, ds, time, noise, beam_order, n_beams): def reynolds_stress_4beam(self, ds, noise=None, orientation=None, beam_angle=None): """ - Calculate the stresses from the covariance of along-beam + Calculate the stresses from the covariance of along-beam velocity measurements Parameters @@ -547,20 +576,21 @@ def reynolds_stress_4beam(self, ds, noise=None, orientation=None, beam_angle=Non Assumes ADCP instrument coordinate system is aligned with principal flow directions. - Stacey, Mark T., Stephen G. Monismith, and Jon R. Burau. "Measurements - of Reynolds stress profiles in unstratified tidal flow." Journal of + Stacey, Mark T., Stephen G. Monismith, and Jon R. Burau. "Measurements + of Reynolds stress profiles in unstratified tidal flow." Journal of Geophysical Research: Oceans 104.C5 (1999): 10933-10949. """ # Run through warnings b_angle, noise = self._stress_func_warnings( - ds, beam_angle, noise, tilt_thresh=5) + ds, beam_angle, noise, tilt_thresh=5 + ) # Fetch beam order beam_order = self._check_orientation(ds, orientation, beam5=False) # Calculate beam variance and subtract noise - time = self.mean(ds['time'].values) + time = self.mean(ds["time"].values) bp2_ = self._beam_variance(ds, time, noise, beam_order, n_beams=4) # Run stress calculations @@ -569,16 +599,20 @@ def reynolds_stress_4beam(self, ds, noise=None, orientation=None, beam_angle=Non vpwp_ = (bp2_[2] - bp2_[3]) / denm return xr.DataArray( - np.stack([upwp_*np.nan, upwp_, vpwp_]).astype('float32'), - coords={'tau': ["upvp_", "upwp_", "vpwp_"], - 'range': ds.range, - 'time': time}, - attrs={'units': 'm2 s-2', - 'long_name': 'Specific Reynolds Stress Vector'}) - - def stress_tensor_5beam(self, ds, noise=None, orientation=None, beam_angle=None, tke_only=False): + np.stack([upwp_ * np.nan, upwp_, vpwp_]).astype("float32"), + coords={ + "tau": ["upvp_", "upwp_", "vpwp_"], + "range": ds.range, + "time": time, + }, + attrs={"units": "m2 s-2", "long_name": "Specific Reynolds Stress Vector"}, + ) + + def stress_tensor_5beam( + self, ds, noise=None, orientation=None, beam_angle=None, tke_only=False + ): """ - Calculate the stresses from the covariance of along-beam + Calculate the stresses from the covariance of along-beam velocity measurements Parameters @@ -605,7 +639,7 @@ def stress_tensor_5beam(self, ds, noise=None, orientation=None, beam_angle=None, Assumes small-angle approximation is applicable. Assumes ADCP instrument coordinate system is aligned with principal flow - directions, i.e. u', v' and w' are aligned to the instrument's (XYZ) + directions, i.e. u', v' and w' are aligned to the instrument's (XYZ) frame of reference. The stress equations here utilize u'v'_ to account for small variations @@ -618,91 +652,122 @@ def stress_tensor_5beam(self, ds, noise=None, orientation=None, beam_angle=None, energy estimates from various ADCP beam configurations: Theory." J. of Phys. Ocean (2007): 1-35. - Guerra, Maricarmen, and Jim Thomson. "Turbulence measurements from - five-beam acoustic Doppler current profilers." Journal of Atmospheric + Guerra, Maricarmen, and Jim Thomson. "Turbulence measurements from + five-beam acoustic Doppler current profilers." Journal of Atmospheric and Oceanic Technology 34.6 (2017): 1267-1284. """ # Check that beam 5 velocity exists - if 'vel_b5' not in ds.data_vars: + if "vel_b5" not in ds.data_vars: raise Exception("Must have 5th beam data to use this function.") # Run through warnings b_angle, noise = self._stress_func_warnings( - ds, beam_angle, noise, tilt_thresh=10) + ds, beam_angle, noise, tilt_thresh=10 + ) # Fetch beam order - beam_order, phi2, phi3 = self._check_orientation( - ds, orientation, beam5=True) + beam_order, phi2, phi3 = self._check_orientation(ds, orientation, beam5=True) # Calculate beam variance and subtract noise - time = self.mean(ds['time'].values) + time = self.mean(ds["time"].values) bp2_ = self._beam_variance(ds, time, noise, beam_order, n_beams=5) # Run tke and stress calculations th = np.deg2rad(b_angle) sin = np.sin cos = np.cos - denm = -4 * sin(th)**6 * cos(th)**2 - - upup_ = (-2*sin(th)**4*cos(th)**2*(bp2_[1]+bp2_[0]-2*cos(th)**2*bp2_[4]) + - 2*sin(th)**5*cos(th)*phi3*(bp2_[1]-bp2_[0])) / denm - - vpvp_ = (-2*sin(th)**4*cos(th)**2*(bp2_[3]+bp2_[0]-2*cos(th)**2*bp2_[4]) - - 2*sin(th)**4*cos(th)**2*phi3*(bp2_[1]-bp2_[0]) + - 2*sin(th)**3*cos(th)**3*phi3*(bp2_[1]-bp2_[0]) - - 2*sin(th)**5*cos(th)*phi2*(bp2_[3]-bp2_[2])) / denm - - wpwp_ = (-2*sin(th)**5*cos(th) * - (bp2_[1]-bp2_[0] + 2*sin(th)**5*cos(th)*phi2*(bp2_[3]-bp2_[2]) - - 4*sin(th)**6*cos(th)**2*bp2_[4])) / denm + denm = -4 * sin(th) ** 6 * cos(th) ** 2 + + upup_ = ( + -2 + * sin(th) ** 4 + * cos(th) ** 2 + * (bp2_[1] + bp2_[0] - 2 * cos(th) ** 2 * bp2_[4]) + + 2 * sin(th) ** 5 * cos(th) * phi3 * (bp2_[1] - bp2_[0]) + ) / denm + + vpvp_ = ( + -2 + * sin(th) ** 4 + * cos(th) ** 2 + * (bp2_[3] + bp2_[0] - 2 * cos(th) ** 2 * bp2_[4]) + - 2 * sin(th) ** 4 * cos(th) ** 2 * phi3 * (bp2_[1] - bp2_[0]) + + 2 * sin(th) ** 3 * cos(th) ** 3 * phi3 * (bp2_[1] - bp2_[0]) + - 2 * sin(th) ** 5 * cos(th) * phi2 * (bp2_[3] - bp2_[2]) + ) / denm + + wpwp_ = ( + -2 + * sin(th) ** 5 + * cos(th) + * ( + bp2_[1] + - bp2_[0] + + 2 * sin(th) ** 5 * cos(th) * phi2 * (bp2_[3] - bp2_[2]) + - 4 * sin(th) ** 6 * cos(th) ** 2 * bp2_[4] + ) + ) / denm tke_vec = xr.DataArray( - np.stack([upup_, vpvp_, wpwp_]).astype('float32'), - coords={'tke': ["upup_", "vpvp_", "wpwp_"], - 'range': ds.range, - 'time': time}, - attrs={'units': 'm2 s-2', - 'long_name': 'TKE Vector', - 'standard_name': 'specific_turbulent_kinetic_energy_of_sea_water'}) + np.stack([upup_, vpvp_, wpwp_]).astype("float32"), + coords={ + "tke": ["upup_", "vpvp_", "wpwp_"], + "range": ds.range, + "time": time, + }, + attrs={ + "units": "m2 s-2", + "long_name": "TKE Vector", + "standard_name": "specific_turbulent_kinetic_energy_of_sea_water", + }, + ) if tke_only: return tke_vec else: # Guerra Thomson calculate u'v' bar from from the covariance of u' and v' - ds.velds.rotate2('inst') + ds.velds.rotate2("inst") vel = self.detrend(ds.vel.values) - upvp_ = np.nanmean(vel[0] * vel[1], axis=-1, - dtype=np.float64).astype(np.float32) - - upwp_ = (sin(th)**5*cos(th)*(bp2_[1]-bp2_[0]) + - 2*sin(th)**4*cos(th)*2*phi3*(bp2_[1]+bp2_[0]) - - 4*sin(th)**4*cos(th)*2*phi3*bp2_[4] - - 4*sin(th)**6*cos(th)*2*phi2*upvp_) / denm - - vpwp_ = (sin(th)**5*cos(th)*(bp2_[3]-bp2_[2]) - - 2*sin(th)**4*cos(th)*2*phi2*(bp2_[3]+bp2_[2]) + - 4*sin(th)**4*cos(th)*2*phi2*bp2_[4] + - 4*sin(th)**6*cos(th)*2*phi3*upvp_) / denm + upvp_ = np.nanmean(vel[0] * vel[1], axis=-1, dtype=np.float64).astype( + np.float32 + ) + + upwp_ = ( + sin(th) ** 5 * cos(th) * (bp2_[1] - bp2_[0]) + + 2 * sin(th) ** 4 * cos(th) * 2 * phi3 * (bp2_[1] + bp2_[0]) + - 4 * sin(th) ** 4 * cos(th) * 2 * phi3 * bp2_[4] + - 4 * sin(th) ** 6 * cos(th) * 2 * phi2 * upvp_ + ) / denm + + vpwp_ = ( + sin(th) ** 5 * cos(th) * (bp2_[3] - bp2_[2]) + - 2 * sin(th) ** 4 * cos(th) * 2 * phi2 * (bp2_[3] + bp2_[2]) + + 4 * sin(th) ** 4 * cos(th) * 2 * phi2 * bp2_[4] + + 4 * sin(th) ** 6 * cos(th) * 2 * phi3 * upvp_ + ) / denm stress_vec = xr.DataArray( - np.stack([upvp_, upwp_, vpwp_]).astype('float32'), - coords={'tau': ["upvp_", "upwp_", "vpwp_"], - 'range': ds.range, - 'time': time}, - attrs={'units': 'm2 s-2', - 'long_name': 'Specific Reynolds Stress Vector'}) + np.stack([upvp_, upwp_, vpwp_]).astype("float32"), + coords={ + "tau": ["upvp_", "upwp_", "vpwp_"], + "range": ds.range, + "time": time, + }, + attrs={ + "units": "m2 s-2", + "long_name": "Specific Reynolds Stress Vector", + }, + ) return tke_vec, stress_vec - def total_turbulent_kinetic_energy(self, - ds, - noise=None, - orientation=None, - beam_angle=None): + def total_turbulent_kinetic_energy( + self, ds, noise=None, orientation=None, beam_angle=None + ): """ - Calculate magnitude of turbulent kinetic energy from 5-beam ADCP. + Calculate magnitude of turbulent kinetic energy from 5-beam ADCP. Parameters ---------- @@ -726,25 +791,26 @@ def total_turbulent_kinetic_energy(self, combines the TKE components. Warning: the integral length scale of turbulence captured by the - ADCP measurements (i.e. the size of turbulent structures) increases + ADCP measurements (i.e. the size of turbulent structures) increases with increasing range from the instrument. """ tke_vec = self.stress_tensor_5beam( - ds, noise, orientation, beam_angle, tke_only=True) + ds, noise, orientation, beam_angle, tke_only=True + ) - tke = tke_vec.sum('tke') / 2 - tke.attrs['units'] = 'm2 s-2' - tke.attrs['long_name'] = 'TKE Magnitude', - tke.attrs['standard_name'] = 'specific_turbulent_kinetic_energy_of_sea_water' + tke = tke_vec.sum("tke") / 2 + tke.attrs["units"] = "m2 s-2" + tke.attrs["long_name"] = ("TKE Magnitude",) + tke.attrs["standard_name"] = "specific_turbulent_kinetic_energy_of_sea_water" - return tke.astype('float32') + return tke.astype("float32") def check_turbulence_cascade_slope(self, psd, freq_range=[0.2, 0.4]): """ - This function calculates the slope of the PSD, the power spectra + This function calculates the slope of the PSD, the power spectra of velocity, within the given frequency range. The purpose of this - function is to check that the region of the PSD containing the + function is to check that the region of the PSD containing the isotropic turbulence cascade decreases at a rate of :math:`f^{-5/3}`. Parameters @@ -752,13 +818,13 @@ def check_turbulence_cascade_slope(self, psd, freq_range=[0.2, 0.4]): psd : xarray.DataArray ([[range,] time,] freq) The power spectral density (1D, 2D or 3D) freq_range : iterable(2) (default: [6.28, 12.57]) - The range over which the isotropic turbulence cascade occurs, in + The range over which the isotropic turbulence cascade occurs, in units of the psd frequency vector (Hz or rad/s) Returns ------- (m, b): tuple (slope, y-intercept) - A tuple containing the coefficients of the log-adjusted linear + A tuple containing the coefficients of the log-adjusted linear regression between PSD and frequency Notes @@ -767,9 +833,9 @@ def check_turbulence_cascade_slope(self, psd, freq_range=[0.2, 0.4]): .. math:: S(k) = \\alpha \\epsilon^{2/3} k^{-5/3} + N - The slope of the isotropic turbulence cascade, which should be - equal to :math:`k^{-5/3}` or :math:`f^{-5/3}`, where k and f are - the wavenumber and frequency vectors, is estimated using linear + The slope of the isotropic turbulence cascade, which should be + equal to :math:`k^{-5/3}` or :math:`f^{-5/3}`, where k and f are + the wavenumber and frequency vectors, is estimated using linear regression with a log transformation: .. math:: log10(y) = m*log10(x) + b @@ -778,35 +844,35 @@ def check_turbulence_cascade_slope(self, psd, freq_range=[0.2, 0.4]): .. math:: y = 10^{b} x^{m} - Where :math:`y` is S(k) or S(f), :math:`x` is k or f, :math:`m` - is the slope (ideally -5/3), and :math:`10^{b}` is the intercept of + Where :math:`y` is S(k) or S(f), :math:`x` is k or f, :math:`m` + is the slope (ideally -5/3), and :math:`10^{b}` is the intercept of y at x^m=1. """ if not isinstance(psd, xr.DataArray): raise TypeError("`psd` must be an instance of `xarray.DataArray`.") - if not hasattr(freq_range, '__iter__') or len(freq_range) != 2: + if not hasattr(freq_range, "__iter__") or len(freq_range) != 2: raise ValueError("`freq_range` must be an iterable of length 2.") - + idx = np.where((freq_range[0] < psd.freq) & (psd.freq < freq_range[1])) idx = idx[0] - x = np.log10(psd['freq'].isel(freq=idx)) + x = np.log10(psd["freq"].isel(freq=idx)) y = np.log10(psd.isel(freq=idx)) - y_bar = y.mean('freq') - x_bar = x.mean('freq') + y_bar = y.mean("freq") + x_bar = x.mean("freq") # using the formula to calculate the slope and intercept n = np.sum((x - x_bar) * (y - y_bar), axis=0) - d = np.sum((x - x_bar)**2, axis=0) + d = np.sum((x - x_bar) ** 2, axis=0) - m = n/d - b = y_bar - m*x_bar + m = n / d + b = y_bar - m * x_bar return m, b - def dissipation_rate_LT83(self, psd, U_mag, freq_range=[0.2, 0.4]): + def dissipation_rate_LT83(self, psd, U_mag, freq_range=[0.2, 0.4], noise=None): """ Calculate the TKE dissipation rate from the velocity spectra. @@ -817,8 +883,12 @@ def dissipation_rate_LT83(self, psd, U_mag, freq_range=[0.2, 0.4]): U_mag : xarray.DataArray (time) The bin-averaged horizontal velocity (a.k.a. speed) from a single depth bin (range) f_range : iterable(2) - The range over which to integrate/average the spectrum, in units + The range over which to integrate/average the spectrum, in units of the psd frequency vector (Hz or rad/s) + noise : float or array-like + Instrument noise level in same units as velocity. Typically + found from `adp.turbulence.doppler_noise_level`. + Default: None. Returns ------- @@ -850,33 +920,47 @@ def dissipation_rate_LT83(self, psd, U_mag, freq_range=[0.2, 0.4]): """ if len(psd.shape) != 2: - raise Exception('PSD should be 2-dimensional (time, frequency)') + raise Exception("PSD should be 2-dimensional (time, frequency)") if len(U_mag.shape) != 1: - raise Exception('U_mag should be 1-dimensional (time)') - if not hasattr(freq_range, '__iter__') or len(freq_range) != 2: + raise Exception("U_mag should be 1-dimensional (time)") + if not hasattr(freq_range, "__iter__") or len(freq_range) != 2: raise ValueError("`freq_range` must be an iterable of length 2.") - + if noise is not None: + if np.shape(noise)[0] != np.shape(psd)[0]: + raise Exception("Noise should have same first dimension as PSD") + else: + noise = np.array(0) + + # Noise subtraction from binner.TimeBinner._psd_base + psd = psd.copy() + if noise is not None: + psd -= noise**2 / (self.fs / 2) + psd = psd.where(psd > 0, np.min(np.abs(psd)) / 100) + freq = psd.freq idx = np.where((freq_range[0] < freq) & (freq < freq_range[1])) idx = idx[0] - if freq.units == 'Hz': - U = U_mag/(2*np.pi) + if freq.units == "Hz": + U = U_mag / (2 * np.pi) else: U = U_mag a = 0.5 - out = (psd[:, idx] * freq[idx]**(5/3) / - a).mean(axis=-1)**(3/2) / U.values + out = (psd[:, idx] * freq[idx] ** (5 / 3) / a).mean(axis=-1) ** ( + 3 / 2 + ) / U.values return xr.DataArray( - out.astype('float32'), - attrs={'units': 'm2 s-3', - 'long_name': 'TKE Dissipation Rate', - 'standard_name': 'specific_turbulent_kinetic_energy_dissipation_in_sea_water', - 'description': 'TKE dissipation rate calculated using ' - 'the method from Lumley and Terray, 1983', - }) + out.astype("float32"), + attrs={ + "units": "m2 s-3", + "long_name": "TKE Dissipation Rate", + "standard_name": "specific_turbulent_kinetic_energy_dissipation_in_sea_water", + "description": "TKE dissipation rate calculated using " + "the method from Lumley and Terray, 1983", + }, + ) def dissipation_rate_SF(self, vel_raw, r_range=[1, 5]): """ @@ -904,18 +988,18 @@ def dissipation_rate_SF(self, vel_raw, r_range=[1, 5]): Notes ----- - Dissipation rate outputted by this function is only valid if the isotropic - turbulence cascade can be seen in the TKE spectra. + Dissipation rate outputted by this function is only valid if the isotropic + turbulence cascade can be seen in the TKE spectra. - Velocity data must be in beam coordinates and should be cleaned of surface + Velocity data must be in beam coordinates and should be cleaned of surface interference. This method calculates the 2nd order structure function: .. math:: D(z,r) = [(u'(z) - u`(z+r))^2] - where `u'` is the velocity fluctuation `z` is the depth bin, - `r` is the separation between depth bins, and [] denotes a time average + where `u'` is the velocity fluctuation `z` is the depth bin, + `r` is the separation between depth bins, and [] denotes a time average (size 'ADPBinner.n_bin'). The stucture function can then be used to estimate the dissipation rate: @@ -934,14 +1018,15 @@ def dissipation_rate_SF(self, vel_raw, r_range=[1, 5]): if not isinstance(vel_raw, xr.DataArray): raise TypeError("`vel_raw` must be an instance of `xarray.DataArray`.") - if not hasattr(r_range, '__iter__') or len(r_range) != 2: + if not hasattr(r_range, "__iter__") or len(r_range) != 2: raise ValueError("`r_range` must be an iterable of length 2.") if len(vel_raw.shape) != 2: raise Exception( - "Function input must be single beam and in 'beam' coordinate system") + "Function input must be single beam and in 'beam' coordinate system" + ) - if 'range_b5' in vel_raw.dims: + if "range_b5" in vel_raw.dims: rng = vel_raw.range_b5 time = self.mean(vel_raw.time_b5.values) else: @@ -951,28 +1036,27 @@ def dissipation_rate_SF(self, vel_raw, r_range=[1, 5]): # bm shape is [range, ensemble time, 'data within ensemble'] bm = self.demean(vel_raw.values) # take out the ensemble mean - e = np.empty(bm.shape[:2], dtype='float32')*np.nan - n = np.empty(bm.shape[:2], dtype='float32')*np.nan + e = np.empty(bm.shape[:2], dtype="float32") * np.nan + n = np.empty(bm.shape[:2], dtype="float32") * np.nan bin_size = round(np.diff(rng)[0], 3) - R = int(r_range[0]/bin_size) - r = np.arange(bin_size, r_range[1]+bin_size, bin_size) + R = int(r_range[0] / bin_size) + r = np.arange(bin_size, r_range[1] + bin_size, bin_size) # D(z,r,time) D = np.zeros((bm.shape[0], r.size, bm.shape[1])) for r_value in r: # the i in d is the index based on r and bin size # bin size index, > 1 - i = int(r_value/bin_size) + i = int(r_value / bin_size) for idx in range(bm.shape[1]): # for each ensemble # subtract the variance of adjacent depth cells - d = np.nanmean( - (bm[:-i, idx, :] - bm[i:, idx, :]) ** 2, axis=-1) + d = np.nanmean((bm[:-i, idx, :] - bm[i:, idx, :]) ** 2, axis=-1) # have to insert 0/nan in first bin to match length spaces = np.empty((i,)) spaces[:] = np.NaN - D[:, i-1, idx] = np.concatenate((spaces, d)) + D[:, i - 1, idx] = np.concatenate((spaces, d)) # find best fit line y = mx + b (aka D(z,r) = A*r^2/3 + N) to solve # epsilon for each depth and ensemble @@ -981,50 +1065,52 @@ def dissipation_rate_SF(self, vel_raw, r_range=[1, 5]): for i in range(D.shape[1], D.shape[0]): # average ensembles together if not all(np.isnan(D[i, R:, idx])): # if no nan's - e[i, idx], n[i, idx] = np.polyfit(r[R:] ** 2/3, - D[i, R:, idx], - deg=1) + e[i, idx], n[i, idx] = np.polyfit( + r[R:] ** 2 / 3, D[i, R:, idx], deg=1 + ) else: e[i, idx], n[i, idx] = np.nan, np.nan # A taken as 2.1, n = y-intercept - epsilon = (e/2.1)**(3/2) - noise = np.sqrt(n/2) + epsilon = (e / 2.1) ** (3 / 2) + noise = np.sqrt(n / 2) epsilon = xr.DataArray( - epsilon.astype('float32'), - coords={vel_raw.dims[0]: rng, - vel_raw.dims[1]: time}, + epsilon.astype("float32"), + coords={vel_raw.dims[0]: rng, vel_raw.dims[1]: time}, dims=vel_raw.dims, - attrs={'units': 'm2 s-3', - 'long_name': 'TKE Dissipation Rate', - 'standard_name': 'specific_turbulent_kinetic_energy_dissipation_in_sea_water', - 'description': 'TKE dissipation rate calculated from the ' - '"structure function" method from Wiles et al, 2006.' - }) + attrs={ + "units": "m2 s-3", + "long_name": "TKE Dissipation Rate", + "standard_name": "specific_turbulent_kinetic_energy_dissipation_in_sea_water", + "description": "TKE dissipation rate calculated from the " + '"structure function" method from Wiles et al, 2006.', + }, + ) noise = xr.DataArray( - noise.astype('float32'), - coords={vel_raw.dims[0]: rng, - vel_raw.dims[1]: time}, - attrs={'units': 'm s-1', - 'long_name': 'Structure Function Noise Offset', - }) + noise.astype("float32"), + coords={vel_raw.dims[0]: rng, vel_raw.dims[1]: time}, + attrs={ + "units": "m s-1", + "long_name": "Structure Function Noise Offset", + }, + ) SF = xr.DataArray( - D.astype('float32'), - coords={vel_raw.dims[0]: rng, - 'range_SF': r, - vel_raw.dims[1]: time}, - attrs={'units': 'm2 s-2', - 'long_name': 'Structure Function D(z,r)', - 'description': '"Structure function" from Wiles et al, 2006.' - }) + D.astype("float32"), + coords={vel_raw.dims[0]: rng, "range_SF": r, vel_raw.dims[1]: time}, + attrs={ + "units": "m2 s-2", + "long_name": "Structure Function D(z,r)", + "description": '"Structure function" from Wiles et al, 2006.', + }, + ) return epsilon, noise, SF def friction_velocity(self, ds_avg, upwp_, z_inds=slice(1, 5), H=None): """ - Approximate friction velocity from shear stress using a + Approximate friction velocity from shear stress using a logarithmic profile. Parameters @@ -1051,18 +1137,20 @@ def friction_velocity(self, ds_avg, upwp_, z_inds=slice(1, 5), H=None): raise TypeError("`upwp_` must be an instance of `xarray.DataArray`.") if not isinstance(z_inds, slice): raise TypeError("`z_inds` must be an instance of `slice(int,int)`.") - + if not H: H = ds_avg.depth.values - z = ds_avg['range'].values + z = ds_avg["range"].values upwp_ = upwp_.values sign = np.nanmean(np.sign(upwp_[z_inds, :]), axis=0) - u_star = np.nanmean(sign * upwp_[z_inds, :] / - (1 - z[z_inds, None] / H), axis=0) ** 0.5 + u_star = ( + np.nanmean(sign * upwp_[z_inds, :] / (1 - z[z_inds, None] / H), axis=0) + ** 0.5 + ) return xr.DataArray( - u_star.astype('float32'), - coords={'time': ds_avg.time}, - attrs={'units': 'm s-1', - 'long_name': 'Friction Velocity'}) + u_star.astype("float32"), + coords={"time": ds_avg.time}, + attrs={"units": "m s-1", "long_name": "Friction Velocity"}, + ) diff --git a/mhkit/dolfyn/adv/__init__.py b/mhkit/dolfyn/adv/__init__.py index 9468875d3..4dc7607ef 100644 --- a/mhkit/dolfyn/adv/__init__.py +++ b/mhkit/dolfyn/adv/__init__.py @@ -1 +1 @@ -from . import api \ No newline at end of file +from . import api diff --git a/mhkit/dolfyn/adv/clean.py b/mhkit/dolfyn/adv/clean.py index e33c95043..7bf95d46a 100644 --- a/mhkit/dolfyn/adv/clean.py +++ b/mhkit/dolfyn/adv/clean.py @@ -1,16 +1,18 @@ """Module containing functions to clean data """ + import numpy as np import warnings from ..velocity import VelBinner from ..tools.misc import group, slice1d_along_axis -warnings.filterwarnings('ignore', category=np.RankWarning) + +warnings.filterwarnings("ignore", category=np.RankWarning) sin = np.sin cos = np.cos -def clean_fill(u, mask, npt=12, method='cubic', maxgap=6): +def clean_fill(u, mask, npt=12, method="cubic", maxgap=6): """ Interpolate over mask values in timeseries data using the specified method @@ -22,7 +24,7 @@ def clean_fill(u, mask, npt=12, method='cubic', maxgap=6): Logical tensor of elements to "nan" out (from `spikeThresh`, `rangeLimit`, or `GN2002`) and replace npt : int - The number of points on either side of the bad values that + The number of points on either side of the bad values that interpolation occurs over method : string Interpolation method to use (linear, cubic, pchip, etc). Default is 'cubic' @@ -43,7 +45,7 @@ def clean_fill(u, mask, npt=12, method='cubic', maxgap=6): u.values[..., mask] = np.nan # Remove bad data for 2D+ and 1D timeseries variables - if 'dir' in u.dims: + if "dir" in u.dims: for i in range(u.shape[0]): u[i] = _interp_nan(u[i], npt, method, maxgap) else: @@ -101,13 +103,12 @@ def _interp_nan(da, npt, method, maxgap): ntail += 1 pos += 1 - if (ntail == npt or pos == len(da)): + if ntail == npt or pos == len(da): # This is the block we are interpolating over i_int = i[start:pos] - da[i_int] = da[i_int].interpolate_na(dim=da.dims[-1], - method=method, - use_coordinate=True, - limit=maxgap) + da[i_int] = da[i_int].interpolate_na( + dim=da.dims[-1], method=method, use_coordinate=True, limit=maxgap + ) # Reset searching = True ntail = 0 @@ -141,7 +142,7 @@ def fill_nan_ensemble_mean(u, mask, fs, window): """ u = u.where(~mask) - bnr = VelBinner(n_bin=window*fs, fs=fs) + bnr = VelBinner(n_bin=window * fs, fs=fs) if len(u.shape) == 1: var = u.values[None, :] @@ -158,12 +159,11 @@ def fill_nan_ensemble_mean(u, mask, fs, window): # diff = number of extra points extra_nans = vel_reshaped.shape[-1] - diff if diff: - vel = np.empty((var.shape[0], var.shape[-1]+extra_nans)) + vel = np.empty((var.shape[0], var.shape[-1] + extra_nans)) extra = var[:, -diff:] - empty = np.empty((vel.shape[0], extra_nans))*np.nan + empty = np.empty((vel.shape[0], extra_nans)) * np.nan extra = np.concatenate((extra, empty), axis=-1) - vel_reshaped = np.concatenate( - (vel_reshaped, extra[:, None, :]), axis=1) + vel_reshaped = np.concatenate((vel_reshaped, extra[:, None, :]), axis=1) extra_mean = np.nanmean(extra, axis=-1) vel_mean = np.concatenate((vel_mean, extra_mean[:, None]), axis=-1) @@ -172,11 +172,12 @@ def fill_nan_ensemble_mean(u, mask, fs, window): vel_mean_matrix = np.tile(vel_mean[..., None], (1, 1, bnr.n_bin)) vel_missing = np.isnan(vel_reshaped) vel_mask = np.ma.masked_array(vel_mean_matrix, ~vel_missing).filled(np.nan) - vel_filled = np.where(np.isnan(vel_reshaped), vel_mask, - vel_reshaped + np.nan_to_num(vel_mask)) + vel_filled = np.where( + np.isnan(vel_reshaped), vel_mask, vel_reshaped + np.nan_to_num(vel_mask) + ) # "Unshape" the data for i in range(var.shape[0]): - vel[i] = np.ravel(vel_filled[i], 'C') + vel[i] = np.ravel(vel_filled[i], "C") if diff: # Trim off the extra means u.values = np.squeeze(vel[:, :-extra_nans]) @@ -212,7 +213,7 @@ def spike_thresh(u, thresh=10): def range_limit(u, range=[-5, 5]): """ - Returns a logical vector that is True where the values of `u` are + Returns a logical vector that is True where the values of `u` are outside of `range`. Parameters @@ -232,12 +233,13 @@ def range_limit(u, range=[-5, 5]): def _calcab(al, Lu_std_u, Lu_std_d2u): - """Solve equations 10 and 11 of Goring+Nikora2002 - """ - return tuple(np.linalg.solve( - np.array([[cos(al) ** 2, sin(al) ** 2], - [sin(al) ** 2, cos(al) ** 2]]), - np.array([(Lu_std_u) ** 2, (Lu_std_d2u) ** 2]))) + """Solve equations 10 and 11 of Goring+Nikora2002""" + return tuple( + np.linalg.solve( + np.array([[cos(al) ** 2, sin(al) ** 2], [sin(al) ** 2, cos(al) ** 2]]), + np.array([(Lu_std_u) ** 2, (Lu_std_d2u) ** 2]), + ) + ) def _phaseSpaceThresh(u): @@ -252,27 +254,28 @@ def _phaseSpaceThresh(u): du[1:-1] = (u[2:] - u[:-2]) / 2 # And again. d2u[2:-2] = (du[1:-1][2:] - du[1:-1][:-2]) / 2 - p = (u ** 2 + du ** 2 + d2u ** 2) + p = u**2 + du**2 + d2u**2 std_u = np.std(u, axis=0) std_du = np.std(du, axis=0) std_d2u = np.std(d2u, axis=0) - alpha = np.arctan2(np.sum(u * d2u, axis=0), np.sum(u ** 2, axis=0)) + alpha = np.arctan2(np.sum(u * d2u, axis=0), np.sum(u**2, axis=0)) a = np.empty_like(alpha) b = np.empty_like(alpha) with warnings.catch_warnings() as w: warnings.filterwarnings( - 'ignore', category=RuntimeWarning, message='invalid value encountered in ') + "ignore", category=RuntimeWarning, message="invalid value encountered in " + ) for idx, al in enumerate(alpha): a[idx], b[idx] = _calcab(al, Lu * std_u[idx], Lu * std_d2u[idx]) theta = np.arctan2(du, u) - phi = np.arctan2((du ** 2 + u ** 2) ** 0.5, d2u) - pe = (((sin(phi) * cos(theta) * cos(alpha) + - cos(phi) * sin(alpha)) ** 2) / a + - ((sin(phi) * cos(theta) * sin(alpha) - - cos(phi) * cos(alpha)) ** 2) / b + - ((sin(phi) * sin(theta)) ** 2) / (Lu * std_du) ** 2) ** -1 + phi = np.arctan2((du**2 + u**2) ** 0.5, d2u) + pe = ( + ((sin(phi) * cos(theta) * cos(alpha) + cos(phi) * sin(alpha)) ** 2) / a + + ((sin(phi) * cos(theta) * sin(alpha) - cos(phi) * cos(alpha)) ** 2) / b + + ((sin(phi) * sin(theta)) ** 2) / (Lu * std_du) ** 2 + ) ** -1 pe[:, np.isnan(pe[0, :])] = 0 - return (p > pe).flatten('F') + return (p > pe).flatten("F") def GN2002(u, npt=5000): @@ -297,16 +300,16 @@ def GN2002(u, npt=5000): return GN2002(u.values, npt=npt) if u.ndim > 1: - mask = np.zeros(u.shape, dtype='bool') + mask = np.zeros(u.shape, dtype="bool") for slc in slice1d_along_axis(u.shape, -1): mask[slc] = GN2002(u[slc], npt=npt) return mask - mask = np.zeros(len(u), dtype='bool') + mask = np.zeros(len(u), dtype="bool") # Find large bad segments (>npt/10): # group returns a vector of slice objects. - bad_segs = group(np.isnan(u), min_length=int(npt//10)) + bad_segs = group(np.isnan(u), min_length=int(npt // 10)) if bad_segs.size > 2: # Break them up into separate regions: sp = 0 @@ -323,7 +326,7 @@ def GN2002(u, npt=5000): for ind in range(len(bad_segs)): bs = bad_segs[ind] # bs is a slice object. # Clean the good region: - mask[sp:bs.start] = GN2002(u[sp:bs.start], npt=npt) + mask[sp : bs.start] = GN2002(u[sp : bs.start], npt=npt) sp = bs.stop # Clean the last good region. mask[sp:ep] = GN2002(u[sp:ep], npt=npt) @@ -335,12 +338,13 @@ def GN2002(u, npt=5000): mask_last = np.zeros_like(mask) + np.inf mask[0] = True # make sure we start. while mask.any(): - mask[:nbins * npt] = _phaseSpaceThresh( - np.array(np.reshape(u[:(nbins * npt)], (npt, nbins), order='F'))) + mask[: nbins * npt] = _phaseSpaceThresh( + np.array(np.reshape(u[: (nbins * npt)], (npt, nbins), order="F")) + ) mask[-npt:] = _phaseSpaceThresh(u[-npt:]) c += 1 if c >= 100: - raise Exception('GN2002 loop-limit exceeded.') + raise Exception("GN2002 loop-limit exceeded.") if mask.sum() >= mask_last.sum(): break mask_last = mask.copy() diff --git a/mhkit/dolfyn/adv/motion.py b/mhkit/dolfyn/adv/motion.py index 43ac8c3d4..7db6f2797 100644 --- a/mhkit/dolfyn/adv/motion.py +++ b/mhkit/dolfyn/adv/motion.py @@ -11,21 +11,24 @@ class MissingDataError(ValueError): pass + class DataAlreadyProcessedError(Exception): pass + class MissingRequiredDataError(Exception): pass + def _get_body2imu(make_model): - if make_model == 'nortek vector': + if make_model == "nortek vector": # In inches it is: (0.25, 0.25, 5.9) return np.array([0.00635, 0.00635, 0.14986]) else: raise Exception("The imu->body vector is unknown for this instrument.") -class CalcMotion(): +class CalcMotion: """ A 'calculator' for computing the velocity of points that are rigidly connected to an ADV-body with an IMU. @@ -44,22 +47,17 @@ class CalcMotion(): _default_accel_filtfreq = 0.03 - def __init__(self, ds, - accel_filtfreq=None, - vel_filtfreq=None, - to_earth=True): - + def __init__(self, ds, accel_filtfreq=None, vel_filtfreq=None, to_earth=True): self.ds = ds - self._check_filtfreqs(accel_filtfreq, - vel_filtfreq) + self._check_filtfreqs(accel_filtfreq, vel_filtfreq) self.to_earth = to_earth self._set_accel() self._set_acclow() - self.angrt = ds['angrt'].values # No copy because not modified. + self.angrt = ds["angrt"].values # No copy because not modified. def _check_filtfreqs(self, accel_filtfreq, vel_filtfreq): - datval = self.ds.attrs.get('motion accel_filtfreq Hz', None) + datval = self.ds.attrs.get("motion accel_filtfreq Hz", None) if datval is None: if accel_filtfreq is None: accel_filtfreq = self._default_accel_filtfreq @@ -72,48 +70,58 @@ def _check_filtfreqs(self, accel_filtfreq, vel_filtfreq): warnings.warn( f"The default accel_filtfreq is {datval} Hz. " "Overriding this with the user-specified " - "value: {accel_filtfreq} Hz.") + "value: {accel_filtfreq} Hz." + ) if vel_filtfreq is None: - vel_filtfreq = self.ds.attrs.get('motion vel_filtfreq Hz', None) + vel_filtfreq = self.ds.attrs.get("motion vel_filtfreq Hz", None) if vel_filtfreq is None: vel_filtfreq = accel_filtfreq / 3.0 self.accel_filtfreq = accel_filtfreq self.accelvel_filtfreq = vel_filtfreq - def _set_accel(self, ): + def _set_accel( + self, + ): ds = self.ds - if ds.coord_sys == 'inst': - self.accel = np.einsum('ij...,i...->j...', - ds['orientmat'].values, - ds['accel'].values) - elif self.ds.coord_sys == 'earth': - self.accel = ds['accel'].values.copy() + if ds.coord_sys == "inst": + self.accel = np.einsum( + "ij...,i...->j...", ds["orientmat"].values, ds["accel"].values + ) + elif self.ds.coord_sys == "earth": + self.accel = ds["accel"].values.copy() else: - raise Exception(("Invalid coordinate system '%s'. The coordinate " - "system must either be 'earth' or 'inst' to " - "perform motion correction.") - % (self.ds.coord_sys)) - - def _check_duty_cycle(self, ): + raise Exception( + ( + "Invalid coordinate system '%s'. The coordinate " + "system must either be 'earth' or 'inst' to " + "perform motion correction." + ) + % (self.ds.coord_sys) + ) + + def _check_duty_cycle( + self, + ): """ Function to check if duty cycle exists and if it is followed consistently in the datafile """ - n_burst = self.ds.attrs.get('duty_cycle_n_burst') + n_burst = self.ds.attrs.get("duty_cycle_n_burst") if not n_burst: return # duty cycle interval in seconds - interval = self.ds.attrs.get('duty_cycle_interval') + interval = self.ds.attrs.get("duty_cycle_interval") actual_interval = ( - self.ds.time[n_burst:].values - self.ds.time[:-n_burst].values)/1e9 + self.ds.time[n_burst:].values - self.ds.time[:-n_burst].values + ) / 1e9 rng = actual_interval.max() - actual_interval.min() mean = actual_interval.mean() # Range will vary depending on how datetime64 rounds the timestamp # But isn't an issue if it does - if rng > 2 or (mean > interval+1 and mean < interval-1): + if rng > 2 or (mean > interval + 1 and mean < interval - 1): raise Exception("Bad duty cycle detected") # If this passes, it means we're safe to blindly skip n_burst for every integral @@ -121,17 +129,21 @@ def _check_duty_cycle(self, ): def reshape(self, dat, n_bin): # Assumes shape is (3, time) - length = dat.shape[-1]//n_bin - return np.reshape(dat[..., :length*n_bin], (dat.shape[0], length, n_bin)) + length = dat.shape[-1] // n_bin + return np.reshape(dat[..., : length * n_bin], (dat.shape[0], length, n_bin)) - def _set_acclow(self, ): + def _set_acclow( + self, + ): # Check if file is duty cycled n = self._check_duty_cycle() if n: - warnings.warn(" Duty Cycle detected. " - "Motion corrected data may contain edge effects " - "at the beginning and end of each duty cycle.") + warnings.warn( + " Duty Cycle detected. " + "Motion corrected data may contain edge effects " + "at the beginning and end of each duty cycle." + ) self.accel = self.reshape(self.accel, n_bin=n) self.acclow = acc = self.accel.copy() @@ -146,10 +158,13 @@ def _set_acclow(self, ): if np.isnan(acc).any(): warnings.warn( "Error filtering acceleration data. " - "Please decrease `accel_filtfreq`.") + "Please decrease `accel_filtfreq`." + ) acc = np.nan_to_num(acc) - def calc_velacc(self, ): + def calc_velacc( + self, + ): """ Calculates the translational velocity from the high-pass filtered acceleration signal. @@ -170,8 +185,13 @@ def calc_velacc(self, ): hp = self.accel - self.acclow # Integrate in time to get velocities - dat = np.concatenate((np.zeros(list(hp.shape[:-1]) + [1]), - cumtrapz(hp, dx=1 / samp_freq, axis=-1)), axis=-1) + dat = np.concatenate( + ( + np.zeros(list(hp.shape[:-1]) + [1]), + cumtrapz(hp, dx=1 / samp_freq, axis=-1), + ), + axis=-1, + ) if self.accelvel_filtfreq > 0: filt_freq = self.accelvel_filtfreq @@ -179,14 +199,15 @@ def calc_velacc(self, ): # Applied twice by 'filtfilt' = 4th order butterworth filt = ss.butter(2, float(filt_freq) / (samp_freq / 2)) for idx in range(hp.shape[0]): - dat[idx] = dat[idx] - \ - ss.filtfilt(filt[0], filt[1], dat[idx], axis=-1) + dat[idx] = dat[idx] - ss.filtfilt(filt[0], filt[1], dat[idx], axis=-1) # Fill nan with zeros - happens for some filter frequencies if np.isnan(dat).any(): - warnings.warn("Error filtering acceleration data. " - "Please decrease `vel_filtfreq`. " - "(default is 1/3 `accel_filtfreq`)") + warnings.warn( + "Error filtering acceleration data. " + "Please decrease `vel_filtfreq`. " + "(default is 1/3 `accel_filtfreq`)" + ) dat = np.nan_to_num(dat) if n: @@ -195,9 +216,9 @@ def calc_velacc(self, ): acclow_shaped = np.empty(self.angrt.shape) accel_shaped = np.empty(self.angrt.shape) for idx in range(hp.shape[0]): - velacc_shaped[idx] = np.ravel(dat[idx], 'C') - acclow_shaped[idx] = np.ravel(self.acclow[idx], 'C') - accel_shaped[idx] = np.ravel(self.accel[idx], 'C') + velacc_shaped[idx] = np.ravel(dat[idx], "C") + acclow_shaped[idx] = np.ravel(self.acclow[idx], "C") + accel_shaped[idx] = np.ravel(self.accel[idx], "C") # return acclow and velacc self.acclow = acclow_shaped @@ -209,7 +230,7 @@ def calc_velacc(self, ): def calc_velrot(self, vec, to_earth=None): """ - Calculate the induced velocity due to rotations of the + Calculate the induced velocity due to rotations of the instrument about the IMU center. Parameters @@ -245,17 +266,16 @@ def calc_velrot(self, vec, to_earth=None): # cross-product of omega (rotation vector) and the vector. # u=dz*omegaY-dy*omegaZ,v=dx*omegaZ-dz*omegaX,w=dy*omegaX-dx*omegaY # where vec=[dx,dy,dz], and angrt=[omegaX,omegaY,omegaZ] - velrot = np.array([(vec[2][:, None] * self.angrt[1] - - vec[1][:, None] * self.angrt[2]), - (vec[0][:, None] * self.angrt[2] - - vec[2][:, None] * self.angrt[0]), - (vec[1][:, None] * self.angrt[0] - - vec[0][:, None] * self.angrt[1]), - ]) + velrot = np.array( + [ + (vec[2][:, None] * self.angrt[1] - vec[1][:, None] * self.angrt[2]), + (vec[0][:, None] * self.angrt[2] - vec[2][:, None] * self.angrt[0]), + (vec[1][:, None] * self.angrt[0] - vec[0][:, None] * self.angrt[1]), + ] + ) if to_earth: - velrot = np.einsum('ji...,j...->i...', - self.ds['orientmat'].values, velrot) + velrot = np.einsum("ji...,j...->i...", self.ds["orientmat"].values, velrot) if dimflag: return velrot[:, 0, :] @@ -271,16 +291,16 @@ def _calc_probe_pos(ds, separate_probes=False): ----------- ds : xarray.Dataset ADV dataset - separate_probes : bool - If a Nortek Vector ADV, this function returns the - transformation matrix of positions of the probe's + separate_probes : bool + If a Nortek Vector ADV, this function returns the + transformation matrix of positions of the probe's acoustic recievers to the ADV's instrument frame of reference. Optional, default = False Returns ------- vec : 3x3 numpy.ndarray - Transformation matrix to convert from ADV probe to + Transformation matrix to convert from ADV probe to instrument frame of reference """ @@ -294,26 +314,28 @@ def _calc_probe_pos(ds, separate_probes=False): # In the coordinate system of the center of the probe (origin at # the acoustic transmitter) then, the positions of the centers of # the receivers is: - if separate_probes and _make_model(ds) == 'nortek vector': + if separate_probes and _make_model(ds) == "nortek vector": r = 0.076 # The angle between the x-y plane and the probes phi = np.deg2rad(-30) # The angles of the probes from the x-axis: - theta = np.deg2rad(np.array([0., 120., 240.])) - return (np.dot(ds['inst2head_rotmat'].values.T, - np.array([r * np.cos(theta), - r * np.sin(theta), - r * np.tan(phi) * np.ones(3)])) + - vec[:, None]) + theta = np.deg2rad(np.array([0.0, 120.0, 240.0])) + return ( + np.dot( + ds["inst2head_rotmat"].values.T, + np.array( + [r * np.cos(theta), r * np.sin(theta), r * np.tan(phi) * np.ones(3)] + ), + ) + + vec[:, None] + ) else: return vec -def correct_motion(ds, - accel_filtfreq=None, - vel_filtfreq=None, - to_earth=True, - separate_probes=False): +def correct_motion( + ds, accel_filtfreq=None, vel_filtfreq=None, to_earth=True, separate_probes=False +): """ This function performs motion correction on an IMU-ADV data object. The IMU and ADV data should be tightly synchronized and @@ -332,7 +354,7 @@ def correct_motion(ds, a second frequency to high-pass filter the integrated acceleration. Optional, default = 1/3 of `accel_filtfreq` - to_earth : bool + to_earth : bool All variables in the ds.props['rotate_vars'] list will be rotated into either the earth frame (to_earth=True) or the instrument frame (to_earth=False). Optional, default = True @@ -357,7 +379,7 @@ def correct_motion(ds, ``velacc`` is the translational component of the head motion (from accel, the high-pass filtered accel sigal) - ``acclow`` is the low-pass filtered accel sigal (i.e., + ``acclow`` is the low-pass filtered accel sigal (i.e., The primary velocity vector attribute, ``vel``, is motion corrected such that: @@ -408,44 +430,44 @@ def correct_motion(ds, ds = ds.copy(deep=True) # Check that no nan's exist - if ds['accel'].isnull().sum(): + if ds["accel"].isnull().sum(): raise MissingDataError("There should be no missing data in `accel` variable") - if ds['angrt'].isnull().sum(): + if ds["angrt"].isnull().sum(): raise MissingDataError("There should be no missing data in `angrt` variable") - if hasattr(ds, 'velrot') or ds.attrs.get('motion corrected', False): - raise DataAlreadyProcessedError('The data appears to already have been ' - 'motion corrected.') + if hasattr(ds, "velrot") or ds.attrs.get("motion corrected", False): + raise DataAlreadyProcessedError( + "The data appears to already have been " "motion corrected." + ) - if not hasattr(ds, 'has_imu') or ('accel' not in ds): - raise MissingRequiredDataError('The instrument does not appear to have an IMU.') + if not hasattr(ds, "has_imu") or ("accel" not in ds): + raise MissingRequiredDataError("The instrument does not appear to have an IMU.") - if ds.coord_sys != 'inst': - rotate2(ds, 'inst', inplace=True) + if ds.coord_sys != "inst": + rotate2(ds, "inst", inplace=True) # Returns True/False if head2inst_rotmat has been set/not-set. # Bad configs raises errors (this is to check for those) rot._check_inst2head_rotmat(ds) # Create the motion 'calculator': - calcobj = CalcMotion(ds, - accel_filtfreq=accel_filtfreq, - vel_filtfreq=vel_filtfreq, - to_earth=to_earth) + calcobj = CalcMotion( + ds, accel_filtfreq=accel_filtfreq, vel_filtfreq=vel_filtfreq, to_earth=to_earth + ) ########## # Calculate the translational velocity (from the accel): - ds['velacc'] = xr.DataArray(calcobj.calc_velacc(), - dims=['dirIMU', 'time'], - attrs={'units': 'm s-1', - 'long_name': 'Velocity from IMU Accelerometer'} - ).astype('float32') + ds["velacc"] = xr.DataArray( + calcobj.calc_velacc(), + dims=["dirIMU", "time"], + attrs={"units": "m s-1", "long_name": "Velocity from IMU Accelerometer"}, + ).astype("float32") # Copy acclow to the adv-object. - ds['acclow'] = xr.DataArray(calcobj.acclow, - dims=['dirIMU', 'time'], - attrs={'units': 'm s-2', - 'long_name': 'Low-Frequency Acceleration from IMU'} - ).astype('float32') + ds["acclow"] = xr.DataArray( + calcobj.acclow, + dims=["dirIMU", "time"], + attrs={"units": "m s-2", "long_name": "Low-Frequency Acceleration from IMU"}, + ).astype("float32") ########## # Calculate rotational velocity (from angrt): @@ -454,60 +476,65 @@ def correct_motion(ds, velrot = calcobj.calc_velrot(pos, to_earth=False) if separate_probes: # The head->beam transformation matrix - transMat = ds.get('beam2inst_orientmat', None) + transMat = ds.get("beam2inst_orientmat", None) # The inst->head transformation matrix - rmat = ds['inst2head_rotmat'] + rmat = ds["inst2head_rotmat"] # 1) Rotate body-coordinate velocities to head-coord. velrot = np.dot(rmat, velrot) # 2) Rotate body-coord to beam-coord (einsum), # 3) Take along beam-component (diagonal), # 4) Rotate back to head-coord (einsum), - velrot = np.einsum('ij,kj->ik', - transMat, - np.diagonal(np.einsum('ij,j...->i...', - np.linalg.inv(transMat), - velrot))) + velrot = np.einsum( + "ij,kj->ik", + transMat, + np.diagonal(np.einsum("ij,j...->i...", np.linalg.inv(transMat), velrot)), + ) # 5) Rotate back to body-coord. velrot = np.dot(rmat.T, velrot) - ds['velrot'] = xr.DataArray(velrot, - dims=['dirIMU', 'time'], - attrs={'units': 'm s-1', - 'long_name': 'Velocity from IMU Gyroscope'} - ).astype('float32') + ds["velrot"] = xr.DataArray( + velrot, + dims=["dirIMU", "time"], + attrs={"units": "m s-1", "long_name": "Velocity from IMU Gyroscope"}, + ).astype("float32") ########## # Rotate the data into the correct coordinate system. # inst2earth expects a 'rotate_vars' property. # Add velrot, velacc, acclow, to it. - if 'rotate_vars' not in ds.attrs: - ds.attrs['rotate_vars'] = ['vel', 'velrot', 'velacc', 'accel', - 'acclow', 'angrt', 'mag'] + if "rotate_vars" not in ds.attrs: + ds.attrs["rotate_vars"] = [ + "vel", + "velrot", + "velacc", + "accel", + "acclow", + "angrt", + "mag", + ] else: - ds.attrs['rotate_vars'].extend(['velrot', 'velacc', 'acclow']) + ds.attrs["rotate_vars"].extend(["velrot", "velacc", "acclow"]) # NOTE: accel, acclow, and velacc are in the earth-frame after # calc_velacc() call. inst2earth = rot._inst2earth if to_earth: # accel was converted to earth coordinates - ds['accel'].values = calcobj.accel - to_remove = ['accel', 'acclow', 'velacc'] - ds = inst2earth(ds, rotate_vars=[e for e in - ds.attrs['rotate_vars'] - if e not in to_remove]) + ds["accel"].values = calcobj.accel + to_remove = ["accel", "acclow", "velacc"] + ds = inst2earth( + ds, rotate_vars=[e for e in ds.attrs["rotate_vars"] if e not in to_remove] + ) else: # rotate these variables back to the instrument frame. - ds = inst2earth(ds, reverse=True, - rotate_vars=['acclow', 'velacc'], - force=True) + ds = inst2earth(ds, reverse=True, rotate_vars=["acclow", "velacc"], force=True) ########## # Copy vel -> velraw prior to motion correction: - ds['vel_raw'] = ds.vel.copy(deep=True) + ds["vel_raw"] = ds.vel.copy(deep=True) # Add it to rotate_vars: - ds.attrs['rotate_vars'].append('vel_raw') + ds.attrs["rotate_vars"].append("vel_raw") ########## # Remove motion from measured velocity @@ -517,10 +544,10 @@ def correct_motion(ds, # measures a velocity in the opposite direction. # use xarray to keep dimensions consistent - velmot = ds['velrot'] + ds['velacc'] - ds['vel'].values += velmot.values + velmot = ds["velrot"] + ds["velacc"] + ds["vel"].values += velmot.values - ds.attrs['motion corrected'] = 1 - ds.attrs['motion accel_filtfreq Hz'] = calcobj.accel_filtfreq + ds.attrs["motion corrected"] = 1 + ds.attrs["motion accel_filtfreq Hz"] = calcobj.accel_filtfreq return ds diff --git a/mhkit/dolfyn/adv/turbulence.py b/mhkit/dolfyn/adv/turbulence.py index 022012928..83ae80a7a 100644 --- a/mhkit/dolfyn/adv/turbulence.py +++ b/mhkit/dolfyn/adv/turbulence.py @@ -8,7 +8,7 @@ class ADVBinner(VelBinner): """ - A class that builds upon `VelBinner` for calculating turbulence + A class that builds upon `VelBinner` for calculating turbulence statistics and velocity spectra from ADV data Parameters @@ -24,35 +24,36 @@ class ADVBinner(VelBinner): n_fft_coh : int Number of data points to use for coherence and cross-spectra fft's. Optional, default `n_fft_coh` = `n_fft` - noise : float, list or numpy.ndarray - Instrument's doppler noise in same units as velocity + noise : float or array-like + Instrument noise level in same units as velocity. Typically + found from `adv.turbulence.doppler_noise_level`. + Default: None. """ - def __call__(self, ds, freq_units='rad/s', window='hann'): + def __call__(self, ds, freq_units="rad/s", window="hann"): out = type(ds)() out = self.bin_average(ds, out) - noise = ds.get('doppler_noise', [0, 0, 0]) - out['tke_vec'] = self.turbulent_kinetic_energy(ds['vel'], noise=noise) - out['stress_vec'] = self.reynolds_stress(ds['vel']) + noise = ds.get("doppler_noise", [0, 0, 0]) + out["tke_vec"] = self.turbulent_kinetic_energy(ds["vel"], noise=noise) + out["stress_vec"] = self.reynolds_stress(ds["vel"]) - out['psd'] = self.power_spectral_density(ds['vel'], - window=window, - freq_units=freq_units, - noise=noise) + out["psd"] = self.power_spectral_density( + ds["vel"], window=window, freq_units=freq_units, noise=noise + ) for key in list(ds.attrs.keys()): - if 'config' in key: + if "config" in key: ds.attrs.pop(key) out.attrs = ds.attrs - out.attrs['n_bin'] = self.n_bin - out.attrs['n_fft'] = self.n_fft - out.attrs['n_fft_coh'] = self.n_fft_coh + out.attrs["n_bin"] = self.n_bin + out.attrs["n_fft"] = self.n_fft + out.attrs["n_fft_coh"] = self.n_fft_coh return out def reynolds_stress(self, veldat, detrend=True): """ - Calculate the specific Reynolds stresses + Calculate the specific Reynolds stresses (cross-covariances of u,v,w in m^2/s^2) Parameters @@ -78,8 +79,7 @@ def reynolds_stress(self, veldat, detrend=True): time = self.mean(veldat.time.values) vel = veldat.values - out = np.empty(self._outshape(vel[:3].shape)[:-1], - dtype=np.float32) + out = np.empty(self._outshape(vel[:3].shape)[:-1], dtype=np.float32) if detrend: vel = self.detrend(vel) @@ -87,25 +87,29 @@ def reynolds_stress(self, veldat, detrend=True): vel = self.demean(vel) for idx, p in enumerate(self._cross_pairs): - out[idx] = np.nanmean(vel[p[0]] * vel[p[1]], - -1, dtype=np.float64 - ).astype(np.float32) - - da = xr.DataArray(out.astype('float32'), - dims=veldat.dims, - attrs={'units': 'm2 s-2', - 'long_name': 'Specific Reynolds Stress Vector'}) - da = da.rename({'dir': 'tau'}) - da = da.assign_coords({'tau': self.tau, 'time': time}) - + out[idx] = np.nanmean(vel[p[0]] * vel[p[1]], -1, dtype=np.float64).astype( + np.float32 + ) + + da = xr.DataArray( + out.astype("float32"), + dims=veldat.dims, + attrs={"units": "m2 s-2", "long_name": "Specific Reynolds Stress Vector"}, + ) + da = da.rename({"dir": "tau"}) + da = da.assign_coords({"tau": self.tau, "time": time}) + return da - def cross_spectral_density(self, veldat, - freq_units='rad/s', - fs=None, - window='hann', - n_bin=None, - n_fft_coh=None): + def cross_spectral_density( + self, + veldat, + freq_units="rad/s", + fs=None, + window="hann", + n_bin=None, + n_fft_coh=None, + ): """ Calculate the cross-spectral density of velocity components. @@ -114,7 +118,7 @@ def cross_spectral_density(self, veldat, veldat : xarray.DataArray The raw 3D velocity data. freq_units : string - Frequency units of the returned spectra in either Hz or rad/s + Frequency units of the returned spectra in either Hz or rad/s (`f` or :math:`\\omega`) fs : float (optional) The sample rate. Default = `binner.fs` @@ -135,7 +139,7 @@ def cross_spectral_density(self, veldat, if not isinstance(veldat, xr.DataArray): raise TypeError("`veldat` must be an instance of `xarray.DataArray`.") - if ('rad' not in freq_units) and ('Hz' not in freq_units): + if ("rad" not in freq_units) and ("Hz" not in freq_units): raise ValueError("`freq_units` should be one of 'Hz' or 'rad/s'") fs_in = self._parse_fs(fs) @@ -143,46 +147,57 @@ def cross_spectral_density(self, veldat, time = self.mean(veldat.time.values) veldat = veldat.values if len(np.shape(veldat)) != 2: - raise Exception("This function is only valid for calculating TKE using " - "the 3D velocity vector from an ADV.") + raise Exception( + "This function is only valid for calculating TKE using " + "the 3D velocity vector from an ADV." + ) - out = np.empty(self._outshape_fft(veldat[:3].shape, n_fft=n_fft, n_bin=n_bin), - dtype='complex') + out = np.empty( + self._outshape_fft(veldat[:3].shape, n_fft=n_fft, n_bin=n_bin), + dtype="complex", + ) # Create frequency vector, also checks whether using f or omega - if 'rad' in freq_units: - fs = 2*np.pi*fs_in - freq_units = 'rad s-1' - units = 'm2 s-1 rad-1' + if "rad" in freq_units: + fs = 2 * np.pi * fs_in + freq_units = "rad s-1" + units = "m2 s-1 rad-1" else: fs = fs_in - freq_units = 'Hz' - units = 'm2 s-2 Hz-1' - coh_freq = xr.DataArray(self._fft_freq(fs=fs_in, units=freq_units, n_fft=n_fft, coh=True), - dims=['coh_freq'], - name='coh_freq', - attrs={'units': freq_units, - 'long_name': 'FFT Frequency Vector', - 'coverage_content_type': 'coordinate'} - ).astype('float32') + freq_units = "Hz" + units = "m2 s-2 Hz-1" + coh_freq = xr.DataArray( + self._fft_freq(fs=fs_in, units=freq_units, n_fft=n_fft, coh=True), + dims=["coh_freq"], + name="coh_freq", + attrs={ + "units": freq_units, + "long_name": "FFT Frequency Vector", + "coverage_content_type": "coordinate", + }, + ).astype("float32") for ip, ipair in enumerate(self._cross_pairs): - out[ip] = self._csd_base(veldat[ipair[0]], - veldat[ipair[1]], - fs=fs, - window=window, - n_bin=n_bin, - n_fft=n_fft) - - csd = xr.DataArray(out.astype('complex64'), - coords={'C': self.C, - 'time': time, - 'coh_freq': coh_freq}, - dims=['C', 'time', 'coh_freq'], - attrs={'units': units, - 'n_fft_coh': n_fft, - 'long_name': 'Cross Spectral Density'}) - csd['coh_freq'].attrs['units'] = freq_units + out[ip] = self._csd_base( + veldat[ipair[0]], + veldat[ipair[1]], + fs=fs, + window=window, + n_bin=n_bin, + n_fft=n_fft, + ) + + csd = xr.DataArray( + out.astype("complex64"), + coords={"C": self.C, "time": time, "coh_freq": coh_freq}, + dims=["C", "time", "coh_freq"], + attrs={ + "units": units, + "n_fft_coh": n_fft, + "long_name": "Cross Spectral Density", + }, + ) + csd["coh_freq"].attrs["units"] = freq_units return csd @@ -200,7 +215,7 @@ def doppler_noise_level(self, psd, pct_fN=0.8): Returns ------- - doppler_noise (xarray.DataArray): + doppler_noise (xarray.DataArray): Doppler noise level in units of m/s Notes @@ -213,54 +228,56 @@ def doppler_noise_level(self, psd, pct_fN=0.8): `N` is the constant variance or spectral density, and `f_{c}` is the characteristic frequency. - The characteristic frequency is then found as + The characteristic frequency is then found as .. :math: f_{c} = pct_fN * (f_{s}/2) where `f_{s}/2` is the Nyquist frequency. - Richard, Jean-Baptiste, et al. "Method for identification of Doppler noise - levels in turbulent flow measurements dedicated to tidal energy." International + Richard, Jean-Baptiste, et al. "Method for identification of Doppler noise + levels in turbulent flow measurements dedicated to tidal energy." International Journal of Marine Energy 3 (2013): 52-64. - Thiébaut, Maxime, et al. "Investigating the flow dynamics and turbulence at a - tidal-stream energy site in a highly energetic estuary." Renewable Energy 195 + Thiébaut, Maxime, et al. "Investigating the flow dynamics and turbulence at a + tidal-stream energy site in a highly energetic estuary." Renewable Energy 195 (2022): 252-262. """ - + if not isinstance(psd, xr.DataArray): raise TypeError("`psd` must be an instance of `xarray.DataArray`.") if not isinstance(pct_fN, float) or not 0 <= pct_fN <= 1: raise ValueError("`pct_fN` must be a float within the range [0, 1].") # Characteristic frequency set to 80% of Nyquist frequency - fN = self.fs/2 + fN = self.fs / 2 fc = pct_fN * fN # Get units right if psd.freq.units == "Hz": f_range = slice(fc, fN) else: - f_range = slice(2*np.pi*fc, 2*np.pi*fN) + f_range = slice(2 * np.pi * fc, 2 * np.pi * fN) # Noise floor N2 = psd.sel(freq=f_range) * psd.freq.sel(freq=f_range) - noise_level = np.sqrt(N2.mean(dim='freq')) + noise_level = np.sqrt(N2.mean(dim="freq")) return xr.DataArray( - noise_level.values.astype('float32'), - dims=['dir', 'time'], - attrs={'units': 'm/s', - 'long_name': 'Doppler Noise Level', - 'description': 'Doppler noise level calculated ' - 'from PSD white noise'}) + noise_level.values.astype("float32"), + coords={"S": psd["S"], "time": psd["time"]}, + attrs={ + "units": "m/s", + "long_name": "Doppler Noise Level", + "description": "Doppler noise level calculated " "from PSD white noise", + }, + ) def check_turbulence_cascade_slope(self, psd, freq_range=[6.28, 12.57]): """ - This function calculates the slope of the PSD, the power spectra + This function calculates the slope of the PSD, the power spectra of velocity, within the given frequency range. The purpose of this - function is to check that the region of the PSD containing the + function is to check that the region of the PSD containing the isotropic turbulence cascade decreases at a rate of :math:`f^{-5/3}`. Parameters @@ -268,14 +285,14 @@ def check_turbulence_cascade_slope(self, psd, freq_range=[6.28, 12.57]): psd : xarray.DataArray ([time,] freq) The power spectral density (1D or 2D) freq_range : iterable(2) (default: [6.28, 12.57]) - The range over which the isotropic turbulence cascade occurs, in + The range over which the isotropic turbulence cascade occurs, in units of the psd frequency vector (Hz or rad/s) Returns ------- (m, b): tuple (slope, y-intercept) - A tuple containing the coefficients of the log-adjusted linear - regression between PSD and frequency + A tuple containing the coefficients of the log-adjusted linear + regression between PSD and frequency Notes ----- @@ -283,9 +300,9 @@ def check_turbulence_cascade_slope(self, psd, freq_range=[6.28, 12.57]): .. math:: S(k) = \\alpha \\epsilon^{2/3} k^{-5/3} + N - The slope of the isotropic turbulence cascade, which should be - equal to :math:`k^{-5/3}` or :math:`f^{-5/3}`, where k and f are - the wavenumber and frequency vectors, is estimated using linear + The slope of the isotropic turbulence cascade, which should be + equal to :math:`k^{-5/3}` or :math:`f^{-5/3}`, where k and f are + the wavenumber and frequency vectors, is estimated using linear regression with a log transformation: .. math:: log10(y) = m*log10(x) + b @@ -293,36 +310,36 @@ def check_turbulence_cascade_slope(self, psd, freq_range=[6.28, 12.57]): Which is equivalent to .. math:: y = 10^{b} x^{m} - - Where :math:`y` is S(k) or S(f), :math:`x` is k or f, :math:`m` - is the slope (ideally -5/3), and :math:`10^{b}` is the intercept of + + Where :math:`y` is S(k) or S(f), :math:`x` is k or f, :math:`m` + is the slope (ideally -5/3), and :math:`10^{b}` is the intercept of y at x^m=1. """ if not isinstance(psd, xr.DataArray): raise TypeError("`psd` must be an instance of `xarray.DataArray`.") - if not hasattr(freq_range, '__iter__') or len(freq_range) != 2: + if not hasattr(freq_range, "__iter__") or len(freq_range) != 2: raise ValueError("`freq_range` must be an iterable of length 2.") - + idx = np.where((freq_range[0] < psd.freq) & (psd.freq < freq_range[1])) idx = idx[0] - x = np.log10(psd['freq'].isel(freq=idx)) + x = np.log10(psd["freq"].isel(freq=idx)) y = np.log10(psd.isel(freq=idx)) - y_bar = y.mean('freq') - x_bar = x.mean('freq') + y_bar = y.mean("freq") + x_bar = x.mean("freq") # using the formula to calculate the slope and intercept n = np.sum((x - x_bar) * (y - y_bar), axis=0) - d = np.sum((x - x_bar)**2, axis=0) + d = np.sum((x - x_bar) ** 2, axis=0) - m = n/d - b = y_bar - m*x_bar + m = n / d + b = y_bar - m * x_bar return m, b - def dissipation_rate_LT83(self, psd, U_mag, freq_range=[6.28, 12.57]): + def dissipation_rate_LT83(self, psd, U_mag, freq_range=[6.28, 12.57], noise=None): """ Calculate the dissipation rate from the PSD @@ -333,9 +350,13 @@ def dissipation_rate_LT83(self, psd, U_mag, freq_range=[6.28, 12.57]): U_mag : xarray.DataArray (...,time) The bin-averaged horizontal velocity [m/s] (from dataset shortcut) freq_range : iterable(2) - The range over which to integrate/average the spectrum, in units - of the psd frequency vector (Hz or rad/s). + The range over which to integrate/average the spectrum, in units + of the psd frequency vector (Hz or rad/s). Default = [6.28, 12.57] rad/s + noise : float or array-like + Instrument noise level in same units as velocity. Typically + found from `adv.turbulence.calc_doppler_noise`. + Default: None. Returns ------- @@ -369,49 +390,64 @@ def dissipation_rate_LT83(self, psd, U_mag, freq_range=[6.28, 12.57]): if not isinstance(psd, xr.DataArray): raise TypeError("`psd` must be an instance of `xarray.DataArray`.") if len(U_mag.shape) != 1: - raise Exception('U_mag should be 1-dimensional (time)') - if len(psd.time)!=len(U_mag.time): + raise Exception("U_mag should be 1-dimensional (time)") + if len(psd.time) != len(U_mag.time): raise Exception("`U_mag` should be from ensembled-averaged dataset") - if not hasattr(freq_range, '__iter__') or len(freq_range) != 2: + if not hasattr(freq_range, "__iter__") or len(freq_range) != 2: raise ValueError("`freq_range` must be an iterable of length 2.") + if noise is not None: + if np.shape(noise)[0] != 3: + raise Exception("Noise should have same first dimension as velocity") + else: + noise = np.array([0, 0, 0])[:, None, None] + + # Noise subtraction from binner.TimeBinner.calc_psd_base + psd = psd.copy() + if noise is not None: + psd -= noise**2 / (self.fs / 2) + psd = psd.where(psd > 0, np.min(np.abs(psd)) / 100) + freq = psd.freq idx = np.where((freq_range[0] < freq) & (freq < freq_range[1])) idx = idx[0] - if freq.units == 'Hz': - U = U_mag/(2*np.pi) + if freq.units == "Hz": + U = U_mag / (2 * np.pi) else: U = U_mag a = 0.5 - out = (psd.isel(freq=idx) * - freq.isel(freq=idx)**(5/3) / a).mean(axis=-1)**(3/2) / U + out = (psd.isel(freq=idx) * freq.isel(freq=idx) ** (5 / 3) / a).mean( + axis=-1 + ) ** (3 / 2) / U return xr.DataArray( - out.astype('float32'), - attrs={'units': 'm2 s-3', - 'long_name': 'TKE Dissipation Rate', - 'standard_name': 'specific_turbulent_kinetic_energy_dissipation_in_sea_water', - 'description': 'TKE dissipation rate calculated using ' - 'the method from Lumley and Terray, 1983', - }) - - def dissipation_rate_SF(self, vel_raw, U_mag, fs=None, freq_range=[2., 4.]): + out.astype("float32"), + attrs={ + "units": "m2 s-3", + "long_name": "TKE Dissipation Rate", + "standard_name": "specific_turbulent_kinetic_energy_dissipation_in_sea_water", + "description": "TKE dissipation rate calculated using " + "the method from Lumley and Terray, 1983", + }, + ) + + def dissipation_rate_SF(self, vel_raw, U_mag, fs=None, freq_range=[2.0, 4.0]): """ Calculate dissipation rate using the "structure function" (SF) method Parameters ---------- vel_raw : xarray.DataArray (time) - The raw velocity data upon which to perform the SF technique. + The raw velocity data upon which to perform the SF technique. U_mag : xarray.DataArray The bin-averaged horizontal velocity (from dataset shortcut) fs : float The sample rate of `vel_raw` [Hz] freq_range : iterable(2) The frequency range over which to compute the SF [Hz] - (i.e. the frequency range within which the isotropic + (i.e. the frequency range within which the isotropic turbulence cascade falls). Default = [2., 4.] Hz @@ -423,9 +459,9 @@ def dissipation_rate_SF(self, vel_raw, U_mag, fs=None, freq_range=[2., 4.]): if not isinstance(vel_raw, xr.DataArray): raise TypeError("`vel_raw` must be an instance of `xarray.DataArray`.") - if len(vel_raw.time)==len(U_mag.time): + if len(vel_raw.time) == len(U_mag.time): raise Exception("`U_mag` should be from ensembled-averaged dataset") - if not hasattr(freq_range, '__iter__') or len(freq_range) != 2: + if not hasattr(freq_range, "__iter__") or len(freq_range) != 2: raise ValueError("`freq_range` must be an iterable of length 2.") veldat = vel_raw.values @@ -434,7 +470,7 @@ def dissipation_rate_SF(self, vel_raw, U_mag, fs=None, freq_range=[2., 4.]): fs = self._parse_fs(fs) if freq_range[1] > fs: - warnings.warn('Max freq_range cannot be greater than fs') + warnings.warn("Max freq_range cannot be greater than fs") dt = self.reshape(veldat) out = np.empty(dt.shape[:-1], dtype=dt.dtype) @@ -449,15 +485,17 @@ def dissipation_rate_SF(self, vel_raw, U_mag, fs=None, freq_range=[2., 4.]): out[slc[:-1]] = (cv2m / 2.1) ** (3 / 2) return xr.DataArray( - out.astype('float32'), + out.astype("float32"), coords=U_mag.coords, dims=U_mag.dims, - attrs={'units': 'm2 s-3', - 'long_name': 'TKE Dissipation Rate', - 'standard_name': 'specific_turbulent_kinetic_energy_dissipation_in_sea_water', - 'description': 'TKE dissipation rate calculated using the ' - '"structure function" method', - }) + attrs={ + "units": "m2 s-3", + "long_name": "TKE Dissipation Rate", + "standard_name": "specific_turbulent_kinetic_energy_dissipation_in_sea_water", + "description": "TKE dissipation rate calculated using the " + '"structure function" method', + }, + ) def _up_angle(self, U_complex): """ @@ -498,11 +536,11 @@ def _integral_TE01(self, I_tke, theta): out = np.empty_like(I_tke.flatten()) for i, (b, t) in enumerate(zip(I_tke.flatten(), theta.flatten())): out[i] = np.trapz( - cbrt(x**2 - 2/b*np.cos(t)*x + b**(-2)) * - np.exp(-0.5 * x ** 2), x) + cbrt(x**2 - 2 / b * np.cos(t) * x + b ** (-2)) * np.exp(-0.5 * x**2), + x, + ) - return out.reshape(I_tke.shape) * \ - (2 * np.pi) ** (-0.5) * I_tke ** (2 / 3) + return out.reshape(I_tke.shape) * (2 * np.pi) ** (-0.5) * I_tke ** (2 / 3) def dissipation_rate_TE01(self, dat_raw, dat_avg, freq_range=[6.28, 12.57]): """ @@ -514,10 +552,10 @@ def dissipation_rate_TE01(self, dat_raw, dat_avg, freq_range=[6.28, 12.57]): The raw (off the instrument) adv dataset dat_avg : xarray.Dataset The bin-averaged adv dataset (calc'd from 'calc_turbulence' or - 'do_avg'). The spectra (psd) and basic turbulence statistics + 'do_avg'). The spectra (psd) and basic turbulence statistics ('tke_vec' and 'stress_vec') must already be computed. freq_range : iterable(2) - The range over which to integrate/average the spectrum, in units + The range over which to integrate/average the spectrum, in units of the psd frequency vector (Hz or rad/s). Default = [6.28, 12.57] rad/s @@ -531,15 +569,16 @@ def dissipation_rate_TE01(self, dat_raw, dat_avg, freq_range=[6.28, 12.57]): raise TypeError("`dat_raw` must be an instance of `xarray.Dataset`.") if not isinstance(dat_avg, xr.Dataset): raise TypeError("`dat_avg` must be an instance of `xarray.Dataset`.") - if not hasattr(freq_range, '__iter__') or len(freq_range) != 2: + if not hasattr(freq_range, "__iter__") or len(freq_range) != 2: raise ValueError("`freq_range` must be an iterable of length 2.") # Assign local names U_mag = dat_avg.velds.U_mag.values I_tke = dat_avg.velds.I_tke.values - theta = np.angle(dat_avg.velds.U.values) - \ - self._up_angle(dat_raw.velds.U.values) - freq = dat_avg['psd'].freq.values + theta = np.angle(dat_avg.velds.U.values) - self._up_angle( + dat_raw.velds.U.values + ) + freq = dat_avg["psd"].freq.values # Calculate constants alpha = 1.5 @@ -552,26 +591,31 @@ def dissipation_rate_TE01(self, dat_raw, dat_avg, freq_range=[6.28, 12.57]): # Estimate values # u & v components (equation 6) - out = (np.nanmean((psd[0] + psd[1]) * freq**(5/3), -1) / - (21/55 * alpha * intgrl))**(3/2) / U_mag + out = ( + np.nanmean((psd[0] + psd[1]) * freq ** (5 / 3), -1) + / (21 / 55 * alpha * intgrl) + ) ** (3 / 2) / U_mag # Add w component - out += (np.nanmean(psd[2] * freq**(5/3), -1) / - (12/55 * alpha * intgrl))**(3/2) / U_mag + out += ( + np.nanmean(psd[2] * freq ** (5 / 3), -1) / (12 / 55 * alpha * intgrl) + ) ** (3 / 2) / U_mag # Average the two estimates out *= 0.5 return xr.DataArray( - out.astype('float32'), - coords={'time': dat_avg.psd.time}, - dims='time', - attrs={'units': 'm2 s-3', - 'long_name': 'TKE Dissipation Rate', - 'standard_name': 'specific_turbulent_kinetic_energy_dissipation_in_sea_water', - 'description': 'TKE dissipation rate calculated using the ' - 'method from Trowbridge and Elgar, 2001' - }) + out.astype("float32"), + coords={"time": dat_avg.psd.time}, + dims="time", + attrs={ + "units": "m2 s-3", + "long_name": "TKE Dissipation Rate", + "standard_name": "specific_turbulent_kinetic_energy_dissipation_in_sea_water", + "description": "TKE dissipation rate calculated using the " + "method from Trowbridge and Elgar, 2001", + }, + ) def integral_length_scales(self, a_cov, U_mag, fs=None): """ @@ -601,26 +645,31 @@ def integral_length_scales(self, a_cov, U_mag, fs=None): if not isinstance(a_cov, xr.DataArray): raise TypeError("`a_cov` must be an instance of `xarray.DataArray`.") - if len(a_cov.time)!=len(U_mag.time): + if len(a_cov.time) != len(U_mag.time): raise Exception("`U_mag` should be from ensembled-averaged dataset") acov = a_cov.values fs = self._parse_fs(fs) - scale = np.argmin((acov/acov[..., :1]) > (1/np.e), axis=-1) + scale = np.argmin((acov / acov[..., :1]) > (1 / np.e), axis=-1) L_int = U_mag.values / fs * scale return xr.DataArray( - L_int.astype('float32'), - coords={'dir': a_cov.dir, 'time': a_cov.time}, - attrs={'units': 'm', - 'long_name': 'Integral Length Scale', - 'standard_name': 'turbulent_mixing_length_of_sea_water'}) - - -def turbulence_statistics(ds_raw, n_bin, fs, n_fft=None, freq_units='rad/s', window='hann'): + L_int.astype("float32"), + coords={"dir": a_cov.dir, "time": a_cov.time}, + attrs={ + "units": "m", + "long_name": "Integral Length Scale", + "standard_name": "turbulent_mixing_length_of_sea_water", + }, + ) + + +def turbulence_statistics( + ds_raw, n_bin, fs, n_fft=None, freq_units="rad/s", window="hann" +): """ - Functional version of `ADVBinner` that computes a suite of turbulence + Functional version of `ADVBinner` that computes a suite of turbulence statistics for the input dataset, and returns a `binned` data object. Parameters @@ -629,7 +678,7 @@ def turbulence_statistics(ds_raw, n_bin, fs, n_fft=None, freq_units='rad/s', win The raw adv datset to `bin`, average and compute turbulence statistics of. freq_units : string - Frequency units of the returned spectra in either Hz or rad/s + Frequency units of the returned spectra in either Hz or rad/s (`f` or :math:`\\omega`). Default is 'rad/s' window : string or array The window to use for calculating spectra. diff --git a/mhkit/dolfyn/binned.py b/mhkit/dolfyn/binned.py index 1db825dc2..0bdb00f73 100644 --- a/mhkit/dolfyn/binned.py +++ b/mhkit/dolfyn/binned.py @@ -3,19 +3,19 @@ from .tools.fft import fft_frequency, psd_1D, cpsd_1D, cpsd_quasisync_1D from .tools.misc import slice1d_along_axis, detrend_array from .time import epoch2dt64, dt642epoch -warnings.simplefilter('ignore', RuntimeWarning) + +warnings.simplefilter("ignore", RuntimeWarning) class TimeBinner: - def __init__(self, n_bin, fs, n_fft=None, n_fft_coh=None, - noise=[0, 0, 0]): + def __init__(self, n_bin, fs, n_fft=None, n_fft_coh=None, noise=[0, 0, 0]): """ Initialize an averaging object Parameters ---------- n_bin : int - Number of data points to include in a 'bin' (ensemble), not the + Number of data points to include in a 'bin' (ensemble), not the number of bins fs : int Instrument sampling frequency in Hz @@ -38,14 +38,15 @@ def __init__(self, n_bin, fs, n_fft=None, n_fft_coh=None, self.n_fft = n_bin elif n_fft > n_bin: self.n_fft = n_bin - warnings.warn( - "n_fft must be smaller than n_bin, setting n_fft = n_bin") + warnings.warn("n_fft must be smaller than n_bin, setting n_fft = n_bin") if n_fft_coh is None: self.n_fft_coh = int(self.n_fft) elif n_fft_coh > n_bin: self.n_fft_coh = int(n_bin) - warnings.warn("n_fft_coh must be smaller than or equal to n_bin, " - "setting n_fft_coh = n_bin") + warnings.warn( + "n_fft_coh must be smaller than or equal to n_bin, " + "setting n_fft_coh = n_bin" + ) def _outshape(self, inshape, n_pad=0, n_bin=None): """ @@ -77,8 +78,7 @@ def _parse_nfft(self, n_fft=None): return self.n_fft if n_fft > self.n_bin: n_fft = self.n_bin - warnings.warn( - "n_fft must be smaller than n_bin, setting n_fft = n_bin") + warnings.warn("n_fft must be smaller than n_bin, setting n_fft = n_bin") return n_fft def _parse_nfft_coh(self, n_fft_coh=None): @@ -86,8 +86,10 @@ def _parse_nfft_coh(self, n_fft_coh=None): return self.n_fft_coh if n_fft_coh > self.n_bin: n_fft_coh = int(self.n_bin) - warnings.warn("n_fft_coh must be smaller than or equal to n_bin, " - "setting n_fft_coh = n_bin") + warnings.warn( + "n_fft_coh must be smaller than or equal to n_bin, " + "setting n_fft_coh = n_bin" + ) return n_fft_coh def _check_ds(self, raw_ds, out_ds): @@ -109,17 +111,22 @@ def _check_ds(self, raw_ds, out_ds): for v in raw_ds.data_vars: if np.any(np.array(raw_ds[v].shape) == 0): - raise RuntimeError(f"{v} cannot be averaged " - "because it is empty.") - if 'DutyCycle_NBurst' in raw_ds.attrs and \ - raw_ds.attrs['DutyCycle_NBurst'] < self.n_bin: - warnings.warn(f"The averaging interval (n_bin = {self.n_bin})" - "is larger than the burst interval " - "(NBurst = {dat.attrs['DutyCycle_NBurst']})") + raise RuntimeError(f"{v} cannot be averaged " "because it is empty.") + if ( + "DutyCycle_NBurst" in raw_ds.attrs + and raw_ds.attrs["DutyCycle_NBurst"] < self.n_bin + ): + warnings.warn( + f"The averaging interval (n_bin = {self.n_bin})" + "is larger than the burst interval " + "(NBurst = {dat.attrs['DutyCycle_NBurst']})" + ) if raw_ds.fs != self.fs: - raise Exception(f"The input data sample rate ({raw_ds.fs}) does not " - "match the sample rate of this binning-object " - "({self.fs})") + raise Exception( + f"The input data sample rate ({raw_ds.fs}) does not " + "match the sample rate of this binning-object " + "({self.fs})" + ) if out_ds is None: out_ds = type(raw_ds)() @@ -127,11 +134,12 @@ def _check_ds(self, raw_ds, out_ds): o_attrs = out_ds.attrs props = {} - props['fs'] = self.fs - props['n_bin'] = self.n_bin - props['n_fft'] = self.n_fft - props['description'] = 'Binned averages calculated from ' \ - 'ensembles of size "n_bin"' + props["fs"] = self.fs + props["n_bin"] = self.n_bin + props["n_fft"] = self.n_fft + props["description"] = ( + "Binned averages calculated from " 'ensembles of size "n_bin"' + ) props.update(raw_ds.attrs) for ky in props: @@ -140,24 +148,25 @@ def _check_ds(self, raw_ds, out_ds): # plus those defined above) raise AttributeError( "The attribute '{}' of `out_ds` is inconsistent " - "with this `VelBinner` or the input data (`raw_ds`)".format(ky)) + "with this `VelBinner` or the input data (`raw_ds`)".format(ky) + ) else: o_attrs[ky] = props[ky] return out_ds def _new_coords(self, array): """ - Function for setting up a new xarray.DataArray regardless of how + Function for setting up a new xarray.DataArray regardless of how many dimensions the input data-array has """ dims = array.dims dims_list = [] coords_dict = {} - if len(array.shape) == 1 & ('dir' in array.coords): - array = array.drop_vars('dir') + if len(array.shape) == 1 & ("dir" in array.coords): + array = array.drop_vars("dir") for ky in dims: dims_list.append(ky) - if 'time' in ky: + if "time" in ky: coords_dict[ky] = self.mean(array.time.values) else: coords_dict[ky] = array.coords[ky].values @@ -198,34 +207,33 @@ def reshape(self, arr, n_pad=0, n_bin=None): n_bin = self._parse_nbin(n_bin) if arr.shape[-1] < n_bin: - raise Exception('n_bin is larger than length of input array') + raise Exception("n_bin is larger than length of input array") npd0 = int(n_pad // 2) npd1 = int((n_pad + 1) // 2) shp = self._outshape(arr.shape, n_pad=0, n_bin=n_bin) out = np.zeros( - self._outshape(arr.shape, n_pad=n_pad, n_bin=n_bin), - dtype=arr.dtype) + self._outshape(arr.shape, n_pad=n_pad, n_bin=n_bin), dtype=arr.dtype + ) if np.mod(n_bin, 1) == 0: # n_bin needs to be int n_bin = int(n_bin) # If n_bin is an integer, we can do this simply. - out[..., npd0: n_bin + npd0] = ( - arr[..., :(shp[-2] * shp[-1])]).reshape(shp, order='C') + out[..., npd0 : n_bin + npd0] = (arr[..., : (shp[-2] * shp[-1])]).reshape( + shp, order="C" + ) else: - inds = (np.arange(np.prod(shp[-2:])) * n_bin // int(n_bin) - ).astype(int) + inds = (np.arange(np.prod(shp[-2:])) * n_bin // int(n_bin)).astype(int) # If there are too many indices, drop one bin if inds[-1] >= arr.shape[-1]: - inds = inds[:-int(n_bin)] + inds = inds[: -int(n_bin)] shp[-2] -= 1 out = out[..., 1:, :] n_bin = int(n_bin) - out[..., npd0:n_bin + npd0] = (arr[..., inds] - ).reshape(shp, order='C') + out[..., npd0 : n_bin + npd0] = (arr[..., inds]).reshape(shp, order="C") n_bin = int(n_bin) if n_pad != 0: - out[..., 1:, :npd0] = out[..., :-1, n_bin:n_bin + npd0] - out[..., :-1, -npd1:] = out[..., 1:, npd0:npd0 + npd1] + out[..., 1:, :npd0] = out[..., :-1, n_bin : n_bin + npd0] + out[..., :-1, -npd1:] = out[..., 1:, npd0 : npd0 + npd1] return out @@ -336,7 +344,7 @@ def variance(self, arr, axis=-1, n_bin=None): def standard_deviation(self, arr, axis=-1, n_bin=None): """ Reshape the array `arr` to shape (...,n,n_bin+n_pad) - and take the standard deviation of each bin along the + and take the standard deviation of each bin along the specified `axis`. Parameters @@ -354,8 +362,17 @@ def standard_deviation(self, arr, axis=-1, n_bin=None): return np.nanstd(self.reshape(arr, n_bin=n_bin), axis=axis, dtype=np.float32) - def _psd_base(self, dat, fs=None, window='hann', noise=0, - n_bin=None, n_fft=None, n_pad=None, step=None): + def _psd_base( + self, + dat, + fs=None, + window="hann", + noise=0, + n_bin=None, + n_fft=None, + n_pad=None, + step=None, + ): """ Calculate power spectral density of `dat` @@ -371,10 +388,10 @@ def _psd_base(self, dat, fs=None, window='hann', noise=0, The white-noise level of the measurement (in the same units as `dat`). n_bin : int - n_bin of veldat2, number of elements per bin if 'None' is taken + n_bin of veldat2, number of elements per bin if 'None' is taken from VelBinner n_fft : int - n_fft of veldat2, number of elements per bin if 'None' is taken + n_fft of veldat2, number of elements per bin if 'None' is taken from VelBinner n_pad : int (optional) The number of values to pad with zero. Default = 0 @@ -403,36 +420,34 @@ def _psd_base(self, dat, fs=None, window='hann', noise=0, dat = self.reshape(dat, n_pad=n_pad) for slc in slice1d_along_axis(dat.shape, -1): - out[slc] = psd_1D(dat[slc], n_fft, fs, - window=window, step=step) - if noise != 0: - out -= noise**2 / (fs/2) + out[slc] = psd_1D(dat[slc], n_fft, fs, window=window, step=step) + if np.any(noise): + out -= noise**2 / (fs / 2) # Make sure all values of the PSD are >0 (but still small): out[out < 0] = np.min(np.abs(out)) / 100 return out - def _csd_base(self, dat1, dat2, fs=None, window='hann', - n_fft=None, n_bin=None): + def _csd_base(self, dat1, dat2, fs=None, window="hann", n_fft=None, n_bin=None): """ Calculate the cross power spectral density of `dat`. Parameters ---------- dat1 : numpy.ndarray - The first (shorter, if applicable) raw dataArray of which to + The first (shorter, if applicable) raw dataArray of which to calculate the cpsd. dat2 : numpy.ndarray - The second (the shorter, if applicable) raw dataArray of which to + The second (the shorter, if applicable) raw dataArray of which to calculate the cpsd. fs : float (optional) The sample rate (Hz). window : str String indicating the window function to use. Default is 'hanning' n_fft : int - n_fft of veldat2, number of elements per bin if 'None' is taken + n_fft of veldat2, number of elements per bin if 'None' is taken from VelBinner n_bin : int - n_bin of veldat2, number of elements per bin if 'None' is taken + n_bin of veldat2, number of elements per bin if 'None' is taken from VelBinner Returns @@ -444,7 +459,7 @@ def _csd_base(self, dat1, dat2, fs=None, window='hann', ----- PSD's are calculated based on sample rate units - The two velocity inputs do not have to be perfectly synchronized, but + The two velocity inputs do not have to be perfectly synchronized, but they should have the same start and end timestamps """ @@ -453,7 +468,7 @@ def _csd_base(self, dat1, dat2, fs=None, window='hann', n_fft = self.n_fft_coh # want each slice to carry the same timespan n_bin2 = self._parse_nbin(n_bin) # bins for shorter array - n_bin1 = int(dat1.shape[-1]/(dat2.shape[-1]/n_bin2)) + n_bin1 = int(dat1.shape[-1] / (dat2.shape[-1] / n_bin2)) oshp = self._outshape_fft(dat1.shape, n_fft=n_fft, n_bin=n_bin1) oshp[-2] = np.min([oshp[-2], int(dat2.shape[-1] // n_bin2)]) @@ -461,17 +476,16 @@ def _csd_base(self, dat1, dat2, fs=None, window='hann', # The data is detrended in psd, so we don't need to do it here: dat1 = self.reshape(dat1, n_pad=n_fft) dat2 = self.reshape(dat2, n_pad=n_fft) - out = np.empty(oshp, dtype='c{}'.format(dat1.dtype.itemsize * 2)) + out = np.empty(oshp, dtype="c{}".format(dat1.dtype.itemsize * 2)) if dat1.shape == dat2.shape: cross = cpsd_1D else: cross = cpsd_quasisync_1D for slc in slice1d_along_axis(out.shape, -1): - out[slc] = cross(dat1[slc], dat2[slc], n_fft, - fs, window=window) + out[slc] = cross(dat1[slc], dat2[slc], n_fft, fs, window=window) return out - def _fft_freq(self, fs=None, units='Hz', n_fft=None, coh=False): + def _fft_freq(self, fs=None, units="Hz", n_fft=None, coh=False): """ Wrapper to calculate the ordinary or radial frequency vector @@ -486,7 +500,7 @@ def _fft_freq(self, fs=None, units='Hz', n_fft=None, coh=False): (default: False) i.e. use self.n_fft_coh instead of self.n_fft. n_fft : int - n_fft of veldat2, number of elements per bin if 'None' is taken + n_fft of veldat2, number of elements per bin if 'None' is taken from VelBinner Returns @@ -502,11 +516,13 @@ def _fft_freq(self, fs=None, units='Hz', n_fft=None, coh=False): fs = self._parse_fs(fs) - if ('Hz' not in units) and ('rad' not in units): - raise Exception('Valid fft frequency vector units are Hz \ - or rad/s') + if ("Hz" not in units) and ("rad" not in units): + raise Exception( + "Valid fft frequency vector units are Hz \ + or rad/s" + ) - if 'rad' in units: - return fft_frequency(n_fft, 2*np.pi*fs) + if "rad" in units: + return fft_frequency(n_fft, 2 * np.pi * fs) else: return fft_frequency(n_fft, fs) diff --git a/mhkit/dolfyn/io/api.py b/mhkit/dolfyn/io/api.py index e540d53d0..1364a46dc 100644 --- a/mhkit/dolfyn/io/api.py +++ b/mhkit/dolfyn/io/api.py @@ -7,20 +7,27 @@ from .rdi import read_rdi from .base import _create_dataset, _get_filetype from ..rotate.base import _set_coords -from ..time import date2matlab, matlab2date, date2dt64, dt642date, date2epoch, epoch2date +from ..time import ( + date2matlab, + matlab2date, + date2dt64, + dt642date, + date2epoch, + epoch2date, +) def _check_file_ext(path, ext): filename = path.replace("\\", "/").rsplit("/")[-1] # windows/linux # for a filename like mcrl.water_velocity-1s.b1.20200813.150000.nc file_ext = filename.rsplit(".")[-1] - if '.' in filename: + if "." in filename: if file_ext != ext: raise IOError("File extension must be of the type {}".format(ext)) if file_ext == ext: return path - return path + '.' + ext + return path + "." + ext def _decode_cf(dataset: xr.Dataset) -> xr.Dataset: @@ -76,7 +83,7 @@ def read(fname, userdata=True, nens=None, **kwargs): userdata : True, False, or string of userdata.json filename (default ``True``) Whether to read the '.userdata.json' file. nens : None, int or 2-element tuple (start, stop) - Number of pings or ensembles to read from the file. + Number of pings or ensembles to read from the file. Default is None, read entire file **kwargs : dict Passed to instrument-specific parser. @@ -88,19 +95,21 @@ def read(fname, userdata=True, nens=None, **kwargs): """ file_type = _get_filetype(fname) - if file_type == '': - raise IOError("File '{}' looks like a git-lfs pointer. You may need to " - "install and initialize git-lfs. See https://git-lfs.github.com" - " for details.".format(fname)) + if file_type == "": + raise IOError( + "File '{}' looks like a git-lfs pointer. You may need to " + "install and initialize git-lfs. See https://git-lfs.github.com" + " for details.".format(fname) + ) elif file_type is None: - raise IOError("File '{}' is not recognized as a file-type that is readable by " - "DOLfYN. If you think it should be readable, try using the " - "appropriate read function (`read_rdi`, `read_nortek`, or " - "`read_signature`) found in dolfyn.io.api.".format(fname)) + raise IOError( + "File '{}' is not recognized as a file-type that is readable by " + "DOLfYN. If you think it should be readable, try using the " + "appropriate read function (`read_rdi`, `read_nortek`, or " + "`read_signature`) found in dolfyn.io.api.".format(fname) + ) else: - func_map = dict(RDI=read_rdi, - nortek=read_nortek, - signature=read_signature) + func_map = dict(RDI=read_rdi, nortek=read_nortek, signature=read_signature) func = func_map[file_type] return func(fname, userdata=userdata, nens=nens, **kwargs) @@ -130,16 +139,13 @@ def read_example(name, **kwargs): """ testdir = dirname(abspath(__file__)) - exdir = normpath(join(testdir, relpath('../../../examples/data/dolfyn/'))) - filename = exdir + '/' + name + exdir = normpath(join(testdir, relpath("../../../examples/data/dolfyn/"))) + filename = exdir + "/" + name return read(filename, **kwargs) -def save(ds, filename, - format='NETCDF4', engine='netcdf4', - compression=False, - **kwargs): +def save(ds, filename, format="NETCDF4", engine="netcdf4", compression=False, **kwargs): """ Save xarray dataset as netCDF (.nc). @@ -167,31 +173,41 @@ def save(ds, filename, See the xarray.to_netcdf documentation for more details. """ - filename = _check_file_ext(filename, 'nc') + filename = _check_file_ext(filename, "nc") # Handling complex values for netCDF4 - ds.attrs['complex_vars'] = [] + ds.attrs["complex_vars"] = [] for var in ds.data_vars: if np.iscomplexobj(ds[var]): - ds[var+'_real'] = ds[var].real - ds[var+'_imag'] = ds[var].imag + ds[var + "_real"] = ds[var].real + ds[var + "_imag"] = ds[var].imag ds = ds.drop_vars(var) - ds.attrs['complex_vars'].append(var) + ds.attrs["complex_vars"].append(var) # For variables that get rewritten to float64 elif ds[var].dtype == np.float64: - ds[var] = ds[var].astype('float32') - - if compression: - enc = dict() - for ky in ds.variables: - enc[ky] = dict(zlib=True, complevel=1) - if 'encoding' in kwargs: - # Overwrite ('update') values in enc with whatever is in kwargs['encoding'] - enc.update(kwargs['encoding']) - else: - kwargs['encoding'] = enc + ds[var] = ds[var].astype("float32") + + # Write variable encoding + enc = dict() + if "encoding" in kwargs: + enc.update(kwargs["encoding"]) + for ky in ds.variables: + # Save prior encoding + enc[ky] = ds[ky].encoding + # Remove unexpected netCDF4 encoding parameters + # https://github.com/pydata/xarray/discussions/5709 + params = ["szip", "zstd", "bzip2", "blosc", "contiguous", "chunksizes"] + [enc[ky].pop(p) for p in params if p in enc[ky]] + + if compression: + # New netcdf4-c cannot compress variable length strings + if ds[ky].size <= 1 or isinstance(ds[ky].data[0], str): + continue + enc[ky].update(dict(zlib=True, complevel=1)) + + kwargs["encoding"] = enc # Fix encoding on datetime64 variables. ds = _decode_cf(ds) @@ -214,25 +230,26 @@ def load(filename): An xarray dataset from the binary instrument data. """ - filename = _check_file_ext(filename, 'nc') + filename = _check_file_ext(filename, "nc") - ds = xr.load_dataset(filename, engine='netcdf4') + ds = xr.load_dataset(filename, engine="netcdf4") # Convert numpy arrays and strings back to lists for nm in ds.attrs: - if type(ds.attrs[nm]) == np.ndarray and ds.attrs[nm].size > 1: + if isinstance(ds.attrs[nm], np.ndarray) and ds.attrs[nm].size > 1: ds.attrs[nm] = list(ds.attrs[nm]) - elif type(ds.attrs[nm]) == str and nm in ['rotate_vars']: + elif isinstance(ds.attrs[nm], str) and nm in ["rotate_vars"]: ds.attrs[nm] = [ds.attrs[nm]] # Rejoin complex numbers - if hasattr(ds, 'complex_vars') and len(ds.complex_vars): - if len(ds.complex_vars[0]) == 1: - ds.attrs['complex_vars'] = [ds.complex_vars] - for var in ds.complex_vars: - ds[var] = ds[var+'_real'] + ds[var+'_imag'] * 1j - ds = ds.drop_vars([var+'_real', var+'_imag']) - ds.attrs.pop('complex_vars') + if hasattr(ds, "complex_vars"): + if len(ds.complex_vars): + if len(ds.complex_vars[0]) == 1: + ds.attrs["complex_vars"] = [ds.complex_vars] + for var in ds.complex_vars: + ds[var] = ds[var + "_real"] + ds[var + "_imag"] * 1j + ds = ds.drop_vars([var + "_real", var + "_imag"]) + ds.attrs.pop("complex_vars") return ds @@ -262,20 +279,18 @@ def save_mat(ds, filename, datenum=True): """ def copy_attrs(matfile, ds, key): - if hasattr(ds[key], 'units'): - matfile['units'][key] = ds[key].units - if hasattr(ds[key], 'long_name'): - matfile['long_name'][key] = ds[key].long_name - if hasattr(ds[key], 'standard_name'): - matfile['standard_name'][key] = ds[key].standard_name + if hasattr(ds[key], "units"): + matfile["units"][key] = ds[key].units + if hasattr(ds[key], "long_name"): + matfile["long_name"][key] = ds[key].long_name + if hasattr(ds[key], "standard_name"): + matfile["standard_name"][key] = ds[key].standard_name - filename = _check_file_ext(filename, 'mat') + filename = _check_file_ext(filename, "mat") # Convert time to datenum - t_coords = [t for t in ds.coords if np.issubdtype( - ds[t].dtype, np.datetime64)] - t_data = [t for t in ds.data_vars if np.issubdtype( - ds[t].dtype, np.datetime64)] + t_coords = [t for t in ds.coords if np.issubdtype(ds[t].dtype, np.datetime64)] + t_data = [t for t in ds.data_vars if np.issubdtype(ds[t].dtype, np.datetime64)] if datenum: func = date2matlab @@ -289,19 +304,25 @@ def copy_attrs(matfile, ds, key): dt = func(dt642date(ds[ky])) ds[ky].data = dt - ds.attrs['time_coords'] = t_coords - ds.attrs['time_data_vars'] = t_data + ds.attrs["time_coords"] = t_coords + ds.attrs["time_data_vars"] = t_data # Save xarray structure with more descriptive structure names - matfile = {'vars': {}, 'coords': {}, 'config': {}, - 'units': {}, 'long_name': {}, 'standard_name': {}} + matfile = { + "vars": {}, + "coords": {}, + "config": {}, + "units": {}, + "long_name": {}, + "standard_name": {}, + } for ky in ds.data_vars: - matfile['vars'][ky] = ds[ky].values + matfile["vars"][ky] = ds[ky].values copy_attrs(matfile, ds, ky) for ky in ds.coords: - matfile['coords'][ky] = ds[ky].values + matfile["coords"][ky] = ds[ky].values copy_attrs(matfile, ds, ky) - matfile['config'] = ds.attrs + matfile["config"] = ds.attrs sio.savemat(filename, matfile) @@ -318,7 +339,7 @@ def load_mat(filename, datenum=True): filename : str Filename and/or path with the '.mat' extension datenum : bool - If true, converts time from datenum. If false, converts time from + If true, converts time from datenum. If false, converts time from "epoch time". Returns @@ -331,19 +352,25 @@ def load_mat(filename, datenum=True): scipy.io.loadmat() """ - filename = _check_file_ext(filename, 'mat') + filename = _check_file_ext(filename, "mat") data = sio.loadmat(filename, struct_as_record=False, squeeze_me=True) - ds_dict = {'vars': {}, 'coords': {}, 'config': {}, - 'units': {}, 'long_name': {}, 'standard_name': {}} + ds_dict = { + "vars": {}, + "coords": {}, + "config": {}, + "units": {}, + "long_name": {}, + "standard_name": {}, + } for nm in ds_dict: key_list = data[nm]._fieldnames for ky in key_list: ds_dict[nm][ky] = getattr(data[nm], ky) - ds_dict['data_vars'] = ds_dict.pop('vars') - ds_dict['attrs'] = ds_dict.pop('config') + ds_dict["data_vars"] = ds_dict.pop("vars") + ds_dict["attrs"] = ds_dict.pop("config") # Recreate dataset ds = _create_dataset(ds_dict) @@ -351,16 +378,20 @@ def load_mat(filename, datenum=True): # Convert numpy arrays and strings back to lists for nm in ds.attrs: - if type(ds.attrs[nm]) == np.ndarray and ds.attrs[nm].size > 1: + if isinstance(ds.attrs[nm], np.ndarray) and ds.attrs[nm].size > 1: try: - ds.attrs[nm] = [x.strip(' ') for x in list(ds.attrs[nm])] + ds.attrs[nm] = [x.strip(" ") for x in list(ds.attrs[nm])] except: ds.attrs[nm] = list(ds.attrs[nm]) - elif type(ds.attrs[nm]) == str and nm in ['time_coords', 'time_data_vars', 'rotate_vars']: + elif isinstance(ds.attrs[nm], str) and nm in [ + "time_coords", + "time_data_vars", + "rotate_vars", + ]: ds.attrs[nm] = [ds.attrs[nm]] - if hasattr(ds, 'orientation_down'): - ds['orientation_down'] = ds['orientation_down'].astype(bool) + if hasattr(ds, "orientation_down"): + ds["orientation_down"] = ds["orientation_down"].astype(bool) if datenum: func = matlab2date @@ -368,15 +399,15 @@ def load_mat(filename, datenum=True): func = epoch2date # Restore datnum to np.dt64 - if hasattr(ds, 'time_coords'): - for ky in ds.attrs['time_coords']: + if hasattr(ds, "time_coords"): + for ky in ds.attrs["time_coords"]: dt = date2dt64(func(ds[ky].values)) ds = ds.assign_coords({ky: dt}) - ds.attrs.pop('time_coords') - if hasattr(ds, 'time_data_vars'): - for ky in ds.attrs['time_data_vars']: + ds.attrs.pop("time_coords") + if hasattr(ds, "time_data_vars"): + for ky in ds.attrs["time_data_vars"]: dt = date2dt64(func(ds[ky].values)) ds[ky].data = dt - ds.attrs.pop('time_data_vars') + ds.attrs.pop("time_data_vars") return ds diff --git a/mhkit/dolfyn/io/base.py b/mhkit/dolfyn/io/base.py index 8f3b4469a..545035cdb 100644 --- a/mhkit/dolfyn/io/base.py +++ b/mhkit/dolfyn/io/base.py @@ -23,18 +23,18 @@ def _get_filetype(fname): ' - if the file looks like a GIT-LFS pointer. """ - with open(fname, 'rb') as rdr: + with open(fname, "rb") as rdr: bytes = rdr.read(40) code = bytes[:2].hex() - if code in ['7f79', '7f7f']: - return 'RDI' - elif code in ['a50a']: - return 'signature' - elif code in ['a505']: + if code in ["7f79", "7f7f"]: + return "RDI" + elif code in ["a50a"]: + return "signature" + elif code in ["a505"]: # AWAC - return 'nortek' - elif bytes == b'version https://git-lfs.github.com/spec/': - return '' + return "nortek" + elif bytes == b"version https://git-lfs.github.com/spec/": + return "" else: return None @@ -42,13 +42,12 @@ def _get_filetype(fname): def _find_userdata(filename, userdata=True): # This function finds the file to read if userdata: - for basefile in [filename.rsplit('.', 1)[0], - filename]: - jsonfile = basefile + '.userdata.json' + for basefile in [filename.rsplit(".", 1)[0], filename]: + jsonfile = basefile + ".userdata.json" if os.path.isfile(jsonfile): return _read_userdata(jsonfile) - elif isinstance(userdata, (str, )) or hasattr(userdata, 'read'): + elif isinstance(userdata, (str,)) or hasattr(userdata, "read"): return _read_userdata(userdata) return {} @@ -60,232 +59,269 @@ def _read_userdata(fname): """ with open(fname) as data_file: data = json.load(data_file) - for nm in ['body2head_rotmat', 'body2head_vec']: + for nm in ["body2head_rotmat", "body2head_vec"]: if nm in data: - new_name = 'inst' + nm[4:] + new_name = "inst" + nm[4:] warnings.warn( - f'{nm} has been deprecated, please change this to {new_name} \ - in {fname}.') + f"{nm} has been deprecated, please change this to {new_name} \ + in {fname}." + ) data[new_name] = data.pop(nm) - if 'inst2head_rotmat' in data: - if data['inst2head_rotmat'] in ['identity', 'eye', 1, 1.]: - data['inst2head_rotmat'] = np.eye(3) + if "inst2head_rotmat" in data: + if data["inst2head_rotmat"] in ["identity", "eye", 1, 1.0]: + data["inst2head_rotmat"] = np.eye(3) else: - data['inst2head_rotmat'] = np.array(data['inst2head_rotmat']) - if 'inst2head_vec' in data and type(data['inst2head_vec']) != list: - data['inst2head_vec'] = list(data['inst2head_vec']) + data["inst2head_rotmat"] = np.array(data["inst2head_rotmat"]) + if "inst2head_vec" in data and type(data["inst2head_vec"]) != list: + data["inst2head_vec"] = list(data["inst2head_vec"]) return data def _handle_nan(data): """ - Finds trailing nan's that cause issues in running the rotation + Finds trailing nan's that cause issues in running the rotation algorithms and deletes them. """ - nan = np.zeros(data['coords']['time'].shape, dtype=bool) - l = data['coords']['time'].size + nan = np.zeros(data["coords"]["time"].shape, dtype=bool) + l = data["coords"]["time"].size - if any(np.isnan(data['coords']['time'])): - nan += np.isnan(data['coords']['time']) + if any(np.isnan(data["coords"]["time"])): + nan += np.isnan(data["coords"]["time"]) # Required for motion-correction algorithm - var = ['accel', 'angrt', 'mag'] - for key in data['data_vars']: + var = ["accel", "angrt", "mag"] + for key in data["data_vars"]: if any(val in key for val in var): - shp = data['data_vars'][key].shape + shp = data["data_vars"][key].shape if shp[-1] == l: if len(shp) == 1: - if any(np.isnan(data['data_vars'][key])): - nan += np.isnan(data['data_vars'][key]) + if any(np.isnan(data["data_vars"][key])): + nan += np.isnan(data["data_vars"][key]) elif len(shp) == 2: - if any(np.isnan(data['data_vars'][key][-1])): - nan += np.isnan(data['data_vars'][key][-1]) + if any(np.isnan(data["data_vars"][key][-1])): + nan += np.isnan(data["data_vars"][key][-1]) trailing = np.cumsum(nan)[-1] if trailing > 0: - data['coords']['time'] = data['coords']['time'][:-trailing] - for key in data['data_vars']: - if data['data_vars'][key].shape[-1] == l: - data['data_vars'][key] = data['data_vars'][key][..., :-trailing] + data["coords"]["time"] = data["coords"]["time"][:-trailing] + for key in data["data_vars"]: + if data["data_vars"][key].shape[-1] == l: + data["data_vars"][key] = data["data_vars"][key][..., :-trailing] return data def _create_dataset(data): - """Creates an xarray dataset from dictionary created from binary + """ + Creates an xarray dataset from dictionary created from binary readers. Direction 'dir' coordinates are set in `set_coords` """ - ds = xr.Dataset() - tag = ['_avg', '_b5', '_echo', '_bt', '_gps', '_ast', '_sl'] - - FoR = {} - try: - beams = data['attrs']['n_beams'] - except: - beams = data['attrs']['n_beams_avg'] + + tag = ["_avg", "_b5", "_echo", "_bt", "_gps", "_altraw", "_altraw_avg", "_sl"] + + ds_dict = {} + for key in data["coords"]: + ds_dict[key] = {"dims": (key), "data": data["coords"][key]} + + # Set various coordinate frames + if "n_beams_avg" in data["attrs"]: + beams = data["attrs"]["n_beams_avg"] + else: + beams = data["attrs"]["n_beams"] n_beams = max(min(beams, 4), 3) - beams = np.arange(1, n_beams+1, dtype=np.int32) - FoR['beam'] = xr.DataArray(beams, dims=['beam'], name='beam', attrs={ - 'units': '1', 'long_name': 'Beam Reference Frame'}) - FoR['dir'] = xr.DataArray(beams, dims=['dir'], name='dir', attrs={ - 'units': '1', 'long_name': 'Reference Frame'}) + beams = np.arange(1, n_beams + 1, dtype=np.int32) - for key in data['data_vars']: + ds_dict["beam"] = {"dims": ("beam"), "data": beams} + ds_dict["dir"] = {"dims": ("dir"), "data": beams} + data["units"].update({"beam": "1", "dir": "1"}) + data["long_name"].update({"beam": "Beam Reference Frame", "dir": "Reference Frame"}) + + # Iterate through data variables and add them to new dictionary + for key in data["data_vars"]: # orientation matrices - if 'mat' in key: - if 'inst' in key: # beam2inst & inst2head orientation matrices - ds[key] = xr.DataArray(data['data_vars'][key], - coords={'x1': beams, 'x2': beams}, - dims=['x1', 'x2'], - attrs={'units': '1', - 'long_name': 'Rotation Matrix'}) - elif 'orientmat' in key: # earth2inst orientation matrix + if "mat" in key: + if "inst" in key: # beam2inst & inst2head orientation matrices + if "x1" not in ds_dict: + ds_dict["x1"] = {"dims": ("x1"), "data": beams} + ds_dict["x2"] = {"dims": ("x2"), "data": beams} + + ds_dict[key] = {"dims": ("x1", "x2"), "data": data["data_vars"][key]} + data["units"].update({key: "1"}) + data["long_name"].update({key: "Rotation Matrix"}) + + elif "orientmat" in key: # earth2inst orientation matrix if any(val in key for val in tag): - tg = '_' + key.rsplit('_')[-1] + tg = "_" + key.rsplit("_")[-1] else: - tg = '' - earth = xr.DataArray(['E', 'N', 'U'], dims=['earth'], name='earth', attrs={ - 'units': '1', 'long_name': 'Earth Reference Frame'}) - inst = xr.DataArray(['X', 'Y', 'Z'], dims=['inst'], name='inst', attrs={ - 'units': '1', 'long_name': 'Instrument Reference Frame'}) - time = data['coords']['time'+tg] - ds[key] = xr.DataArray(data['data_vars'][key], - coords={'earth': earth, - 'inst': inst, 'time'+tg: time}, - dims=['earth', 'inst', 'time'+tg], - attrs={'units': data['units']['orientmat'], - 'long_name': data['long_name']['orientmat']}) + tg = "" + + ds_dict["earth"] = {"dims": ("earth"), "data": ["E", "N", "U"]} + ds_dict["inst"] = {"dims": ("inst"), "data": ["X", "Y", "Z"]} + ds_dict[key] = { + "dims": ("earth", "inst", "time" + tg), + "data": data["data_vars"][key], + } + data["units"].update( + {"earth": "1", "inst": "1", key: data["units"]["orientmat"]} + ) + data["long_name"].update( + { + "earth": "Earth Reference Frame", + "inst": "Instrument Reference Frame", + key: data["long_name"]["orientmat"], + } + ) # quaternion units never change - elif 'quaternions' in key: + elif "quaternions" in key: if any(val in key for val in tag): - tg = '_' + key.rsplit('_')[-1] + tg = "_" + key.rsplit("_")[-1] else: - tg = '' - q = xr.DataArray(['w', 'x', 'y', 'z'], dims=['q'], name='q', attrs={ - 'units': '1', 'long_name': 'Quaternion Vector Components'}) - time = data['coords']['time'+tg] - ds[key] = xr.DataArray(data['data_vars'][key], - coords={'q': q, - 'time'+tg: time}, - dims=['q', 'time'+tg], - attrs={'units': data['units']['quaternions'], - 'long_name': data['long_name']['quaternions']}) + tg = "" + + if "q" not in ds_dict: + ds_dict["q"] = {"dims": ("q"), "data": ["w", "x", "y", "z"]} + data["units"].update({"q": "1"}) + data["long_name"].update({"q": "Quaternion Vector Components"}) + + ds_dict[key] = {"dims": ("q", "time" + tg), "data": data["data_vars"][key]} + data["units"].update({key: data["units"]["quaternions"]}) + data["long_name"].update({key: data["long_name"]["quaternions"]}) + else: - # Assign each variable to a dataArray - ds[key] = xr.DataArray(data['data_vars'][key]) - # Assign metadata to each dataArray - for md in ['units', 'long_name', 'standard_name']: - if key in data[md]: - ds[key].attrs[md] = data[md][key] - try: # make sure ones with tags get units - tg = '_' + key.rsplit('_')[-1] - if any(val in key for val in tag): - ds[key].attrs[md] = data[md][key[:-len(tg)]] - except: - pass - - # Fill in dimensions and coordinates for each dataArray - shp = data['data_vars'][key].shape - l = len(shp) - if l == 1: # 1D variables - if any(val in key for val in tag): - tg = '_' + key.rsplit('_')[-1] + shp = data["data_vars"][key].shape + if len(shp) == 1: # 1D variables + if "_altraw_avg" in key: + tg = "_altraw_avg" + elif any(val in key for val in tag): + tg = "_" + key.rsplit("_")[-1] else: - tg = '' - ds[key] = ds[key].rename({'dim_0': 'time'+tg}) - ds[key] = ds[key].assign_coords( - {'time'+tg: data['coords']['time'+tg]}) - - elif l == 2: # 2D variables - if key == 'echo': - ds[key] = ds[key].rename({'dim_0': 'range_echo', - 'dim_1': 'time_echo'}) - ds[key] = ds[key].assign_coords({'range_echo': data['coords']['range_echo'], - 'time_echo': data['coords']['time_echo']}) + tg = "" + ds_dict[key] = {"dims": ("time" + tg), "data": data["data_vars"][key]} + + elif len(shp) == 2: # 2D variables + if key == "echo": + ds_dict[key] = { + "dims": ("range_echo", "time_echo"), + "data": data["data_vars"][key], + } + elif key == "samp_altraw": + ds_dict[key] = { + "dims": ("n_altraw", "time_altraw"), + "data": data["data_vars"][key], + } + elif key == "samp_altraw_avg": + ds_dict[key] = { + "dims": ("n_altraw_avg", "time_altraw_avg"), + "data": data["data_vars"][key], + } + # ADV/ADCP instrument vector data, bottom tracking elif shp[0] == n_beams and not any(val in key for val in tag[:3]): - if 'bt' in key and 'time_bt' in data['coords']: - tg = '_bt' + if "bt" in key and "time_bt" in data["coords"]: + tg = "_bt" else: - tg = '' - if any(key.rsplit('_')[0] in s for s in ['amp', 'corr', 'dist', 'prcnt_gd']): - dim0 = 'beam' + tg = "" + if any( + key.rsplit("_")[0] in s + for s in ["amp", "corr", "dist", "prcnt_gd"] + ): + dim0 = "beam" else: - dim0 = 'dir' - ds[key] = ds[key].rename({'dim_0': dim0, - 'dim_1': 'time'+tg}) - ds[key] = ds[key].assign_coords({dim0: FoR[dim0], - 'time'+tg: data['coords']['time'+tg]}) + dim0 = "dir" + ds_dict[key] = { + "dims": (dim0, "time" + tg), + "data": data["data_vars"][key], + } + # ADCP IMU data elif shp[0] == 3: if not any(val in key for val in tag): - tg = '' + tg = "" else: tg = [val for val in tag if val in key] tg = tg[0] - dirIMU = xr.DataArray([1, 2, 3], dims=['dirIMU'], name='dirIMU', attrs={ - 'units': '1', 'long_name': 'Reference Frame'}) - ds[key] = ds[key].rename({'dim_0': 'dirIMU', - 'dim_1': 'time'+tg}) - ds[key] = ds[key].assign_coords({'dirIMU': dirIMU, - 'time'+tg: data['coords']['time'+tg]}) - - ds[key].attrs['coverage_content_type'] = 'physicalMeasurement' - - elif l == 3: # 3D variables - if 'vel' in key: - dim0 = 'dir' + + if "dirIMU" not in ds_dict: + ds_dict["dirIMU"] = {"dims": ("dirIMU"), "data": [1, 2, 3]} + data["units"].update({"dirIMU": "1"}) + data["long_name"].update({"dirIMU": "Reference Frame"}) + + ds_dict[key] = { + "dims": ("dirIMU", "time" + tg), + "data": data["data_vars"][key], + } + + elif "b5" in tg: + ds_dict[key] = { + "dims": ("range_b5", "time_b5"), + "data": data["data_vars"][key], + } + + elif len(shp) == 3: # 3D variables + if "vel" in key: + dim0 = "dir" else: # amp, corr, prcnt_gd, status - dim0 = 'beam' + dim0 = "beam" - if not any(val in key for val in tag) or ('_avg' in key): - if '_avg' in key: - tg = '_avg' + if not any(val in key for val in tag) or ("_avg" in key): + if "_avg" in key: + tg = "_avg" else: - tg = '' - ds[key] = ds[key].rename({'dim_0': dim0, - 'dim_1': 'range'+tg, - 'dim_2': 'time'+tg}) - ds[key] = ds[key].assign_coords({dim0: FoR[dim0], - 'range'+tg: data['coords']['range'+tg], - 'time'+tg: data['coords']['time'+tg]}) - elif 'b5' in key: - # xarray can't handle coords of length 1 - ds[key] = ds[key][0] - ds[key] = ds[key].rename({'dim_1': 'range_b5', - 'dim_2': 'time_b5'}) - ds[key] = ds[key].assign_coords({'range_b5': data['coords']['range_b5'], - 'time_b5': data['coords']['time_b5']}) - elif 'sl' in key: - ds[key] = ds[key].rename({'dim_0': dim0, - 'dim_1': 'range_sl', - 'dim_2': 'time'}) - ds[key] = ds[key].assign_coords({'range_sl': data['coords']['range_sl'], - 'time': data['coords']['time']}) + tg = "" + ds_dict[key] = { + "dims": (dim0, "range" + tg, "time" + tg), + "data": data["data_vars"][key], + } + + elif "b5" in key: + # "vel_b5" sometimes stored as (1, range_b5, time_b5) + ds_dict[key] = { + "dims": ("range_b5", "time_b5"), + "data": data["data_vars"][key][0], + } + elif "sl" in key: + ds_dict[key] = { + "dims": (dim0, "range_sl", "time"), + "data": data["data_vars"][key], + } else: - ds = ds.drop_vars(key) - warnings.warn(f'Variable not included in dataset: {key}') - - ds[key].attrs['coverage_content_type'] = 'physicalMeasurement' + warnings.warn(f"Variable not included in dataset: {key}") + + # Create dataset + ds = xr.Dataset.from_dict(ds_dict) + + # Assign data array attributes + for key in ds.variables: + for md in ["units", "long_name", "standard_name"]: + if key in data[md]: + ds[key].attrs[md] = data[md][key] + if len(ds[key].shape) > 1: + ds[key].attrs["coverage_content_type"] = "physicalMeasurement" + try: # make sure ones with tags get units + tg = "_" + key.rsplit("_")[-1] + if any(val in key for val in tag): + ds[key].attrs[md] = data[md][key[: -len(tg)]] + except: + pass - # coordinate attributes + # Assign coordinate attributes for ky in ds.dims: - ds[ky].attrs['coverage_content_type'] = 'coordinate' - r_list = [r for r in ds.coords if 'range' in r] + ds[ky].attrs["coverage_content_type"] = "coordinate" + r_list = [r for r in ds.coords if "range" in r] for ky in r_list: - ds[ky].attrs['units'] = 'm' - ds[ky].attrs['long_name'] = 'Profile Range' - ds[ky].attrs['description'] = 'Distance to the center of each depth bin' - time_list = [t for t in ds.coords if 'time' in t] + ds[ky].attrs["units"] = "m" + ds[ky].attrs["long_name"] = "Profile Range" + ds[ky].attrs["description"] = "Distance to the center of each depth bin" + time_list = [t for t in ds.coords if "time" in t] for ky in time_list: - ds[ky].attrs['units'] = 'seconds since 1970-01-01 00:00:00' - ds[ky].attrs['long_name'] = 'Time' - ds[ky].attrs['standard_name'] = 'time' + ds[ky].attrs["units"] = "seconds since 1970-01-01 00:00:00" + ds[ky].attrs["long_name"] = "Time" + ds[ky].attrs["standard_name"] = "time" - # dataset metadata - ds.attrs = data['attrs'] + # Set dataset metadata + ds.attrs = data["attrs"] return ds diff --git a/mhkit/dolfyn/io/nortek.py b/mhkit/dolfyn/io/nortek.py index 4709df7aa..3cfc71e00 100644 --- a/mhkit/dolfyn/io/nortek.py +++ b/mhkit/dolfyn/io/nortek.py @@ -14,8 +14,9 @@ from ..rotate import api as rot -def read_nortek(filename, userdata=True, debug=False, do_checksum=False, - nens=None, **kwargs): +def read_nortek( + filename, userdata=True, debug=False, do_checksum=False, nens=None, **kwargs +): """ Read a classic Nortek (AWAC and Vector) datafile @@ -31,7 +32,7 @@ def read_nortek(filename, userdata=True, debug=False, do_checksum=False, do_checksum : bool Whether to perform the checksum of each data block. Default = False nens : None, int or 2-element tuple (start, stop) - Number of pings or ensembles to read from the file. + Number of pings or ensembles to read from the file. Default is None, read entire file Returns @@ -45,17 +46,18 @@ def read_nortek(filename, userdata=True, debug=False, do_checksum=False, for handler in logging.root.handlers[:]: logging.root.removeHandler(handler) filepath = Path(filename) - logfile = filepath.with_suffix('.dolfyn.log') - logging.basicConfig(filename=str(logfile), - filemode='w', - level=logging.NOTSET, - format='%(name)s - %(levelname)s - %(message)s') + logfile = filepath.with_suffix(".dolfyn.log") + logging.basicConfig( + filename=str(logfile), + filemode="w", + level=logging.NOTSET, + format="%(name)s - %(levelname)s - %(message)s", + ) userdata = _find_userdata(filename, userdata) - with _NortekReader(filename, debug=debug, do_checksum=do_checksum, - nens=nens) as rdr: - rdr.readfile() + rdr = _NortekReader(filename, debug=debug, do_checksum=do_checksum, nens=nens) + rdr.readfile() rdr.dat2sci() dat = rdr.data @@ -63,41 +65,44 @@ def read_nortek(filename, userdata=True, debug=False, do_checksum=False, dat = _handle_nan(dat) # Search for missing timestamps and interpolate them - coords = dat['coords'] - t_list = [t for t in coords if 'time' in t] + coords = dat["coords"] + t_list = [t for t in coords if "time" in t] for ky in t_list: tdat = coords[ky] tdat[tdat == 0] = np.NaN if np.isnan(tdat).any(): - tag = ky.lstrip('time') - warnings.warn("Zero/NaN values found in '{}'. Interpolating and " - "extrapolating them. To identify which values were filled later, " - "look for 0 values in 'status{}'".format(ky, tag)) - tdat = time._fill_time_gaps( - tdat, sample_rate_hz=dat['attrs']['fs']) - coords[ky] = time.epoch2dt64(tdat).astype('datetime64[ns]') + tag = ky.lstrip("time") + warnings.warn( + "Zero/NaN values found in '{}'. Interpolating and " + "extrapolating them. To identify which values were filled later, " + "look for 0 values in 'status{}'".format(ky, tag) + ) + tdat = time._fill_time_gaps(tdat, sample_rate_hz=dat["attrs"]["fs"]) + coords[ky] = time.epoch2dt64(tdat).astype("datetime64[ns]") # Apply rotation matrix and declination rotmat = None declin = None for nm in userdata: - if 'rotmat' in nm: + if "rotmat" in nm: rotmat = userdata[nm] - elif 'dec' in nm: + elif "dec" in nm: declin = userdata[nm] else: - dat['attrs'][nm] = userdata[nm] + dat["attrs"][nm] = userdata[nm] # Create xarray dataset from upper level dictionary ds = _create_dataset(dat) ds = _set_coords(ds, ref_frame=ds.coord_sys) - if 'orientmat' not in ds: - ds['orientmat'] = _calc_omat(ds['time'], - ds['heading'], - ds['pitch'], - ds['roll'], - ds.get('orientation_down', None)) + if "orientmat" not in ds: + ds["orientmat"] = _calc_omat( + ds["time"], + ds["heading"], + ds["pitch"], + ds["roll"], + ds.get("orientation_down", None), + ) if rotmat is not None: rot.set_inst2head_rotmat(ds, rotmat, inplace=True) @@ -114,11 +119,11 @@ def read_nortek(filename, userdata=True, debug=False, do_checksum=False, def _bcd2char(cBCD): - """Taken from the Nortek System Integrator Manual + """Taken from the Nortek System Integrator Manual "Example Program" Chapter. """ cBCD = min(cBCD, 153) - c = (cBCD & 15) + c = cBCD & 15 c += 10 * (cBCD >> 4) return c @@ -128,13 +133,13 @@ def _bitshift8(val): def _int2binarray(val, n): - out = np.zeros(n, dtype='bool') + out = np.zeros(n, dtype="bool") for idx, n in enumerate(range(n)): - out[idx] = val & (2 ** n) + out[idx] = val & (2**n) return out -class _NortekReader(): +class _NortekReader: """ A class for reading reading nortek binary files. This reader currently only supports AWAC and Vector data formats. @@ -153,27 +158,38 @@ class _NortekReader(): bufsize : int The size of the read buffer to use. Default = 100000 nens : None, int or 2-element tuple (start, stop) - Number of pings or ensembles to read from the file. + Number of pings or ensembles to read from the file. Default is None, read entire file """ _lastread = [None, None, None, None, None] - fun_map = {'0x00': 'read_user_cfg', - '0x04': 'read_head_cfg', - '0x05': 'read_hw_cfg', - '0x07': 'read_vec_checkdata', - '0x10': 'read_vec_data', - '0x11': 'read_vec_sysdata', - '0x12': 'read_vec_hdr', - '0x71': 'read_microstrain', - '0x20': 'read_awac_profile', - } - - def __init__(self, fname, endian=None, debug=False, - do_checksum=True, bufsize=100000, nens=None): + fun_map = { + "0x00": "read_user_cfg", + "0x04": "read_head_cfg", + "0x05": "read_hw_cfg", + "0x07": "read_vec_checkdata", + "0x10": "read_vec_data", + "0x11": "read_vec_sysdata", + "0x12": "read_vec_hdr", + "0x20": "read_awac_profile", + "0x30": "read_awac_waves", + "0x31": "read_awac_waves_hdr", + "0x36": "read_awac_waves", # "SUV" + "0x71": "read_microstrain", + } + + def __init__( + self, + fname, + endian=None, + debug=False, + do_checksum=True, + bufsize=100000, + nens=None, + ): self.fname = fname self._bufsize = bufsize - self.f = open(_abspath(fname), 'rb', 1000) + self.f = open(_abspath(fname), "rb", 1000) self.do_checksum = do_checksum self.filesize # initialize the filesize. self.debug = debug @@ -187,29 +203,32 @@ def __init__(self, fname, endian=None, debug=False, self._npings = nens else: if len(nens) != 2: - raise TypeError('nens must be: None (), int, or len 2') - warnings.warn("A 'start ensemble' is not yet supported " - "for the Nortek reader. This function will read " - "the entire file, then crop the beginning at " - "nens[0].") + raise TypeError("nens must be: None (), int, or len 2") + warnings.warn( + "A 'start ensemble' is not yet supported " + "for the Nortek reader. This function will read " + "the entire file, then crop the beginning at " + "nens[0]." + ) self._npings = nens[1] self._n_start = nens[0] if endian is None: - if unpack('HH', self.read(4)) == (1445, 24): - endian = '>' + if unpack("HH", self.read(4)) == (1445, 24): + endian = ">" else: - raise Exception("I/O error: could not determine the " - "'endianness' of the file. Are you sure this is a Nortek " - "file?") + raise Exception( + "I/O error: could not determine the " + "'endianness' of the file. Are you sure this is a Nortek " + "file?" + ) self.endian = endian self.f.seek(0, 0) # This is the configuration data: self.config = {} - err_msg = ("I/O error: The file does not " - "appear to be a Nortek data file.") + err_msg = "I/O error: The file does not " "appear to be a Nortek data file." # Read the header: if self.read_id() == 5: self.read_hw_cfg() @@ -223,49 +242,54 @@ def __init__(self, fname, endian=None, debug=False, self.read_user_cfg() else: raise Exception(err_msg) - if self.config['hdw']['serial_number'][0:3].upper() == 'WPR': - self.config['config_type'] = 'AWAC' - elif self.config['hdw']['serial_number'][0:3].upper() == 'VEC': - self.config['config_type'] = 'ADV' + if self.config["hdw"]["serial_number"][0:3].upper() == "WPR": + self.config["config_type"] = "AWAC" + elif self.config["hdw"]["serial_number"][0:3].upper() == "VEC": + self.config["config_type"] = "ADV" # Initialize the instrument type: - self._inst = self.config.pop('config_type') + self._inst = self.config.pop("config_type") # This is the position after reading the 'hardware', # 'head', and 'user' configuration. pnow = self.pos # Run the appropriate initialization routine (e.g. init_ADV). - getattr(self, 'init_' + self._inst)() + getattr(self, "init_" + self._inst)() self.f.close() # This has a small buffer, so close it. # This has a large buffer... - self.f = open(_abspath(fname), 'rb', bufsize) + self.f = open(_abspath(fname), "rb", bufsize) self.close = self.f.close if self._npings is not None: self.n_samp_guess = self._npings self.f.seek(pnow, 0) # Seek to the previous position. - da = self.data['attrs'] - if self.config['n_burst'] > 0: - fs = round(self.config['fs'], 7) - da['duty_cycle_n_burst'] = self.config['n_burst'] - da['duty_cycle_interval'] = self.config['burst_interval'] + da = self.data["attrs"] + if self.config["n_burst"] > 0: + fs = round(self.config["fs"], 7) + da["duty_cycle_n_burst"] = self.config["n_burst"] + da["duty_cycle_interval"] = self.config["burst_interval"] if fs > 1: - burst_seconds = self.config['n_burst']/fs + burst_seconds = self.config["n_burst"] / fs else: - burst_seconds = round(1/fs, 3) - da['duty_cycle_description'] = "{} second bursts collected at {} Hz, with bursts taken every {} minutes".format( - burst_seconds, fs, self.config['burst_interval']/60) - self.burst_start = np.zeros(self.n_samp_guess, dtype='bool') - da['fs'] = self.config['fs'] - da['coord_sys'] = {'XYZ': 'inst', - 'ENU': 'earth', - 'beam': 'beam'}[self.config['coord_sys_axes']] - da['has_imu'] = 0 # Initiate attribute + burst_seconds = round(1 / fs, 3) + da["duty_cycle_description"] = ( + "{} second bursts collected at {} Hz, with bursts taken every {} minutes".format( + burst_seconds, fs, self.config["burst_interval"] / 60 + ) + ) + self.burst_start = np.zeros(self.n_samp_guess, dtype="bool") + da["fs"] = self.config["fs"] + da["coord_sys"] = {"XYZ": "inst", "ENU": "earth", "beam": "beam"}[ + self.config["coord_sys_axes"] + ] + da["has_imu"] = 0 # Initiate attribute if self.debug: - logging.info('Init completed') + logging.info("Init completed") @property - def filesize(self,): - if not hasattr(self, '_filesz'): + def filesize( + self, + ): + if not hasattr(self, "_filesz"): pos = self.pos self.f.seek(0, 2) # Seek to the end of the file to determine the filesize. @@ -274,49 +298,61 @@ def filesize(self,): return self._filesz @property - def pos(self,): + def pos(self): return self.f.tell() - def init_ADV(self,): - dat = self.data = {'data_vars': {}, 'coords': {}, 'attrs': {}, - 'units': {}, 'long_name': {}, 'standard_name': {}, - 'sys': {}} - da = dat['attrs'] - dv = dat['data_vars'] - da['inst_make'] = 'Nortek' - da['inst_model'] = 'Vector' - da['inst_type'] = 'ADV' - da['rotate_vars'] = ['vel'] - dv['beam2inst_orientmat'] = self.config.pop('beam2inst_orientmat') - self.config['fs'] = 512 / self.config['awac']['avg_interval'] - da.update(self.config['usr']) - da.update(self.config['adv']) - da.update(self.config['head']) - da.update(self.config['hdw']) + def init_ADV(self): + dat = self.data = { + "data_vars": {}, + "coords": {}, + "attrs": {}, + "units": {}, + "long_name": {}, + "standard_name": {}, + "sys": {}, + } + da = dat["attrs"] + dv = dat["data_vars"] + da["inst_make"] = "Nortek" + da["inst_model"] = "Vector" + da["inst_type"] = "ADV" + da["rotate_vars"] = ["vel"] + dv["beam2inst_orientmat"] = self.config.pop("beam2inst_orientmat") + self.config["fs"] = 512 / self.config["awac"]["avg_interval"] + da.update(self.config["usr"]) + da.update(self.config["adv"]) + da.update(self.config["head"]) + da.update(self.config["hdw"]) # No apparent way to determine how many samples are in a file - dlta = self.code_spacing('0x11') + dlta = self.code_spacing("0x11") self.n_samp_guess = int(self.filesize / dlta + 1) - self.n_samp_guess *= int(self.config['fs']) - - def init_AWAC(self,): - dat = self.data = {'data_vars': {}, 'coords': {}, 'attrs': {}, - 'units': {}, 'long_name': {}, 'standard_name': {}, - 'sys': {}} - da = dat['attrs'] - dv = dat['data_vars'] - da['inst_make'] = 'Nortek' - da['inst_model'] = 'AWAC' - da['inst_type'] = 'ADCP' - dv['beam2inst_orientmat'] = self.config.pop('beam2inst_orientmat') - da['rotate_vars'] = ['vel'] - self.config['fs'] = 1. / self.config['awac']['avg_interval'] - da.update(self.config['usr']) - da.update(self.config['awac']) - da.update(self.config['head']) - da.update(self.config['hdw']) - - space = self.code_spacing('0x20') + self.n_samp_guess *= int(self.config["fs"]) + + def init_AWAC(self): + dat = self.data = { + "data_vars": {}, + "coords": {}, + "attrs": {}, + "units": {}, + "long_name": {}, + "standard_name": {}, + "sys": {}, + } + da = dat["attrs"] + dv = dat["data_vars"] + da["inst_make"] = "Nortek" + da["inst_model"] = "AWAC" + da["inst_type"] = "ADCP" + dv["beam2inst_orientmat"] = self.config.pop("beam2inst_orientmat") + da["rotate_vars"] = ["vel"] + self.config["fs"] = 1.0 / self.config["awac"]["avg_interval"] + da.update(self.config["usr"]) + da.update(self.config["awac"]) + da.update(self.config["head"]) + da.update(self.config["hdw"]) + + space = self.code_spacing("0x20") if space == 0: # code spacing is zero if there's only 1 profile self.n_samp_guess = 1 @@ -326,62 +362,62 @@ def init_AWAC(self,): def read(self, nbyte): byts = self.f.read(nbyte) if not (len(byts) == nbyte): - raise EOFError('Reached the end of the file') + raise EOFError("Reached the end of the file") return byts def findnext(self, do_cs=True): """Find the next data block by checking the checksum and the sync byte(0xa5) """ - sum = np.uint16(int('0xb58c', 0)) # Initialize the sum + sum = np.uint16(int("0xb58c", 0)) # Initialize the sum cs = 0 func = _bitshift8 func2 = np.uint8 - if self.endian == '<': + if self.endian == "<": func = np.uint8 func2 = _bitshift8 while True: - val = unpack(self.endian + 'H', self.read(2))[0] + val = unpack(self.endian + "H", self.read(2))[0] if func(val) == 165 and (not do_cs or cs == np.uint16(sum)): self.f.seek(-2, 1) return hex(func2(val)) sum += cs cs = val - def read_id(self,): - """Read the next 'ID' from the file. - """ + def read_id(self): + """Read the next 'ID' from the file.""" self._thisid_bytes = bts = self.read(2) - tmp = unpack(self.endian + 'BB', bts) + tmp = unpack(self.endian + "BB", bts) if self.debug: - logging.info('Position: {}, codes: {}'.format(self.f.tell(), tmp)) + logging.info("Position: {}, codes: {}".format(self.f.tell(), tmp)) if tmp[0] != 165: # This catches a corrupted data block. if self.debug: - logging.warning("Corrupted data block sync code (%d, %d) found " - "in ping %d. Searching for next valid code..." % - (tmp[0], tmp[1], self.c)) + logging.warning( + "Corrupted data block sync code (%d, %d) found " + "in ping %d. Searching for next valid code..." + % (tmp[0], tmp[1], self.c) + ) val = int(self.findnext(do_cs=False), 0) self.f.seek(2, 1) if self.debug: - logging.debug( - ' ...FOUND {} at position: {}.'.format(val, self.pos)) + logging.debug(" ...FOUND {} at position: {}.".format(val, self.pos)) return val return tmp[1] - def readnext(self,): - id = '0x%02x' % self.read_id() + def readnext(self): + id = "0x%02x" % self.read_id() if id in self.fun_map: func_name = self.fun_map[id] out = getattr(self, func_name)() # Should return None self._lastread = [func_name[5:]] + self._lastread[:-1] return out else: - logging.warning('Unrecognized identifier: ' + id) + logging.warning("Unrecognized identifier: " + id) self.f.seek(-2, 1) return 10 def readfile(self, nlines=None): - print('Reading file %s ...' % self.fname) + print("Reading file %s ..." % self.fname) retval = None try: while not retval: @@ -392,7 +428,7 @@ def readfile(self, nlines=None): self.findnext() retval = None if self._npings is not None and self.c >= self._npings: - if 'microstrain' in self._dtypes: + if "microstrain" in self._dtypes: try: self.readnext() except: @@ -400,10 +436,10 @@ def readfile(self, nlines=None): break except EOFError: if self.debug: - logging.info(' end of file at {} bytes.'.format(self.pos)) + logging.info(" end of file at {} bytes.".format(self.pos)) else: if self.debug: - logging.info(' stopped at {} bytes.'.format(self.pos)) + logging.info(" stopped at {} bytes.".format(self.pos)) self.c -= 1 _crop_data(self.data, slice(0, self.c), self.n_samp_guess) @@ -416,7 +452,7 @@ def findnextid(self, id): if nowid == 16: shift = 22 else: - sz = 2 * unpack(self.endian + 'H', self.read(2))[0] + sz = 2 * unpack(self.endian + "H", self.read(2))[0] shift = sz - 4 self.f.seek(shift, 1) return self.pos @@ -434,161 +470,189 @@ def code_spacing(self, searchcode, iternum=50): except EOFError: break if self.debug: - logging.info('p0={}, pos={}, i={}'.format(p0, self.pos, i)) + logging.info("p0={}, pos={}, i={}".format(p0, self.pos, i)) # Compute the average of the data size: return (self.pos - p0) / (i + 1) def checksum(self, byts): - """Perform a checksum on `byts` and read the checksum value. - """ + """Perform a checksum on `byts` and read the checksum value.""" if self.do_checksum: - if not np.sum(unpack(self.endian + str(int(1 + len(byts) / 2)) + 'H', - self._thisid_bytes + byts)) + \ - 46476 - unpack(self.endian + 'H', self.read(2)): - + if ( + not np.sum( + unpack( + self.endian + str(int(1 + len(byts) / 2)) + "H", + self._thisid_bytes + byts, + ) + ) + + 46476 + - unpack(self.endian + "H", self.read(2)) + ): raise Exception("CheckSum Failed at {}".format(self.pos)) else: self.f.seek(2, 1) - def read_user_cfg(self,): + def read_user_cfg(self): # ID: '0x00 = 00 if self.debug: - logging.info('Reading user configuration (0x00) ping #{} @ {}...' - .format(self.c, self.pos)) + logging.info( + "Reading user configuration (0x00) ping #{} @ {}...".format( + self.c, self.pos + ) + ) cfg_u = self.config byts = self.read(508) # the first two bytes are the size. - tmp = unpack(self.endian + - '2x18H6s4HI9H90H80s48xH50x6H4xH2x2H2xH30x8H', - byts) - cfg_u['usr'] = {} - cfg_u['adv'] = {} - cfg_u['awac'] = {} - - cfg_u['transmit_pulse_length_m'] = tmp[0] # counts - cfg_u['blank_dist'] = tmp[1] # overridden below - cfg_u['receive_length_m'] = tmp[2] # counts - cfg_u['time_between_pings'] = tmp[3] # counts - cfg_u['time_between_bursts'] = tmp[4] # counts - cfg_u['adv']['n_pings_per_burst'] = tmp[5] - cfg_u['awac']['avg_interval'] = tmp[6] - cfg_u['usr']['n_beams'] = tmp[7] + tmp = unpack(self.endian + "2x18H6s4HI9H90H80s48xH50x6H4xH2x2H2xH30x8H", byts) + cfg_u["usr"] = {} + cfg_u["adv"] = {} + cfg_u["awac"] = {} + + cfg_u["transmit_pulse_length_m"] = tmp[0] # counts + cfg_u["blank_dist"] = tmp[1] # overridden below + cfg_u["receive_length_m"] = tmp[2] # counts + cfg_u["time_between_pings"] = tmp[3] # counts + cfg_u["time_between_bursts"] = tmp[4] # counts + cfg_u["adv"]["n_pings_per_burst"] = tmp[5] + cfg_u["awac"]["avg_interval"] = tmp[6] + cfg_u["usr"]["n_beams"] = tmp[7] TimCtrlReg = _int2binarray(tmp[8], 16).astype(int) # From the nortek system integrator manual # (note: bit numbering is zero-based) - cfg_u['usr']['profile_mode'] = [ - 'single', 'continuous'][TimCtrlReg[1]] - cfg_u['usr']['burst_mode'] = str(bool(~TimCtrlReg[2])) - cfg_u['usr']['power_level'] = TimCtrlReg[5] + 2 * TimCtrlReg[6] + 1 - cfg_u['usr']['sync_out_pos'] = ['middle', 'end', ][TimCtrlReg[7]] - cfg_u['usr']['sample_on_sync'] = str(bool(TimCtrlReg[8])) - cfg_u['usr']['start_on_sync'] = str(bool(TimCtrlReg[9])) - cfg_u['PwrCtrlReg'] = _int2binarray(tmp[9], 16) - cfg_u['A1'] = tmp[10] - cfg_u['B0'] = tmp[11] - cfg_u['B1'] = tmp[12] - cfg_u['usr']['compass_update_rate'] = tmp[13] - cfg_u['coord_sys_axes'] = ['ENU', 'XYZ', 'beam'][tmp[14]] - cfg_u['usr']['n_bins'] = tmp[15] - cfg_u['bin_length'] = tmp[16] - cfg_u['burst_interval'] = tmp[17] - cfg_u['usr']['deployment_name'] = tmp[18].partition(b'\x00')[ - 0].decode('utf-8') - cfg_u['usr']['wrap_mode'] = str(bool(tmp[19])) - cfg_u['deployment_time'] = np.array(tmp[20:23]) - cfg_u['diagnotics_interval'] = tmp[23] + cfg_u["usr"]["profile_mode"] = ["single", "continuous"][TimCtrlReg[1]] + cfg_u["usr"]["burst_mode"] = str(bool(~TimCtrlReg[2])) + cfg_u["usr"]["power_level"] = TimCtrlReg[5] + 2 * TimCtrlReg[6] + 1 + cfg_u["usr"]["sync_out_pos"] = [ + "middle", + "end", + ][TimCtrlReg[7]] + cfg_u["usr"]["sample_on_sync"] = str(bool(TimCtrlReg[8])) + cfg_u["usr"]["start_on_sync"] = str(bool(TimCtrlReg[9])) + cfg_u["PwrCtrlReg"] = _int2binarray(tmp[9], 16) + cfg_u["A1"] = tmp[10] + cfg_u["B0"] = tmp[11] + cfg_u["B1"] = tmp[12] + cfg_u["usr"]["compass_update_rate"] = tmp[13] + cfg_u["coord_sys_axes"] = ["ENU", "XYZ", "beam"][tmp[14]] + cfg_u["usr"]["n_bins"] = tmp[15] + cfg_u["bin_length"] = tmp[16] + cfg_u["burst_interval"] = tmp[17] + cfg_u["usr"]["deployment_name"] = tmp[18].partition(b"\x00")[0].decode("utf-8") + cfg_u["usr"]["wrap_mode"] = str(bool(tmp[19])) + cfg_u["deployment_time"] = np.array(tmp[20:23]) + cfg_u["diagnotics_interval"] = tmp[23] Mode0 = _int2binarray(tmp[24], 16) - cfg_u['user_soundspeed_adj_factor'] = tmp[25] - cfg_u['n_samples_diag'] = tmp[26] - cfg_u['n_beams_cells_diag'] = tmp[27] - cfg_u['n_pings_diag_wave'] = tmp[28] + cfg_u["user_soundspeed_adj_factor"] = tmp[25] + cfg_u["n_samples_diag"] = tmp[26] + cfg_u["n_beams_cells_diag"] = tmp[27] + cfg_u["n_pings_diag_wave"] = tmp[28] ModeTest = _int2binarray(tmp[29], 16) - cfg_u['usr']['analog_in'] = tmp[30] + cfg_u["usr"]["analog_in"] = tmp[30] sfw_ver = str(tmp[31]) - cfg_u['usr']['software_version'] = sfw_ver[0] + \ - '.'+sfw_ver[1:3]+'.'+sfw_ver[3:] - cfg_u['usr']['salinity'] = tmp[32]/10 - cfg_u['VelAdjTable'] = np.array(tmp[33:123]) - cfg_u['usr']['comments'] = tmp[123].partition(b'\x00')[ - 0].decode('utf-8') - cfg_u['awac']['wave_processing_method'] = [ - 'PUV', 'SUV', 'MLM', 'MLMST', 'None'][tmp[124]] + cfg_u["usr"]["software_version"] = ( + sfw_ver[0] + "." + sfw_ver[1:3] + "." + sfw_ver[3:] + ) + cfg_u["usr"]["salinity"] = tmp[32] / 10 + cfg_u["VelAdjTable"] = np.array(tmp[33:123]) + cfg_u["usr"]["comments"] = tmp[123].partition(b"\x00")[0].decode("utf-8") + cfg_u["awac"]["wave_processing_method"] = [ + "PUV", + "SUV", + "MLM", + "MLMST", + "None", + ][tmp[124]] Mode1 = _int2binarray(tmp[125], 16) - cfg_u['awac']['prc_dyn_wave_cell_pos'] = int(tmp[126]/32767 * 100) - cfg_u['wave_transmit_pulse'] = tmp[127] - cfg_u['wave_blank_dist'] = tmp[128] - cfg_u['awac']['wave_cell_size'] = tmp[129] - cfg_u['awac']['n_samples_wave'] = tmp[130] - cfg_u['n_burst'] = tmp[131] - cfg_u['analog_out_scale'] = tmp[132] - cfg_u['corr_thresh'] = tmp[133] - cfg_u['transmit_pulse_lag2'] = tmp[134] # counts - cfg_u['QualConst'] = np.array(tmp[135:143]) + cfg_u["awac"]["prc_dyn_wave_cell_pos"] = int(tmp[126] / 32767 * 100) + cfg_u["wave_transmit_pulse"] = tmp[127] + cfg_u["wave_blank_dist"] = tmp[128] + cfg_u["awac"]["wave_cell_size"] = tmp[129] + cfg_u["awac"]["n_samples_wave"] = tmp[130] + cfg_u["n_burst"] = tmp[131] + cfg_u["analog_out_scale"] = tmp[132] + cfg_u["corr_thresh"] = tmp[133] + cfg_u["transmit_pulse_lag2"] = tmp[134] # counts + cfg_u["QualConst"] = np.array(tmp[135:143]) self.checksum(byts) - cfg_u['usr']['user_specified_sound_speed'] = str(Mode0[0]) - cfg_u['awac']['wave_mode'] = ['Disabled', 'Enabled'][int(Mode0[1])] - cfg_u['usr']['analog_output'] = str(Mode0[2]) - cfg_u['usr']['output_format'] = ['Vector', 'ADV'][int(Mode0[3])] # noqa - cfg_u['vel_scale_mm'] = [1, 0.1][int(Mode0[4])] - cfg_u['usr']['serial_output'] = str(Mode0[5]) - cfg_u['reserved_EasyQ'] = str(Mode0[6]) - cfg_u['usr']['power_output_analog'] = str(Mode0[8]) - cfg_u['mode_test_use_DSP'] = str(ModeTest[0]) - cfg_u['mode_test_filter_output'] = ['total', 'correction_only'][int(ModeTest[1])] # noqa - cfg_u['awac']['wave_fs'] = ['1 Hz', '2 Hz'][int(Mode1[0])] - cfg_u['awac']['wave_cell_position'] = ['fixed', 'dynamic'][int(Mode1[1])] # noqa - cfg_u['awac']['type_wave_cell_pos'] = ['pct_of_mean_pressure', 'pct_of_min_re'][int(Mode1[2])] # noqa - - def read_head_cfg(self,): + cfg_u["usr"]["user_specified_sound_speed"] = str(Mode0[0]) + cfg_u["awac"]["wave_mode"] = ["Disabled", "Enabled"][int(Mode0[1])] + cfg_u["usr"]["analog_output"] = str(Mode0[2]) + cfg_u["usr"]["output_format"] = ["Vector", "ADV"][int(Mode0[3])] # noqa + cfg_u["vel_scale_mm"] = [1, 0.1][int(Mode0[4])] + cfg_u["usr"]["serial_output"] = str(Mode0[5]) + cfg_u["reserved_EasyQ"] = str(Mode0[6]) + cfg_u["usr"]["power_output_analog"] = str(Mode0[8]) + cfg_u["mode_test_use_DSP"] = str(ModeTest[0]) + cfg_u["mode_test_filter_output"] = ["total", "correction_only"][ + int(ModeTest[1]) + ] # noqa + cfg_u["awac"]["wave_fs"] = ["1 Hz", "2 Hz"][int(Mode1[0])] + cfg_u["awac"]["wave_cell_position"] = ["fixed", "dynamic"][ + int(Mode1[1]) + ] # noqa + cfg_u["awac"]["type_wave_cell_pos"] = ["pct_of_mean_pressure", "pct_of_min_re"][ + int(Mode1[2]) + ] # noqa + + def read_head_cfg(self): # ID: '0x04 = 04 if self.debug: - logging.info('Reading head configuration (0x04) ping #{} @ {}...' - .format(self.c, self.pos)) + logging.info( + "Reading head configuration (0x04) ping #{} @ {}...".format( + self.c, self.pos + ) + ) cfg = self.config - cfg['head'] = {} + cfg["head"] = {} byts = self.read(220) - tmp = unpack(self.endian + '2x3H12s176s22sH', byts) + tmp = unpack(self.endian + "2x3H12s176s22sH", byts) head_config = _int2binarray(tmp[0], 16).astype(int) - cfg['head']['pressure_sensor'] = ['no', 'yes'][head_config[0]] - cfg['head']['compass'] = ['no', 'yes'][head_config[1]] - cfg['head']['tilt_sensor'] = ['no', 'yes'][head_config[2]] - cfg['head']['carrier_freq_kHz'] = tmp[1] - cfg['beam2inst_orientmat'] = np.array( - unpack(self.endian + '9h', tmp[4][8:26])).reshape(3, 3) / 4096. + cfg["head"]["pressure_sensor"] = ["no", "yes"][head_config[0]] + cfg["head"]["compass"] = ["no", "yes"][head_config[1]] + cfg["head"]["tilt_sensor"] = ["no", "yes"][head_config[2]] + cfg["head"]["carrier_freq_kHz"] = tmp[1] + cfg["beam2inst_orientmat"] = ( + np.array(unpack(self.endian + "9h", tmp[4][8:26])).reshape(3, 3) / 4096.0 + ) self.checksum(byts) - def read_hw_cfg(self,): + def read_hw_cfg(self): # ID 0x05 = 05 if self.debug: - logging.info('Reading hardware configuration (0x05) ping #{} @ {}...' - .format(self.c, self.pos)) + logging.info( + "Reading hardware configuration (0x05) ping #{} @ {}...".format( + self.c, self.pos + ) + ) cfg_hw = self.config - cfg_hw['hdw'] = {} + cfg_hw["hdw"] = {} byts = self.read(44) - tmp = unpack(self.endian + '2x14s6H12x4s', byts) - cfg_hw['hdw']['serial_number'] = tmp[0][:8].decode('utf-8') - cfg_hw['ProLogID'] = unpack('B', tmp[0][8:9])[0] - cfg_hw['hdw']['ProLogFWver'] = tmp[0][10:].decode('utf-8') - cfg_hw['board_config'] = tmp[1] - cfg_hw['board_freq'] = tmp[2] - cfg_hw['hdw']['PIC_version'] = tmp[3] - cfg_hw['hdw']['hardware_rev'] = tmp[4] - cfg_hw['hdw']['recorder_size_bytes'] = tmp[5] * 65536 + tmp = unpack(self.endian + "2x14s6H12x4s", byts) + cfg_hw["hdw"]["serial_number"] = tmp[0][:8].decode("utf-8") + cfg_hw["ProLogID"] = unpack("B", tmp[0][8:9])[0] + cfg_hw["hdw"]["ProLogFWver"] = tmp[0][10:].decode("utf-8") + cfg_hw["board_config"] = tmp[1] + cfg_hw["board_freq"] = tmp[2] + cfg_hw["hdw"]["PIC_version"] = tmp[3] + cfg_hw["hdw"]["hardware_rev"] = tmp[4] + cfg_hw["hdw"]["recorder_size_bytes"] = tmp[5] * 65536 status = _int2binarray(tmp[6], 16).astype(int) - cfg_hw['hdw']['vel_range'] = ['normal', 'high'][status[0]] - cfg_hw['hdw']['firmware_version'] = tmp[7].decode('utf-8') + cfg_hw["hdw"]["vel_range"] = ["normal", "high"][status[0]] + cfg_hw["hdw"]["firmware_version"] = tmp[7].decode("utf-8") self.checksum(byts) def rd_time(self, strng): - """Read the time from the first 6bytes of the input string. - """ - min, sec, day, hour, year, month = unpack('BBBBBB', strng[:6]) - return time.date2epoch(datetime(time._fullyear(_bcd2char(year)), - _bcd2char(month), - _bcd2char(day), - _bcd2char(hour), - _bcd2char(min), - _bcd2char(sec)))[0] + """Read the time from the first 6bytes of the input string.""" + min, sec, day, hour, year, month = unpack("BBBBBB", strng[:6]) + return time.date2epoch( + datetime( + time._fullyear(_bcd2char(year)), + _bcd2char(month), + _bcd2char(day), + _bcd2char(hour), + _bcd2char(min), + _bcd2char(sec), + ) + )[0] def _init_data(self, vardict): """Initialize the data object according to vardict. @@ -600,9 +664,9 @@ def _init_data(self, vardict): how to initialize each data variable. """ - shape_args = {'n': self.n_samp_guess} + shape_args = {"n": self.n_samp_guess} try: - shape_args['nbins'] = self.config['usr']['n_bins'] + shape_args["nbins"] = self.config["usr"]["n_bins"] except KeyError: pass for nm, va in list(vardict.items()): @@ -613,70 +677,78 @@ def _init_data(self, vardict): else: if nm not in self.data[va.group]: self.data[va.group][nm] = va._empty_array(**shape_args) - self.data['units'][nm] = va.units - self.data['long_name'][nm] = va.long_name + self.data["units"][nm] = va.units + self.data["long_name"][nm] = va.long_name if va.standard_name: - self.data['standard_name'][nm] = va.standard_name + self.data["standard_name"][nm] = va.standard_name - def read_vec_data(self,): + def read_vec_data(self): # ID: 0x10 = 16 c = self.c dat = self.data if self.debug: - logging.info('Reading vector velocity data (0x10) ping #{} @ {}...' - .format(self.c, self.pos)) + logging.info( + "Reading vector velocity data (0x10) ping #{} @ {}...".format( + self.c, self.pos + ) + ) - if 'vel' not in dat['data_vars']: + if "vel" not in dat["data_vars"]: self._init_data(nortek_defs.vec_data) - self._dtypes += ['vec_data'] + self._dtypes += ["vec_data"] byts = self.read(20) - ds = dat['sys'] - dv = dat['data_vars'] - (ds['AnaIn2LSB'][c], - ds['Count'][c], - dv['PressureMSB'][c], - ds['AnaIn2MSB'][c], - dv['PressureLSW'][c], - ds['AnaIn1'][c], - dv['vel'][0, c], - dv['vel'][1, c], - dv['vel'][2, c], - dv['amp'][0, c], - dv['amp'][1, c], - dv['amp'][2, c], - dv['corr'][0, c], - dv['corr'][1, c], - dv['corr'][2, c]) = unpack(self.endian + '4B2H3h6B', byts) + ds = dat["sys"] + dv = dat["data_vars"] + ( + ds["AnaIn2LSB"][c], + ds["Count"][c], + dv["PressureMSB"][c], + ds["AnaIn2MSB"][c], + dv["PressureLSW"][c], + ds["AnaIn1"][c], + dv["vel"][0, c], + dv["vel"][1, c], + dv["vel"][2, c], + dv["amp"][0, c], + dv["amp"][1, c], + dv["amp"][2, c], + dv["corr"][0, c], + dv["corr"][1, c], + dv["corr"][2, c], + ) = unpack(self.endian + "4B2H3h6B", byts) self.checksum(byts) self.c += 1 - def read_vec_checkdata(self,): + def read_vec_checkdata(self): # ID: 0x07 = 07 if self.debug: - logging.info('Reading vector check data (0x07) ping #{} @ {}...' - .format(self.c, self.pos)) + logging.info( + "Reading vector check data (0x07) ping #{} @ {}...".format( + self.c, self.pos + ) + ) byts0 = self.read(6) checknow = {} - tmp = unpack(self.endian + '2x2H', byts0) # The first two are size. - checknow['Samples'] = tmp[0] - n = checknow['Samples'] - checknow['First_samp'] = tmp[1] - checknow['Amp1'] = tbx._nans(n, dtype=np.uint8) + 8 - checknow['Amp2'] = tbx._nans(n, dtype=np.uint8) + 8 - checknow['Amp3'] = tbx._nans(n, dtype=np.uint8) + 8 + tmp = unpack(self.endian + "2x2H", byts0) # The first two are size. + checknow["Samples"] = tmp[0] + n = checknow["Samples"] + checknow["First_samp"] = tmp[1] + checknow["Amp1"] = tbx._nans(n, dtype=np.uint8) + 8 + checknow["Amp2"] = tbx._nans(n, dtype=np.uint8) + 8 + checknow["Amp3"] = tbx._nans(n, dtype=np.uint8) + 8 byts1 = self.read(3 * n) - tmp = unpack(self.endian + (3 * n * 'B'), byts1) - for idx, nm in enumerate(['Amp1', 'Amp2', 'Amp3']): - checknow[nm] = np.array(tmp[idx * n:(idx + 1) * n], dtype=np.uint8) + tmp = unpack(self.endian + (3 * n * "B"), byts1) + for idx, nm in enumerate(["Amp1", "Amp2", "Amp3"]): + checknow[nm] = np.array(tmp[idx * n : (idx + 1) * n], dtype=np.uint8) self.checksum(byts0 + byts1) - if 'checkdata' not in self.config: - self.config['checkdata'] = checknow + if "checkdata" not in self.config: + self.config["checkdata"] = checknow else: - if not isinstance(self.config['checkdata'], list): - self.config['checkdata'] = [self.config['checkdata']] - self.config['checkdata'] += [checknow] + if not isinstance(self.config["checkdata"], list): + self.config["checkdata"] = [self.config["checkdata"]] + self.config["checkdata"] += [checknow] def _sci_data(self, vardict): """ @@ -700,92 +772,104 @@ def _sci_data(self, vardict): if retval is not None: dat[nm] = retval - def sci_vec_data(self,): + def sci_vec_data(self): self._sci_data(nortek_defs.vec_data) dat = self.data - dat['data_vars']['pressure'] = ( - dat['data_vars']['PressureMSB'].astype('float32') * 65536 + - dat['data_vars']['PressureLSW'].astype('float32')) / 1000. - dat['units']['pressure'] = 'dbar' - dat['long_name']['pressure'] = 'Pressure' - dat['standard_name']['pressure'] = 'sea_water_pressure' + dat["data_vars"]["pressure"] = ( + dat["data_vars"]["PressureMSB"].astype("float32") * 65536 + + dat["data_vars"]["PressureLSW"].astype("float32") + ) / 1000.0 + dat["units"]["pressure"] = "dbar" + dat["long_name"]["pressure"] = "Pressure" + dat["standard_name"]["pressure"] = "sea_water_pressure" - dat['data_vars'].pop('PressureMSB') - dat['data_vars'].pop('PressureLSW') + dat["data_vars"].pop("PressureMSB") + dat["data_vars"].pop("PressureLSW") # Apply velocity scaling (1 or 0.1) - dat['data_vars']['vel'] *= self.config['vel_scale_mm'] + dat["data_vars"]["vel"] *= self.config["vel_scale_mm"] - def read_vec_hdr(self,): + def read_vec_hdr(self): # ID: '0x12 = 18 if self.debug: - logging.info('Reading vector header data (0x12) ping #{} @ {}...' - .format(self.c, self.pos)) + logging.info( + "Reading vector header data (0x12) ping #{} @ {}...".format( + self.c, self.pos + ) + ) byts = self.read(38) # The first two are size, the next 6 are time. - tmp = unpack(self.endian + '8xH7B21x', byts) + tmp = unpack(self.endian + "8xH7B21x", byts) hdrnow = {} - hdrnow['time'] = self.rd_time(byts[2:8]) - hdrnow['NRecords'] = tmp[0] - hdrnow['Noise1'] = tmp[1] - hdrnow['Noise2'] = tmp[2] - hdrnow['Noise3'] = tmp[3] - hdrnow['Spare0'] = byts[13:14].decode('utf-8') - hdrnow['Corr1'] = tmp[5] - hdrnow['Corr2'] = tmp[6] - hdrnow['Corr3'] = tmp[7] - hdrnow['Spare1'] = byts[17:].decode('utf-8') + hdrnow["time"] = self.rd_time(byts[2:8]) + hdrnow["NRecords"] = tmp[0] + hdrnow["Noise1"] = tmp[1] + hdrnow["Noise2"] = tmp[2] + hdrnow["Noise3"] = tmp[3] + hdrnow["Spare0"] = byts[13:14].decode("utf-8") + hdrnow["Corr1"] = tmp[5] + hdrnow["Corr2"] = tmp[6] + hdrnow["Corr3"] = tmp[7] + hdrnow["Spare1"] = byts[17:].decode("utf-8") self.checksum(byts) - if 'data_header' not in self.config: - self.config['data_header'] = hdrnow + if "data_header" not in self.config: + self.config["data_header"] = hdrnow else: - if not isinstance(self.config['data_header'], list): - self.config['data_header'] = [self.config['data_header']] - self.config['data_header'] += [hdrnow] + if not isinstance(self.config["data_header"], list): + self.config["data_header"] = [self.config["data_header"]] + self.config["data_header"] += [hdrnow] - def read_vec_sysdata(self,): + def read_vec_sysdata(self): # ID: 0x11 = 17 c = self.c if self.debug: - logging.info('Reading vector system data (0x11) ping #{} @ {}...' - .format(self.c, self.pos)) + logging.info( + "Reading vector system data (0x11) ping #{} @ {}...".format( + self.c, self.pos + ) + ) dat = self.data - if self._lastread[:2] == ['vec_checkdata', 'vec_hdr', ]: + if self._lastread[:2] == [ + "vec_checkdata", + "vec_hdr", + ]: self.burst_start[c] = True - if 'time' not in dat['coords']: + if "time" not in dat["coords"]: self._init_data(nortek_defs.vec_sysdata) - self._dtypes += ['vec_sysdata'] + self._dtypes += ["vec_sysdata"] byts = self.read(24) # The first two are size (skip them). - dat['coords']['time'][c] = self.rd_time(byts[2:8]) - ds = dat['sys'] - dv = dat['data_vars'] - (dv['batt'][c], - dv['c_sound'][c], - dv['heading'][c], - dv['pitch'][c], - dv['roll'][c], - dv['temp'][c], - dv['error'][c], - dv['status'][c], - ds['AnaIn'][c]) = unpack(self.endian + '2H3hH2BH', byts[8:]) + dat["coords"]["time"][c] = self.rd_time(byts[2:8]) + ds = dat["sys"] + dv = dat["data_vars"] + ( + dv["batt"][c], + dv["c_sound"][c], + dv["heading"][c], + dv["pitch"][c], + dv["roll"][c], + dv["temp"][c], + dv["error"][c], + dv["status"][c], + ds["AnaIn"][c], + ) = unpack(self.endian + "3H3h2BH", byts[8:]) self.checksum(byts) - def sci_vec_sysdata(self,): + def sci_vec_sysdata(self): """Translate the data in the vec_sysdata structure into scientific units. """ dat = self.data - fs = dat['attrs']['fs'] + fs = dat["attrs"]["fs"] self._sci_data(nortek_defs.vec_sysdata) - t = dat['coords']['time'] - dv = dat['data_vars'] - dat['sys']['_sysi'] = ~np.isnan(t) + t = dat["coords"]["time"] + dv = dat["data_vars"] + dat["sys"]["_sysi"] = ~np.isnan(t) # These are the indices in the sysdata variables # that are not interpolated. - nburst = self.config['n_burst'] - dv['orientation_down'] = tbx._nans(len(t), dtype='bool') + nburst = self.config["n_burst"] + dv["orientation_down"] = tbx._nans(len(t), dtype="bool") if nburst == 0: num_bursts = 1 nburst = len(t) @@ -793,7 +877,7 @@ def sci_vec_sysdata(self,): num_bursts = int(len(t) // nburst + 1) for nb in range(num_bursts): iburst = slice(nb * nburst, (nb + 1) * nburst) - sysi = dat['sys']['_sysi'][iburst] + sysi = dat["sys"]["_sysi"][iburst] if len(sysi) == 0: break # Skip the first entry for the interpolation process @@ -803,242 +887,328 @@ def sci_vec_sysdata(self,): p = np.poly1d(np.polyfit(inds, t[iburst][inds], 1)) t[iburst] = p(arng) elif len(inds) == 1: - t[iburst] = ((arng - inds[0]) / (fs * 3600 * 24) + - t[iburst][inds[0]]) + t[iburst] = (arng - inds[0]) / (fs * 3600 * 24) + t[iburst][inds[0]] else: - t[iburst] = (t[iburst][0] + arng / (fs * 24 * 3600)) + t[iburst] = t[iburst][0] + arng / (fs * 24 * 3600) - tmpd = tbx._nans_like(dv['heading'][iburst]) + tmpd = tbx._nans_like(dv["heading"][iburst]) # The first status bit should be the orientation. - tmpd[sysi] = dv['status'][iburst][sysi] & 1 + tmpd[sysi] = dv["status"][iburst][sysi] & 1 tbx.fillgaps(tmpd, extrapFlg=True) tmpd = np.nan_to_num(tmpd, nan=0) # nans in pitch roll heading slope = np.diff(tmpd) tmpd[1:][slope < 0] = 1 tmpd[:-1][slope > 0] = 0 - dv['orientation_down'][iburst] = tmpd.astype('bool') - tbx.interpgaps(dv['batt'], t) - tbx.interpgaps(dv['c_sound'], t) - tbx.interpgaps(dv['heading'], t) - tbx.interpgaps(dv['pitch'], t) - tbx.interpgaps(dv['roll'], t) - tbx.interpgaps(dv['temp'], t) - - def read_microstrain(self,): - """Read ADV microstrain sensor (IMU) data - """ + dv["orientation_down"][iburst] = tmpd.astype("bool") + tbx.interpgaps(dv["batt"], t) + tbx.interpgaps(dv["c_sound"], t) + tbx.interpgaps(dv["heading"], t) + tbx.interpgaps(dv["pitch"], t) + tbx.interpgaps(dv["roll"], t) + tbx.interpgaps(dv["temp"], t) + + def read_microstrain(self): + """Read ADV microstrain sensor (IMU) data""" + def update_defs(dat, mag=False, orientmat=False): - imu_data = {'accel': ['m s-2', 'Acceleration'], - 'angrt': ['rad s-1', 'Angular Velocity'], - 'mag': ['gauss', 'Compass'], - 'orientmat': ['1', 'Orientation Matrix']} + imu_data = { + "accel": ["m s-2", "Acceleration"], + "angrt": ["rad s-1", "Angular Velocity"], + "mag": ["gauss", "Compass"], + "orientmat": ["1", "Orientation Matrix"], + } for ky in imu_data: - dat['units'].update({ky: imu_data[ky][0]}) - dat['long_name'].update({ky: imu_data[ky][1]}) + dat["units"].update({ky: imu_data[ky][0]}) + dat["long_name"].update({ky: imu_data[ky][1]}) if not mag: - dat['units'].pop('mag') - dat['long_name'].pop('mag') + dat["units"].pop("mag") + dat["long_name"].pop("mag") if not orientmat: - dat['units'].pop('orientmat') - dat['long_name'].pop('orientmat') + dat["units"].pop("orientmat") + dat["long_name"].pop("orientmat") # 0x71 = 113 if self.c == 0: - logging.warning('First "microstrain data" block ' - 'is before first "vector system data" block.') + logging.warning( + 'First "microstrain data" block ' + 'is before first "vector system data" block.' + ) else: self.c -= 1 if self.debug: - logging.info('Reading vector microstrain data (0x71) ping #{} @ {}...' - .format(self.c, self.pos)) + logging.info( + "Reading vector microstrain data (0x71) ping #{} @ {}...".format( + self.c, self.pos + ) + ) byts0 = self.read(4) # The first 2 are the size, 3rd is count, 4th is the id. - ahrsid = unpack(self.endian + '3xB', byts0)[0] - if hasattr(self, '_ahrsid') and self._ahrsid != ahrsid: - logging.warning('AHRS_ID changes mid-file!') + ahrsid = unpack(self.endian + "3xB", byts0)[0] + if hasattr(self, "_ahrsid") and self._ahrsid != ahrsid: + logging.warning("AHRS_ID changes mid-file!") if ahrsid in [195, 204, 210, 211]: self._ahrsid = ahrsid c = self.c dat = self.data - dv = dat['data_vars'] - da = dat['attrs'] - da['has_imu'] = 1 # logical - if 'accel' not in dv: - self._dtypes += ['microstrain'] + dv = dat["data_vars"] + da = dat["attrs"] + da["has_imu"] = 1 # logical + if "accel" not in dv: + self._dtypes += ["microstrain"] if ahrsid == 195: - self._orient_dnames = ['accel', 'angrt', 'orientmat'] - dv['accel'] = tbx._nans((3, self.n_samp_guess), - dtype=np.float32) - dv['angrt'] = tbx._nans((3, self.n_samp_guess), - dtype=np.float32) - dv['orientmat'] = tbx._nans((3, 3, self.n_samp_guess), - dtype=np.float32) - rv = ['accel', 'angrt'] - if not all(x in da['rotate_vars'] for x in rv): - da['rotate_vars'].extend(rv) + self._orient_dnames = ["accel", "angrt", "orientmat"] + dv["accel"] = tbx._nans((3, self.n_samp_guess), dtype=np.float32) + dv["angrt"] = tbx._nans((3, self.n_samp_guess), dtype=np.float32) + dv["orientmat"] = tbx._nans((3, 3, self.n_samp_guess), dtype=np.float32) + rv = ["accel", "angrt"] + if not all(x in da["rotate_vars"] for x in rv): + da["rotate_vars"].extend(rv) update_defs(dat, mag=False, orientmat=True) if ahrsid in [204, 210]: - self._orient_dnames = ['accel', 'angrt', 'mag', 'orientmat'] - dv['accel'] = tbx._nans((3, self.n_samp_guess), - dtype=np.float32) - dv['angrt'] = tbx._nans((3, self.n_samp_guess), - dtype=np.float32) - dv['mag'] = tbx._nans((3, self.n_samp_guess), - dtype=np.float32) - rv = ['accel', 'angrt', 'mag'] - if not all(x in da['rotate_vars'] for x in rv): - da['rotate_vars'].extend(rv) + self._orient_dnames = ["accel", "angrt", "mag", "orientmat"] + dv["accel"] = tbx._nans((3, self.n_samp_guess), dtype=np.float32) + dv["angrt"] = tbx._nans((3, self.n_samp_guess), dtype=np.float32) + dv["mag"] = tbx._nans((3, self.n_samp_guess), dtype=np.float32) + rv = ["accel", "angrt", "mag"] + if not all(x in da["rotate_vars"] for x in rv): + da["rotate_vars"].extend(rv) if ahrsid == 204: - dv['orientmat'] = tbx._nans((3, 3, self.n_samp_guess), - dtype=np.float32) + dv["orientmat"] = tbx._nans( + (3, 3, self.n_samp_guess), dtype=np.float32 + ) update_defs(dat, mag=True, orientmat=True) if ahrsid == 211: - self._orient_dnames = ['angrt', 'accel', 'mag'] - dv['angrt'] = tbx._nans((3, self.n_samp_guess), - dtype=np.float32) - dv['accel'] = tbx._nans((3, self.n_samp_guess), - dtype=np.float32) - dv['mag'] = tbx._nans((3, self.n_samp_guess), - dtype=np.float32) - rv = ['angrt', 'accel', 'mag'] - if not all(x in da['rotate_vars'] for x in rv): - da['rotate_vars'].extend(rv) + self._orient_dnames = ["angrt", "accel", "mag"] + dv["angrt"] = tbx._nans((3, self.n_samp_guess), dtype=np.float32) + dv["accel"] = tbx._nans((3, self.n_samp_guess), dtype=np.float32) + dv["mag"] = tbx._nans((3, self.n_samp_guess), dtype=np.float32) + rv = ["angrt", "accel", "mag"] + if not all(x in da["rotate_vars"] for x in rv): + da["rotate_vars"].extend(rv) update_defs(dat, mag=True, orientmat=False) - byts = '' + byts = "" if ahrsid == 195: # 0xc3 byts = self.read(64) - dt = unpack(self.endian + '6f9f4x', byts) - (dv['angrt'][:, c], - dv['accel'][:, c]) = (dt[0:3], dt[3:6],) - dv['orientmat'][:, :, c] = ((dt[6:9], dt[9:12], dt[12:15])) + dt = unpack(self.endian + "6f9f4x", byts) + (dv["angrt"][:, c], dv["accel"][:, c]) = ( + dt[0:3], + dt[3:6], + ) + dv["orientmat"][:, :, c] = (dt[6:9], dt[9:12], dt[12:15]) elif ahrsid == 204: # 0xcc byts = self.read(78) # This skips the "DWORD" (4 bytes) and the AHRS checksum # (2 bytes) - dt = unpack(self.endian + '18f6x', byts) - (dv['accel'][:, c], - dv['angrt'][:, c], - dv['mag'][:, c]) = (dt[0:3], dt[3:6], dt[6:9],) - dv['orientmat'][:, :, c] = ((dt[9:12], dt[12:15], dt[15:18])) + dt = unpack(self.endian + "18f6x", byts) + (dv["accel"][:, c], dv["angrt"][:, c], dv["mag"][:, c]) = ( + dt[0:3], + dt[3:6], + dt[6:9], + ) + dv["orientmat"][:, :, c] = (dt[9:12], dt[12:15], dt[15:18]) elif ahrsid == 211: byts = self.read(42) - dt = unpack(self.endian + '9f6x', byts) - (dv['angrt'][:, c], - dv['accel'][:, c], - dv['mag'][:, c]) = (dt[0:3], dt[3:6], dt[6:9],) + dt = unpack(self.endian + "9f6x", byts) + (dv["angrt"][:, c], dv["accel"][:, c], dv["mag"][:, c]) = ( + dt[0:3], + dt[3:6], + dt[6:9], + ) else: - logging.warning('Unrecognized IMU identifier: ' + str(ahrsid)) + logging.warning("Unrecognized IMU identifier: " + str(ahrsid)) self.f.seek(-2, 1) return 10 self.checksum(byts0 + byts) self.c += 1 # reset the increment - def sci_microstrain(self,): - """Rotate orientation data into ADV coordinate system. - """ + def sci_microstrain(self): + """Rotate orientation data into ADV coordinate system.""" # MS = MicroStrain - dv = self.data['data_vars'] + dv = self.data["data_vars"] for nm in self._orient_dnames: # Rotate the MS orientation data (in MS coordinate system) # to be consistent with the ADV coordinate system. # (x,y,-z)_ms = (z,y,x)_adv - (dv[nm][2], - dv[nm][0]) = (dv[nm][0], - -dv[nm][2].copy()) - if 'orientmat' in self._orient_dnames: + (dv[nm][2], dv[nm][0]) = (dv[nm][0], -dv[nm][2].copy()) + if "orientmat" in self._orient_dnames: # MS coordinate system is in North-East-Down (NED), # we want East-North-Up (ENU) - dv['orientmat'][:, 2] *= -1 - (dv['orientmat'][:, 0], - dv['orientmat'][:, 1]) = (dv['orientmat'][:, 1], - dv['orientmat'][:, 0].copy()) - if 'accel' in dv: + dv["orientmat"][:, 2] *= -1 + (dv["orientmat"][:, 0], dv["orientmat"][:, 1]) = ( + dv["orientmat"][:, 1], + dv["orientmat"][:, 0].copy(), + ) + if "accel" in dv: # This value comes from the MS 3DM-GX3 MIP manual - dv['accel'] *= 9.80665 + dv["accel"] *= 9.80665 if self._ahrsid in [195, 211]: # These are DAng and DVel, so we convert them to angrt, accel here - dv['angrt'] *= self.config['fs'] - dv['accel'] *= self.config['fs'] + dv["angrt"] *= self.config["fs"] + dv["accel"] *= self.config["fs"] - def read_awac_profile(self,): + def read_awac_profile(self): # ID: '0x20' = 32 dat = self.data if self.debug: - logging.info('Reading AWAC velocity data (0x20) ping #{} @ {}...' - .format(self.c, self.pos)) - nbins = self.config['usr']['n_bins'] - if 'temp' not in dat['data_vars']: + logging.info( + "Reading AWAC velocity data (0x20) ping #{} @ {}...".format( + self.c, self.pos + ) + ) + nbins = self.config["usr"]["n_bins"] + if "temp" not in dat["data_vars"]: self._init_data(nortek_defs.awac_profile) - self._dtypes += ['awac_profile'] + self._dtypes += ["awac_profile"] # Note: docs state there is 'fill' byte at the end, if nbins is odd, # but doesn't appear to be the case - n = self.config['usr']['n_beams'] - byts = self.read(116 + n*3 * nbins) + n = self.config["usr"]["n_beams"] + byts = self.read(116 + n * 3 * nbins) c = self.c - dat['coords']['time'][c] = self.rd_time(byts[2:8]) - ds = dat['sys'] - dv = dat['data_vars'] - (dv['error'][c], - ds['AnaIn1'][c], - dv['batt'][c], - dv['c_sound'][c], - dv['heading'][c], - dv['pitch'][c], - dv['roll'][c], - p_msb, - dv['status'][c], - p_lsw, - dv['temp'][c],) = unpack(self.endian + '7HBB2H', byts[8:28]) - dv['pressure'][c] = (65536 * p_msb + p_lsw) + dat["coords"]["time"][c] = self.rd_time(byts[2:8]) + ds = dat["sys"] + dv = dat["data_vars"] + ( + dv["error"][c], + ds["AnaIn1"][c], + dv["batt"][c], + dv["c_sound"][c], + dv["heading"][c], + dv["pitch"][c], + dv["roll"][c], + p_msb, + dv["status"][c], + p_lsw, + dv["temp"][c], + ) = unpack(self.endian + "5H2hBBHh", byts[8:28]) + dv["pressure"][c] = 65536 * p_msb + p_lsw # The nortek system integrator manual specifies an 88byte 'spare' # field, therefore we start at 116. - tmp = unpack(self.endian + str(n * nbins) + 'h' + - str(n * nbins) + 'B', byts[116:116 + n*3 * nbins]) + tmp = unpack( + self.endian + str(n * nbins) + "h" + str(n * nbins) + "B", + byts[116 : 116 + n * 3 * nbins], + ) for idx in range(n): - dv['vel'][idx, :, c] = tmp[idx * nbins: (idx + 1) * nbins] - dv['amp'][idx, :, c] = tmp[(idx + n) * nbins: (idx + n+1) * nbins] + dv["vel"][idx, :, c] = tmp[idx * nbins : (idx + 1) * nbins] + dv["amp"][idx, :, c] = tmp[(idx + n) * nbins : (idx + n + 1) * nbins] self.checksum(byts) self.c += 1 - def sci_awac_profile(self,): + def sci_awac_profile(self): self._sci_data(nortek_defs.awac_profile) # Calculate the ranges. - cs_coefs = {2000: 0.0239, - 1000: 0.0478, - 600: 0.0797, - 400: 0.1195} + cs_coefs = {2000: 0.0239, 1000: 0.0478, 600: 0.0797, 400: 0.1195} h_ang = 25 * (np.pi / 180) # Head angle is 25 degrees for all awacs. # Cell size - cs = round(float(self.config['bin_length']) / 256. * - cs_coefs[self.config['head']['carrier_freq_kHz']] * np.cos(h_ang), ndigits=2) + cs = round( + float(self.config["bin_length"]) + / 256.0 + * cs_coefs[self.config["head"]["carrier_freq_kHz"]] + * np.cos(h_ang), + ndigits=2, + ) # Blanking distance - bd = round(self.config['blank_dist'] * - 0.0229 * np.cos(h_ang) - cs, ndigits=2) + bd = round(self.config["blank_dist"] * 0.0229 * np.cos(h_ang) - cs, ndigits=2) - r = (np.float32(np.arange(self.config['usr']['n_bins']))+1)*cs + bd - self.data['coords']['range'] = r - self.data['attrs']['cell_size'] = cs - self.data['attrs']['blank_dist'] = bd + r = (np.float32(np.arange(self.config["usr"]["n_bins"])) + 1) * cs + bd + self.data["coords"]["range"] = r + self.data["attrs"]["cell_size"] = cs + self.data["attrs"]["blank_dist"] = bd - def dat2sci(self,): + def read_awac_waves_hdr(self): + # ID: '0x31' + c = self.c + if self.debug: + print( + "Reading vector header data (0x31) ping #{} @ {}...".format( + self.c, self.pos + ) + ) + hdrnow = {} + dat = self.data + ds = dat["sys"] + dv = dat["data_vars"] + if "time" not in dat["coords"]: + self._init_data(nortek_defs.waves_hdrdata) + byts = self.read(56) + # The first two are size, the next 6 are time. + tmp = unpack(self.endian + "8x4H3h2HhH4B6H5h", byts) + dat["coords"]["time"][c] = self.rd_time(byts[2:8]) + hdrnow["n_records_alt"] = tmp[0] + hdrnow["blank_dist_alt"] = tmp[1] # counts + ds["batt_alt"][c] = tmp[2] # voltage (0.1 V) + dv["c_sound_alt"][c] = tmp[3] # c (0.1 m/s) + dv["heading_alt"][c] = tmp[4] # (0.1 deg) + dv["pitch_alt"][c] = tmp[5] # (0.1 deg) + dv["roll_alt"][c] = tmp[6] # (0.1 deg) + dv["pressure1_alt"][c] = tmp[7] # min pressure previous profile (0.001 dbar) + dv["pressure2_alt"][c] = tmp[8] # max pressure previous profile (0.001 dbar) + dv["temp_alt"][c] = tmp[9] # (0.01 deg C) + hdrnow["cell_size_alt"][c] = tmp[10] # (counts of T3) + hdrnow["noise_alt"][c] = tmp[11:15] # noise amplitude beam 1-4 (counts) + hdrnow["proc_magn_alt"][c] = tmp[15:19] # processing magnitude beam 1-4 + hdrnow["n_past_window_alt"] = tmp[ + 19 + ] # number of samples of AST window past boundary + hdrnow["n_window_alt"] = tmp[20] # AST window size (# samples) + hdrnow["Spare1"] = tmp[21:] + self.checksum(byts) + if "data_header" not in self.config: + self.config["data_header"] = hdrnow + else: + if not isinstance(self.config["data_header"], list): + self.config["data_header"] = [self.config["data_header"]] + self.config["data_header"] += [hdrnow] + + def read_awac_waves(self): + """Read awac wave and suv data""" + # IDs: 0x30 & 0x36 + c = self.c + dat = self.data + if self.debug: + print( + "Reading awac wave data (0x30) ping #{} @ {}...".format( + self.c, self.pos + ) + ) + if "dist1_alt" not in dat["data_vars"]: + self._init_data(nortek_defs.wave_data) + self._dtypes += ["wave_data"] + # The first two are size + byts = self.read(20) + ds = dat["sys"] + dv = dat["data_vars"] + ( + dv["pressure"][c], # (0.001 dbar) + dv["dist1_alt"][c], # distance 1 to surface, vertical beam (mm) + ds["AnaIn_alt"][c], # analog input 1 + dv["vel_alt"][0, c], # velocity beam 1 (mm/s) East for SUV + dv["vel_alt"][1, c], # North for SUV + dv["vel_alt"][2, c], # Up for SUV + dv["dist2_alt"][ + c + ], # distance 2 to surface, vertical beam (mm) or vel 4 for non-AST + dv["amp_alt"][0, c], # amplitude beam 1 (counts) + dv["amp_alt"][1, c], # amplitude beam 2 (counts) + dv["amp_alt"][2, c], # amplitude beam 3 (counts) + # AST quality (counts) or amplitude beam 4 for non-AST + dv["quality_alt"][c], + ) = unpack(self.endian + "3H4h4B", byts) + self.checksum(byts) + self.c += 1 + + def dat2sci(self): for nm in self._dtypes: - getattr(self, 'sci_' + nm)() - for nm in ['data_header', 'checkdata']: + getattr(self, "sci_" + nm)() + for nm in ["data_header", "checkdata"]: if nm in self.config and isinstance(self.config[nm], list): self.config[nm] = _recatenate(self.config[nm]) - def __exit__(self, type, value, trace): - self.close() - - def __enter__(self): - return self - def _crop_data(obj, range, n_lastdim): for nm, dat in obj.items(): @@ -1049,12 +1219,11 @@ def _crop_data(obj, range, n_lastdim): def _recatenate(obj): out = type(obj[0])() for ky in list(obj[0].keys()): - if ky in ['__data_groups__', '_type']: + if ky in ["__data_groups__", "_type"]: continue val0 = obj[0][ky] if isinstance(val0, np.ndarray) and val0.size > 1: - out[ky] = np.concatenate([val[ky][..., None] for val in obj], - axis=-1) + out[ky] = np.concatenate([val[ky][..., None] for val in obj], axis=-1) else: out[ky] = np.array([val[ky] for val in obj]) return out diff --git a/mhkit/dolfyn/io/nortek2.py b/mhkit/dolfyn/io/nortek2.py index fe4e3c9e7..fd984a817 100644 --- a/mhkit/dolfyn/io/nortek2.py +++ b/mhkit/dolfyn/io/nortek2.py @@ -14,8 +14,15 @@ from ..time import epoch2dt64, _fill_time_gaps -def read_signature(filename, userdata=True, nens=None, rebuild_index=False, - debug=False, **kwargs): +def read_signature( + filename, + userdata=True, + nens=None, + rebuild_index=False, + debug=False, + dual_profile=False, + **kwargs +): """ Read a Nortek Signature (.ad2cp) datafile @@ -26,13 +33,15 @@ def read_signature(filename, userdata=True, nens=None, rebuild_index=False, userdata : bool To search for and use a .userdata.json or not nens : None, int or 2-element tuple (start, stop) - Number of pings or ensembles to read from the file. + Number of pings or ensembles to read from the file. Default is None, read entire file rebuild_index : bool Force rebuild of dolfyn-written datafile index. Useful for code updates. Default = False debug : bool Logs debugger ouput if true. Default = False + dual_profile : bool + Set to true if instrument is running multiple profiles. Default = False Returns ------- @@ -45,11 +54,13 @@ def read_signature(filename, userdata=True, nens=None, rebuild_index=False, for handler in logging.root.handlers[:]: logging.root.removeHandler(handler) filepath = Path(filename) - logfile = filepath.with_suffix('.dolfyn.log') - logging.basicConfig(filename=str(logfile), - filemode='w', - level=logging.NOTSET, - format='%(name)s - %(levelname)s - %(message)s') + logfile = filepath.with_suffix(".dolfyn.log") + logging.basicConfig( + filename=str(logfile), + filemode="w", + level=logging.NOTSET, + format="%(name)s - %(levelname)s - %(message)s", + ) if nens is None: nens = [0, None] @@ -61,51 +72,58 @@ def read_signature(filename, userdata=True, nens=None, rebuild_index=False, else: # passes: it's a list/tuple/array if n != 2: - raise TypeError('nens must be: None (), int, or len 2') + raise TypeError("nens must be: None (), int, or len 2") userdata = _find_userdata(filename, userdata) - rdr = _Ad2cpReader(filename, rebuild_index=rebuild_index, debug=debug) + rdr = _Ad2cpReader( + filename, rebuild_index=rebuild_index, debug=debug, dual_profile=dual_profile + ) d = rdr.readfile(nens[0], nens[1]) rdr.sci_data(d) + if rdr._dp: + _clean_dp_skips(d) out = _reorg(d) _reduce(out) # Convert time to dt64 and fill gaps - coords = out['coords'] - t_list = [t for t in coords if 'time' in t] + coords = out["coords"] + t_list = [t for t in coords if "time" in t] for ky in t_list: tdat = coords[ky] tdat[tdat == 0] = np.NaN if np.isnan(tdat).any(): - tag = ky.lstrip('time') - warnings.warn("Zero/NaN values found in '{}'. Interpolating and " - "extrapolating them. To identify which values were filled later, " - "look for 0 values in 'status{}'".format(ky, tag)) - tdat = _fill_time_gaps(tdat, sample_rate_hz=out['attrs']['fs']) - coords[ky] = epoch2dt64(tdat).astype('datetime64[ns]') + tag = ky.lstrip("time") + warnings.warn( + "Zero/NaN values found in '{}'. Interpolating and " + "extrapolating them. To identify which values were filled later, " + "look for 0 values in 'status{}'".format(ky, tag) + ) + tdat = _fill_time_gaps(tdat, sample_rate_hz=out["attrs"]["fs"]) + coords[ky] = epoch2dt64(tdat).astype("datetime64[ns]") declin = None for nm in userdata: - if 'dec' in nm: + if "dec" in nm: declin = userdata[nm] else: - out['attrs'][nm] = userdata[nm] + out["attrs"][nm] = userdata[nm] # Create xarray dataset from upper level dictionary ds = _create_dataset(out) ds = _set_coords(ds, ref_frame=ds.coord_sys) - if 'orientmat' not in ds: - ds['orientmat'] = _euler2orient( - ds['time'], ds['heading'], ds['pitch'], ds['roll']) + if "orientmat" not in ds: + ds["orientmat"] = _euler2orient( + ds["time"], ds["heading"], ds["pitch"], ds["roll"] + ) if declin is not None: set_declination(ds, declin, inplace=True) # Convert config dictionary to json string for key in list(ds.attrs.keys()): - if 'config' in key: + if "config" in key: ds.attrs[key] = json.dumps(ds.attrs[key]) # Close handler @@ -114,32 +132,53 @@ def read_signature(filename, userdata=True, nens=None, rebuild_index=False, logging.root.removeHandler(handler) handler.close() - return ds - - -class _Ad2cpReader(): - def __init__(self, fname, endian=None, bufsize=None, rebuild_index=False, - debug=False): + # Return two datasets if dual profile + if rdr._dp: + return split_dp_datasets(ds) + else: + return ds + + +class _Ad2cpReader: + def __init__( + self, + fname, + endian=None, + bufsize=None, + rebuild_index=False, + debug=False, + dual_profile=False, + ): self.fname = fname self.debug = debug self._check_nortek(endian) self.f.seek(0, 2) # Seek to end self._eof = self.f.tell() - self._index = lib.get_index(fname, - reload=rebuild_index, - debug=debug) + self.start_pos = self._check_header() + self._index, self._dp = lib.get_index( + fname, + pos=self.start_pos, + eof=self._eof, + rebuild=rebuild_index, + debug=debug, + dp=dual_profile, + ) self._reopen(bufsize) self.filehead_config = self._read_filehead_config_string() - self._ens_pos = self._index['pos'][lib._boolarray_firstensemble_ping( - self._index)] + self._ens_pos = self._index["pos"][ + lib._boolarray_firstensemble_ping(self._index) + ] self._lastblock_iswhole = self._calc_lastblock_iswhole() self._config = lib._calc_config(self._index) self._init_burst_readers() self.unknown_ID_count = {} - def _calc_lastblock_iswhole(self, ): - blocksize, blocksize_count = np.unique(np.diff(self._ens_pos), - return_counts=True) + def _calc_lastblock_iswhole( + self, + ): + blocksize, blocksize_count = np.unique( + np.diff(self._ens_pos), return_counts=True + ) standard_blocksize = blocksize[blocksize_count.argmax()] return (self._eof - self._ens_pos[-1]) == standard_blocksize @@ -147,17 +186,36 @@ def _check_nortek(self, endian): self._reopen(10) byts = self.f.read(2) if endian is None: - if unpack('<' + 'BB', byts) == (165, 10): - endian = '<' - elif unpack('>' + 'BB', byts) == (165, 10): - endian = '>' + if unpack("<" + "BB", byts) == (165, 10): + endian = "<" + elif unpack(">" + "BB", byts) == (165, 10): + endian = ">" else: raise Exception( "I/O error: could not determine the 'endianness' " "of the file. Are you sure this is a Nortek " - "AD2CP file?") + "AD2CP file?" + ) self.endian = endian + def _check_header(self): + def find_all(s, c): + idx = s.find(c) + while idx != -1: + yield idx + idx = s.find(c, idx + 1) + + # Open the entire file + self._reopen(self._eof) + pk = self.f.peek(1) + # Search for multiple saved headers + found = [i for i in find_all(pk, b"GETCLOCKSTR")] + if len(found) < 2: + return 0 + else: + start_idx = found[-1] - 11 + return start_idx + def _reopen(self, bufsize=None): if bufsize is None: bufsize = 1000000 @@ -165,15 +223,17 @@ def _reopen(self, bufsize=None): self.f.close() except AttributeError: pass - self.f = open(_abspath(self.fname), 'rb', bufsize) + self.f = open(_abspath(self.fname), "rb", bufsize) - def _read_filehead_config_string(self, ): + def _read_filehead_config_string( + self, + ): hdr = self._read_hdr() out = {} - s_id, string = self._read_str(hdr['sz']) - string = string.decode('utf-8') + s_id, string = self._read_str(hdr["sz"]) + string = string.decode("utf-8") for ln in string.splitlines(): - ky, val = ln.split(',', 1) + ky, val = ln.split(",", 1) if ky in out: # There are more than one of this key if not isinstance(out[ky], list): @@ -185,11 +245,11 @@ def _read_filehead_config_string(self, ): out[ky] = val out2 = {} for ky in out: - if ky.startswith('GET'): + if ky.startswith("GET"): dat = out[ky] - d = out2[ky.lstrip('GET')] = dict() - for itm in dat.split(','): - k, val = itm.split('=') + d = out2[ky.lstrip("GET")] = dict() + for itm in dat.split(","): + k, val = itm.split("=") try: val = int(val) except ValueError: @@ -202,43 +262,60 @@ def _read_filehead_config_string(self, ): out2[ky] = out[ky] return out2 - def _init_burst_readers(self, ): + def _init_burst_readers( + self, + ): self._burst_readers = {} for rdr_id, cfg in self._config.items(): if rdr_id == 28: self._burst_readers[rdr_id] = defs._calc_echo_struct( - cfg['_config'], cfg['n_cells']) + cfg["_config"], cfg["n_cells"] + ) elif rdr_id == 23: self._burst_readers[rdr_id] = defs._calc_bt_struct( - cfg['_config'], cfg['n_beams']) + cfg["_config"], cfg["n_beams"] + ) else: self._burst_readers[rdr_id] = defs._calc_burst_struct( - cfg['_config'], cfg['n_beams'], cfg['n_cells']) + cfg["_config"], cfg["n_beams"], cfg["n_cells"] + ) def init_data(self, ens_start, ens_stop): outdat = {} nens = int(ens_stop - ens_start) - n26 = ((self._index['ID'] == 26) & - (self._index['ens'] >= ens_start) & - (self._index['ens'] < ens_stop)).sum() + + # ID 26 and 31 recorded infrequently + def n_id(id): + return ( + (self._index["ID"] == id) + & (self._index["ens"] >= ens_start) + & (self._index["ens"] < ens_stop) + ).sum() + + n_altraw = {26: n_id(26), 31: n_id(31)} + if not n_altraw[26] and 26 in self._burst_readers: + self._burst_readers.pop(26) + if not n_altraw[31] and 31 in self._burst_readers: + self._burst_readers.pop(31) + for ky in self._burst_readers: - if ky == 26: - n = n26 - ens = np.zeros(n, dtype='uint32') + if (ky == 26) or (ky == 31): + n = n_altraw[ky] + ens = np.zeros(n, dtype="uint32") else: - ens = np.arange(ens_start, - ens_stop).astype('uint32') + ens = np.arange(ens_start, ens_stop).astype("uint32") n = nens outdat[ky] = self._burst_readers[ky].init_data(n) - outdat[ky]['ensemble'] = ens - outdat[ky]['units'] = self._burst_readers[ky].data_units() - outdat[ky]['long_name'] = self._burst_readers[ky].data_longnames() - outdat[ky]['standard_name'] = self._burst_readers[ky].data_stdnames() + outdat[ky]["ensemble"] = ens + outdat[ky]["units"] = self._burst_readers[ky].data_units() + outdat[ky]["long_name"] = self._burst_readers[ky].data_longnames() + outdat[ky]["standard_name"] = self._burst_readers[ky].data_stdnames() + return outdat def _read_hdr(self, do_cs=False): res = defs.header.read2dict(self.f, cs=do_cs) - if res['sync'] != 165: + if res["sync"] != 165: raise Exception("Out of sync!") return res @@ -262,27 +339,30 @@ def readfile(self, ens_start=0, ens_stop=None): ens_stop = int(ens_stop) nens = ens_stop - ens_start outdat = self.init_data(ens_start, ens_stop) - outdat['filehead_config'] = self.filehead_config - print('Reading file %s ...' % self.fname) + outdat["filehead_config"] = self.filehead_config + print("Reading file %s ..." % self.fname) c = 0 - c26 = 0 + c_altraw = {26: 0, 31: 0} self.f.seek(self._ens_pos[ens_start], 0) while True: try: hdr = self._read_hdr() except IOError: return outdat - id = hdr['id'] - if id in [21, 22, 23, 24, 28]: # vel, bt, vel_b5, echo + id = hdr["id"] + if id in [21, 22, 23, 24, 28]: # "burst data record" (vel + ast), + # "avg data record" (vel_avg + ast_avg), "bottom track data record" (bt), + # "interleaved burst data record" (vel_b5), "echosounder record" (echo) self._read_burst(id, outdat[id], c) - elif id in [26]: # alt_raw (altimeter burst) - rdr = self._burst_readers[26] - if not hasattr(rdr, '_nsamp_index'): + elif id in [26, 31]: + # "burst altimeter raw record" (_altraw), "avg altimeter raw record" (_altraw_avg) + rdr = self._burst_readers[id] + if not hasattr(rdr, "_nsamp_index"): first_pass = True - tmp_idx = rdr._nsamp_index = rdr._names.index('altraw_nsamp') # noqa + tmp_idx = rdr._nsamp_index = rdr._names.index("nsamp_alt") shift = rdr._nsamp_shift = calcsize( - defs._format(rdr._format[:tmp_idx], - rdr._N[:tmp_idx])) + defs._format(rdr._format[:tmp_idx], rdr._N[:tmp_idx]) + ) else: first_pass = False tmp_idx = rdr._nsamp_index @@ -290,50 +370,53 @@ def readfile(self, ens_start=0, ens_stop=None): tmp_idx = tmp_idx + 2 # Don't add in-place self.f.seek(shift, 1) # Now read the num_samples - sz = unpack('= _posnow): + while self.f.tell() >= _posnow: c += 1 if c + ens_start + 1 >= nens_total: # Again check end of count list @@ -375,15 +457,42 @@ def sci_data(self, dat): continue rdr = self._burst_readers[id] rdr.sci_data(dnow) - if 'vel' in dnow and 'vel_scale' in dnow: - dnow['vel'] = (dnow['vel'] * - 10.0 ** dnow['vel_scale']).astype('float32') - - def __exit__(self, type, value, trace,): - self.f.close() - - def __enter__(self,): - return self + if "vel" in dnow and "vel_scale" in dnow: + dnow["vel"] = (dnow["vel"] * 10.0 ** dnow["vel_scale"]).astype( + "float32" + ) + + +def _altraw_reorg(outdat, tag=""): + """Submethod for `_reorg` particular to raw altimeter pings (ID 26 and 31)""" + for ky in list(outdat["data_vars"]): + if ky.endswith("raw" + tag) and not ky.endswith("_altraw" + tag): + outdat["data_vars"].pop(ky) + outdat["coords"]["time_altraw" + tag] = outdat["coords"].pop("timeraw" + tag) + # convert "signed fractional" to float + outdat["data_vars"]["samp_altraw" + tag] = ( + outdat["data_vars"]["samp_altraw" + tag].astype("float32") / 2**8 + ) + + # Read altimeter status + outdat["data_vars"].pop("status_altraw" + tag) + status_alt = lib._alt_status2data(outdat["data_vars"]["status_alt" + tag]) + for ky in status_alt: + outdat["attrs"][ky + tag] = lib._collapse( + status_alt[ky].astype("uint8"), name=ky + ) + outdat["data_vars"].pop("status_alt" + tag) + + # Power level index + power = {0: "high", 1: "med-high", 2: "med-low", 3: "low"} + outdat["attrs"]["power_level_alt" + tag] = power[ + outdat["attrs"].pop("power_level_idx_alt" + tag) + ] + + # Other attrs + for ky in list(outdat["attrs"]): + if ky.endswith("raw" + tag): + outdat["attrs"][ky.split("raw")[0] + "_alt" + tag] = outdat["attrs"].pop(ky) def _reorg(dat): @@ -392,17 +501,31 @@ def _reorg(dat): (organized by ID), and combines them into a single dictionary. """ - outdat = {'data_vars': {}, 'coords': {}, 'attrs': {}, - 'units': {}, 'long_name': {}, 'standard_name': {}, - 'sys': {}, 'altraw': {}} - cfg = outdat['attrs'] - cfh = cfg['filehead_config'] = dat['filehead_config'] - cfg['inst_model'] = (cfh['ID'].split(',')[0][5:-1]) - cfg['inst_make'] = 'Nortek' - cfg['inst_type'] = 'ADCP' - - for id, tag in [(21, ''), (22, '_avg'), (23, '_bt'), - (24, '_b5'), (26, '_ast'), (28, '_echo')]: + outdat = { + "data_vars": {}, + "coords": {}, + "attrs": {}, + "units": {}, + "long_name": {}, + "standard_name": {}, + "sys": {}, + "altraw": {}, + } + cfg = outdat["attrs"] + cfh = cfg["filehead_config"] = dat["filehead_config"] + cfg["inst_model"] = cfh["ID"].split(",")[0][5:-1] + cfg["inst_make"] = "Nortek" + cfg["inst_type"] = "ADCP" + + for id, tag in [ + (21, ""), + (22, "_avg"), + (23, "_bt"), + (24, "_b5"), + (26, "raw"), + (28, "_echo"), + (31, "raw_avg"), + ]: if id in [24, 26]: collapse_exclude = [0] else: @@ -410,211 +533,322 @@ def _reorg(dat): if id not in dat: continue dnow = dat[id] - outdat['units'].update(dnow['units']) - outdat['long_name'].update(dnow['long_name']) - for ky in dnow['units']: - if not dnow['standard_name'][ky]: - dnow['standard_name'].pop(ky) - outdat['standard_name'].update(dnow['standard_name']) - cfg['burst_config' + tag] = lib._headconfig_int2dict( - lib._collapse(dnow['config'], exclude=collapse_exclude, - name='config')) - outdat['coords']['time' + tag] = lib._calc_time( - dnow['year'] + 1900, - dnow['month'], - dnow['day'], - dnow['hour'], - dnow['minute'], - dnow['second'], - dnow['usec100'].astype('uint32') * 100) + outdat["units"].update(dnow["units"]) + outdat["long_name"].update(dnow["long_name"]) + for ky in dnow["units"]: + if not dnow["standard_name"][ky]: + dnow["standard_name"].pop(ky) + outdat["standard_name"].update(dnow["standard_name"]) + cfg["burst_config" + tag] = lib._headconfig_int2dict( + lib._collapse(dnow["config"], exclude=collapse_exclude, name="config") + ) + outdat["coords"]["time" + tag] = lib._calc_time( + dnow["year"] + 1900, + dnow["month"], + dnow["day"], + dnow["hour"], + dnow["minute"], + dnow["second"], + dnow["usec100"].astype("uint32") * 100, + ) tmp = lib._beams_cy_int2dict( - lib._collapse(dnow['beam_config'], exclude=collapse_exclude, - name='beam_config'), 21) - cfg['n_cells' + tag] = tmp['n_cells'] - cfg['coord_sys_axes' + tag] = tmp['cy'] - cfg['n_beams' + tag] = tmp['n_beams'] - cfg['ambig_vel' + - tag] = lib._collapse(dnow['ambig_vel'], name='ambig_vel') - - for ky in ['SerialNum', 'cell_size', 'blank_dist', 'nominal_corr', - 'power_level_dB']: - cfg[ky + tag] = lib._collapse(dnow[ky], - exclude=collapse_exclude, - name=ky) - - for ky in ['c_sound', 'temp', 'pressure', 'heading', 'pitch', 'roll', - 'mag', 'accel', 'batt', 'temp_clock', 'error', - 'status', 'ensemble', - ]: - outdat['data_vars'][ky + tag] = dnow[ky] - if 'ensemble' in ky: - outdat['data_vars'][ky + tag] += 1 - outdat['units'][ky + tag] = '#' - outdat['long_name'][ky + tag] = 'Ensemble Number' - outdat['standard_name'][ky + tag] = 'number_of_observations' - - for ky in ['vel', 'amp', 'corr', 'prcnt_gd', 'echo', 'dist', - 'orientmat', 'angrt', 'quaternions', 'ast_pressure', - 'alt_dist', 'alt_quality', 'alt_status', - 'ast_dist', 'ast_quality', 'ast_offset_time', - 'altraw_nsamp', 'altraw_dsamp', 'altraw_samp', - 'status0', 'fom', 'temp_press', 'press_std', - 'pitch_std', 'roll_std', 'heading_std', 'xmit_energy', - ]: + lib._collapse( + dnow["beam_config"], exclude=collapse_exclude, name="beam_config" + ), + 21, # always 21 here + ) + cfg["n_cells" + tag] = tmp["n_cells"] + cfg["coord_sys_axes" + tag] = tmp["cy"] + cfg["n_beams" + tag] = tmp["n_beams"] + cfg["ambig_vel" + tag] = lib._collapse(dnow["ambig_vel"], name="ambig_vel") + + for ky in [ + "SerialNum", + "cell_size", + "blank_dist", + "nominal_corr", + "power_level_dB", + ]: + cfg[ky + tag] = lib._collapse(dnow[ky], exclude=collapse_exclude, name=ky) + + for ky in [ + "c_sound", + "temp", + "pressure", + "heading", + "pitch", + "roll", + "mag", + "accel", + "batt", + "temp_clock", + "error", + "status", + "ensemble", + ]: + outdat["data_vars"][ky + tag] = dnow[ky] + if "ensemble" in ky: + outdat["data_vars"][ky + tag] += 1 + outdat["units"][ky + tag] = "#" + outdat["long_name"][ky + tag] = "Ensemble Number" + outdat["standard_name"][ky + tag] = "number_of_observations" + + for ky in [ + "vel", + "amp", + "corr", + "prcnt_gd", + "echo", + "dist", + "orientmat", + "angrt", + "quaternions", + "pressure_alt", + "le_dist_alt", + "le_quality_alt", + "status_alt", + "ast_dist_alt", + "ast_quality_alt", + "ast_offset_time_alt", + "nsamp_alt", + "dsamp_alt", + "samp_alt", + "status0", + "fom", + "temp_press", + "press_std", + "pitch_std", + "roll_std", + "heading_std", + "xmit_energy", + ]: if ky in dnow: - outdat['data_vars'][ky + tag] = dnow[ky] + outdat["data_vars"][ky + tag] = dnow[ky] # Move 'altimeter raw' data to its own down-sampled structure if 26 in dat: - ard = outdat['altraw'] - for ky in list(outdat['data_vars']): - if ky.endswith('_ast'): - grp = ky.split('.')[0] - if '.' in ky and grp not in ard: - ard[grp] = {} - ard[ky.rstrip('_ast')] = outdat['data_vars'].pop(ky) - - # Read altimeter status - alt_status = lib._alt_status2data(outdat['data_vars']['alt_status']) - for ky in alt_status: - outdat['attrs'][ky] = lib._collapse( - alt_status[ky].astype('uint8'), name=ky) - outdat['data_vars'].pop('alt_status') - - # Power level index - power = {0: 'high', 1: 'med-high', 2: 'med-low', 3: 'low'} - outdat['attrs']['power_level_alt'] = power[outdat['attrs'].pop( - 'power_level_idx_alt')] + _altraw_reorg(outdat) + if 31 in dat: + _altraw_reorg(outdat, tag="_avg") # Read status data - status0_vars = [x for x in outdat['data_vars'] if 'status0' in x] + status0_vars = [x for x in outdat["data_vars"] if "status0" in x] # Status data is the same across all tags, and there is always a 'status' and 'status0' status0_key = status0_vars[0] - status0_data = lib._status02data(outdat['data_vars'][status0_key]) - status_key = status0_key.replace('0', '') - status_data = lib._status2data(outdat['data_vars'][status_key]) + status0_data = lib._status02data(outdat["data_vars"][status0_key]) + status_key = status0_key.replace("0", "") + status_data = lib._status2data(outdat["data_vars"][status_key]) # Individual status codes # Wake up state - wake = {0: 'bad power', 1: 'power on', 2: 'break', 3: 'clock'} - outdat['attrs']['wakeup_state'] = wake[lib._collapse( - status_data.pop('wakeup_state'), name=ky)] + wake = {0: "bad power", 1: "power on", 2: "break", 3: "clock"} + outdat["attrs"]["wakeup_state"] = wake[ + lib._collapse(status_data.pop("wakeup_state"), name=ky) + ] # Instrument direction # 0: XUP, 1: XDOWN, 2: YUP, 3: YDOWN, 4: ZUP, 5: ZDOWN, # 7: AHRS, handle as ZUP - nortek_orient = {0: 'horizontal', 1: 'horizontal', 2: 'horizontal', - 3: 'horizontal', 4: 'up', 5: 'down', 7: 'AHRS'} - outdat['attrs']['orientation'] = nortek_orient[lib._collapse( - status_data.pop('orient_up'), name='orientation')] + nortek_orient = { + 0: "horizontal", + 1: "horizontal", + 2: "horizontal", + 3: "horizontal", + 4: "up", + 5: "down", + 7: "AHRS", + } + outdat["attrs"]["orientation"] = nortek_orient[ + lib._collapse(status_data.pop("orient_up"), name="orientation") + ] # Orientation detection - orient_status = {0: 'fixed', 1: 'auto_UD', 3: 'AHRS-3D'} - outdat['attrs']['orient_status'] = orient_status[lib._collapse( - status_data.pop('auto_orientation'), name='orient_status')] + orient_status = {0: "fixed", 1: "auto_UD", 3: "AHRS-3D"} + outdat["attrs"]["orient_status"] = orient_status[ + lib._collapse(status_data.pop("auto_orientation"), name="orient_status") + ] # Status variables - for ky in ['low_volt_skip', 'active_config', 'telemetry_data', 'boost_running']: - outdat['data_vars'][ky] = status_data[ky].astype('uint8') + for ky in ["low_volt_skip", "active_config", "telemetry_data", "boost_running"]: + outdat["data_vars"][ky] = status_data[ky].astype("uint8") # Processor idle state - need to save as 1/0 per netcdf attribute limitations for ky in status0_data: - outdat['attrs'][ky] = lib._collapse( - status0_data[ky].astype('uint8'), name=ky) + outdat["attrs"][ky] = lib._collapse(status0_data[ky].astype("uint8"), name=ky) - # Remove status0 variables - keep status variables as they useful for finding missing pings - [outdat['data_vars'].pop(var) for var in status0_vars] + # Remove status0 variables - keep status variables as they are useful for finding missing pings + [outdat["data_vars"].pop(var) for var in status0_vars] # Set coordinate system if 21 not in dat: - cfg['rotate_vars'] = [] - cy = cfg['coord_sys_axes_avg'] + cfg["rotate_vars"] = [] + cy = cfg["coord_sys_axes_avg"] else: - cfg['rotate_vars'] = ['vel', ] - cy = cfg['coord_sys_axes'] - outdat['attrs']['coord_sys'] = {'XYZ': 'inst', - 'ENU': 'earth', - 'beam': 'beam'}[cy] + cfg["rotate_vars"] = [ + "vel", + ] + cy = cfg["coord_sys_axes"] + outdat["attrs"]["coord_sys"] = {"XYZ": "inst", "ENU": "earth", "beam": "beam"}[cy] # Copy appropriate vars to rotate_vars - for ky in ['accel', 'angrt', 'mag']: - for dky in outdat['data_vars'].keys(): - if dky == ky or dky.startswith(ky + '_'): - outdat['attrs']['rotate_vars'].append(dky) - if 'vel_bt' in outdat['data_vars']: - outdat['attrs']['rotate_vars'].append('vel_bt') - if 'vel_avg' in outdat['data_vars']: - outdat['attrs']['rotate_vars'].append('vel_avg') + for ky in ["accel", "angrt", "mag"]: + for dky in outdat["data_vars"].keys(): + if dky == ky or dky.startswith(ky + "_"): + outdat["attrs"]["rotate_vars"].append(dky) + if "vel_bt" in outdat["data_vars"]: + outdat["attrs"]["rotate_vars"].append("vel_bt") + if "vel_avg" in outdat["data_vars"]: + outdat["attrs"]["rotate_vars"].append("vel_avg") return outdat +def _clean_dp_skips(data): + """ + Removes zeros from interwoven measurements taken in a dual profile + configuration. + """ + + for id in data: + if id == "filehead_config": + continue + # Check where 'ver' is zero (should be 1 (for bt) or 3 (everything else)) + skips = np.where(data[id]["ver"] != 0) + for var in data[id]: + if var not in ["units", "long_name", "standard_name"]: + data[id][var] = np.squeeze(data[id][var][..., skips], axis=-2) + + def _reduce(data): - """This function takes the output from `reorg`, and further simplifies the + """ + This function takes the output from `reorg`, and further simplifies the data. Mostly this is combining system, environmental, and orientation data --- from different data structures within the same ensemble --- by averaging. """ - - dv = data['data_vars'] - dc = data['coords'] - da = data['attrs'] + + dv = data["data_vars"] + dc = data["coords"] + da = data["attrs"] # Average these fields - for ky in ['c_sound', 'temp', 'pressure', - 'temp_press', 'temp_clock', 'batt']: - lib._reduce_by_average(dv, ky, ky + '_b5') + for ky in ["c_sound", "temp", "pressure", "temp_press", "temp_clock", "batt"]: + lib._reduce_by_average(dv, ky, ky + "_b5") # Angle-averaging is treated separately - for ky in ['heading', 'pitch', 'roll']: - lib._reduce_by_average_angle(dv, ky, ky + '_b5') - - if 'vel' in dv: - dc['range'] = ((np.arange(dv['vel'].shape[1])+1) * - da['cell_size'] + - da['blank_dist']) - da['fs'] = da['filehead_config']['BURST']['SR'] - tmat = da['filehead_config']['XFBURST'] - if 'vel_avg' in dv: - dc['range_avg'] = ((np.arange(dv['vel_avg'].shape[1])+1) * - da['cell_size_avg'] + - da['blank_dist_avg']) - dv['orientmat'] = dv.pop('orientmat_avg') - tmat = da['filehead_config']['XFAVG'] - da['fs'] = da['filehead_config']['PLAN']['MIAVG'] - da['avg_interval_sec'] = da['filehead_config']['AVG']['AI'] - da['bandwidth'] = da['filehead_config']['AVG']['BW'] - if 'vel_b5' in dv: - dc['range_b5'] = ((np.arange(dv['vel_b5'].shape[1])+1) * - da['cell_size_b5'] + - da['blank_dist_b5']) - if 'echo_echo' in dv: - dv['echo'] = dv.pop('echo_echo') - dc['range_echo'] = ((np.arange(dv['echo'].shape[0])+1) * - da['cell_size_echo'] + - da['blank_dist_echo']) - - if 'orientmat' in data['data_vars']: - da['has_imu'] = 1 # logical + for ky in ["heading", "pitch", "roll"]: + lib._reduce_by_average_angle(dv, ky, ky + "_b5") + + if "vel" in dv: + dc["range"] = (np.arange(dv["vel"].shape[1]) + 1) * da["cell_size"] + da[ + "blank_dist" + ] + da["fs"] = da["filehead_config"]["BURST"]["SR"] + tmat = da["filehead_config"]["XFBURST"] + if "vel_avg" in dv: + dc["range_avg"] = (np.arange(dv["vel_avg"].shape[1]) + 1) * da[ + "cell_size_avg" + ] + da["blank_dist_avg"] + if "orientmat" not in dv: + dv["orientmat"] = dv.pop("orientmat_avg") + tmat = da["filehead_config"]["XFAVG"] + da["fs"] = da["filehead_config"]["PLAN"]["MIAVG"] + da["avg_interval_sec"] = da["filehead_config"]["AVG"]["AI"] + da["bandwidth"] = da["filehead_config"]["AVG"]["BW"] + if "vel_b5" in dv: + # vel_b5 is sometimes shape 2 and sometimes shape 3 + dc["range_b5"] = (np.arange(dv["vel_b5"].shape[-2]) + 1) * da[ + "cell_size_b5" + ] + da["blank_dist_b5"] + if "echo_echo" in dv: + dv["echo"] = dv.pop("echo_echo") + dc["range_echo"] = (np.arange(dv["echo"].shape[0]) + 1) * da[ + "cell_size_echo" + ] + da["blank_dist_echo"] + + if "orientmat" in data["data_vars"]: + da["has_imu"] = 1 # logical # Signature AHRS rotation matrix returned in "inst->earth" # Change to dolfyn's "earth->inst" - dv['orientmat'] = np.rollaxis(dv['orientmat'], 1) + dv["orientmat"] = np.rollaxis(dv["orientmat"], 1) else: - da['has_imu'] = 0 - - theta = da['filehead_config']['BEAMCFGLIST'][0] - if 'THETA=' in theta: - da['beam_angle'] = int(theta[13:15]) - - tm = np.zeros((tmat['ROWS'], tmat['COLS']), dtype=np.float32) - for irow in range(tmat['ROWS']): - for icol in range(tmat['COLS']): - tm[irow, icol] = tmat['M' + str(irow + 1) + str(icol + 1)] - dv['beam2inst_orientmat'] = tm + da["has_imu"] = 0 + + theta = da["filehead_config"]["BEAMCFGLIST"][0] + if "THETA=" in theta: + da["beam_angle"] = int(theta[13:15]) + + tm = np.zeros((tmat["ROWS"], tmat["COLS"]), dtype=np.float32) + for irow in range(tmat["ROWS"]): + for icol in range(tmat["COLS"]): + tm[irow, icol] = tmat["M" + str(irow + 1) + str(icol + 1)] + dv["beam2inst_orientmat"] = tm # If burst velocity isn't used, need to copy one for 'time' - if 'time' not in dc: + if "time" not in dc: for val in dc: - if 'time' in val: + if "time" in val: time = val - dc['time'] = dc[time] + dc["time"] = dc[time] + + +def split_dp_datasets(ds): + """ + Splits a dataset containing dual profiles into individual profiles + """ + + # Figure out which variables belong to which profile based on length of time variables + t_dict = {} + for t in ds.coords: + if "time" in t: + t_dict[t] = ds[t].size + + other_coords = [] + for key, val in t_dict.items(): + if val != t_dict["time"]: + if key.endswith("altraw"): + # altraw goes with burst, altraw_avg goes with avg + continue + other_coords.append(key) + # Fetch variables, coordinates, and attrs for second profiling configuration + other_vars = [ + v for v in ds.data_vars if any(x in ds[v].coords for x in other_coords) + ] + other_tags = [s.split("_")[-1] for s in other_coords] + other_coords += [v for v in ds.coords if any(x in v for x in other_tags)] + other_attrs = [s for s in ds.attrs if any(x in s for x in other_tags)] + critical_attrs = [ + "inst_model", + "inst_make", + "inst_type", + "fs", + "orientation", + "orient_status", + "has_imu", + "beam_angle", + ] + + # Create second dataset + ds2 = type(ds)() + for a in other_attrs + critical_attrs: + ds2.attrs[a] = ds.attrs[a] + for v in other_vars: + ds2[v] = ds[v] + # Set rotate_vars + rotate_vars2 = [v for v in ds.attrs["rotate_vars"] if v in other_vars] + ds2.attrs["rotate_vars"] = rotate_vars2 + # Set orientation matricies + ds2["beam2inst_orientmat"] = ds["beam2inst_orientmat"] + ds2 = ds2.rename({"orientmat_" + other_tags[0]: "orientmat"}) + # Set original coordinate system + cy = ds2.attrs["coord_sys_axes_" + other_tags[0]] + ds2.attrs["coord_sys"] = {"XYZ": "inst", "ENU": "earth", "beam": "beam"}[cy] + ds2 = _set_coords(ds2, ref_frame=ds2.coord_sys) + + # Clean up first dataset + [ds.attrs.pop(ky) for ky in other_attrs] + ds = ds.drop_vars(other_vars + other_coords) + for itm in rotate_vars2: + ds.attrs["rotate_vars"].remove(itm) + + return ds, ds2 diff --git a/mhkit/dolfyn/io/nortek2_defs.py b/mhkit/dolfyn/io/nortek2_defs.py index 6b9b1d8f2..82723545c 100644 --- a/mhkit/dolfyn/io/nortek2_defs.py +++ b/mhkit/dolfyn/io/nortek2_defs.py @@ -4,15 +4,15 @@ from . import nortek2_lib as lib -dt32 = 'float32' +dt32 = "float32" grav = 9.81 # The starting value for the checksum: -cs0 = int('0xb58c', 0) +cs0 = int("0xb58c", 0) def _nans(*args, **kwargs): out = np.empty(*args, **kwargs) - if out.dtype.kind == 'f': + if out.dtype.kind == "f": out[:] = np.NaN else: out[:] = 0 @@ -20,15 +20,15 @@ def _nans(*args, **kwargs): def _format(form, N): - out = '' + out = "" for f, n in zip(form, N): if n > 1: - out += '{}'.format(n) + out += "{}".format(n) out += f return out -class _DataDef(): +class _DataDef: def __init__(self, list_of_defs): self._names = [] self._format = [] @@ -46,22 +46,22 @@ def __init__(self, list_of_defs): if len(itm) > 4: self._units.append(itm[4]) else: - self._units.append('1') + self._units.append("1") if len(itm) > 5: self._long_name.append(itm[5]) else: - self._long_name.append('') + self._long_name.append("") if len(itm) > 6: self._standard_name.append(itm[6]) else: - self._standard_name.append('') + self._standard_name.append("") if itm[2] == []: self._N.append(1) else: self._N.append(int(np.prod(itm[2]))) - self._struct = Struct('<' + self.format) + self._struct = Struct("<" + self.format) self.nbyte = self._struct.size - self._cs_struct = Struct('<' + '{}H'.format(int(self.nbyte // 2))) + self._cs_struct = Struct("<" + "{}H".format(int(self.nbyte // 2))) def init_data(self, npings): out = {} @@ -80,7 +80,9 @@ def read_into(self, fobj, data, ens, cs=None): data[nm][..., ens] = np.asarray(d).reshape(shp) @property - def format(self, ): + def format( + self, + ): return _format(self._format, self._N) def read(self, fobj, cs=None): @@ -99,24 +101,22 @@ def read(self, fobj, cs=None): off = cs0 cs_res = sum(self._cs_struct.unpack(bytes)) + off if csval is not False and (cs_res % 65536) != csval: - raise Exception('Checksum failed!') + raise Exception("Checksum failed!") out = [] c = 0 for idx, n in enumerate(self._N): if n == 1: out.append(data[c]) else: - out.append(data[c:(c + n)]) + out.append(data[c : (c + n)]) c += n return out def read2dict(self, fobj, cs=False): - return {self._names[idx]: dat - for idx, dat in enumerate(self.read(fobj, cs=cs))} + return {self._names[idx]: dat for idx, dat in enumerate(self.read(fobj, cs=cs))} def sci_data(self, data): - for ky, func in zip(self._names, - self._sci_func): + for ky, func in zip(self._names, self._sci_func): if func is None: continue data[ky] = func(data[ky]) @@ -140,7 +140,7 @@ def data_stdnames(self): return stdnms -class _LinFunc(): +class _LinFunc: """A simple linear offset and scaling object. Usage: @@ -165,129 +165,248 @@ def __call__(self, array): return array -header = _DataDef([ - ('sync', 'B', [], None), - ('hsz', 'B', [], None), - ('id', 'B', [], None), - ('fam', 'B', [], None), - ('sz', 'H', [], None), - ('cs', 'H', [], None), - ('hcs', 'H', [], None), -]) +header = _DataDef( + [ + ("sync", "B", [], None), + ("hsz", "B", [], None), + ("id", "B", [], None), + ("fam", "B", [], None), + ("sz", "H", [], None), + ("cs", "H", [], None), + ("hcs", "H", [], None), + ] +) _burst_hdr = [ - ('ver', 'B', [], None), - ('DatOffset', 'B', [], None), - ('config', 'H', [], None), - ('SerialNum', 'I', [], None), - ('year', 'B', [], None), - ('month', 'B', [], None), - ('day', 'B', [], None), - ('hour', 'B', [], None), - ('minute', 'B', [], None), - ('second', 'B', [], None), - ('usec100', 'H', [], None), - ('c_sound', 'H', [], _LinFunc(0.1, dtype=dt32), 'm s-1', - 'Speed of Sound', 'speed_of_sound_in_sea_water'), - ('temp', 'H', [], _LinFunc(0.01, dtype=dt32), - 'degree_C', 'Temperature', 'sea_water_temperature'), - ('pressure', 'I', [], _LinFunc(0.001, dtype=dt32), - 'dbar', 'Pressure', 'sea_water_pressure'), - ('heading', 'H', [], _LinFunc(0.01, dtype=dt32), - 'degree', 'Heading', 'platform_orientation'), - ('pitch', 'h', [], _LinFunc(0.01, dtype=dt32), - 'degree', 'Pitch', 'platform_pitch'), - ('roll', 'h', [], _LinFunc(0.01, dtype=dt32), 'degree', 'Roll', 'platform_roll'), - ('beam_config', 'H', [], None), - ('cell_size', 'H', [], _LinFunc(0.001), 'm'), - ('blank_dist', 'H', [], _LinFunc(0.01), 'm'), - ('nominal_corr', 'B', [], None, '%'), - ('temp_press', 'B', [], _LinFunc(0.2, -20, dtype=dt32), - 'degree_C', 'Pressure Sensor Temperature'), - ('batt', 'H', [], _LinFunc(0.1, dtype=dt32), - 'V', 'Battery Voltage', 'battery_voltage'), - ('mag', 'h', [3], _LinFunc(0.1, dtype=dt32), 'uT', 'Compass'), - ('accel', 'h', [3], _LinFunc(1. / 16384 * grav, dtype=dt32), - 'm s-2', 'Acceleration'), - ('ambig_vel', 'h', [], _LinFunc(0.001, dtype=dt32), 'm s-1'), - ('data_desc', 'H', [], None), - ('xmit_energy', 'H', [], None, 'dB', 'Sound Pressure Level of Acoustic Signal'), - ('vel_scale', 'b', [], None), - ('power_level_dB', 'b', [], _LinFunc(dtype=dt32), 'dB', 'Power Level'), - ('temp_mag', 'h', [], None), # uncalibrated - ('temp_clock', 'h', [], _LinFunc(0.01, dtype=dt32), - 'degree_C', 'Internal Clock Temperature'), - ('error', 'H', [], None, '1', 'Error Code'), - ('status0', 'H', [], None, '1', 'Status 0 Code'), - ('status', 'I', [], None, '1', 'Status Code'), - ('_ensemble', 'I', [], None), + ("ver", "B", [], None), + ("DatOffset", "B", [], None), + ("config", "H", [], None), + ("SerialNum", "I", [], None), + ("year", "B", [], None), + ("month", "B", [], None), + ("day", "B", [], None), + ("hour", "B", [], None), + ("minute", "B", [], None), + ("second", "B", [], None), + ("usec100", "H", [], None), + ( + "c_sound", + "H", + [], + _LinFunc(0.1, dtype=dt32), + "m s-1", + "Speed of Sound", + "speed_of_sound_in_sea_water", + ), + ( + "temp", + "h", + [], + _LinFunc(0.01, dtype=dt32), + "degree_C", + "Temperature", + "sea_water_temperature", + ), + ( + "pressure", + "I", + [], + _LinFunc(0.001, dtype=dt32), + "dbar", + "Pressure", + "sea_water_pressure", + ), + ( + "heading", + "H", + [], + _LinFunc(0.01, dtype=dt32), + "degree", + "Heading", + "platform_orientation", + ), + ("pitch", "h", [], _LinFunc(0.01, dtype=dt32), "degree", "Pitch", "platform_pitch"), + ("roll", "h", [], _LinFunc(0.01, dtype=dt32), "degree", "Roll", "platform_roll"), + ("beam_config", "H", [], None), + ("cell_size", "H", [], _LinFunc(0.001), "m"), + ("blank_dist", "H", [], _LinFunc(0.01), "m"), + ("nominal_corr", "B", [], None, "%"), + ( + "temp_press", + "b", + [], + _LinFunc(0.2, -20, dtype=dt32), + "degree_C", + "Pressure Sensor Temperature", + ), + ( + "batt", + "H", + [], + _LinFunc(0.1, dtype=dt32), + "V", + "Battery Voltage", + "battery_voltage", + ), + ("mag", "h", [3], _LinFunc(0.1, dtype=dt32), "uT", "Compass"), + ( + "accel", + "h", + [3], + _LinFunc(1.0 / 16384 * grav, dtype=dt32), + "m s-2", + "Acceleration", + ), + ("ambig_vel", "h", [], _LinFunc(0.001, dtype=dt32), "m s-1"), + ("data_desc", "H", [], None), + ("xmit_energy", "H", [], None, "dB", "Sound Pressure Level of Acoustic Signal"), + ("vel_scale", "b", [], None), + ("power_level_dB", "b", [], _LinFunc(dtype=dt32), "dB", "Power Level"), + ("temp_mag", "h", [], None), # uncalibrated + ( + "temp_clock", + "h", + [], + _LinFunc(0.01, dtype=dt32), + "degree_C", + "Internal Clock Temperature", + ), + ("error", "H", [], None, "1", "Error Code"), + ("status0", "H", [], None, "1", "Status 0 Code"), + ("status", "I", [], None, "1", "Status Code"), + ("_ensemble", "I", [], None), ] _bt_hdr = [ - ('ver', 'B', [], None), - ('DatOffset', 'B', [], None), - ('config', 'H', [], None), - ('SerialNum', 'I', [], None), - ('year', 'B', [], None), - ('month', 'B', [], None), - ('day', 'B', [], None), - ('hour', 'B', [], None), - ('minute', 'B', [], None), - ('second', 'B', [], None), - ('usec100', 'H', [], None), - ('c_sound', 'H', [], _LinFunc(0.1, dtype=dt32), 'm s-1', - 'Speed of Sound', 'speed_of_sound_in_sea_water'), - ('temp', 'H', [], _LinFunc(0.01, dtype=dt32), - 'degree_C', 'Temperature', 'sea_water_temperature'), - ('pressure', 'I', [], _LinFunc(0.001, dtype=dt32), - 'dbar', 'Pressure', 'sea_water_pressure'), - ('heading', 'H', [], _LinFunc(0.01, dtype=dt32), - 'degree', 'Heading', 'platform_orientation'), - ('pitch', 'h', [], _LinFunc(0.01, dtype=dt32), - 'degree', 'Pitch', 'platform_pitch'), - ('roll', 'h', [], _LinFunc(0.01, dtype=dt32), 'degree', 'Roll', 'platform_roll'), - ('beam_config', 'H', [], None), - ('cell_size', 'H', [], _LinFunc(0.001), 'm'), - ('blank_dist', 'H', [], _LinFunc(0.01), 'm'), - ('nominal_corr', 'B', [], None, '%'), - ('unused', 'B', [], None), - ('batt', 'H', [], _LinFunc(0.1, dtype=dt32), - 'V', 'Battery Voltage', 'battery_voltage'), - ('mag', 'h', [3], None, 'uT', 'Compass'), - ('accel', 'h', [3], _LinFunc(1. / 16384 * grav, dtype=dt32), - 'm s-2', 'Acceleration', ''), - ('ambig_vel', 'I', [], _LinFunc(0.001, dtype=dt32), 'm s-1'), - ('data_desc', 'H', [], None), - ('xmit_energy', 'H', [], None, 'dB', 'Sound Pressure Level of Acoustic Signal'), - ('vel_scale', 'b', [], None), - ('power_level_dB', 'b', [], _LinFunc(dtype=dt32), 'dB'), - ('temp_mag', 'h', [], None), # uncalibrated - ('temp_clock', 'h', [], _LinFunc(0.01, dtype=dt32), - 'degree_C', 'Internal Clock Temperature'), - ('error', 'I', [], None, '1', 'Error Code'), - ('status', 'I', [], None, '1', 'Status Code'), - ('_ensemble', 'I', [], None), + ("ver", "B", [], None), + ("DatOffset", "B", [], None), + ("config", "H", [], None), + ("SerialNum", "I", [], None), + ("year", "B", [], None), + ("month", "B", [], None), + ("day", "B", [], None), + ("hour", "B", [], None), + ("minute", "B", [], None), + ("second", "B", [], None), + ("usec100", "H", [], None), + ( + "c_sound", + "H", + [], + _LinFunc(0.1, dtype=dt32), + "m s-1", + "Speed of Sound", + "speed_of_sound_in_sea_water", + ), + ( + "temp", + "h", + [], + _LinFunc(0.01, dtype=dt32), + "degree_C", + "Temperature", + "sea_water_temperature", + ), + ( + "pressure", + "I", + [], + _LinFunc(0.001, dtype=dt32), + "dbar", + "Pressure", + "sea_water_pressure", + ), + ( + "heading", + "H", + [], + _LinFunc(0.01, dtype=dt32), + "degree", + "Heading", + "platform_orientation", + ), + ("pitch", "h", [], _LinFunc(0.01, dtype=dt32), "degree", "Pitch", "platform_pitch"), + ("roll", "h", [], _LinFunc(0.01, dtype=dt32), "degree", "Roll", "platform_roll"), + ("beam_config", "H", [], None), + ("cell_size", "H", [], _LinFunc(0.001), "m"), + ("blank_dist", "H", [], _LinFunc(0.01), "m"), + ("nominal_corr", "B", [], None, "%"), + ("unused", "B", [], None), + ( + "batt", + "H", + [], + _LinFunc(0.1, dtype=dt32), + "V", + "Battery Voltage", + "battery_voltage", + ), + ("mag", "h", [3], None, "uT", "Compass"), + ( + "accel", + "h", + [3], + _LinFunc(1.0 / 16384 * grav, dtype=dt32), + "m s-2", + "Acceleration", + "", + ), + ("ambig_vel", "I", [], _LinFunc(0.001, dtype=dt32), "m s-1"), + ("data_desc", "H", [], None), + ("xmit_energy", "H", [], None, "dB", "Sound Pressure Level of Acoustic Signal"), + ("vel_scale", "b", [], None), + ("power_level_dB", "b", [], _LinFunc(dtype=dt32), "dB"), + ("temp_mag", "h", [], None), # uncalibrated + ( + "temp_clock", + "h", + [], + _LinFunc(0.01, dtype=dt32), + "degree_C", + "Internal Clock Temperature", + ), + ("error", "I", [], None, "1", "Error Code"), + ("status", "I", [], None, "1", "Status Code"), + ("_ensemble", "I", [], None), ] _ahrs_def = [ - ('orientmat', 'f', [3, 3], None, '1', 'Orientation Matrix'), - ('quaternions', 'f', [4], None, '1', 'Quaternions'), - ('angrt', 'f', [3], _LinFunc(np.pi / 180, dtype=dt32), 'rad s-1', 'Angular Velocity'), + ("orientmat", "f", [3, 3], None, "1", "Orientation Matrix"), + ("quaternions", "f", [4], None, "1", "Quaternions"), + ( + "angrt", + "f", + [3], + _LinFunc(np.pi / 180, dtype=dt32), + "rad s-1", + "Angular Velocity", + ), ] def _calc_bt_struct(config, nb): - flags = lib._headconfig_int2dict(config, mode='bt') + flags = lib._headconfig_int2dict(config, mode="bt") dd = copy(_bt_hdr) - if flags['vel']: + if flags["vel"]: # units handled in Ad2cpReader.sci_data - dd.append(('vel', 'i', [nb], None, 'm s-1', 'Platform Velocity from Bottom Track')) - if flags['dist']: - dd.append(('dist', 'i', [nb], _LinFunc(0.001, dtype=dt32), 'm', 'Bottom Track Measured Depth')) - if flags['fom']: - dd.append(('fom', 'H', [nb], None, '1', 'Figure of Merit')) - if flags['ahrs']: + dd.append( + ("vel", "i", [nb], None, "m s-1", "Platform Velocity from Bottom Track") + ) + if flags["dist"]: + dd.append( + ( + "dist", + "i", + [nb], + _LinFunc(0.001, dtype=dt32), + "m", + "Bottom Track Measured Depth", + ) + ) + if flags["fom"]: + dd.append(("fom", "H", [nb], None, "1", "Figure of Merit")) + if flags["ahrs"]: dd += _ahrs_def return _DataDef(dd) @@ -295,14 +414,27 @@ def _calc_bt_struct(config, nb): def _calc_echo_struct(config, nc): flags = lib._headconfig_int2dict(config) dd = copy(_burst_hdr) - dd[19] = ('blank_dist', 'H', [], _LinFunc(0.001)) # m - if any([flags[nm] for nm in ['vel', 'amp', 'corr', 'alt', 'ast', - 'alt_raw', 'p_gd', 'std']]): + dd[19] = ("blank_dist", "H", [], _LinFunc(0.001)) # m + if any( + [ + flags[nm] + for nm in ["vel", "amp", "corr", "le", "ast", "altraw", "p_gd", "std"] + ] + ): raise Exception("Echosounder ping contains invalid data?") - if flags['echo']: - dd += [('echo', 'H', [nc], _LinFunc(0.01, dtype=dt32), 'dB', - 'Echo Sounder Acoustic Signal Backscatter', 'acoustic_target_strength_in_sea_water')] - if flags['ahrs']: + if flags["echo"]: + dd += [ + ( + "echo", + "H", + [nc], + _LinFunc(0.01, dtype=dt32), + "dB", + "Echo Sounder Acoustic Signal Backscatter", + "acoustic_target_strength_in_sea_water", + ) + ] + if flags["ahrs"]: dd += _ahrs_def return _DataDef(dd) @@ -310,53 +442,157 @@ def _calc_echo_struct(config, nc): def _calc_burst_struct(config, nb, nc): flags = lib._headconfig_int2dict(config) dd = copy(_burst_hdr) - if flags['echo']: + if flags["echo"]: raise Exception("Echosounder data found in velocity ping?") - if flags['vel']: - dd.append(('vel', 'h', [nb, nc], None, 'm s-1', 'Water Velocity')) - if flags['amp']: - dd.append(('amp', 'B', [nb, nc], _LinFunc(0.5, dtype=dt32), '1', 'Acoustic Signal Amplitude', - 'signal_intensity_from_multibeam_acoustic_doppler_velocity_sensor_in_sea_water')) - if flags['corr']: - dd.append(('corr', 'B', [nb, nc], None, '%', 'Acoustic Signal Correlation', - 'beam_consistency_indicator_from_multibeam_acoustic_doppler_velocity_profiler_in_sea_water')) - if flags['alt']: + if flags["vel"]: + dd.append(("vel", "h", [nb, nc], None, "m s-1", "Water Velocity")) + if flags["amp"]: + dd.append( + ( + "amp", + "B", + [nb, nc], + _LinFunc(0.5, dtype=dt32), + "1", + "Acoustic Signal Amplitude", + "signal_intensity_from_multibeam_acoustic_doppler_velocity_sensor_in_sea_water", + ) + ) + if flags["corr"]: + dd.append( + ( + "corr", + "B", + [nb, nc], + None, + "%", + "Acoustic Signal Correlation", + "beam_consistency_indicator_from_multibeam_acoustic_doppler_velocity_profiler_in_sea_water", + ) + ) + if flags["le"]: # There may be a problem here with reading 32bit floats if # nb and nc are odd - dd += [('alt_dist', 'f', [], _LinFunc(dtype=dt32), 'm', 'Altimeter Range', 'altimeter_range'), - ('alt_quality', 'H', [], _LinFunc(0.01, dtype=dt32), '1', 'Altimeter Quality Indicator'), - ('alt_status', 'H', [], None, '1', 'Altimeter Status')] - if flags['ast']: dd += [ - ('ast_dist', 'f', [], _LinFunc(dtype=dt32), 'm', 'Acoustic Surface Tracking Range'), - ('ast_quality', 'H', [], _LinFunc(0.01, dtype=dt32), '1', - 'Acoustic Surface Tracking Quality Indicator'), - ('ast_offset_time', 'h', [], _LinFunc(0.0001, dtype=dt32), - 's', 'Acoustic Surface Tracking Time Offset to Velocity Ping'), - ('ast_pressure', 'f', [], None, 'dbar', 'Pressure measured during AST ping', - 'sea_water_pressure'), - ('ast_spare', 'B7x', [], None), + ( + "le_dist_alt", + "f", + [], + _LinFunc(dtype=dt32), + "m", + "Altimeter Range Leading Edge Algorithm", + "altimeter_range", + ), + ( + "le_quality_alt", + "H", + [], + _LinFunc(0.01, dtype=dt32), + "dB", + "Altimeter Quality Indicator Leading Edge Algorithm", + ), + ("status_alt", "H", [], None, "1", "Altimeter Status"), + ] + if flags["ast"]: + dd += [ + ( + "ast_dist_alt", + "f", + [], + _LinFunc(dtype=dt32), + "m", + "Altimeter Range Acoustic Surface Tracking", + "altimeter_range", + ), + ( + "ast_quality_alt", + "H", + [], + _LinFunc(0.01, dtype=dt32), + "dB", + "Altimeter Quality Indicator Acoustic Surface Tracking", + ), + ( + "ast_offset_time_alt", + "h", + [], + _LinFunc(0.0001, dtype=dt32), + "s", + "Acoustic Surface Tracking Time Offset to Velocity Ping", + ), + ( + "pressure_alt", + "f", + [], + None, + "dbar", + "Pressure measured during AST ping", + "sea_water_pressure", + ), + # This use of 'x' here is a hack + ("spare", "B7x", [], None), ] - if flags['alt_raw']: + if flags["altraw"]: dd += [ - ('altraw_nsamp', 'I', [], None, '1', 'Number of Altimeter Samples'), - ('altraw_dsamp', 'H', [], _LinFunc(0.0001, dtype=dt32), 'm', - 'Altimeter Distance between Samples'), - ('altraw_samp', 'h', [], None), + ("nsamp_alt", "I", [], None, "1", "Number of Altimeter Samples"), + ( + "dsamp_alt", + "H", + [], + _LinFunc(0.0001, dtype=dt32), + "m", + "Altimeter Distance between Samples", + ), + ("samp_alt", "h", [], None, "1", "Altimeter Samples"), ] - if flags['ahrs']: + if flags["ahrs"]: dd += _ahrs_def - if flags['p_gd']: - dd += [('percent_good', 'B', [nc], None, '%', 'Percent Good', - 'proportion_of_acceptable_signal_returns_from_acoustic_instrument_in_sea_water')] - if flags['std']: - dd += [('pitch_std', 'h', [], - _LinFunc(0.01, dtype=dt32), 'degree', 'Pitch Standard Deviation'), - ('roll_std', 'h', [], - _LinFunc(0.01, dtype=dt32), 'degree', 'Roll Standard Deviation'), - ('heading_std', 'h', [], - _LinFunc(0.01, dtype=dt32), 'degree', 'Heading Standard Deviation'), - ('press_std', 'h', [], - _LinFunc(0.1, dtype=dt32), 'dbar', 'Pressure Standard Deviation'), - ('std_spare', 'H22x', [], None)] + if flags["p_gd"]: + dd += [ + ( + "percent_good", + "B", + [nc], + None, + "%", + "Percent Good", + "proportion_of_acceptable_signal_returns_from_acoustic_instrument_in_sea_water", + ) + ] + if flags["std"]: + dd += [ + ( + "pitch_std", + "h", + [], + _LinFunc(0.01, dtype=dt32), + "degree", + "Pitch Standard Deviation", + ), + ( + "roll_std", + "h", + [], + _LinFunc(0.01, dtype=dt32), + "degree", + "Roll Standard Deviation", + ), + ( + "heading_std", + "h", + [], + _LinFunc(0.01, dtype=dt32), + "degree", + "Heading Standard Deviation", + ), + ( + "press_std", + "h", + [], + _LinFunc(0.1, dtype=dt32), + "dbar", + "Pressure Standard Deviation", + ), + ("std_spare", "H22x", [], None), + ] return _DataDef(dd) diff --git a/mhkit/dolfyn/io/nortek2_lib.py b/mhkit/dolfyn/io/nortek2_lib.py index f3575b6e6..3336651f5 100644 --- a/mhkit/dolfyn/io/nortek2_lib.py +++ b/mhkit/dolfyn/io/nortek2_lib.py @@ -26,9 +26,13 @@ def _reduce_by_average_angle(data, ky0, ky1, degrees=True): rad_fact = 1 if ky1 in data: if ky0 in data: - data[ky0] = np.angle( - np.exp(1j * data.pop(ky0) * rad_fact) + - np.exp(1j * data.pop(ky1) * rad_fact)) / rad_fact + data[ky0] = ( + np.angle( + np.exp(1j * data.pop(ky0) * rad_fact) + + np.exp(1j * data.pop(ky1) * rad_fact) + ) + / rad_fact + ) else: data[ky0] = data.pop(ky1) @@ -36,56 +40,65 @@ def _reduce_by_average_angle(data, ky0, ky1, degrees=True): # This is the data-type of the index file. # This must match what is written-out by the create_index function. _index_version = 1 -_hdr = struct.Struct(' 60) # This probably indicates a corrupted byte, so we just insert None. @@ -94,113 +107,174 @@ def _calc_time(year, month, day, hour, minute, second, usec, zero_is_bad=True): return dt -def _create_index(infile, outfile, N_ens, debug): +def _create_index(infile, outfile, init_pos, eof, debug): logging = getLogger() - print("Indexing {}...".format(infile), end='') - fin = open(_abspath(infile), 'rb') - fout = open(_abspath(outfile), 'wb') - fout.write(b'Index Ver:') - fout.write(struct.pack(' 0: - # Covers all id keys saved in "burst mode" - ens[idk] = last_ens[idk]+1 + if last_ens[idk] > 0: + if (ens[idk] == 1) or (ens[idk] < last_ens[idk]): + # Covers all id keys saved in "burst mode" + # Covers ID keys not saved in sequential order + ens[idk] = last_ens[idk] + 1 if last_ens[idk] > 0 and last_ens[idk] != ens[idk]: N[idk] += 1 - fout.write(struct.pack(' N_id)[0] + # Check if spacing is equal for dual profiling ADCPs + if dp: + skip_size = np.diff(ibad) + n_skip, count = np.unique(skip_size, return_counts=True) + # If multiple skips are of the same size, assume okay + for n, c in zip(n_skip, count): + if c > 1: + skip_size[skip_size == n] = 0 + # assume last "ibad" element is always good for dp's + mask = np.append(skip_size, 0).astype(bool) if any(skip_size) else [] + ibad = ibad[mask] for ib in ibad: FLAG = True # The ping number reported here may not be quite right if # the ensemble count is wrong. - warnings.warn("Skipped ping (ID: {}) in file {} at ensemble {}." - .format(id, infile, idx['ens'][inds[ib + 1] - 1])) - hwe[inds[(ib + 1):]] += 1 - ens[inds[(ib + 1):]] += 1 - - # This block fixes skips that originate from before this file. - delta = max(hwe[:N_id]) - hwe[:N_id] - for d, id in zip(delta, idx['ID'][:N_id]): - if d != 0: - FLAG = True - hwe[id == idx['ID']] += d - ens[id == idx['ID']] += d + warnings.warn( + "Skipped ping (ID: {}) in file {} at ensemble {}.".format( + id, infile, idx["ens"][inds[ib + 1] - 1] + ) + ) + hwe[inds[(ib + 1) :]] += 1 + ens[inds[(ib + 1) :]] += 1 - if np.any(np.diff(ens) > 1) and FLAG: - idx['ens'] = np.unwrap(hwe.astype(np.int64), period=period) - hwe[0] + return dp def _boolarray_firstensemble_ping(index): """ - Return a boolean of the index that indicates only the first ping in + Return a boolean of the index that indicates only the first ping in each ensemble. """ - dens = np.ones(index['ens'].shape, dtype='bool') - dens[1:] = np.diff(index['ens']) != 0 + dens = np.ones(index["ens"].shape, dtype="bool") + dens[1:] = np.diff(index["ens"]) != 0 return dens -def get_index(infile, reload=False, debug=False): +def get_index(infile, pos=0, eof=2**32, rebuild=False, debug=False, dp=False): """ This function reads ad2cp.index files @@ -219,21 +293,21 @@ def get_index(infile, reload=False, debug=False): Tuple containing info held within index file """ - index_file = infile + '.index' - if not path.isfile(index_file) or reload: - _create_index(infile, index_file, 2 ** 32, debug) - f = open(_abspath(index_file), 'rb') + index_file = infile + ".index" + if not path.isfile(index_file) or rebuild or debug: + _create_index(infile, index_file, pos, eof, debug) + f = open(_abspath(index_file), "rb") file_head = f.read(12) - if file_head[:10] == b'Index Ver:': - index_ver = struct.unpack('> n) & 1) -def _headconfig_int2dict(val, mode='burst'): +def _headconfig_int2dict(val, mode="burst"): """ Convert the burst Configuration bit-mask to a dict of bools. @@ -330,7 +408,7 @@ def _headconfig_int2dict(val, mode='burst'): For 'burst' configs, or 'bottom-track' configs. """ - if (mode == 'burst') or (mode == 'avg'): + if (mode == "burst") or (mode == "avg"): return dict( press_valid=_getbit(val, 0), temp_valid=_getbit(val, 1), @@ -340,8 +418,8 @@ def _headconfig_int2dict(val, mode='burst'): vel=_getbit(val, 5), amp=_getbit(val, 6), corr=_getbit(val, 7), - alt=_getbit(val, 8), - alt_raw=_getbit(val, 9), + le=_getbit(val, 8), + altraw=_getbit(val, 9), ast=_getbit(val, 10), echo=_getbit(val, 11), ahrs=_getbit(val, 12), @@ -349,7 +427,7 @@ def _headconfig_int2dict(val, mode='burst'): std=_getbit(val, 14), # bit 15 is unused ) - elif mode == 'bt': + elif mode == "bt": return dict( press_valid=_getbit(val, 0), temp_valid=_getbit(val, 1), @@ -371,9 +449,9 @@ def _status02data(val): bi = _BitIndexer(val) out = {} if any(bi[15]): # 'status0_in_use' - out['proc_idle_less_3pct'] = bi[0] - out['proc_idle_less_6pct'] = bi[1] - out['proc_idle_less_12pct'] = bi[2] + out["proc_idle_less_3pct"] = bi[0] + out["proc_idle_less_6pct"] = bi[1] + out["proc_idle_less_12pct"] = bi[2] return out @@ -383,18 +461,18 @@ def _status2data(val): # Integrators Guide (2017) bi = _BitIndexer(val) out = {} - out['wakeup_state'] = bi[28:32] - out['orient_up'] = bi[25:28] - out['auto_orientation'] = bi[22:25] - out['previous_wakeup_state'] = bi[18:22] - out['low_volt_skip'] = bi[17] - out['active_config'] = bi[16] - out['echo_index'] = bi[12:16] - out['telemetry_data'] = bi[11] - out['boost_running'] = bi[10] - out['echo_freq_bin'] = bi[5:10] + out["wakeup_state"] = bi[28:32] + out["orient_up"] = bi[25:28] + out["auto_orientation"] = bi[22:25] + out["previous_wakeup_state"] = bi[18:22] + out["low_volt_skip"] = bi[17] + out["active_config"] = bi[16] + out["echo_index"] = bi[12:16] + out["telemetry_data"] = bi[11] + out["boost_running"] = bi[10] + out["echo_freq_bin"] = bi[5:10] # 2,3,4 unused - out['bd_scaling'] = bi[1] # if True: cm scaling of blanking dist + out["bd_scaling"] = bi[1] # if True: cm scaling of blanking dist # 0 unused return out @@ -404,25 +482,26 @@ def _alt_status2data(val): # Integrators Guide (2017) bi = _BitIndexer(val) out = {} - out['tilt_over_5deg'] = bi[0] - out['tilt_over_10deg'] = bi[1] - out['multibeam_alt'] = bi[2] - out['n_beams_alt'] = bi[3:7] - out['power_level_idx_alt'] = bi[7:10] + out["tilt_over_5deg"] = bi[0] + out["tilt_over_10deg"] = bi[1] + out["multibeam_alt"] = bi[2] + out["n_beams_alt"] = bi[3:7] + out["power_level_idx_alt"] = bi[7:10] return out def _beams_cy_int2dict(val, id): - """Convert the beams/coordinate-system bytes to a dict of values. - """ + """Convert the beams/coordinate-system bytes to a dict of values.""" if id == 28: # 0x1C (echosounder) return dict(n_cells=val) - + elif id in [26, 31]: + return dict(n_cells=val & (2**10 - 1), cy="beam", n_beams=1) return dict( - n_cells=val & (2 ** 10 - 1), - cy=['ENU', 'XYZ', 'beam', None][val >> 10 & 3], - n_beams=val >> 12) + n_cells=val & (2**10 - 1), + cy=["ENU", "XYZ", "beam", None][val >> 10 & 3], + n_beams=val >> 12, + ) def _isuniform(vec, exclude=[]): @@ -442,8 +521,7 @@ def _collapse(vec, name=None, exclude=[]): elif _isuniform(vec, exclude=exclude): return list(set(np.unique(vec)) - set(exclude))[0] else: - uniq, idx, counts = np.unique( - vec, return_index=True, return_counts=True) + uniq, idx, counts = np.unique(vec, return_index=True, return_counts=True) if all(e == counts[0] for e in counts): val = max(vec) # pings saved out of order, but equal # of pings @@ -452,11 +530,14 @@ def _collapse(vec, name=None, exclude=[]): if not set(uniq) == set([0, val]) and set(counts) == set([1, np.max(counts)]): # warn when the 'wrong value' is not just a single zero. - warnings.warn("The variable {} is expected to be uniform, but it is not.\n" - "Values found: {} (counts: {}).\n" - "Using the most common value: {}".format( - name, list(uniq), list(counts), val)) - + warnings.warn( + "The variable {} is expected to be uniform, but it is not.\n" + "Values found: {} (counts: {}).\n" + "Using the most common value: {}".format( + name, list(uniq), list(counts), val + ) + ) + return val @@ -471,33 +552,41 @@ def _calc_config(index): A dict containing the key information for initializing arrays. """ - ids = np.unique(index['ID']) + ids = np.unique(index["ID"]) config = {} for id in ids: - if id not in [21, 22, 23, 24, 26, 28]: + if id not in [21, 22, 23, 24, 26, 28, 31]: continue if id == 23: - type = 'bt' - elif id == 22: - type = 'avg' + type = "bt" + elif (id == 22) or (id == 31): + type = "avg" else: - type = 'burst' - inds = index['ID'] == id - _config = index['config'][inds] - _beams_cy = index['beams_cy'][inds] + type = "burst" + inds = index["ID"] == id + _config = index["config"][inds] + _beams_cy = index["beams_cy"][inds] + # Check that these variables are consistent if not _isuniform(_config): - raise Exception("config are not identical for id: 0x{:X}." - .format(id)) + raise Exception("config are not identical for id: 0x{:X}.".format(id)) if not _isuniform(_beams_cy): - raise Exception("beams_cy are not identical for id: 0x{:X}." - .format(id)) + err = True + if id == 23: + # change in "n_cells" doesn't matter + lob = np.unique(_beams_cy) + beams = list(map(_beams_cy_int2dict, lob, 23 * np.ones(lob.size))) + if all([d["cy"] for d in beams]) and all([d["n_beams"] for d in beams]): + err = False + if err: + raise Exception("beams_cy are not identical for id: 0x{:X}.".format(id)) + # Now that we've confirmed they are the same: config[id] = _headconfig_int2dict(_config[0], mode=type) config[id].update(_beams_cy_int2dict(_beams_cy[0], id)) - config[id]['_config'] = _config[0] - config[id]['_beams_cy'] = _beams_cy[0] - config[id]['type'] = type - config[id].pop('cy', None) + config[id]["_config"] = _config[0] + config[id]["_beams_cy"] = _beams_cy[0] + config[id]["type"] = type + config[id].pop("cy", None) return config diff --git a/mhkit/dolfyn/io/nortek_defs.py b/mhkit/dolfyn/io/nortek_defs.py index 180af05eb..c3e6a9757 100644 --- a/mhkit/dolfyn/io/nortek_defs.py +++ b/mhkit/dolfyn/io/nortek_defs.py @@ -1,8 +1,9 @@ import numpy as np + nan = np.nan -class _VarAtts(): +class _VarAtts: """ A data variable attributes class. @@ -36,11 +37,21 @@ class _VarAtts(): A list of names for each dimension of the array. """ - def __init__(self, dims=[], dtype=None, group='data_vars', - view_type=None, default_val=None, - offset=0, factor=1, - title_name=None, units='1', dim_names=None, - long_name='', standard_name=''): + def __init__( + self, + dims=[], + dtype=None, + group="data_vars", + view_type=None, + default_val=None, + offset=0, + factor=1, + title_name=None, + units="1", + dim_names=None, + long_name="", + standard_name="", + ): self.dims = list(dims) if dtype is None: dtype = np.float32 @@ -66,7 +77,7 @@ def shape(self, **kwargs): if hit: return a else: - return self.dims + [kwargs['n']] + return self.dims + [kwargs["n"]] def _empty_array(self, **kwargs): out = np.zeros(self.shape(**kwargs), dtype=self.dtype) @@ -102,241 +113,431 @@ def sci_func(self, data): vec_data = { - 'AnaIn2LSB': _VarAtts(dims=[], - dtype=np.uint8, - group='sys', - ), - 'Count': _VarAtts(dims=[], - dtype=np.uint8, - group='sys', - units='1', - ), - 'PressureMSB': _VarAtts(dims=[], - dtype=np.uint8, - group='data_vars', - ), - 'AnaIn2MSB': _VarAtts(dims=[], - dtype=np.uint8, - group='sys', - ), - 'PressureLSW': _VarAtts(dims=[], - dtype=np.uint16, - group='data_vars', - ), - 'AnaIn1': _VarAtts(dims=[], - dtype=np.uint16, - group='sys', - ), - 'vel': _VarAtts(dims=[3], - dtype=np.float32, - group='data_vars', - factor=0.001, - default_val=nan, - units='m s-1', - long_name='Water Velocity', - ), - 'amp': _VarAtts(dims=[3], - dtype=np.uint8, - group='data_vars', - units='1', - long_name='Acoustic Signal Amplitude', - standard_name='signal_intensity_from_multibeam_acoustic_doppler_velocity_sensor_in_sea_water' - ), - 'corr': _VarAtts(dims=[3], - dtype=np.uint8, - group='data_vars', - units='%', - long_name='Acoustic Signal Correlation', - ), + "AnaIn2LSB": _VarAtts( + dims=[], + dtype=np.uint8, + group="sys", + ), + "Count": _VarAtts( + dims=[], + dtype=np.uint8, + group="sys", + units="1", + ), + "PressureMSB": _VarAtts( + dims=[], + dtype=np.uint8, + group="data_vars", + ), + "AnaIn2MSB": _VarAtts( + dims=[], + dtype=np.uint8, + group="sys", + ), + "PressureLSW": _VarAtts( + dims=[], + dtype=np.uint16, + group="data_vars", + ), + "AnaIn1": _VarAtts( + dims=[], + dtype=np.uint16, + group="sys", + ), + "vel": _VarAtts( + dims=[3], + dtype=np.float32, + group="data_vars", + factor=0.001, + default_val=nan, + units="m s-1", + long_name="Water Velocity", + ), + "amp": _VarAtts( + dims=[3], + dtype=np.uint8, + group="data_vars", + units="1", + long_name="Acoustic Signal Amplitude", + standard_name="signal_intensity_from_multibeam_acoustic_doppler_velocity_sensor_in_sea_water", + ), + "corr": _VarAtts( + dims=[3], + dtype=np.uint8, + group="data_vars", + units="%", + long_name="Acoustic Signal Correlation", + ), } vec_sysdata = { - 'time': _VarAtts(dims=[], - dtype=np.float64, - group='coords', - default_val=nan, - units='seconds since 1970-01-01 00:00:00', - long_name='Time', - standard_name='time', - ), - 'batt': _VarAtts(dims=[], - dtype=np.float32, - group='data_vars', - default_val=nan, - factor=0.1, - units='V', - long_name='Battery Voltage', - ), - 'c_sound': _VarAtts(dims=[], - dtype=np.float32, - group='data_vars', - default_val=nan, - factor=0.1, - units='m s-1', - long_name='Speed of Sound', - standard_name='speed_of_sound_in_sea_water', - ), - 'heading': _VarAtts(dims=[], - dtype=np.float32, - group='data_vars', - default_val=nan, - factor=0.1, - units='degree', - long_name='Heading', - standard_name='platform_orientation', - ), - 'pitch': _VarAtts(dims=[], - dtype=np.float32, - group='data_vars', - default_val=nan, - factor=0.1, - units='degree', - long_name='Pitch', - standard_name='platform_pitch', - ), - 'roll': _VarAtts(dims=[], - dtype=np.float32, - group='data_vars', - default_val=nan, - factor=0.1, - units='degree', - long_name='Roll', - standard_name='platform_roll' - ), - 'temp': _VarAtts(dims=[], - dtype=np.float32, - group='data_vars', - default_val=nan, - factor=0.01, - units='degree_C', - long_name='Temperature', - standard_name='sea_water_temperature', - ), - 'error': _VarAtts(dims=[], - dtype=np.uint8, - group='data_vars', - default_val=nan, - long_name='Error Code', - ), - 'status': _VarAtts(dims=[], - dtype=np.uint8, - group='data_vars', - default_val=nan, - long_name='Status Code' - ), - 'AnaIn': _VarAtts(dims=[], - dtype=np.float32, - group='sys', - default_val=nan, - ), - 'orientation_down': _VarAtts(dims=[], - dtype=bool, - group='data_vars', - default_val=nan, - long_name='Orientation of ADV Communication Cable' - ), + "time": _VarAtts( + dims=[], + dtype=np.float64, + group="coords", + default_val=nan, + units="seconds since 1970-01-01 00:00:00 UTC", + long_name="Time", + standard_name="time", + ), + "batt": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.1, + units="V", + long_name="Battery Voltage", + ), + "c_sound": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.1, + units="m s-1", + long_name="Speed of Sound", + standard_name="speed_of_sound_in_sea_water", + ), + "heading": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.1, + units="degree", + long_name="Heading", + standard_name="platform_orientation", + ), + "pitch": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.1, + units="degree", + long_name="Pitch", + standard_name="platform_pitch", + ), + "roll": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.1, + units="degree", + long_name="Roll", + standard_name="platform_roll", + ), + "temp": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.01, + units="degree_C", + long_name="Temperature", + standard_name="sea_water_temperature", + ), + "error": _VarAtts( + dims=[], + dtype=np.uint8, + group="data_vars", + default_val=nan, + long_name="Error Code", + ), + "status": _VarAtts( + dims=[], + dtype=np.uint8, + group="data_vars", + default_val=nan, + long_name="Status Code", + ), + "AnaIn": _VarAtts( + dims=[], + dtype=np.float32, + group="sys", + default_val=nan, + ), + "orientation_down": _VarAtts( + dims=[], + dtype=bool, + group="data_vars", + default_val=nan, + long_name="Orientation of ADV Communication Cable", + ), } awac_profile = { - 'time': _VarAtts(dims=[], - dtype=np.float64, - group='coords', - units='seconds since 1970-01-01 00:00:00', - long_name='Time', - standard_name='time', - ), - 'error': _VarAtts(dims=[], - dtype=np.uint16, - group='data_vars', - long_name='Error Code', - ), - 'AnaIn1': _VarAtts(dims=[], - dtype=np.float32, - group='sys', - default_val=nan, - units='n/a', - ), - 'batt': _VarAtts(dims=[], - dtype=np.float32, - group='data_vars', - default_val=nan, - factor=0.1, - units='V', - long_name='Battery Voltage', - ), - 'c_sound': _VarAtts(dims=[], - dtype=np.float32, - group='data_vars', - default_val=nan, - factor=0.1, - units='m s-1', - long_name='Speed of Sound', - standard_name='speed_of_sound_in_sea_water', - ), - 'heading': _VarAtts(dims=[], - dtype=np.float32, - group='data_vars', - default_val=nan, - factor=0.1, - units='degree', - long_name='Heading', - standard_name='platform_orientation', - ), - 'pitch': _VarAtts(dims=[], - dtype=np.float32, - group='data_vars', - default_val=nan, - factor=0.1, - units='degree', - long_name='Pitch', - standard_name='platform_pitch', - ), - 'roll': _VarAtts(dims=[], - dtype=np.float32, - group='data_vars', - default_val=nan, - factor=0.1, - units='degree', - long_name='Roll', - standard_name='platform_roll' - ), - 'pressure': _VarAtts(dims=[], - dtype=np.float32, - group='data_vars', - default_val=nan, - factor=0.001, - units='dbar', - long_name='Pressure', - standard_name='sea_water_pressure', - ), - 'status': _VarAtts(dims=[], - dtype=np.float32, - group='data_vars', - default_val=nan, - long_name='Status Code' - ), - 'temp': _VarAtts(dims=[], - dtype=np.float32, - group='data_vars', - default_val=nan, - factor=0.01, - units='degree_C', - long_name='Temperature', - standard_name='sea_water_temperature', - ), - 'vel': _VarAtts(dims=[3, 'nbins', 'n'], # how to change this for different # of beams? - dtype=np.float32, - group='data_vars', - default_val=nan, - factor=0.001, - units='m s-1', - long_name='Water Velocity', - ), - 'amp': _VarAtts(dims=[3, 'nbins', 'n'], - dtype=np.uint8, - group='data_vars', - units='1', - long_name='Acoustic Signal Amplitude', - standard_name='signal_intensity_from_multibeam_acoustic_doppler_velocity_sensor_in_sea_water', - ), + "time": _VarAtts( + dims=[], + dtype=np.float64, + group="coords", + units="seconds since 1970-01-01 00:00:00 UTC", + long_name="Time", + standard_name="time", + ), + "error": _VarAtts( + dims=[], + dtype=np.uint16, + group="data_vars", + long_name="Error Code", + ), + "AnaIn1": _VarAtts( + dims=[], + dtype=np.float32, + group="sys", + default_val=nan, + units="n/a", + ), + "batt": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.1, + units="V", + long_name="Battery Voltage", + ), + "c_sound": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.1, + units="m s-1", + long_name="Speed of Sound", + standard_name="speed_of_sound_in_sea_water", + ), + "heading": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.1, + units="degree", + long_name="Heading", + standard_name="platform_orientation", + ), + "pitch": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.1, + units="degree", + long_name="Pitch", + standard_name="platform_pitch", + ), + "roll": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.1, + units="degree", + long_name="Roll", + standard_name="platform_roll", + ), + "pressure": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.001, + units="dbar", + long_name="Pressure", + standard_name="sea_water_pressure", + ), + "status": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + long_name="Status Code", + ), + "temp": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.01, + units="degree_C", + long_name="Temperature", + standard_name="sea_water_temperature", + ), + "vel": _VarAtts( + dims=[3, "nbins", "n"], # how to change this for different # of beams? + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.001, + units="m s-1", + long_name="Water Velocity", + ), + "amp": _VarAtts( + dims=[3, "nbins", "n"], + dtype=np.uint8, + group="data_vars", + units="1", + long_name="Acoustic Signal Amplitude", + standard_name="signal_intensity_from_multibeam_acoustic_doppler_velocity_sensor_in_sea_water", + ), +} + +waves_hdrdata = { + "time_alt": _VarAtts( + dims=[], + dtype=np.float64, + group="coords", + default_val=nan, + units="seconds since 1970-01-01 00:00:00 UTC", + long_name="Time", + standard_name="time", + ), + "batt_alt": _VarAtts( + dims=[], + dtype=np.uint16, + group="data_vars", + default_val=nan, + factor=0.1, + units="V", + long_name="Battery Voltage", + ), + "c_sound_alt": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.1, + units="m s-1", + long_name="Speed of Sound", + standard_name="speed_of_sound_in_sea_water", + ), + "heading_alt": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.1, + units="degree", + long_name="Heading", + standard_name="platform_orientation", + ), + "pitch_alt": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.1, + units="degree", + long_name="Pitch", + standard_name="platform_pitch", + ), + "roll_alt": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.1, + units="degree", + long_name="Roll", + standard_name="platform_roll", + ), + "pressure1_alt": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.001, + units="dbar", + long_name="Pressure Min", + standard_name="sea_water_pressure", + ), + "pressure2_alt": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.001, + units="dbar", + long_name="Pressure Max", + standard_name="sea_water_pressure", + ), + "temp_alt": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.01, + units="degree_C", + long_name="Temperature", + standard_name="sea_water_temperature", + ), +} + +waves_data = { + "pressure_alt": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.001, + units="dbar", + long_name="Pressure", + standard_name="sea_water_pressure", + ), + "dist1_alt": _VarAtts( + dims=[], + dtype=np.uint16, + group="data_vars", + default_val=nan, + factor=0.001, + units="m", + long_name="AST distance1 on vertical beam", + standard_name="altimeter_range", + ), + "dist2_alt": _VarAtts( + dims=[], + dtype=np.uint16, + group="data_vars", + default_val=nan, + factor=0.001, + units="m", + long_name="AST distance2 on vertical beam", + standard_name="altimeter_range", + ), + "AnaIn1_alt": _VarAtts( + dims=[], + dtype=np.float32, + group="sys", + default_val=nan, + units="n/a", + ), + "vel_alt": _VarAtts( + dims=[4, "n"], + dtype=np.float32, + group="data_vars", + default_val=nan, + factor=0.001, + units="m s-1", + long_name="Water Velocity", + ), + "amp_alt": _VarAtts( + dims=[4, "n"], + dtype=np.uint8, + group="data_vars", + default_val=nan, + units="1", + long_name="Acoustic Signal Amplitude", + standard_name="signal_intensity_from_multibeam_acoustic_doppler_velocity_sensor_in_sea_water", + ), + "quality_alt": _VarAtts( + dims=[], + dtype=np.float32, + group="data_vars", + default_val=nan, + units="1", + long_name="Altimeter Quality Indicator", + ), } diff --git a/mhkit/dolfyn/io/rdi.py b/mhkit/dolfyn/io/rdi.py index 68ffac611..92996c7f3 100644 --- a/mhkit/dolfyn/io/rdi.py +++ b/mhkit/dolfyn/io/rdi.py @@ -14,8 +14,15 @@ from ..rotate.api import set_declination -def read_rdi(filename, userdata=None, nens=None, debug_level=-1, - vmdas_search=False, winriver=False, **kwargs): +def read_rdi( + filename, + userdata=None, + nens=None, + debug_level=-1, + vmdas_search=False, + winriver=False, + **kwargs, +): """ Read a TRDI binary data file. @@ -26,7 +33,7 @@ def read_rdi(filename, userdata=None, nens=None, debug_level=-1, userdata : True, False, or string of userdata.json filename Whether to read the '.userdata.json' file. Default = True nens : None, int or 2-element tuple (start, stop) - Number of pings or ensembles to read from the file. + Number of pings or ensembles to read from the file. Default is None, read entire file debug_level : int Debug level [0 - 2]. Default = -1 @@ -34,7 +41,7 @@ def read_rdi(filename, userdata=None, nens=None, debug_level=-1, Search from the end of each ensemble for the VMDAS navigation block. The byte offsets are sometimes incorrect. Default = False winriver : bool - If file is winriver or not. Automatically set by dolfyn, this is helpful + If file is winriver or not. Automatically set by dolfyn, this is helpful for debugging. Default = False Returns @@ -47,19 +54,20 @@ def read_rdi(filename, userdata=None, nens=None, debug_level=-1, for handler in logging.root.handlers[:]: logging.root.removeHandler(handler) filepath = Path(filename) - logfile = filepath.with_suffix('.dolfyn.log') - logging.basicConfig(filename=str(logfile), - filemode='w', - level=logging.NOTSET, - format='%(name)s - %(levelname)s - %(message)s') + logfile = filepath.with_suffix(".dolfyn.log") + logging.basicConfig( + filename=str(logfile), + filemode="w", + level=logging.NOTSET, + format="%(name)s - %(levelname)s - %(message)s", + ) # Reads into a dictionary of dictionaries using netcdf naming conventions # Should be easier to debug - with _RDIReader(filename, - debug_level=debug_level, - vmdas_search=vmdas_search, - winriver=winriver) as ldr: - datNB, datBB = ldr.load_data(nens=nens) + rdr = _RDIReader( + filename, debug_level=debug_level, vmdas_search=vmdas_search, winriver=winriver + ) + datNB, datBB = rdr.load_data(nens=nens) dats = [dat for dat in [datNB, datBB] if dat is not None] @@ -68,58 +76,57 @@ def read_rdi(filename, userdata=None, nens=None, debug_level=-1, dss = [] for dat in dats: for nm in userdata: - dat['attrs'][nm] = userdata[nm] + dat["attrs"][nm] = userdata[nm] # Pass one if only one ds returned - if not np.isfinite(dat['coords']['time'][0]): + if not np.isfinite(dat["coords"]["time"][0]): continue # GPS data not necessarily sampling at the same rate as ADCP DAQ. - if 'time_gps' in dat['coords']: + if "time_gps" in dat["coords"]: dat = _remove_gps_duplicates(dat) # Convert time coords to dt64 - t_coords = [t for t in dat['coords'] if 'time' in t] + t_coords = [t for t in dat["coords"] if "time" in t] for ky in t_coords: - dat['coords'][ky] = tmlib.epoch2dt64(dat['coords'][ky]) + dat["coords"][ky] = tmlib.epoch2dt64(dat["coords"][ky]) # Convert time vars to dt64 - t_data = [t for t in dat['data_vars'] if 'time' in t] + t_data = [t for t in dat["data_vars"] if "time" in t] for ky in t_data: - dat['data_vars'][ky] = tmlib.epoch2dt64(dat['data_vars'][ky]) + dat["data_vars"][ky] = tmlib.epoch2dt64(dat["data_vars"][ky]) # Create xarray dataset from upper level dictionary ds = _create_dataset(dat) ds = _set_coords(ds, ref_frame=ds.coord_sys) # Create orientation matrices - if 'beam2inst_orientmat' not in ds: - ds['beam2inst_orientmat'] = xr.DataArray( - _calc_beam_orientmat(ds.beam_angle, - ds.beam_pattern == 'convex'), - coords={'x1': [1, 2, 3, 4], - 'x2': [1, 2, 3, 4]}, - dims=['x1', 'x2'], - attrs={'units': '1', - 'long_name': 'Rotation Matrix'}) - - if 'orientmat' not in ds: - ds['orientmat'] = _calc_orientmat(ds) + if "beam2inst_orientmat" not in ds: + ds["beam2inst_orientmat"] = xr.DataArray( + _calc_beam_orientmat(ds.beam_angle, ds.beam_pattern == "convex"), + coords={"x1": [1, 2, 3, 4], "x2": [1, 2, 3, 4]}, + dims=["x1", "x2"], + attrs={"units": "1", "long_name": "Rotation Matrix"}, + ) + + if "orientmat" not in ds: + ds["orientmat"] = _calc_orientmat(ds) # Check magnetic declination if provided via software and/or userdata _set_rdi_declination(ds, filename, inplace=True) # VMDAS applies gps correction on velocity in .ENX files only - if filename.rsplit('.')[-1] == 'ENX': - ds.attrs['vel_gps_corrected'] = 1 + if filename.rsplit(".")[-1] == "ENX": + ds.attrs["vel_gps_corrected"] = 1 else: # (not ENR or ENS) or WinRiver files - ds.attrs['vel_gps_corrected'] = 0 + ds.attrs["vel_gps_corrected"] = 0 dss += [ds] if len(dss) == 2: - warnings.warn("\nTwo profiling configurations retrieved from file" - "\nReturning first.") + warnings.warn( + "\nTwo profiling configurations retrieved from file" "\nReturning first." + ) # Close handler if debug_level >= 0: @@ -137,22 +144,23 @@ def _remove_gps_duplicates(dat): (in addition to the GPS unit's timestamp). """ - dat['data_vars']['hdwtime_gps'] = dat['coords']['time'] + dat["data_vars"]["hdwtime_gps"] = dat["coords"]["time"] # Remove duplicate timestamp values, if applicable - dat['coords']['time_gps'], idx = np.unique(dat['coords']['time_gps'], - return_index=True) + dat["coords"]["time_gps"], idx = np.unique( + dat["coords"]["time_gps"], return_index=True + ) # Remove nan values, if applicable - nan = np.zeros(dat['coords']['time'].shape, dtype=bool) - if any(np.isnan(dat['coords']['time_gps'])): - nan = np.isnan(dat['coords']['time_gps']) - dat['coords']['time_gps'] = dat['coords']['time_gps'][~nan] - - for key in dat['data_vars']: - if ('gps' in key) or ('nmea' in key): - dat['data_vars'][key] = dat['data_vars'][key][idx] + nan = np.zeros(dat["coords"]["time"].shape, dtype=bool) + if any(np.isnan(dat["coords"]["time_gps"])): + nan = np.isnan(dat["coords"]["time_gps"]) + dat["coords"]["time_gps"] = dat["coords"]["time_gps"][~nan] + + for key in dat["data_vars"]: + if ("gps" in key) or ("nmea" in key): + dat["data_vars"][key] = dat["data_vars"][key][idx] if sum(nan) > 0: - dat['data_vars'][key] = dat['data_vars'][key][~nan] + dat["data_vars"][key] = dat["data_vars"][key][~nan] return dat @@ -163,44 +171,46 @@ def _set_rdi_declination(dat, fname, inplace): included in the heading and in the velocity data. """ - declin = dat.attrs.pop('declination', None) # userdata declination + declin = dat.attrs.pop("declination", None) # userdata declination - if dat.attrs['magnetic_var_deg'] != 0: # from TRDI software if set - dat.attrs['declination'] = dat.attrs['magnetic_var_deg'] - dat.attrs['declination_in_orientmat'] = 1 # logical + if dat.attrs["magnetic_var_deg"] != 0: # from TRDI software if set + dat.attrs["declination"] = dat.attrs["magnetic_var_deg"] + dat.attrs["declination_in_orientmat"] = 1 # logical - if dat.attrs['magnetic_var_deg'] != 0 and declin is not None: + if dat.attrs["magnetic_var_deg"] != 0 and declin is not None: warnings.warn( "'magnetic_var_deg' is set to {:.2f} degrees in the binary " "file '{}', AND 'declination' is set in the 'userdata.json' " "file. DOLfYN WILL USE THE VALUE of {:.2f} degrees in " "userdata.json. If you want to use the value in " "'magnetic_var_deg', delete the value from userdata.json and " - "re-read the file." - .format(dat.attrs['magnetic_var_deg'], fname, declin)) - dat.attrs['declination'] = declin + "re-read the file.".format(dat.attrs["magnetic_var_deg"], fname, declin) + ) + dat.attrs["declination"] = declin if declin is not None: set_declination(dat, declin, inplace) -class _RDIReader(): - _pos = 0 - progress = 0 - _cfac = 180 / 2 ** 31 - _source = 0 - _fixoffset = 0 - _nbyte = 0 - _search_num = 30000 # Maximum distance? to search - _debug7f79 = None - - def __init__(self, fname, navg=1, debug_level=0, vmdas_search=False, winriver=False): +class _RDIReader: + def __init__( + self, fname, navg=1, debug_level=-1, vmdas_search=False, winriver=False + ): self.fname = _abspath(fname) - print('\nReading file {} ...'.format(fname)) + print("\nReading file {} ...".format(fname)) self._debug_level = debug_level self._vmdas_search = vmdas_search self._winrivprob = winriver - self.flag = 0 + self._vm_source = 0 + self._pos = 0 + self.progress = 0 + self._cfac = 180 / 2**31 + self._fixoffset = 0 + self._nbyte = 0 + self.n_cells_diff = 0 + self.n_cells_sl = 0 + self.cs_diff = 0 + self.cs = [] self.cfg = {} self.cfgbb = {} self.hdr = {} @@ -209,24 +219,21 @@ def __init__(self, fname, navg=1, debug_level=0, vmdas_search=False, winriver=Fa # Check header, double buffer, and get filesize self._filesize = getsize(self.fname) space = self.code_spacing() # '0x7F' - self._npings = int(self._filesize / (space + 2)) - if self._debug_level >= 0: - logging.info('Done: {}'.format(self.cfg)) - logging.info('self._bb {}'.format(self._bb)) - logging.info(self.cfgbb) + self._npings = self._filesize // space + if self._debug_level > -1: + logging.info("Done: {}".format(self.cfg)) + logging.info("self._bb {}".format(self._bb)) + logging.info("self.cfgbb: {}".format(self.cfgbb)) self.f.seek(self._pos, 0) self.n_avg = navg - self.ensemble = defs._ensemble(self.n_avg, self.cfg['n_cells']) + self.ensemble = defs._ensemble(self.n_avg, self.cfg["n_cells"]) if self._bb: - self.ensembleBB = defs._ensemble(self.n_avg, self.cfgbb['n_cells']) + self.ensembleBB = defs._ensemble(self.n_avg, self.cfgbb["n_cells"]) - self.vars_read = defs._variable_setlist(['time']) + self.vars_read = defs._variable_setlist(["time"]) if self._bb: - self.vars_readBB = defs._variable_setlist(['time']) - - if self._debug_level >= 0: - logging.info(' %d pings estimated in this file' % self._npings) + self.vars_readBB = defs._variable_setlist(["time"]) def code_spacing(self, iternum=50): """ @@ -237,7 +244,7 @@ def code_spacing(self, iternum=50): p0 = self._pos # Get basic header data and check dual profile if not self.read_hdr(): - raise RuntimeError('No header in this file') + raise RuntimeError("No header in this file") self._bb = self.check_for_double_buffer() # Turn off debugging to check code spacing @@ -249,52 +256,48 @@ def code_spacing(self, iternum=50): except: break # Compute the average of the data size: - size = (self._pos - p0) / (i+1) * 0.995 + size = (self._pos - p0) / (i + 1) self.f = fd self._pos = p0 self._debug_level = debug_level return size - def read_hdr(self,): - fd = self.f - cfgid = list(fd.read_ui8(2)) - nread = 0 - if self._debug_level >= 0: - logging.info('pos {}'.format(self.f.pos)) - logging.info('cfgid0: [{:x}, {:x}]'.format(*cfgid)) - while (cfgid[0] != 127 or cfgid[1] != 127) or not self.checkheader(): - nextbyte = fd.read_ui8(1) - if nextbyte is None: - return False - pos = fd.tell() - nread += 1 - cfgid[1] = cfgid[0] - cfgid[0] = nextbyte - if not pos % 1000: - if self._debug_level >= 0: - logging.info(' Still looking for valid cfgid at file ' - 'position %d ...' % pos) + def read_hdr(self): + """ + Scan file until 7f7f is found + """ + if not self.search_buffer(): + return False self._pos = self.f.tell() - 2 self.read_hdrseg() return True - def check_for_double_buffer(self,): + def read_hdrseg(self): + fd = self.f + hdr = self.hdr + hdr["nbyte"] = fd.read_i16(1) + spare = fd.read_ui8(1) + ndat = fd.read_ui8(1) + hdr["dat_offsets"] = fd.read_ui16(ndat) + self._nbyte = 4 + ndat * 2 + + def check_for_double_buffer(self): """ VMDAS will record two buffers in NB or NB/BB mode, so we need to figure out if that is happening here """ found = False pos = self.f.pos - if self._debug_level >= 0: + if self._debug_level > -1: logging.info(self.hdr) - logging.info('pos {}'.format(pos)) + logging.info("pos {}".format(pos)) self.id_positions = {} - for offset in self.hdr['dat_offsets']: - self.f.seek(offset+pos - self.hdr['dat_offsets'][0], rel=0) + for offset in self.hdr["dat_offsets"]: + self.f.seek(offset + pos - self.hdr["dat_offsets"][0], rel=0) id = self.f.read_ui16(1) self.id_positions[id] = offset - if self._debug_level >= 0: - logging.info('pos {} id {}'.format(offset, id)) + if self._debug_level > -1: + logging.info("id {} offset {}".format(id, offset)) if id == 1: self.read_fixed(bb=True) found = True @@ -306,21 +309,27 @@ def check_for_double_buffer(self,): self._vmdas_search = True return found - def mean(self, dat): - if self.n_avg == 1: - return dat[..., 0] - return np.nanmean(dat, axis=-1) - def load_data(self, nens=None): if nens is None: - self._nens = int(self._npings / self.n_avg) - elif (nens.__class__ is tuple or nens.__class__ is list): + # Attempt to overshoot WinRiver2 or *Pro filesize + if (self.cfg["coord_sys"] == "ship") or ( + self.cfg["inst_model"] + in [ + "RiverPro", + "StreamPro", + ] + ): + self._nens = int(self._filesize / self.hdr["nbyte"] / self.n_avg * 1.1) + else: + # Attempt to overshoot other instrument filesizes + self._nens = int(self._npings / self.n_avg) + elif nens.__class__ is tuple or nens.__class__ is list: raise Exception(" `nens` must be a integer") else: self._nens = nens - if self._debug_level >= 0: - logging.info(' taking data from pings 0 - %d' % self._nens) - logging.info(' %d ensembles will be produced.\n' % self._nens) + if self._debug_level > -1: + logging.info(" taking data from pings 0 - %d" % self._nens) + logging.info(" %d ensembles will be produced.\n" % self._nens) self.init_data() for iens in range(self._nens): @@ -333,97 +342,103 @@ def load_data(self, nens=None): ens = [self.ensemble] vars = [self.vars_read] datl = [self.outd] + cfgl = [self.cfg] if self._bb: ens += [self.ensembleBB] vars += [self.vars_readBB] datl += [self.outdBB] + cfgl += [self.cfgbb] for var, en, dat in zip(vars, ens, datl): + for nm in var: + dat = self.save_profiles(dat, nm, en, iens) + # reset flag after all variables run + self.n_cells_diff = 0 + + # Set clock clock = en.rtc[:, :] if clock[0, 0] < 100: clock[0, :] += defs.century - - for nm in var: - # If n_cells has increased (WinRiver transects) - ds = defs._get(dat, nm) - bn = self.mean(en[nm]) - # Check that - # 1. n_cells has changed, - # 2. nm is a beam variable - # 3. n_cells is greater than any previous - if self.flag > 0 and len(ds.shape) == 3 and (ds.shape[0] != bn.shape[0]): - # increase the size of original dataset - a = np.empty( - (self.flag, ds.shape[1], ds.shape[2]))*np.nan - ds = np.append(ds, a, axis=0) - defs._setd(dat, nm, ds) - # Copy the ensemble to the dataset. - ds[..., iens] = bn - # reset after all variables run - self.flag = 0 - try: dates = tmlib.date2epoch( - tmlib.datetime(*clock[:6, 0], - microsecond=clock[6, 0] * 10000))[0] + tmlib.datetime(*clock[:6, 0], microsecond=clock[6, 0] * 10000) + )[0] except ValueError: - warnings.warn("Invalid time stamp in ping {}.".format( - int(self.ensemble.number[0]))) - dat['coords']['time'][iens] = np.NaN + warnings.warn( + "Invalid time stamp in ping {}.".format( + int(self.ensemble.number[0]) + ) + ) + dat["coords"]["time"][iens] = np.NaN else: - dat['coords']['time'][iens] = np.median(dates) - - self.cleanup(self.cfg, self.outd) - if self._bb: - self.cleanup(self.cfgbb, self.outdBB) + dat["coords"]["time"][iens] = np.median(dates) # Finalize dataset (runs through both nb and bb) - for dat in datl: - self.finalize(dat) - if 'vel_bt' in dat['data_vars']: - dat['attrs']['rotate_vars'].append('vel_bt') + for dat, cfg in zip(datl, cfgl): + dat, cfg = self.cleanup(dat, cfg) + dat = self.finalize(dat) + if "vel_bt" in dat["data_vars"]: + dat["attrs"]["rotate_vars"].append("vel_bt") - dat = self.outd datbb = self.outdBB if self._bb else None - return dat, datbb - - def init_data(self,): - outd = {'data_vars': {}, 'coords': {}, - 'attrs': {}, 'units': {}, 'long_name': {}, - 'standard_name': {}, 'sys': {}} - outd['attrs']['inst_make'] = 'TRDI' - outd['attrs']['inst_type'] = 'ADCP' - outd['attrs']['rotate_vars'] = ['vel', ] + return self.outd, datbb + + def init_data(self): + outd = { + "data_vars": {}, + "coords": {}, + "attrs": {}, + "units": {}, + "long_name": {}, + "standard_name": {}, + "sys": {}, + } + outd["attrs"]["inst_make"] = "TRDI" + outd["attrs"]["inst_type"] = "ADCP" + outd["attrs"]["rotate_vars"] = [ + "vel", + ] # Currently RDI doesn't use IMUs - outd['attrs']['has_imu'] = 0 + outd["attrs"]["has_imu"] = 0 if self._bb: - outdbb = {'data_vars': {}, 'coords': {}, - 'attrs': {}, 'units': {}, 'long_name': {}, - 'standard_name': {}, 'sys': {}} - outdbb['attrs']['inst_make'] = 'TRDI' - outdbb['attrs']['inst_type'] = 'ADCP' - outdbb['attrs']['rotate_vars'] = ['vel', ] - outdbb['attrs']['has_imu'] = 0 - + outdbb = { + "data_vars": {}, + "coords": {}, + "attrs": {}, + "units": {}, + "long_name": {}, + "standard_name": {}, + "sys": {}, + } + outdbb["attrs"]["inst_make"] = "TRDI" + outdbb["attrs"]["inst_type"] = "ADCP" + outdbb["attrs"]["rotate_vars"] = [ + "vel", + ] + outdbb["attrs"]["has_imu"] = 0 + + # Preallocate variables and data sizes for nm in defs.data_defs: - outd = defs._idata(outd, nm, - sz=defs._get_size(nm, self._nens, self.cfg['n_cells'])) + outd = defs._idata( + outd, nm, sz=defs._get_size(nm, self._nens, self.cfg["n_cells"]) + ) self.outd = outd if self._bb: for nm in defs.data_defs: - outdbb = defs._idata(outdbb, nm, - sz=defs._get_size(nm, self._nens, self.cfgbb['n_cells'])) + outdbb = defs._idata( + outdbb, nm, sz=defs._get_size(nm, self._nens, self.cfgbb["n_cells"]) + ) self.outdBB = outdbb if self._debug_level > 1: - logging.info(np.shape(outdbb['data_vars']['vel'])) + logging.info(np.shape(outdbb["data_vars"]["vel"])) if self._debug_level > 1: - logging.info('{} ncells, not BB'.format(self.cfg['n_cells'])) + logging.info("{} ncells, not BB".format(self.cfg["n_cells"])) if self._bb: - logging.info('{} ncells, BB'.format(self.cfgbb['n_cells'])) + logging.info("{} ncells, BB".format(self.cfgbb["n_cells"])) - def read_buffer(self,): + def read_buffer(self): fd = self.f self.ensemble.k = -1 # so that k+=1 gives 0 on the first loop. if self._bb: @@ -435,304 +450,300 @@ def read_buffer(self,): return False startpos = fd.tell() - 2 self.read_hdrseg() - if self._debug_level >= 0: - logging.info('Read Header', hdr) + if self._debug_level > -1: + logging.info("Read Header", hdr) byte_offset = self._nbyte + 2 self._read_vmdas = False - for n in range(len(hdr['dat_offsets'])): + for n in range(len(hdr["dat_offsets"])): id = fd.read_ui16(1) if self._debug_level > 0: - logging.info(f'n {n}: {id} {id:04x}') + logging.info(f"n {n}: {id} {id:04x}") self.print_pos() retval = self.read_dat(id) - if retval == 'FAIL': + if retval == "FAIL": break byte_offset += self._nbyte - if n < (len(hdr['dat_offsets']) - 1): - oset = hdr['dat_offsets'][n + 1] - byte_offset + if n < (len(hdr["dat_offsets"]) - 1): + oset = hdr["dat_offsets"][n + 1] - byte_offset if oset != 0: if self._debug_level > 0: - logging.debug( - ' %s: Adjust location by %d\n' % (id, oset)) + logging.debug(" %s: Adjust location by %d\n" % (id, oset)) fd.seek(oset, 1) - byte_offset = hdr['dat_offsets'][n + 1] + byte_offset = hdr["dat_offsets"][n + 1] else: - if hdr['nbyte'] - 2 != byte_offset: + if hdr["nbyte"] - 2 != byte_offset: if not self._winrivprob: if self._debug_level > 0: - logging.debug(' {:d}: Adjust location by {:d}\n' - .format(id, hdr['nbyte'] - 2 - byte_offset)) - self.f.seek(hdr['nbyte'] - 2 - byte_offset, 1) - byte_offset = hdr['nbyte'] - 2 + logging.debug( + " {:d}: Adjust location by {:d}\n".format( + id, hdr["nbyte"] - 2 - byte_offset + ) + ) + self.f.seek(hdr["nbyte"] - 2 - byte_offset, 1) + byte_offset = hdr["nbyte"] - 2 # Check for vmdas again because vmdas doesn't set the offsets # correctly, and we need this info: if not self._read_vmdas and self._vmdas_search: - if self._debug_level >= 1: - logging.info( - 'Searching for vmdas nav data. Going to next ensemble') + if self._debug_level > 0: + logging.info("Searching for vmdas nav data. Going to next ensemble") self.search_buffer() # now go back to where vmdas would be: fd.seek(-98, 1) id = self.f.read_ui16(1) if id is not None: - if self._debug_level >= 1: - logging.info(f'Found {id:04d}') + if self._debug_level > 0: + logging.info(f"Found {id:04d}") if id == 8192: self.read_dat(id) readbytes = fd.tell() - startpos - offset = hdr['nbyte'] + 2 - readbytes + offset = hdr["nbyte"] + 2 - readbytes self.check_offset(offset, readbytes) self.print_pos(byte_offset=byte_offset) return True + def print_progress(self): + self.progress = self.f.tell() + if self._debug_level > 1: + logging.debug( + " pos %0.0fmb/%0.0fmb\n" + % (self.f.tell() / 1048576.0, self._filesize / 1048576.0) + ) + if (self.f.tell() - self.progress) < 1048576: + return + def search_buffer(self): """ Check to see if the next bytes indicate the beginning of a data block. If not, search for the next data block, up to _search_num times. """ - id = self.f.read_ui8(2) + fd = self.f + id = fd.read_ui8(2) if id is None: return False - id1 = list(id) + cfgid = list(id) + pos_7f79 = False search_cnt = 0 - fd = self.f - if self._debug_level >= 2: - logging.info(' -->In search_buffer...') - while (search_cnt < self._search_num and - ((id1[0] != 127 or id1[1] != 127) or - not self.checkheader())): - search_cnt += 1 - nextbyte = fd.read_ui8(1) - if nextbyte == None: - return False - id1[1] = id1[0] - id1[0] = nextbyte - if search_cnt == self._search_num: - raise Exception( - 'Searched {} entries... Bad data encountered. -> {}' - .format(search_cnt, id1)) - elif search_cnt > 0: - if self._debug_level >= 1: - logging.info(' Searched {} bytes to find next ' - 'valid ensemble start [{:x}, {:x}]\n' - .format(search_cnt, *id1)) + + if self._debug_level > -1: + logging.info("pos {}".format(fd.pos)) + logging.info("cfgid0: [{:x}, {:x}]".format(*cfgid)) + # If not [127, 127] or if the file ends in the next ensemble + while (cfgid != [127, 127]) or self.check_eof(): + if cfgid == [127, 121]: + # Search for the next header or the end of the file + skipbytes = fd.read_i16(1) + fd.seek(skipbytes - 2, 1) + id = fd.read_ui8(2) + if id is None: # EOF + return False + cfgid = list(id) + pos_7f79 = True + else: + # Search til we find something or hit the end of the file + search_cnt += 1 + nextbyte = fd.read_ui8(1) + if nextbyte is None: # EOF + return False + cfgid[0] = cfgid[1] + cfgid[1] = nextbyte + + if pos_7f79 and self._debug_level > -1: + logging.info("Skipped junk data: [{:x}, {:x}]".format(*[127, 121])) + + if search_cnt > 0: + if self._debug_level > 0: + logging.info( + " Searched {} bytes to find next " + "valid ensemble start [{:x}, {:x}]\n".format(search_cnt, *cfgid) + ) + return True - def checkheader(self,): - if self._debug_level > 1: - logging.info(" ###In checkheader.") + def check_eof(self): + """ + Returns True if next header is bad or at end of file. + """ fd = self.f - valid = False - if self._debug_level >= 0: - logging.info('pos {}'.format(self.f.pos)) + out = True numbytes = fd.read_i16(1) + # Search for next config id if numbytes > 0: fd.seek(numbytes - 2, 1) cfgid = fd.read_ui8(2) if cfgid is None: if self._debug_level > 1: - logging.info('EOF') - return False + logging.info("EOF") + return True + # Make sure one is found, either 7f7f or 7f79 if len(cfgid) == 2: fd.seek(-numbytes - 2, 1) if cfgid[0] == 127 and cfgid[1] in [127, 121]: - if cfgid[1] == 121 and self._debug7f79 is None: - self._debug7f79 = True - if self._debug_level > 1: - logging.warning('7f79!!!') - valid = True + out = False else: fd.seek(-2, 1) - if self._debug_level > 1: - logging.info(" ###Leaving checkheader.") - return valid - - def read_hdrseg(self,): - fd = self.f - hdr = self.hdr - hdr['nbyte'] = fd.read_i16(1) - spare = fd.read_ui8(1) - ndat = fd.read_ui8(1) - hdr['dat_offsets'] = fd.read_ui16(ndat) - self._nbyte = 4 + ndat * 2 - - def print_progress(self,): - self.progress = self.f.tell() - if self._debug_level > 1: - logging.debug(' pos %0.0fmb/%0.0fmb\n' % - (self.f.tell() / 1048576., self._filesize / 1048576.)) - if (self.f.tell() - self.progress) < 1048576: - return + return out def print_pos(self, byte_offset=-1): - """Print the position in the file, used for debugging. - """ - if self._debug_level >= 2: - if hasattr(self, 'ensemble'): + """Print the position in the file, used for debugging.""" + if self._debug_level > 1: + if hasattr(self, "ensemble"): k = self.ensemble.k else: k = 0 logging.debug( - f' pos: {self.f.tell()}, pos_: {self._pos}, nbyte: {self._nbyte}, k: {k}, byte_offset: {byte_offset}') - - def check_offset(self, offset, readbytes): - fd = self.f - if offset != 4 and self._fixoffset == 0: - if self._debug_level > 0: - if fd.tell() == self._filesize: - logging.error( - ' EOF reached unexpectedly - discarding this last ensemble\n') - else: - logging.debug(" Adjust location by {:d} (readbytes={:d},hdr['nbyte']={:d})\n" - .format(offset, readbytes, self.hdr['nbyte'])) - self._fixoffset = offset - 4 - fd.seek(4 + self._fixoffset, 1) - - def remove_end(self, iens): - dat = self.outd - if self._debug_level > 0: - logging.info(' Encountered end of file. Cleaning up data.') - for nm in self.vars_read: - defs._setd(dat, nm, defs._get(dat, nm)[..., :iens]) + f" pos: {self.f.tell()}, pos_: {self._pos}, nbyte: {self._nbyte}, k: {k}, byte_offset: {byte_offset}" + ) def read_dat(self, id): - function_map = {0: (self.read_fixed, []), # 0000 1st profile fixed leader - 1: (self.read_fixed, [True]), # 0001 - # 0010 Surface layer fixed leader (RiverPro & StreamPro) - 16: (self.read_fixed_sl, []), - # 0080 1st profile variable leader - 128: (self.read_var, [0]), - # 0081 2nd profile variable leader - 129: (self.read_var, [1]), - # 0100 1st profile velocity - 256: (self.read_vel, [0]), - # 0101 2nd profile velocity - 257: (self.read_vel, [1]), - # 0103 Waves first leader - 259: (self.skip_Nbyte, [74]), - # 0110 Surface layer velocity (RiverPro & StreamPro) - 272: (self.read_vel, [2]), - # 0200 1st profile correlation - 512: (self.read_corr, [0]), - # 0201 2nd profile correlation - 513: (self.read_corr, [1]), - # 0203 Waves data - 515: (self.skip_Nbyte, [186]), - # 020C Ambient sound profile - 524: (self.skip_Nbyte, [4]), - # 0210 Surface layer correlation (RiverPro & StreamPro) - 528: (self.read_corr, [2]), - # 0300 1st profile amplitude - 768: (self.read_amp, [0]), - # 0301 2nd profile amplitude - 769: (self.read_amp, [1]), - # 0302 Beam 5 Sum of squared velocities - 770: (self.skip_Ncol, []), - # 0303 Waves last leader - 771: (self.skip_Ncol, [18]), - # 0310 Surface layer amplitude (RiverPro & StreamPro) - 784: (self.read_amp, [2]), - # 0400 1st profile % good - 1024: (self.read_prcnt_gd, [0]), - # 0401 2nd profile pct good - 1025: (self.read_prcnt_gd, [1]), - # 0403 Waves HPR data - 1027: (self.skip_Nbyte, [6]), - # 0410 Surface layer pct good (RiverPro & StreamPro) - 1040: (self.read_prcnt_gd, [2]), - # 0500 1st profile status - 1280: (self.read_status, [0]), - # 0501 2nd profile status - 1281: (self.read_status, [1]), - # 0510 Surface layer status (RiverPro & StreamPro) - 1296: (self.read_status, [2]), - 1536: (self.read_bottom, []), # 0600 bottom tracking - 1793: (self.skip_Ncol, [4]), # 0701 number of pings - 1794: (self.skip_Ncol, [4]), # 0702 sum of squared vel - 1795: (self.skip_Ncol, [4]), # 0703 sum of velocities - 2560: (self.skip_Ncol, []), # 0A00 Beam 5 velocity - 2816: (self.skip_Ncol, []), # 0B00 Beam 5 correlation - 3072: (self.skip_Ncol, []), # 0C00 Beam 5 amplitude - 3328: (self.skip_Ncol, []), # 0D00 Beam 5 pct_good - # Fixed attitude data format for Ocean Surveyor ADCPs - 3000: (self.skip_Nbyte, [32]), - 3841: (self.skip_Nbyte, [38]), # 0F01 Beam 5 leader - 8192: (self.read_vmdas, []), # 2000 - # 2013 Navigation parameter data - 8211: (self.skip_Nbyte, [83]), - 8226: (self.read_winriver2, []), # 2022 - 8448: (self.read_winriver, [38]), # 2100 - 8449: (self.read_winriver, [97]), # 2101 - 8450: (self.read_winriver, [45]), # 2102 - 8451: (self.read_winriver, [60]), # 2103 - 8452: (self.read_winriver, [38]), # 2104 - # 3200 Transformation matrix - 12800: (self.skip_Nbyte, [32]), - # 3000 Fixed attitude data format for Ocean Surveyor ADCPs - 12288: (self.skip_Nbyte, [32]), - 12496: (self.skip_Nbyte, [24]), # 30D0 - 12504: (self.skip_Nbyte, [48]), # 30D8 - # 4100 beam 5 range - 16640: (self.read_alt, []), - # 4400 Firmware status data (RiverPro & StreamPro) - 17408: (self.skip_Nbyte, [28]), - # 4401 Auto mode setup (RiverPro & StreamPro) - 17409: (self.skip_Nbyte, [82]), - # 5803 High resolution bottom track velocity - 22531: (self.skip_Nbyte, [68]), - # 5804 Bottom track range - 22532: (self.skip_Nbyte, [21]), - # 5901 ISM (IMU) data - 22785: (self.skip_Nbyte, [65]), - # 5902 Ping attitude - 22786: (self.skip_Nbyte, [105]), - # 7001 ADC data - 28673: (self.skip_Nbyte, [14]), - } + function_map = { + # 0000 1st profile fixed leader + 0: (self.read_fixed, []), + # 0001 2nd profile fixed leader + 1: (self.read_fixed, [True]), + # 0010 Surface layer fixed leader (RiverPro & StreamPro) + 16: (self.read_fixed_sl, []), + # 0080 1st profile variable leader + 128: (self.read_var, [0]), + # 0081 2nd profile variable leader + 129: (self.read_var, [1]), + # 0100 1st profile velocity + 256: (self.read_vel, [0]), + # 0101 2nd profile velocity + 257: (self.read_vel, [1]), + # 0103 Waves first leader + 259: (self.skip_Nbyte, [74]), + # 0110 Surface layer velocity (RiverPro & StreamPro) + 272: (self.read_vel, [2]), + # 0200 1st profile correlation + 512: (self.read_corr, [0]), + # 0201 2nd profile correlation + 513: (self.read_corr, [1]), + # 0203 Waves data + 515: (self.skip_Nbyte, [186]), + # 020C Ambient sound profile + 524: (self.skip_Nbyte, [4]), + # 0210 Surface layer correlation (RiverPro & StreamPro) + 528: (self.read_corr, [2]), + # 0300 1st profile amplitude + 768: (self.read_amp, [0]), + # 0301 2nd profile amplitude + 769: (self.read_amp, [1]), + # 0302 Beam 5 Sum of squared velocities + 770: (self.skip_Ncol, []), + # 0303 Waves last leader + 771: (self.skip_Ncol, [18]), + # 0310 Surface layer amplitude (RiverPro & StreamPro) + 784: (self.read_amp, [2]), + # 0400 1st profile % good + 1024: (self.read_prcnt_gd, [0]), + # 0401 2nd profile pct good + 1025: (self.read_prcnt_gd, [1]), + # 0403 Waves HPR data + 1027: (self.skip_Nbyte, [6]), + # 0410 Surface layer pct good (RiverPro & StreamPro) + 1040: (self.read_prcnt_gd, [2]), + # 0500 1st profile status + 1280: (self.read_status, [0]), + # 0501 2nd profile status + 1281: (self.read_status, [1]), + # 0510 Surface layer status (RiverPro & StreamPro) + 1296: (self.read_status, [2]), + 1536: (self.read_bottom, []), # 0600 bottom tracking + 1793: (self.skip_Ncol, [4]), # 0701 number of pings + 1794: (self.skip_Ncol, [4]), # 0702 sum of squared vel + 1795: (self.skip_Ncol, [4]), # 0703 sum of velocities + 2560: (self.skip_Ncol, []), # 0A00 Beam 5 velocity + 2816: (self.skip_Ncol, []), # 0B00 Beam 5 correlation + 3072: (self.skip_Ncol, []), # 0C00 Beam 5 amplitude + 3328: (self.skip_Ncol, []), # 0D00 Beam 5 pct_good + # Fixed attitude data format for Ocean Surveyor ADCPs + 3000: (self.skip_Nbyte, [32]), + 3841: (self.skip_Nbyte, [38]), # 0F01 Beam 5 leader + 8192: (self.read_vmdas, []), # 2000 + # 2013 Navigation parameter data + 8211: (self.skip_Nbyte, [83]), + 8226: (self.read_winriver2, []), # 2022 + 8448: (self.read_winriver, [38]), # 2100 + 8449: (self.read_winriver, [97]), # 2101 + 8450: (self.read_winriver, [45]), # 2102 + 8451: (self.read_winriver, [60]), # 2103 + 8452: (self.read_winriver, [38]), # 2104 + # 3200 Transformation matrix + 12800: (self.skip_Nbyte, [32]), + # 3000 Fixed attitude data format for Ocean Surveyor ADCPs + 12288: (self.skip_Nbyte, [32]), + 12496: (self.skip_Nbyte, [24]), # 30D0 + 12504: (self.skip_Nbyte, [48]), # 30D8 + # 4100 beam 5 range + 16640: (self.read_alt, []), + # 4400 Firmware status data (RiverPro & StreamPro) + 17408: (self.skip_Nbyte, [28]), + # 4401 Auto mode setup (RiverPro & StreamPro) + 17409: (self.skip_Nbyte, [82]), + # 5803 High resolution bottom track velocity + 22531: (self.skip_Nbyte, [68]), + # 5804 Bottom track range + 22532: (self.skip_Nbyte, [21]), + # 5901 ISM (IMU) data + 22785: (self.skip_Nbyte, [65]), + # 5902 Ping attitude + 22786: (self.skip_Nbyte, [105]), + # 7001 ADC data + 28673: (self.skip_Nbyte, [14]), + } # Call the correct function: - if self._debug_level >= 2: - logging.debug(f'Trying to Read {id}') + if self._debug_level > 1: + logging.debug(f"Trying to Read {id}") if id in function_map: if self._debug_level > 1: - logging.info(' Reading code {}...'.format(hex(id))) + logging.info(" Reading code {}...".format(hex(id))) retval = function_map.get(id)[0](*function_map[id][1]) if retval: return retval if self._debug_level > 1: - logging.info(' success!') + logging.info(" success!") else: self.read_nocode(id) def read_fixed(self, bb=False): self.read_cfgseg(bb=bb) self._nbyte += 2 - if self._debug_level >= 0: - logging.info('Read Fixed') - - # Check if n_cells changed (for winriver transect files) - if hasattr(self, 'ensemble') and (self.ensemble['n_cells'] != self.cfg['n_cells']): - diff = self.cfg['n_cells'] - self.ensemble['n_cells'] - if diff > 0: - self.flag = diff - self.ensemble = defs._ensemble(self.n_avg, self.cfg['n_cells']) - # Not concerned if # of cells decreases - if self._debug_level >= 1: - logging.warning('Number of cells changed to {}' - .format(self.cfg['n_cells'])) - - def read_fixed_sl(self,): + if self._debug_level > -1: + logging.info("Read Fixed") + + # Check if n_cells has increased (for winriver transect files) + if hasattr(self, "ensemble"): + self.n_cells_diff = self.cfg["n_cells"] - self.ensemble["n_cells"] + # Increase n_cells if greater than 0 + if self.n_cells_diff > 0: + self.ensemble = defs._ensemble(self.n_avg, self.cfg["n_cells"]) + if self._debug_level > 0: + logging.warning( + f"Maximum number of cells increased to {self.cfg['n_cells']}" + ) + + def read_fixed_sl(self): # Surface layer profile cfg = self.cfg - cfg['surface_layer'] = 1 - cfg['n_cells_sl'] = self.f.read_ui8(1) - cfg['cell_size_sl'] = self.f.read_ui16(1) * .01 - cfg['bin1_dist_m_sl'] = round(self.f.read_ui16(1) * .01, 4) - - if self._debug_level >= 0: - logging.info('Read Surface Layer Config') + cfg["surface_layer"] = 1 + n_cells = self.f.read_ui8(1) + # Check if n_cells is greater than what was used in prior profiles + if n_cells > self.n_cells_sl: + self.n_cells_sl = n_cells + if self._debug_level > 0: + logging.warning( + f"Maximum number of surface layer cells increased to {n_cells}" + ) + cfg["n_cells_sl"] = n_cells + # Assuming surface layer profile cell size never changes + cfg["cell_size_sl"] = self.f.read_ui16(1) * 0.01 + cfg["bin1_dist_m_sl"] = round(self.f.read_ui16(1) * 0.01, 4) + + if self._debug_level > -1: + logging.info("Read Surface Layer Config") self._nbyte = 2 + 5 def read_cfgseg(self, bb=False): @@ -745,71 +756,79 @@ def read_cfgseg(self, bb=False): fd = self.f tmp = fd.read_ui8(5) prog_ver0 = tmp[0] - cfg['prog_ver'] = tmp[0] + tmp[1] / 100. - cfg['inst_model'] = defs.adcp_type.get(tmp[0], - 'unrecognized firmware version') + cfg["prog_ver"] = tmp[0] + tmp[1] / 100.0 + cfg["inst_model"] = defs.adcp_type.get(tmp[0], "unrecognized firmware version") config = tmp[2:4] - cfg['beam_angle'] = [15, 20, 30][(config[1] & 3)] + cfg["beam_angle"] = [15, 20, 30][(config[1] & 3)] beam5 = [0, 1][int((config[1] & 16) == 16)] - cfg['freq'] = ([75, 150, 300, 600, 1200, 2400, 38][(config[0] & 7)]) - cfg['beam_pattern'] = (['concave', - 'convex'][int((config[0] & 8) == 8)]) - cfg['orientation'] = ['down', 'up'][int((config[0] & 128) == 128)] - simflag = ['real', 'simulated'][tmp[4]] + cfg["freq"] = [75, 150, 300, 600, 1200, 2400, 38][(config[0] & 7)] + cfg["beam_pattern"] = ["concave", "convex"][int((config[0] & 8) == 8)] + cfg["orientation"] = ["down", "up"][int((config[0] & 128) == 128)] + simflag = ["real", "simulated"][tmp[4]] fd.seek(1, 1) - cfg['n_beams'] = fd.read_ui8(1) + beam5 - cfg['n_cells'] = fd.read_ui8(1) - cfg['pings_per_ensemble'] = fd.read_ui16(1) - cfg['cell_size'] = fd.read_ui16(1) * .01 - cfg['blank_dist'] = fd.read_ui16(1) * .01 - cfg['profiling_mode'] = fd.read_ui8(1) - cfg['min_corr_threshold'] = fd.read_ui8(1) - cfg['n_code_reps'] = fd.read_ui8(1) - cfg['min_prcnt_gd'] = fd.read_ui8(1) - cfg['max_error_vel'] = fd.read_ui16(1) / 1000 - cfg['sec_between_ping_groups'] = ( - np.sum(np.array(fd.read_ui8(3)) * - np.array([60., 1., .01]))) + cfg["n_beams"] = fd.read_ui8(1) + beam5 + # Check if number of cells has changed + n_cells = fd.read_ui8(1) + if ("n_cells" not in cfg) or (n_cells != cfg["n_cells"]): + cfg["n_cells"] = n_cells + if self._debug_level > 0: + logging.info(f"Number of cells set to {cfg['n_cells']}") + cfg["pings_per_ensemble"] = fd.read_ui16(1) + # Check if cell size has changed + cs = fd.read_ui16(1) * 0.01 + if ("cell_size" not in cfg) or (cs != cfg["cell_size"]): + self.cs_diff = cs if "cell_size" not in cfg else (cs - cfg["cell_size"]) + cfg["cell_size"] = cs + if self._debug_level > 0: + logging.info(f"Cell size set to {cfg['cell_size']}") + cfg["blank_dist"] = fd.read_ui16(1) * 0.01 + cfg["profiling_mode"] = fd.read_ui8(1) + cfg["min_corr_threshold"] = fd.read_ui8(1) + cfg["n_code_reps"] = fd.read_ui8(1) + cfg["min_prcnt_gd"] = fd.read_ui8(1) + cfg["max_error_vel"] = fd.read_ui16(1) / 1000 + cfg["sec_between_ping_groups"] = np.sum( + np.array(fd.read_ui8(3)) * np.array([60.0, 1.0, 0.01]) + ) coord_sys = fd.read_ui8(1) - cfg['coord_sys'] = (['beam', 'inst', - 'ship', 'earth'][((coord_sys >> 3) & 3)]) - cfg['use_pitchroll'] = ['no', 'yes'][(coord_sys & 4) == 4] - cfg['use_3beam'] = ['no', 'yes'][(coord_sys & 2) == 2] - cfg['bin_mapping'] = ['no', 'yes'][(coord_sys & 1) == 1] - cfg['heading_misalign_deg'] = fd.read_i16(1) * .01 - cfg['magnetic_var_deg'] = fd.read_i16(1) * .01 - cfg['sensors_src'] = np.binary_repr(fd.read_ui8(1), 8) - cfg['sensors_avail'] = np.binary_repr(fd.read_ui8(1), 8) - cfg['bin1_dist_m'] = round(fd.read_ui16(1) * .01, 4) - cfg['transmit_pulse_m'] = fd.read_ui16(1) * .01 - cfg['water_ref_cells'] = list(fd.read_ui8(2)) # list for attrs - cfg['false_target_threshold'] = fd.read_ui8(1) + cfg["coord_sys"] = ["beam", "inst", "ship", "earth"][((coord_sys >> 3) & 3)] + cfg["use_pitchroll"] = ["no", "yes"][(coord_sys & 4) == 4] + cfg["use_3beam"] = ["no", "yes"][(coord_sys & 2) == 2] + cfg["bin_mapping"] = ["no", "yes"][(coord_sys & 1) == 1] + cfg["heading_misalign_deg"] = fd.read_i16(1) * 0.01 + cfg["magnetic_var_deg"] = fd.read_i16(1) * 0.01 + cfg["sensors_src"] = np.binary_repr(fd.read_ui8(1), 8) + cfg["sensors_avail"] = np.binary_repr(fd.read_ui8(1), 8) + cfg["bin1_dist_m"] = round(fd.read_ui16(1) * 0.01, 4) + cfg["transmit_pulse_m"] = fd.read_ui16(1) * 0.01 + cfg["water_ref_cells"] = list(fd.read_ui8(2)) # list for attrs + cfg["false_target_threshold"] = fd.read_ui8(1) fd.seek(1, 1) - cfg['transmit_lag_m'] = fd.read_ui16(1) * .01 + cfg["transmit_lag_m"] = fd.read_ui16(1) * 0.01 self._nbyte = 40 - if cfg['prog_ver'] >= 8.14: + if cfg["prog_ver"] >= 8.14: cpu_serialnum = fd.read_ui8(8) self._nbyte += 8 - if cfg['prog_ver'] >= 8.24: - cfg['bandwidth'] = fd.read_ui16(1) + if cfg["prog_ver"] >= 8.24: + cfg["bandwidth"] = fd.read_ui16(1) self._nbyte += 2 - if cfg['prog_ver'] >= 16.05: - cfg['power_level'] = fd.read_ui8(1) + if cfg["prog_ver"] >= 16.05: + cfg["power_level"] = fd.read_ui8(1) self._nbyte += 1 - if cfg['prog_ver'] >= 16.27: + if cfg["prog_ver"] >= 16.27: # cfg['navigator_basefreqindex'] = fd.read_ui8(1) fd.seek(1, 1) - cfg['serialnum'] = fd.read_ui32(1) - cfg['beam_angle'] = fd.read_ui8(1) + cfg["serialnum"] = fd.read_ui32(1) + cfg["beam_angle"] = fd.read_ui8(1) self._nbyte += 6 self.configsize = self.f.tell() - cfgstart - if self._debug_level >= 0: - logging.info('Read Config') + if self._debug_level > -1: + logging.info("Read Config") def read_var(self, bb=False): - """ Read variable leader """ + """Read variable leader""" fd = self.f if bb: ens = self.ensembleBB @@ -818,22 +837,24 @@ def read_var(self, bb=False): ens.k += 1 ens = self.ensemble k = ens.k - self.vars_read += ['number', - 'rtc', - 'number', - 'builtin_test_fail', - 'c_sound', - 'depth', - 'heading', - 'pitch', - 'roll', - 'salinity', - 'temp', - 'min_preping_wait', - 'heading_std', - 'pitch_std', - 'roll_std', - 'adc'] + self.vars_read += [ + "number", + "rtc", + "number", + "builtin_test_fail", + "c_sound", + "depth", + "heading", + "pitch", + "roll", + "salinity", + "temp", + "min_preping_wait", + "heading_std", + "pitch_std", + "roll_std", + "adc", + ] ens.number[k] = fd.read_ui16(1) ens.rtc[:, k] = fd.read_ui8(7) ens.number[k] += 65535 * fd.read_ui8(1) @@ -845,8 +866,7 @@ def read_var(self, bb=False): ens.roll[k] = fd.read_i16(1) * 0.01 ens.salinity[k] = fd.read_i16(1) ens.temp[k] = fd.read_i16(1) * 0.01 - ens.min_preping_wait[k] = (fd.read_ui8( - 3) * np.array([60, 1, .01])).sum() + ens.min_preping_wait[k] = (fd.read_ui8(3) * np.array([60, 1, 0.01])).sum() ens.heading_std[k] = fd.read_ui8(1) ens.pitch_std[k] = fd.read_ui8(1) * 0.1 ens.roll_std[k] = fd.read_ui8(1) * 0.1 @@ -854,45 +874,45 @@ def read_var(self, bb=False): self._nbyte = 2 + 40 cfg = self.cfg - if cfg['inst_model'].lower() == 'broadband': - if cfg['prog_ver'] >= 5.55: + if cfg["inst_model"].lower() == "broadband": + if cfg["prog_ver"] >= 5.55: fd.seek(15, 1) cent = fd.read_ui8(1) ens.rtc[:, k] = fd.read_ui8(7) ens.rtc[0, k] = ens.rtc[0, k] + cent * 100 self._nbyte += 23 - elif cfg['inst_model'].lower() == 'ocean surveyor': + elif cfg["inst_model"].lower() == "ocean surveyor": fd.seek(16, 1) # 30 bytes all set to zero, 14 read above self._nbyte += 16 - if cfg['prog_ver'] > 23: + if cfg["prog_ver"] > 23: fd.seek(2, 1) self._nbyte += 2 else: ens.error_status[k] = np.binary_repr(fd.read_ui32(1), 32) - self.vars_read += ['pressure', 'pressure_std'] + self.vars_read += ["pressure", "pressure_std"] self._nbyte += 4 - if cfg['prog_ver'] >= 8.13: + if cfg["prog_ver"] >= 8.13: # Added pressure sensor stuff in 8.13 fd.seek(2, 1) ens.pressure[k] = fd.read_ui32(1) / 1000 # dPa to dbar ens.pressure_std[k] = fd.read_ui32(1) / 1000 self._nbyte += 10 - if cfg['prog_ver'] >= 8.24: + if cfg["prog_ver"] >= 8.24: # Spare byte added 8.24 fd.seek(1, 1) self._nbyte += 1 - if cfg['prog_ver'] >= 16.05: + if cfg["prog_ver"] >= 16.05: # Added more fields with century in clock cent = fd.read_ui8(1) ens.rtc[:, k] = fd.read_ui8(7) ens.rtc[0, k] = ens.rtc[0, k] + cent * 100 self._nbyte += 8 - if cfg['prog_ver'] >= 56: + if cfg["prog_ver"] >= 56: fd.seek(1) # lag near bottom flag self._nbyte += 1 - if self._debug_level >= 0: - logging.info('Read Var') + if self._debug_level > -1: + logging.info("Read Var") def switch_profile(self, bb): if bb == 1: @@ -900,91 +920,88 @@ def switch_profile(self, bb): cfg = self.cfgbb # Placeholder for dual profile mode # Solution for vmdas profile in bb spot (vs nb) - tag = '' + tag = "" elif bb == 2: ens = self.ensemble cfg = self.cfg - tag = '_sl' + tag = "_sl" else: ens = self.ensemble cfg = self.cfg - tag = '' + tag = "" return ens, cfg, tag def read_vel(self, bb=0): ens, cfg, tg = self.switch_profile(bb) - self.vars_read += ['vel'+tg] - n_cells = cfg['n_cells'+tg] + self.vars_read += ["vel" + tg] + n_cells = cfg["n_cells" + tg] k = ens.k - vel = np.array( - self.f.read_i16(4 * n_cells) - ).reshape((n_cells, 4)) * .001 - ens['vel'+tg][:n_cells, :, k] = vel + vel = np.array(self.f.read_i16(4 * n_cells)).reshape((n_cells, 4)) * 0.001 + ens["vel" + tg][:n_cells, :, k] = vel self._nbyte = 2 + 4 * n_cells * 2 - if self._debug_level >= 0: - logging.info('Read Vel') + if self._debug_level > -1: + logging.info("Read Vel") def read_corr(self, bb=0): ens, cfg, tg = self.switch_profile(bb) - self.vars_read += ['corr'+tg] - n_cells = cfg['n_cells'+tg] + self.vars_read += ["corr" + tg] + n_cells = cfg["n_cells" + tg] k = ens.k - ens['corr'+tg][:n_cells, :, k] = np.array( + ens["corr" + tg][:n_cells, :, k] = np.array( self.f.read_ui8(4 * n_cells) ).reshape((n_cells, 4)) self._nbyte = 2 + 4 * n_cells - if self._debug_level >= 0: - logging.info('Read Corr') + if self._debug_level > -1: + logging.info("Read Corr") def read_amp(self, bb=0): ens, cfg, tg = self.switch_profile(bb) - self.vars_read += ['amp'+tg] - n_cells = cfg['n_cells'+tg] + self.vars_read += ["amp" + tg] + n_cells = cfg["n_cells" + tg] k = ens.k - ens['amp'+tg][:n_cells, :, k] = np.array( + ens["amp" + tg][:n_cells, :, k] = np.array( self.f.read_ui8(4 * n_cells) ).reshape((n_cells, 4)) self._nbyte = 2 + 4 * n_cells - if self._debug_level >= 0: - logging.info('Read Amp') + if self._debug_level > -1: + logging.info("Read Amp") def read_prcnt_gd(self, bb=0): ens, cfg, tg = self.switch_profile(bb) - self.vars_read += ['prcnt_gd'+tg] - n_cells = cfg['n_cells'+tg] + self.vars_read += ["prcnt_gd" + tg] + n_cells = cfg["n_cells" + tg] - ens['prcnt_gd'+tg][:n_cells, :, ens.k] = np.array( + ens["prcnt_gd" + tg][:n_cells, :, ens.k] = np.array( self.f.read_ui8(4 * n_cells) ).reshape((n_cells, 4)) self._nbyte = 2 + 4 * n_cells - if self._debug_level >= 0: - logging.info('Read PG') + if self._debug_level > -1: + logging.info("Read PG") def read_status(self, bb=0): ens, cfg, tg = self.switch_profile(bb) - self.vars_read += ['status'+tg] - n_cells = cfg['n_cells'+tg] + self.vars_read += ["status" + tg] + n_cells = cfg["n_cells" + tg] - ens['status'+tg][:n_cells, :, ens.k] = np.array( + ens["status" + tg][:n_cells, :, ens.k] = np.array( self.f.read_ui8(4 * n_cells) ).reshape((n_cells, 4)) self._nbyte = 2 + 4 * n_cells - if self._debug_level >= 0: - logging.info('Read Status') + if self._debug_level > -1: + logging.info("Read Status") - def read_bottom(self,): - self.vars_read += ['dist_bt', 'vel_bt', 'corr_bt', 'amp_bt', - 'prcnt_gd_bt'] + def read_bottom(self): + self.vars_read += ["dist_bt", "vel_bt", "corr_bt", "amp_bt", "prcnt_gd_bt"] fd = self.f ens = self.ensemble k = ens.k cfg = self.cfg - if self._source == 2: - self.vars_read += ['latitude_gps', 'longitude_gps'] + if self._vm_source == 2: + self.vars_read += ["latitude_gps", "longitude_gps"] fd.seek(2, 1) long1 = fd.read_ui16(1) fd.seek(6, 1) @@ -998,10 +1015,9 @@ def read_bottom(self,): ens.corr_bt[:, k] = fd.read_ui8(4) ens.amp_bt[:, k] = fd.read_ui8(4) ens.prcnt_gd_bt[:, k] = fd.read_ui8(4) - if self._source == 2: + if self._vm_source == 2: fd.seek(2, 1) - ens.longitude_gps[k] = ( - long1 + 65536 * fd.read_ui16(1)) * self._cfac + ens.longitude_gps[k] = (long1 + 65536 * fd.read_ui16(1)) * self._cfac if ens.longitude_gps[k] > 180: ens.longitude_gps[k] = ens.longitude_gps[k] - 360 if ens.longitude_gps[k] == 0: @@ -1010,9 +1026,10 @@ def read_bottom(self,): qual = fd.read_ui8(1) if qual == 0: if self._debug_level > 0: - logging.info(' qual==%d,%f %f' % (qual, - ens.latitude_gps[k], - ens.longitude_gps[k])) + logging.info( + " qual==%d,%f %f" + % (qual, ens.latitude_gps[k], ens.longitude_gps[k]) + ) ens.latitude_gps[k] = np.NaN ens.longitude_gps[k] = np.NaN fd.seek(71 - 45 - 16 - 17, 1) @@ -1021,81 +1038,81 @@ def read_bottom(self,): # Skip reference layer data fd.seek(26, 1) self._nbyte = 2 + 68 - if cfg['prog_ver'] >= 5.3: + if cfg["prog_ver"] >= 5.3: fd.seek(7, 1) # skip to rangeMsb bytes ens.dist_bt[:, k] = ens.dist_bt[:, k] + fd.read_ui8(4) * 655.36 self._nbyte += 11 - if cfg['prog_ver'] >= 16.2 and (cfg.get('sourceprog') != 'WINRIVER'): + if cfg["prog_ver"] >= 16.2 and (cfg.get("sourceprog") != "WINRIVER"): fd.seek(4, 1) # not documented self._nbyte += 4 - if cfg['prog_ver'] >= 56.1: + if cfg["prog_ver"] >= 56.1: fd.seek(4, 1) # not documented self._nbyte += 4 - if self._debug_level >= 0: - logging.info('Read Bottom Track') + if self._debug_level > -1: + logging.info("Read Bottom Track") - def read_alt(self,): - """Read altimeter (vertical beam range) """ + def read_alt(self): + """Read altimeter (vertical beam range)""" fd = self.f ens = self.ensemble k = ens.k - self.vars_read += ['alt_dist', 'alt_rssi', 'alt_eval', 'alt_status'] + self.vars_read += ["alt_dist", "alt_rssi", "alt_eval", "alt_status"] ens.alt_eval[k] = fd.read_ui8(1) # evaluation amplitude ens.alt_rssi[k] = fd.read_ui8(1) # RSSI amplitude ens.alt_dist[k] = fd.read_ui32(1) / 1000 # range to surface/seafloor ens.alt_status[k] = fd.read_ui8(1) # status bit flags self._nbyte = 7 + 2 - if self._debug_level >= 0: - logging.info('Read Altimeter') + if self._debug_level > -1: + logging.info("Read Altimeter") - def read_vmdas(self,): + def read_vmdas(self): """Read VMDAS Navigation block""" fd = self.f - self.cfg['sourceprog'] = 'VMDAS' + self.cfg["sourceprog"] = "VMDAS" ens = self.ensemble k = ens.k - if self._source != 1 and self._debug_level >= 0: - logging.info(' \n***** Apparently a VMDAS file \n\n') - self._source = 1 - self.vars_read += ['time_gps', - 'clock_offset_UTC_gps', - 'latitude_gps', - 'longitude_gps', - 'avg_speed_gps', - 'avg_dir_gps', - 'speed_made_good_gps', - 'dir_made_good_gps', - 'flags_gps', - 'pitch_gps', - 'roll_gps', - 'heading_gps', - ] + if self._vm_source != 1 and self._debug_level > -1: + logging.info(" \n***** Apparently a VMDAS file \n\n") + self._vm_source = 1 + self.vars_read += [ + "time_gps", + "clock_offset_UTC_gps", + "latitude_gps", + "longitude_gps", + "avg_speed_gps", + "avg_dir_gps", + "speed_made_good_gps", + "dir_made_good_gps", + "flags_gps", + "pitch_gps", + "roll_gps", + "heading_gps", + ] # UTC date time utim = fd.read_ui8(4) date_utc = tmlib.datetime(utim[2] + utim[3] * 256, utim[1], utim[0]) # 1st lat/lon position after previous ADCP ping # This byte is in hundredths of seconds (10s of milliseconds): - utc_time_first_fix = tmlib.timedelta( - milliseconds=(int(fd.read_ui32(1) / 10))) - ens.clock_offset_UTC_gps[k] = fd.read_i32( - 1) / 1000 # "PC clock offset from UTC" in ms + utc_time_first_fix = tmlib.timedelta(milliseconds=(int(fd.read_ui32(1) / 10))) + ens.clock_offset_UTC_gps[k] = ( + fd.read_i32(1) / 1000 + ) # "PC clock offset from UTC" in ms latitude_first_gps = fd.read_i32(1) * self._cfac longitude_first_gps = fd.read_i32(1) * self._cfac # Last lat/lon position prior to current ADCP ping - utc_time_fix = tmlib.timedelta( - milliseconds=(int(fd.read_ui32(1) / 10))) + utc_time_fix = tmlib.timedelta(milliseconds=(int(fd.read_ui32(1) / 10))) ens.time_gps[k] = tmlib.date2epoch(date_utc + utc_time_fix)[0] ens.latitude_gps[k] = fd.read_i32(1) * self._cfac ens.longitude_gps[k] = fd.read_i32(1) * self._cfac ens.avg_speed_gps[k] = fd.read_ui16(1) / 1000 - ens.avg_dir_gps[k] = fd.read_ui16(1) * 180 / 2 ** 15 # avg true track + ens.avg_dir_gps[k] = fd.read_ui16(1) * 180 / 2**15 # avg true track fd.seek(2, 1) # avg magnetic track ens.speed_made_good_gps[k] = fd.read_ui16(1) / 1000 - ens.dir_made_good_gps[k] = fd.read_ui16(1) * 180 / 2 ** 15 + ens.dir_made_good_gps[k] = fd.read_ui16(1) * 180 / 2**15 fd.seek(2, 1) # reserved ens.flags_gps[k] = int(np.binary_repr(fd.read_ui16(1))) fd.seek(6, 1) # reserved, ADCP ensemble # @@ -1103,50 +1120,52 @@ def read_vmdas(self,): # ADCP date time utim = fd.read_ui8(4) date_adcp = tmlib.datetime(utim[0] + utim[1] * 256, utim[3], utim[2]) - time_adcp = tmlib.timedelta( - milliseconds=(int(fd.read_ui32(1) / 10))) + time_adcp = tmlib.timedelta(milliseconds=(int(fd.read_ui32(1) / 10))) - ens.pitch_gps[k] = fd.read_ui16(1) * 180 / 2 ** 15 - ens.roll_gps[k] = fd.read_ui16(1) * 180 / 2 ** 15 - ens.heading_gps[k] = fd.read_ui16(1) * 180 / 2 ** 15 + ens.pitch_gps[k] = fd.read_ui16(1) * 180 / 2**15 + ens.roll_gps[k] = fd.read_ui16(1) * 180 / 2**15 + ens.heading_gps[k] = fd.read_ui16(1) * 180 / 2**15 fd.seek(10, 1) self._nbyte = 2 + 76 - if self._debug_level >= 0: - logging.info('Read VMDAS') + if self._debug_level > -1: + logging.info("Read VMDAS") self._read_vmdas = True - def read_winriver2(self, ): + def read_winriver2(self): startpos = self.f.tell() self._winrivprob = True - self.cfg['sourceprog'] = 'WinRiver2' + self.cfg["sourceprog"] = "WinRiver2" ens = self.ensemble k = ens.k - if self._debug_level >= 0: - logging.info('Read WinRiver2') - self._source = 3 + if self._debug_level > -1: + logging.info("Read WinRiver2") + self._vm_source = 3 spid = self.f.read_ui16(1) # NMEA specific IDs if spid in [4, 104]: # GGA sz = self.f.read_ui16(1) dtime = self.f.read_f64(1) if sz <= 43: # If no sentence, data is still stored in nmea format - empty_gps = self.f.reads(sz-2) + empty_gps = self.f.reads(sz - 2) self.f.seek(2, 1) else: # TRDI rewrites the nmea string into their format if one is found start_string = self.f.reads(6) - if type(start_string) != str: - if self._debug_level >= 1: - logging.warning(f'Invalid GGA string found in ensemble {k},' - ' skipping...') - return 'FAIL' + if not isinstance(start_string, str): + if self._debug_level > 0: + logging.warning( + f"Invalid GGA string found in ensemble {k}," " skipping..." + ) + return "FAIL" self.f.seek(1, 1) gga_time = self.f.reads(9) - time = tmlib.timedelta(hours=int(gga_time[0:2]), - minutes=int(gga_time[2:4]), - seconds=int(gga_time[4:6]), - milliseconds=int(float(gga_time[6:])*1000)) + time = tmlib.timedelta( + hours=int(gga_time[0:2]), + minutes=int(gga_time[2:4]), + seconds=int(gga_time[4:6]), + milliseconds=int(float(gga_time[6:]) * 1000), + ) clock = self.ensemble.rtc[:, :] if clock[0, 0] < 100: clock[0, :] += defs.century @@ -1155,115 +1174,127 @@ def read_winriver2(self, ): self.f.seek(1, 1) ens.latitude_gps[k] = self.f.read_f64(1) tcNS = self.f.reads(1) # 'N' or 'S' - if tcNS == 'S': + if tcNS == "S": ens.latitude_gps[k] *= -1 ens.longitude_gps[k] = self.f.read_f64(1) tcEW = self.f.reads(1) # 'E' or 'W' - if tcEW == 'W': + if tcEW == "W": ens.longitude_gps[k] *= -1 ens.fix_gps[k] = self.f.read_ui8(1) # gps fix type/quality ens.n_sat_gps[k] = self.f.read_ui8(1) # of satellites # horizontal dilution of precision - ens.hdop_gps[k] = self.f.read_float(1) - ens.elevation_gps[k] = self.f.read_float(1) # altitude + ens.hdop_gps[k] = self.f.read_f32(1) + ens.elevation_gps[k] = self.f.read_f32(1) # altitude m = self.f.reads(1) # altitude unit, 'm' - h_geoid = self.f.read_float(1) # height of geoid + h_geoid = self.f.read_f32(1) # height of geoid m2 = self.f.reads(1) # geoid unit, 'm' - ens.rtk_age_gps[k] = self.f.read_float(1) + ens.rtk_age_gps[k] = self.f.read_f32(1) station_id = self.f.read_ui16(1) - self.vars_read += ['time_gps', 'longitude_gps', 'latitude_gps', 'fix_gps', - 'n_sat_gps', 'hdop_gps', 'elevation_gps', 'rtk_age_gps'] + self.vars_read += [ + "time_gps", + "longitude_gps", + "latitude_gps", + "fix_gps", + "n_sat_gps", + "hdop_gps", + "elevation_gps", + "rtk_age_gps", + ] self._nbyte = self.f.tell() - startpos + 2 elif spid in [5, 105]: # VTG sz = self.f.read_ui16(1) dtime = self.f.read_f64(1) if sz <= 22: # if no data - empty_gps = self.f.reads(sz-2) + empty_gps = self.f.reads(sz - 2) self.f.seek(2, 1) else: start_string = self.f.reads(6) - if type(start_string) != str: - if self._debug_level >= 1: - logging.warning(f'Invalid VTG string found in ensemble {k},' - ' skipping...') - return 'FAIL' + if not isinstance(start_string, str): + if self._debug_level > 0: + logging.warning( + f"Invalid VTG string found in ensemble {k}," " skipping..." + ) + return "FAIL" self.f.seek(1, 1) - true_track = self.f.read_float(1) + true_track = self.f.read_f32(1) t = self.f.reads(1) # 'T' - magn_track = self.f.read_float(1) + magn_track = self.f.read_f32(1) m = self.f.reads(1) # 'M' - speed_knot = self.f.read_float(1) + speed_knot = self.f.read_f32(1) kts = self.f.reads(1) # 'N' - speed_kph = self.f.read_float(1) + speed_kph = self.f.read_f32(1) kph = self.f.reads(1) # 'K' mode = self.f.reads(1) # knots -> m/s ens.speed_over_grnd_gps[k] = speed_knot / 1.944 ens.dir_over_grnd_gps[k] = true_track - self.vars_read += ['speed_over_grnd_gps', - 'dir_over_grnd_gps'] + self.vars_read += ["speed_over_grnd_gps", "dir_over_grnd_gps"] self._nbyte = self.f.tell() - startpos + 2 elif spid in [6, 106]: # 'DBT' depth sounder sz = self.f.read_ui16(1) dtime = self.f.read_f64(1) if sz <= 20: - empty_gps = self.f.reads(sz-2) + empty_gps = self.f.reads(sz - 2) self.f.seek(2, 1) else: start_string = self.f.reads(6) - if type(start_string) != str: - if self._debug_level >= 1: - logging.warning(f'Invalid DBT string found in ensemble {k},' - ' skipping...') - return 'FAIL' + if not isinstance(start_string, str): + if self._debug_level > 0: + logging.warning( + f"Invalid DBT string found in ensemble {k}," " skipping..." + ) + return "FAIL" self.f.seek(1, 1) - depth_ft = self.f.read_float(1) + depth_ft = self.f.read_f32(1) ft = self.f.reads(1) # 'f' - depth_m = self.f.read_float(1) + depth_m = self.f.read_f32(1) m = self.f.reads(1) # 'm' - depth_fathom = self.f.read_float(1) + depth_fathom = self.f.read_f32(1) f = self.f.reads(1) # 'F' ens.dist_nmea[k] = depth_m - self.vars_read += ['dist_nmea'] + self.vars_read += ["dist_nmea"] self._nbyte = self.f.tell() - startpos + 2 elif spid in [7, 107]: # 'HDT' sz = self.f.read_ui16(1) dtime = self.f.read_f64(1) if sz <= 14: - empty_gps = self.f.reads(sz-2) + empty_gps = self.f.reads(sz - 2) self.f.seek(2, 1) else: start_string = self.f.reads(6) - if type(start_string) != str: - if self._debug_level >= 1: - logging.warning(f'Invalid HDT string found in ensemble {k},' - ' skipping...') - return 'FAIL' + if not isinstance(start_string, str): + if self._debug_level > 0: + logging.warning( + f"Invalid HDT string found in ensemble {k}," " skipping..." + ) + return "FAIL" self.f.seek(1, 1) ens.heading_gps[k] = self.f.read_f64(1) tt = self.f.reads(1) - self.vars_read += ['heading_gps'] + self.vars_read += ["heading_gps"] self._nbyte = self.f.tell() - startpos + 2 def read_winriver(self, nbt): self._winrivprob = True - self.cfg['sourceprog'] = 'WINRIVER' - if self._source not in [2, 3]: - if self._debug_level >= 0: - logging.warning('\n***** Apparently a WINRIVER file - ' - 'Raw NMEA data handler not yet implemented\n') - self._source = 2 + self.cfg["sourceprog"] = "WINRIVER" + if self._vm_source not in [2, 3]: + if self._debug_level > -1: + logging.warning( + "\n***** Apparently a WINRIVER file - " + "Raw NMEA data handler not yet implemented\n" + ) + self._vm_source = 2 startpos = self.f.tell() sz = self.f.read_ui16(1) - tmp = self.f.reads(sz-2) + tmp = self.f.reads(sz - 2) self._nbyte = self.f.tell() - startpos + 2 def skip_Ncol(self, n_skip=1): - self.f.seek(n_skip * self.cfg['n_cells'], 1) - self._nbyte = 2 + n_skip * self.cfg['n_cells'] + self.f.seek(n_skip * self.cfg["n_cells"], 1) + self._nbyte = 2 + n_skip * self.cfg["n_cells"] def skip_Nbyte(self, n_skip): self.f.seek(n_skip, 1) @@ -1272,76 +1303,199 @@ def skip_Nbyte(self, n_skip): def read_nocode(self, id): # Skipping bytes from codes 0340-30FC, commented if needed hxid = hex(id) - if hxid[2:4] == '30': + if hxid[2:4] == "30": logging.warning("Skipping bytes from codes 0340-30FC") # I want to count the number of 1s in the middle 4 bits # of the 2nd two bytes. # 60 is a 0b00111100 mask - nflds = (bin(int(hxid[3]) & 60).count('1') + - bin(int(hxid[4]) & 60).count('1')) + nflds = bin(int(hxid[3]) & 60).count("1") + bin(int(hxid[4]) & 60).count( + "1" + ) # I want to count the number of 1s in the highest # 2 bits of byte 3 # 3 is a 0b00000011 mask: - dfac = bin(int(hxid[3], 0) & 3).count('1') + dfac = bin(int(hxid[3], 0) & 3).count("1") self.skip_Nbyte(12 * nflds * dfac) else: - if self._debug_level >= 0: - logging.warning(' Unrecognized ID code: %0.4X' % id) + if self._debug_level > -1: + logging.warning(" Unrecognized ID code: %0.4X" % id) self.skip_nocode(id) def skip_nocode(self, id): # Skipping bytes if ID isn't known offsets = list(self.id_positions.values()) idx = np.where(offsets == self.id_positions[id])[0][0] - byte_len = offsets[idx+1] - offsets[idx] - 2 + byte_len = offsets[idx + 1] - offsets[idx] - 2 self.skip_Nbyte(byte_len) - if self._debug_level >= 0: + if self._debug_level > -1: logging.debug(f"Skipping ID code {id}\n") - def cleanup(self, cfg, dat): - dat['coords']['range'] = (cfg['bin1_dist_m'] + - np.arange(self.ensemble['n_cells']) * - cfg['cell_size']) + def check_offset(self, offset, readbytes): + fd = self.f + if offset != 4 and self._fixoffset == 0: + if self._debug_level > 0: + if fd.tell() == self._filesize: + logging.error( + " EOF reached unexpectedly - discarding this last ensemble\n" + ) + else: + logging.debug( + " Adjust location by {:d} (readbytes={:d},hdr['nbyte']={:d})\n".format( + offset, readbytes, self.hdr["nbyte"] + ) + ) + self._fixoffset = offset - 4 + fd.seek(4 + self._fixoffset, 1) + + def remove_end(self, iens): + dat = self.outd + if self._debug_level > 0: + logging.info(" Encountered end of file. Cleaning up data.") + for nm in self.vars_read: + defs._setd(dat, nm, defs._get(dat, nm)[..., :iens]) + def save_profiles(self, dat, nm, en, iens): + ds = defs._get(dat, nm) + if self.n_avg == 1: + bn = en[nm][..., 0] + else: + bn = np.nanmean(en[nm], axis=-1) + + # If n_cells has changed (RiverPro/StreamPro WinRiver transects) + if len(ds.shape) == 3: + if "_sl" in nm: + # This works here b/c the max number of surface layer cells + # is smaller than the min number of normal profile cells used. + # Extra nan cells created after this if-statement + # are trimmed off in self.cleanup. + bn = bn[: self.cfg["n_cells_sl"]] + else: + # Set bn to current ping size + bn = bn[: self.cfg["n_cells"]] + # If n_cells has increased, we also need to increment defs + if self.n_cells_diff > 0: + a = np.empty((self.n_cells_diff, ds.shape[1], ds.shape[2])) * np.nan + ds = np.append(ds, a.astype(ds.dtype), axis=0) + defs._setd(dat, nm, ds) + # If the number of cells decreases, set extra cells to nan instead of + # whatever is stuck in memory + if ds.shape[0] != bn.shape[0]: + n_cells = ds.shape[0] - bn.shape[0] + a = np.empty((n_cells, bn.shape[1])) * np.nan + bn = np.append(bn, a.astype(ds.dtype), axis=0) + + # Keep track of when the cell size changes + if self.cs_diff: + self.cs.append([iens, self.cfg["cell_size"]]) + self.cs_diff = 0 + + # Then copy the ensemble to the dataset. + ds[..., iens] = bn + defs._setd(dat, nm, ds) + + return dat + + def cleanup(self, dat, cfg): + # Clean up changing cell size, if necessary + cs = np.array(self.cs) + cell_sizes = cs[:, 1] + + # If cell sizes change, depth-bin average the smaller cell sizes + if len(self.cs) > 1: + bins_to_merge = cell_sizes.max() / cell_sizes + idx_start = cs[:, 0].astype(int) + idx_end = np.append(cs[1:, 0], self._nens).astype(int) + + dv = dat["data_vars"] + for var in dv: + if (len(dv[var].shape) == 3) and ("_sl" not in var): + # Create a new NaN var to save data in + new_var = (np.zeros(dv[var].shape) * np.nan).astype(dv[var].dtype) + # For each cell size change, reshape and bin-average + for id1, id2, b in zip(idx_start, idx_end, bins_to_merge): + array = np.transpose(dv[var][..., id1:id2]) + bin_arr = np.transpose(np.mean(self.reshape(array, b), axis=-1)) + new_var[: len(bin_arr), :, id1:id2] = bin_arr + # Reset data. This often leaves nan data at farther ranges + dv[var] = new_var + + # Set cell size and range + cfg["n_cells"] = self.ensemble["n_cells"] + cfg["cell_size"] = cell_sizes.max() + dat["coords"]["range"] = ( + cfg["bin1_dist_m"] + np.arange(cfg["n_cells"]) * cfg["cell_size"] + ) + + # Save configuration data as attributes for nm in cfg: - dat['attrs'][nm] = cfg[nm] - - if 'surface_layer' in cfg: # RiverPro/StreamPro - dat['coords']['range_sl'] = (cfg['bin1_dist_m_sl'] + - np.arange(self.cfg['n_cells_sl']) * - cfg['cell_size_sl']) - # Trim surface layer profile to length - dv = dat['data_vars'] + dat["attrs"][nm] = cfg[nm] + + # Clean up surface layer profiles + if "surface_layer" in cfg: # RiverPro/StreamPro + dat["coords"]["range_sl"] = ( + cfg["bin1_dist_m_sl"] + + np.arange(0, self.n_cells_sl) * cfg["cell_size_sl"] + ) + # Trim off extra nan data + dv = dat["data_vars"] for var in dv: - if 'sl' in var: - dv[var] = dv[var][:cfg['n_cells_sl']] - dat['attrs']['rotate_vars'].append('vel_sl') + if "sl" in var: + dv[var] = dv[var][: self.n_cells_sl] + dat["attrs"]["rotate_vars"].append("vel_sl") + + return dat, cfg + + def reshape(self, arr, n_bin=None): + """ + Reshape the array `arr` to shape (...,n,n_bin). + """ + + out = np.zeros( + list(arr.shape[:-1]) + [int(arr.shape[-1] // n_bin), int(n_bin)], + dtype=arr.dtype, + ) + shp = out.shape + if np.mod(n_bin, 1) == 0: + # n_bin needs to be int + n_bin = int(n_bin) + # If n_bin is an integer, we can do this simply. + out[..., :n_bin] = (arr[..., : (shp[-2] * shp[-1])]).reshape(shp, order="C") + else: + inds = (np.arange(np.prod(shp[-2:])) * n_bin // int(n_bin)).astype(int) + # If there are too many indices, drop one bin + if inds[-1] >= arr.shape[-1]: + inds = inds[: -int(n_bin)] + shp[-2] -= 1 + out = out[..., 1:, :] + n_bin = int(n_bin) + out[..., :n_bin] = (arr[..., inds]).reshape(shp, order="C") + n_bin = int(n_bin) + + return out def finalize(self, dat): - """Remove the attributes from the data that were never loaded. """ + Remove the attributes from the data that were never loaded. + """ + for nm in set(defs.data_defs.keys()) - self.vars_read: defs._pop(dat, nm) for nm in self.cfg: - dat['attrs'][nm] = self.cfg[nm] + dat["attrs"][nm] = self.cfg[nm] # VMDAS and WinRiver have different set sampling frequency - da = dat['attrs'] - if hasattr(da, 'sourceprog') and (da['sourceprog'].lower() in ['vmdas', 'winriver', 'winriver2']): - da['fs'] = round(np.diff(dat['coords']['time']).mean() ** -1, 2) + da = dat["attrs"] + if ("sourceprog" in da) and ( + da["sourceprog"].lower() in ["vmdas", "winriver", "winriver2"] + ): + da["fs"] = round(1 / np.median(np.diff(dat["coords"]["time"])), 2) else: - da['fs'] = (da['sec_between_ping_groups'] * - da['pings_per_ensemble']) ** (-1) - da['n_cells'] = self.ensemble['n_cells'] + da["fs"] = 1 / (da["sec_between_ping_groups"] * da["pings_per_ensemble"]) for nm in defs.data_defs: shp = defs.data_defs[nm][0] - if len(shp) and shp[0] == 'nc' and defs._in_group(dat, nm): + if len(shp) and shp[0] == "nc" and defs._in_group(dat, nm): defs._setd(dat, nm, np.swapaxes(defs._get(dat, nm), 0, 1)) - def __enter__(self,): - return self - - def __exit__(self, type, value, traceback): - self.f.close() + return dat diff --git a/mhkit/dolfyn/io/rdi_defs.py b/mhkit/dolfyn/io/rdi_defs.py index 8c65812db..a91148a53 100644 --- a/mhkit/dolfyn/io/rdi_defs.py +++ b/mhkit/dolfyn/io/rdi_defs.py @@ -1,105 +1,325 @@ import numpy as np century = 2000 -adcp_type = {4: 'Broadband', - 5: 'Broadband', - 6: 'Navigator', - 10: 'Rio Grande', - 11: 'H-ADCP', - 14: 'Ocean Surveyor', - 16: 'Workhorse', - 19: 'Navigator', - 23: 'Ocean Surveyor', - 28: 'ChannelMaster', - 31: 'StreamPro', - 34: 'Explorer', - 37: 'Navigator', - 41: 'DVS', - 43: 'Workhorse', - 44: 'RiverRay', - 47: 'SentinelV', - 50: 'Workhorse', - 51: 'Workhorse', - 52: 'Workhorse', - 53: 'Navigator', - 55: 'DVS', - 56: 'RiverPro', - 59: 'Meridian', - 61: 'Pinnacle', - 66: 'SentinelV', - 67: 'Pathfinder', - 73: 'Pioneer', - 74: 'Tasman', - 76: 'WayFinder', - 77: 'Workhorse', - 78: 'Workhorse', - } - -data_defs = {'number': ([], 'data_vars', 'uint32', '1', 'Ensemble Number', 'number_of_observations'), - 'rtc': ([7], 'sys', 'uint16', '1', 'Real Time Clock', ''), - 'builtin_test_fail': ([], 'data_vars', 'bool', '1', 'Built-In Test Failures', ''), - 'c_sound': ([], 'data_vars', 'float32', 'm s-1', 'Speed of Sound', 'speed_of_sound_in_sea_water'), - 'depth': ([], 'data_vars', 'float32', 'm', 'Depth', 'depth'), - 'pitch': ([], 'data_vars', 'float32', 'degree', 'Pitch', 'platform_pitch'), - 'roll': ([], 'data_vars', 'float32', 'degree', 'Roll', 'platform_roll'), - 'heading': ([], 'data_vars', 'float32', 'degree', 'Heading', 'platform_orientation'), - 'temp': ([], 'data_vars', 'float32', 'degree_C', 'Temperature', 'sea_water_temperature'), - 'salinity': ([], 'data_vars', 'float32', 'psu', 'Salinity', 'sea_water_salinity'), - 'min_preping_wait': ([], 'data_vars', 'float32', 's', 'Minimum Pre-Ping Wait Time Between Measurements', ''), - 'heading_std': ([], 'data_vars', 'float32', 'degree', 'Heading Standard Deviation', ''), - 'pitch_std': ([], 'data_vars', 'float32', 'degree', 'Pitch Standard Deviation', ''), - 'roll_std': ([], 'data_vars', 'float32', 'degree', 'Roll Standard Deviation', ''), - 'adc': ([8], 'sys', 'uint8', '1', 'Analog-Digital Converter Output', ''), - 'error_status': ([], 'attrs', 'float32', '1', 'Error Status', ''), - 'pressure': ([], 'data_vars', 'float32', 'dbar', 'Pressure', 'sea_water_pressure'), - 'pressure_std': ([], 'data_vars', 'float32', 'dbar', 'Pressure Standard Deviation', ''), - 'vel': (['nc', 4], 'data_vars', 'float32', 'm s-1', 'Water Velocity', ''), - 'amp': (['nc', 4], 'data_vars', 'uint8', '1', 'Acoustic Signal Amplitude', - 'signal_intensity_from_multibeam_acoustic_doppler_velocity_sensor_in_sea_water'), - 'corr': (['nc', 4], 'data_vars', 'uint8', '1', 'Acoustic Signal Correlation', - 'beam_consistency_indicator_from_multibeam_acoustic_doppler_velocity_profiler_in_sea_water'), - 'prcnt_gd': (['nc', 4], 'data_vars', 'uint8', '%', 'Percent Good', - 'proportion_of_acceptable_signal_returns_from_acoustic_instrument_in_sea_water'), - 'status': (['nc', 4], 'data_vars', 'float32', '1', 'Status', ''), - 'dist_bt': ([4], 'data_vars', 'float32', 'm', 'Bottom Track Measured Depth', ''), - 'vel_bt': ([4], 'data_vars', 'float32', 'm s-1', 'Platform Velocity from Bottom Track', ''), - 'corr_bt': ([4], 'data_vars', 'uint8', '1', 'Bottom Track Acoustic Signal Correlation', ''), - 'amp_bt': ([4], 'data_vars', 'uint8', '1', 'Bottom Track Acoustic Signal Amplitude', ''), - 'prcnt_gd_bt': ([4], 'data_vars', 'uint8', '%', 'Bottom Track Percent Good', ''), - 'time': ([], 'coords', 'float64', 'seconds since 1970-01-01 00:00:00', 'Time', 'time'), - 'alt_dist': ([], 'data_vars', 'float32', 'm', 'Altimeter Range', 'altimeter_range'), - 'alt_rssi': ([], 'data_vars', 'uint8', 'dB', 'Altimeter Recieved Signal Strength Indicator', ''), - 'alt_eval': ([], 'data_vars', 'uint8', 'dB', 'Altimeter Evaluation Amplitude', ''), - 'alt_status': ([], 'data_vars', 'uint8', 'bit', 'Altimeter Status', ''), - 'time_gps': ([], 'coords', 'float64', 'seconds since 1970-01-01 00:00:00', 'GPS Time', 'time'), - 'clock_offset_UTC_gps': ([], 'data_vars', 'float64', 's', 'Instrument Clock Offset from UTC', ''), - 'latitude_gps': ([], 'data_vars', 'float32', 'degrees_north', 'Latitude', 'latitude'), - 'longitude_gps': ([], 'data_vars', 'float32', 'degrees_east', 'Longitude', 'longitude'), - 'avg_speed_gps': ([], 'data_vars', 'float32', 'm s-1', 'Average Platform Speed', 'platform_speed_wrt_ground'), - 'avg_dir_gps': ([], 'data_vars', 'float32', 'degree', 'Average Platform Direction', 'platform_course'), - 'speed_made_good_gps': ([], 'data_vars', 'float32', 'm s-1', 'Platform Speed Made Good', 'platform_speed_wrt_ground'), - 'dir_made_good_gps': ([], 'data_vars', 'float32', 'degree', 'Platform Direction Made Good', 'platform_course'), - 'flags_gps': ([], 'data_vars', 'float32', 'bits', 'GPS Flags', ''), - 'fix_gps': ([], 'data_vars', 'int8', '1', 'GPS Fix', ''), - 'n_sat_gps': ([], 'data_vars', 'int8', 'count', 'Number of Satellites', ''), - 'hdop_gps': ([], 'data_vars', 'float32', '1', 'Horizontal Dilution of Precision', ''), - 'elevation_gps': ([], 'data_vars', 'float32', 'm', 'Elevation above MLLW', ''), - 'rtk_age_gps': ([], 'data_vars', 'float32', 's', 'Age of Received Real Time Kinetic Signal', ''), - 'speed_over_grnd_gps': ([], 'data_vars', 'float32', 'm s-1', 'Platform Speed over Ground', 'platform_speed_wrt_ground'), - 'dir_over_grnd_gps': ([], 'data_vars', 'float32', 'degree', 'Platform Direction over Ground', 'platform_course'), - 'heading_gps': ([], 'data_vars', 'float32', 'degree', 'GPS Heading', 'platform_orientation'), - 'pitch_gps': ([], 'data_vars', 'float32', 'degree', 'GPS Pitch', 'platform_pitch'), - 'roll_gps': ([], 'data_vars', 'float32', 'degree', 'GPS Roll', 'platform_roll'), - 'dist_nmea': ([], 'data_vars', 'float32', 'm', 'Depth Sounder Range', ''), - 'vel_sl': (['nc', 4], 'data_vars', 'float32', 'm s-1', 'Surface Layer Water Velocity', ''), - 'corr_sl': (['nc', 4], 'data_vars', 'uint8', '1', 'Surface Layer Acoustic Signal Correlation', - 'beam_consistency_indicator_from_multibeam_acoustic_doppler_velocity_profiler_in_sea_water'), - 'amp_sl': (['nc', 4], 'data_vars', 'uint8', '1', 'Surface Layer Acoustic Signal Amplitude', - 'signal_intensity_from_multibeam_acoustic_doppler_velocity_sensor_in_sea_water'), - 'prcnt_gd_sl': (['nc', 4], 'data_vars', 'uint8', '%', 'Surface Layer Percent Good', - 'proportion_of_acceptable_signal_returns_from_acoustic_instrument_in_sea_water'), - 'status_sl': (['nc', 4], 'data_vars', 'float32', '1', 'Surface Layer Status', ''), - } +adcp_type = { + 4: "Broadband", + 5: "Broadband", + 6: "Navigator", + 10: "Rio Grande", + 11: "H-ADCP", + 14: "Ocean Surveyor", + 16: "Workhorse", + 19: "Navigator", + 23: "Ocean Surveyor", + 28: "ChannelMaster", + 31: "StreamPro", + 34: "Explorer", + 37: "Navigator", + 41: "DVS", + 43: "Workhorse", + 44: "RiverRay", + 47: "SentinelV", + 50: "Workhorse", + 51: "Workhorse", + 52: "Workhorse", + 53: "Navigator", + 55: "DVS", + 56: "RiverPro", + 59: "Meridian", + 61: "Pinnacle", + 66: "SentinelV", + 67: "Pathfinder", + 73: "Pioneer", + 74: "Tasman", + 76: "WayFinder", + 77: "Workhorse", + 78: "Workhorse", +} + +data_defs = { + "number": ( + [], + "data_vars", + "uint32", + "1", + "Ensemble Number", + "number_of_observations", + ), + "rtc": ([7], "sys", "uint16", "1", "Real Time Clock", ""), + "builtin_test_fail": ([], "data_vars", "bool", "1", "Built-In Test Failures", ""), + "c_sound": ( + [], + "data_vars", + "float32", + "m s-1", + "Speed of Sound", + "speed_of_sound_in_sea_water", + ), + "depth": ([], "data_vars", "float32", "m", "Depth", "depth"), + "pitch": ([], "data_vars", "float32", "degree", "Pitch", "platform_pitch"), + "roll": ([], "data_vars", "float32", "degree", "Roll", "platform_roll"), + "heading": ( + [], + "data_vars", + "float32", + "degree", + "Heading", + "platform_orientation", + ), + "temp": ( + [], + "data_vars", + "float32", + "degree_C", + "Temperature", + "sea_water_temperature", + ), + "salinity": ([], "data_vars", "float32", "psu", "Salinity", "sea_water_salinity"), + "min_preping_wait": ( + [], + "data_vars", + "float32", + "s", + "Minimum Pre-Ping Wait Time Between Measurements", + "", + ), + "heading_std": ( + [], + "data_vars", + "float32", + "degree", + "Heading Standard Deviation", + "", + ), + "pitch_std": ([], "data_vars", "float32", "degree", "Pitch Standard Deviation", ""), + "roll_std": ([], "data_vars", "float32", "degree", "Roll Standard Deviation", ""), + "adc": ([8], "sys", "uint8", "1", "Analog-Digital Converter Output", ""), + "error_status": ([], "attrs", "float32", "1", "Error Status", ""), + "pressure": ([], "data_vars", "float32", "dbar", "Pressure", "sea_water_pressure"), + "pressure_std": ( + [], + "data_vars", + "float32", + "dbar", + "Pressure Standard Deviation", + "", + ), + "vel": (["nc", 4], "data_vars", "float32", "m s-1", "Water Velocity", ""), + "amp": ( + ["nc", 4], + "data_vars", + "uint8", + "1", + "Acoustic Signal Amplitude", + "signal_intensity_from_multibeam_acoustic_doppler_velocity_sensor_in_sea_water", + ), + "corr": ( + ["nc", 4], + "data_vars", + "uint8", + "1", + "Acoustic Signal Correlation", + "beam_consistency_indicator_from_multibeam_acoustic_doppler_velocity_profiler_in_sea_water", + ), + "prcnt_gd": ( + ["nc", 4], + "data_vars", + "uint8", + "%", + "Percent Good", + "proportion_of_acceptable_signal_returns_from_acoustic_instrument_in_sea_water", + ), + "status": (["nc", 4], "data_vars", "float32", "1", "Status", ""), + "dist_bt": ([4], "data_vars", "float32", "m", "Bottom Track Measured Depth", ""), + "vel_bt": ( + [4], + "data_vars", + "float32", + "m s-1", + "Platform Velocity from Bottom Track", + "", + ), + "corr_bt": ( + [4], + "data_vars", + "uint8", + "1", + "Bottom Track Acoustic Signal Correlation", + "", + ), + "amp_bt": ( + [4], + "data_vars", + "uint8", + "1", + "Bottom Track Acoustic Signal Amplitude", + "", + ), + "prcnt_gd_bt": ([4], "data_vars", "uint8", "%", "Bottom Track Percent Good", ""), + "time": ( + [], + "coords", + "float64", + "seconds since 1970-01-01 00:00:00", + "Time", + "time", + ), + "alt_dist": ([], "data_vars", "float32", "m", "Altimeter Range", "altimeter_range"), + "alt_rssi": ( + [], + "data_vars", + "uint8", + "dB", + "Altimeter Recieved Signal Strength Indicator", + "", + ), + "alt_eval": ([], "data_vars", "uint8", "dB", "Altimeter Evaluation Amplitude", ""), + "alt_status": ([], "data_vars", "uint8", "bit", "Altimeter Status", ""), + "time_gps": ( + [], + "coords", + "float64", + "seconds since 1970-01-01 00:00:00", + "GPS Time", + "time", + ), + "clock_offset_UTC_gps": ( + [], + "data_vars", + "float64", + "s", + "Instrument Clock Offset from UTC", + "", + ), + "latitude_gps": ( + [], + "data_vars", + "float32", + "degrees_north", + "Latitude", + "latitude", + ), + "longitude_gps": ( + [], + "data_vars", + "float32", + "degrees_east", + "Longitude", + "longitude", + ), + "avg_speed_gps": ( + [], + "data_vars", + "float32", + "m s-1", + "Average Platform Speed", + "platform_speed_wrt_ground", + ), + "avg_dir_gps": ( + [], + "data_vars", + "float32", + "degree", + "Average Platform Direction", + "platform_course", + ), + "speed_made_good_gps": ( + [], + "data_vars", + "float32", + "m s-1", + "Platform Speed Made Good", + "platform_speed_wrt_ground", + ), + "dir_made_good_gps": ( + [], + "data_vars", + "float32", + "degree", + "Platform Direction Made Good", + "platform_course", + ), + "flags_gps": ([], "data_vars", "float32", "bits", "GPS Flags", ""), + "fix_gps": ([], "data_vars", "int8", "1", "GPS Fix", ""), + "n_sat_gps": ([], "data_vars", "int8", "count", "Number of Satellites", ""), + "hdop_gps": ( + [], + "data_vars", + "float32", + "1", + "Horizontal Dilution of Precision", + "", + ), + "elevation_gps": ([], "data_vars", "float32", "m", "Elevation above MLLW", ""), + "rtk_age_gps": ( + [], + "data_vars", + "float32", + "s", + "Age of Received Real Time Kinetic Signal", + "", + ), + "speed_over_grnd_gps": ( + [], + "data_vars", + "float32", + "m s-1", + "Platform Speed over Ground", + "platform_speed_wrt_ground", + ), + "dir_over_grnd_gps": ( + [], + "data_vars", + "float32", + "degree", + "Platform Direction over Ground", + "platform_course", + ), + "heading_gps": ( + [], + "data_vars", + "float32", + "degree", + "GPS Heading", + "platform_orientation", + ), + "pitch_gps": ([], "data_vars", "float32", "degree", "GPS Pitch", "platform_pitch"), + "roll_gps": ([], "data_vars", "float32", "degree", "GPS Roll", "platform_roll"), + "dist_nmea": ([], "data_vars", "float32", "m", "Depth Sounder Range", ""), + "vel_sl": ( + ["nc", 4], + "data_vars", + "float32", + "m s-1", + "Surface Layer Water Velocity", + "", + ), + "corr_sl": ( + ["nc", 4], + "data_vars", + "uint8", + "1", + "Surface Layer Acoustic Signal Correlation", + "beam_consistency_indicator_from_multibeam_acoustic_doppler_velocity_profiler_in_sea_water", + ), + "amp_sl": ( + ["nc", 4], + "data_vars", + "uint8", + "1", + "Surface Layer Acoustic Signal Amplitude", + "signal_intensity_from_multibeam_acoustic_doppler_velocity_sensor_in_sea_water", + ), + "prcnt_gd_sl": ( + ["nc", 4], + "data_vars", + "uint8", + "%", + "Surface Layer Percent Good", + "proportion_of_acceptable_signal_returns_from_acoustic_instrument_in_sea_water", + ), + "status_sl": (["nc", 4], "data_vars", "float32", "1", "Surface Layer Status", ""), +} def _get(dat, nm): @@ -141,21 +361,21 @@ def _idata(dat, nm, sz): long_name = data_defs[nm][4] standard_name = data_defs[nm][5] arr = np.empty(sz, dtype=dtype) - if dtype.startswith('float'): + if dtype.startswith("float"): arr[:] = np.NaN dat[group][nm] = arr - dat['units'][nm] = units - dat['long_name'][nm] = long_name + dat["units"][nm] = units + dat["long_name"][nm] = long_name if standard_name: - dat['standard_name'][nm] = standard_name + dat["standard_name"][nm] = standard_name return dat def _get_size(name, n=None, ncell=0): sz = list(data_defs[name][0]) # create a copy! - if 'nc' in sz: - sz.insert(sz.index('nc'), ncell) - sz.remove('nc') + if "nc" in sz: + sz.insert(sz.index("nc"), ncell) + sz.remove("nc") if n is None: return tuple(sz) return tuple(sz + [n]) @@ -168,7 +388,7 @@ def __iadd__(self, vals): return self -class _ensemble(): +class _ensemble: n_avg = 1 k = -1 # This is the counter for filling the ensemble object @@ -181,9 +401,11 @@ def __init__(self, navg, n_cells): self.n_avg = navg self.n_cells = n_cells for nm in data_defs: - setattr(self, nm, - np.zeros(_get_size(nm, n=navg, ncell=n_cells), - dtype=data_defs[nm][2])) + setattr( + self, + nm, + np.zeros(_get_size(nm, n=navg, ncell=n_cells), dtype=data_defs[nm][2]), + ) - def clean_data(self,): - self['vel'][self['vel'] == -32.768] = np.NaN + def clean_data(self): + self["vel"][self["vel"] == -32.768] = np.NaN diff --git a/mhkit/dolfyn/io/rdi_lib.py b/mhkit/dolfyn/io/rdi_lib.py index dac0b710b..df0851a0f 100644 --- a/mhkit/dolfyn/io/rdi_lib.py +++ b/mhkit/dolfyn/io/rdi_lib.py @@ -3,40 +3,40 @@ from os.path import expanduser -class bin_reader(): +class bin_reader: """ Reads binary data files. It is mostly for development purposes, to simplify learning a data file's format. Reading binary data files should minimize the number of calls to struct.unpack and file.read because many calls to these functions (i.e. using the code in this module) are slow. """ - _size_factor = {'B': 1, 'b': 1, 'H': 2, - 'h': 2, 'L': 4, 'l': 4, 'f': 4, 'd': 8} - _frmt = {np.uint8: 'B', np.int8: 'b', - np.uint16: 'H', np.int16: 'h', - np.uint32: 'L', np.int32: 'l', - float: 'f', np.float32: 'f', - np.double: 'd', np.float64: 'd', - } + + _size_factor = {"B": 1, "b": 1, "H": 2, "h": 2, "L": 4, "l": 4, "f": 4, "d": 8} + _frmt = { + np.uint8: "B", + np.int8: "b", + np.uint16: "H", + np.int16: "h", + np.uint32: "L", + np.int32: "l", + float: "f", + np.float32: "f", + np.double: "d", + np.float64: "d", + } @property - def pos(self,): + def pos(self): return self.f.tell() - def __enter__(self,): - return self - - def __exit__(self,): - self.close() - - def __init__(self, fname, endian='<', checksum_size=None, debug_level=0): + def __init__(self, fname, endian="<", checksum_size=None, debug_level=0): """ Default to little-endian '<'... *checksum_size* is in bytes, if it is None or False, this function does not perform checksums. """ self.endian = endian - self.f = open(expanduser(fname), 'rb') + self.f = open(expanduser(fname), "rb") self.f.seek(0, 2) self.fsize = self.tell() self.f.seek(0, 0) @@ -47,7 +47,7 @@ def __init__(self, fname, endian='<', checksum_size=None, debug_level=0): self.cs = checksum_size self.debug_level = debug_level - def checksum(self,): + def checksum(self): """ The next byte(s) are the expected checksum. Perform the checksum. """ @@ -55,9 +55,9 @@ def checksum(self,): cs = self.read(1, self.cs._frmt) self.cs(cs, True) else: - raise Exception('CheckSum not requested for this file') + raise Exception("CheckSum not requested for this file") - def tell(self,): + def tell(self): return self.f.tell() def seek(self, pos, rel=1): @@ -70,7 +70,7 @@ def reads(self, n): val = self.f.read(n) self.cs and self.cs.add(val) try: - val = val.decode('utf-8') + val = val.decode("utf-8") except: if self.debug_level > 5: print("ERROR DECODING: {}".format(val)) @@ -88,28 +88,25 @@ def read(self, n, frmt): return np.array(unpack(self.endian + frmt * n, val)) def read_ui8(self, n): - return self.read(n, 'B') - - def read_float(self, n): - return self.read(n, 'f') + return self.read(n, "B") - def read_double(self, n): - return self.read(n, 'd') + def read_f32(self, n): + return self.read(n, "f") - read_f32 = read_float - read_f64 = read_double + def read_f64(self, n): + return self.read(n, "d") def read_i8(self, n): - return self.read(n, 'b') + return self.read(n, "b") def read_ui16(self, n): - return self.read(n, 'H') + return self.read(n, "H") def read_i16(self, n): - return self.read(n, 'h') + return self.read(n, "h") def read_ui32(self, n): - return self.read(n, 'L') + return self.read(n, "L") def read_i32(self, n): - return self.read(n, 'l') + return self.read(n, "l") diff --git a/mhkit/dolfyn/rotate/api.py b/mhkit/dolfyn/rotate/api.py index 65a6277b1..835b170e2 100644 --- a/mhkit/dolfyn/rotate/api.py +++ b/mhkit/dolfyn/rotate/api.py @@ -9,20 +9,20 @@ # The 'rotation chain' -rc = ['beam', 'inst', 'earth', 'principal'] +rc = ["beam", "inst", "earth", "principal"] rot_module_dict = { # Nortek instruments - 'vector': r_vec, - 'awac': r_awac, - 'signature': r_sig, - 'ad2cp': r_sig, - + "vector": r_vec, + "awac": r_awac, + "signature": r_sig, + "ad2cp": r_sig, # TRDI instruments - 'rdi': r_rdi} + "rdi": r_rdi, +} -def rotate2(ds, out_frame='earth', inplace=True): +def rotate2(ds, out_frame="earth", inplace=True): """ Rotate a dataset to a new coordinate system. @@ -46,8 +46,8 @@ def rotate2(ds, out_frame='earth', inplace=True): ----- - This function rotates all variables in ``ds.attrs['rotate_vars']``. - - In order to rotate to the 'principal' frame, a value should exist for - ``ds.attrs['principal_heading']``. The function + - In order to rotate to the 'principal' frame, a value should exist for + ``ds.attrs['principal_heading']``. The function :func:`calc_principal_heading ` is recommended for this purpose, e.g.: @@ -62,18 +62,19 @@ def rotate2(ds, out_frame='earth', inplace=True): ds = ds.copy(deep=True) csin = ds.coord_sys.lower() - if csin == 'ship': - csin = 'inst' + if csin == "ship": + csin = "inst" # Returns True/False if head2inst_rotmat has been set/not-set. r_vec._check_inst2head_rotmat(ds) - if out_frame == 'principal' and csin != 'earth': + if out_frame == "principal" and csin != "earth": warnings.warn( "You are attempting to rotate into the 'principal' " "coordinate system, but the dataset is in the {} " "coordinate system. Be sure that 'principal_heading' is " - "defined based on the earth coordinate system.".format(csin)) + "defined based on the earth coordinate system.".format(csin) + ) rmod = None for ky in rot_module_dict: @@ -81,22 +82,26 @@ def rotate2(ds, out_frame='earth', inplace=True): rmod = rot_module_dict[ky] break if rmod is None: - raise ValueError("Rotations are not defined for " - "instrument '{}'.".format(_make_model(ds))) + raise ValueError( + "Rotations are not defined for " "instrument '{}'.".format(_make_model(ds)) + ) # Get the 'indices' of the rotation chain try: iframe_in = rc.index(csin) except ValueError: - raise Exception("The coordinate system of the input " - "dataset, '{}', is invalid." - .format(ds.coord_sys)) + raise Exception( + "The coordinate system of the input " + "dataset, '{}', is invalid.".format(ds.coord_sys) + ) try: iframe_out = rc.index(out_frame.lower()) except ValueError: - raise Exception("The specified output coordinate system " - "is invalid, please select one of: 'beam', 'inst', " - "'earth', 'principal'.") + raise Exception( + "The specified output coordinate system " + "is invalid, please select one of: 'beam', 'inst', " + "'earth', 'principal'." + ) if iframe_out == iframe_in: print("Data is already in the {} coordinate system".format(out_frame)) @@ -108,13 +113,13 @@ def rotate2(ds, out_frame='earth', inplace=True): while ds.coord_sys.lower() != out_frame.lower(): csin = ds.coord_sys - if csin == 'ship': - csin = 'inst' + if csin == "ship": + csin = "inst" inow = rc.index(csin) if reverse: - func = getattr(rmod, '_' + rc[inow - 1] + '2' + rc[inow]) + func = getattr(rmod, "_" + rc[inow - 1] + "2" + rc[inow]) else: - func = getattr(rmod, '_' + rc[inow] + '2' + rc[inow + 1]) + func = getattr(rmod, "_" + rc[inow] + "2" + rc[inow + 1]) ds = func(ds, reverse=reverse) if not inplace: @@ -130,7 +135,7 @@ def calc_principal_heading(vel, tidal_mode=True): vel : np.ndarray (2,...,Nt), or (3,...,Nt) The 2D or 3D velocity array (3rd-dim is ignored in this calculation) tidal_mode : bool - If true, range is set from 0 to +/-180 degrees. If false, range is 0 to + If true, range is set from 0 to +/-180 degrees. If false, range is 0 to 360 degrees. Default = True Returns @@ -165,8 +170,7 @@ def calc_principal_heading(vel, tidal_mode=True): dt = np.ma.masked_invalid(dt) # Divide the angle by 2 to remove the doubling done on the previous # line. - pang = np.angle( - np.nanmean(dt, -1, dtype=np.complex128)) / 2 + pang = np.angle(np.nanmean(dt, -1, dtype=np.complex128)) / 2 else: pang = np.angle(np.nanmean(dt, -1)) @@ -225,8 +229,8 @@ def set_declination(ds, declin, inplace=True): if not inplace: ds = ds.copy(deep=True) - if 'declination' in ds.attrs: - angle = declin - ds.attrs.pop('declination') + if "declination" in ds.attrs: + angle = declin - ds.attrs.pop("declination") else: angle = declin cd = np.cos(-np.deg2rad(angle)) @@ -234,28 +238,28 @@ def set_declination(ds, declin, inplace=True): # The ordering is funny here because orientmat is the # transpose of the inst->earth rotation matrix: - Rdec = np.array([[cd, -sd, 0], - [sd, cd, 0], - [0, 0, 1]]) + Rdec = np.array([[cd, -sd, 0], [sd, cd, 0], [0, 0, 1]]) - if ds.coord_sys == 'earth': + if ds.coord_sys == "earth": rotate2earth = True - rotate2(ds, 'inst', inplace=True) + rotate2(ds, "inst", inplace=True) else: rotate2earth = False - ds['orientmat'].values = np.einsum('kj...,ij->ki...', - ds['orientmat'].values, - Rdec, ) - if 'heading' in ds: - ds['heading'] += angle + ds["orientmat"].values = np.einsum( + "kj...,ij->ki...", + ds["orientmat"].values, + Rdec, + ) + if "heading" in ds: + ds["heading"] += angle if rotate2earth: - rotate2(ds, 'earth', inplace=True) - if 'principal_heading' in ds.attrs: - ds.attrs['principal_heading'] += angle + rotate2(ds, "earth", inplace=True) + if "principal_heading" in ds.attrs: + ds.attrs["principal_heading"] += angle - ds.attrs['declination'] = declin - ds.attrs['declination_in_orientmat'] = 1 # logical + ds.attrs["declination"] = declin + ds.attrs["declination_in_orientmat"] = 1 # logical if not inplace: return ds @@ -295,31 +299,32 @@ def set_inst2head_rotmat(ds, rotmat, inplace=True): if not inplace: ds = ds.copy(deep=True) - if not ds.inst_model.lower() == 'vector': - raise Exception("Setting 'inst2head_rotmat' is only supported " - "for Nortek Vector ADVs.") - if ds.get('inst2head_rotmat', None) is not None: + if not ds.inst_model.lower() == "vector": + raise Exception( + "Setting 'inst2head_rotmat' is only supported " "for Nortek Vector ADVs." + ) + if ds.get("inst2head_rotmat", None) is not None: raise Exception( "You are setting 'inst2head_rotmat' after it has already " - "been set. You can only set it once.") + "been set. You can only set it once." + ) csin = ds.coord_sys - if csin not in ['inst', 'beam']: - rotate2(ds, 'inst', inplace=True) + if csin not in ["inst", "beam"]: + rotate2(ds, "inst", inplace=True) - ds['inst2head_rotmat'] = xr.DataArray(np.array(rotmat), - dims=['x1', 'x2'], - coords={'x1': [1, 2, 3], - 'x2': [1, 2, 3]}) + ds["inst2head_rotmat"] = xr.DataArray( + np.array(rotmat), dims=["x1", "x2"], coords={"x1": [1, 2, 3], "x2": [1, 2, 3]} + ) - ds.attrs['inst2head_rotmat_was_set'] = 1 # logical + ds.attrs["inst2head_rotmat_was_set"] = 1 # logical # Note that there is no validation that the user doesn't # change `ds.attrs['inst2head_rotmat']` after calling this # function. - if not csin == 'beam': # csin not 'beam', then we're in inst + if not csin == "beam": # csin not 'beam', then we're in inst ds = r_vec._rotate_inst2head(ds) - if csin not in ['inst', 'beam']: + if csin not in ["inst", "beam"]: rotate2(ds, csin, inplace=True) if not inplace: diff --git a/mhkit/dolfyn/rotate/base.py b/mhkit/dolfyn/rotate/base.py index 13503e61b..d7cdef541 100644 --- a/mhkit/dolfyn/rotate/base.py +++ b/mhkit/dolfyn/rotate/base.py @@ -10,8 +10,7 @@ def _make_model(ds): The make and model of the instrument that collected the data in this data object. """ - return '{} {}'.format(ds.attrs['inst_make'], - ds.attrs['inst_model']).lower() + return "{} {}".format(ds.attrs["inst_make"], ds.attrs["inst_model"]).lower() def _check_rotmat_det(rotmat, thresh=1e-3): @@ -30,72 +29,81 @@ def _check_rotmat_det(rotmat, thresh=1e-3): def _check_rotate_vars(ds, rotate_vars): if rotate_vars is None: - if 'rotate_vars' in ds.attrs: + if "rotate_vars" in ds.attrs: rotate_vars = ds.rotate_vars else: - warnings.warn(" 'rotate_vars' attribute not found." - "Rotating `vel`.") - rotate_vars = ['vel'] + warnings.warn(" 'rotate_vars' attribute not found." "Rotating `vel`.") + rotate_vars = ["vel"] return rotate_vars def _set_coords(ds, ref_frame, forced=False): """ - Checks the current reference frame and adjusts xarray coords/dims + Checks the current reference frame and adjusts xarray coords/dims as necessary. Makes sure assigned dataarray coordinates match what DOLfYN is reading in. """ make = _make_model(ds) - XYZ = ['X', 'Y', 'Z'] - ENU = ['E', 'N', 'U'] + XYZ = ["X", "Y", "Z"] + ENU = ["E", "N", "U"] beam = ds.beam.values - principal = ['streamwise', 'x-stream', 'vert'] + principal = ["streamwise", "x-stream", "vert"] # check make/model - if 'rdi' in make: - inst = ['X', 'Y', 'Z', 'err'] - earth = ['E', 'N', 'U', 'err'] - princ = ['streamwise', 'x-stream', 'vert', 'err'] + if "rdi" in make: + inst = ["X", "Y", "Z", "err"] + earth = ["E", "N", "U", "err"] + princ = ["streamwise", "x-stream", "vert", "err"] - elif 'nortek' in make: - if 'signature' in make or 'ad2cp' in make: - inst = ['X', 'Y', 'Z1', 'Z2'] - earth = ['E', 'N', 'U1', 'U2'] - princ = ['streamwise', 'x-stream', 'vert1', 'vert2'] + elif "nortek" in make: + if "signature" in make or "ad2cp" in make: + inst = ["X", "Y", "Z1", "Z2"] + earth = ["E", "N", "U1", "U2"] + princ = ["streamwise", "x-stream", "vert1", "vert2"] else: # AWAC or Vector inst = XYZ earth = ENU princ = principal - orient = {'beam': beam, 'inst': inst, 'ship': inst, 'earth': earth, - 'principal': princ} - orientIMU = {'beam': XYZ, 'inst': XYZ, 'ship': XYZ, 'earth': ENU, - 'principal': principal} + orient = { + "beam": beam, + "inst": inst, + "ship": inst, + "earth": earth, + "principal": princ, + } + orientIMU = { + "beam": XYZ, + "inst": XYZ, + "ship": XYZ, + "earth": ENU, + "principal": principal, + } if forced: - ref_frame += '-forced' + ref_frame += "-forced" # Update 'dir' and 'dirIMU' dimensions - attrs = ds['dir'].attrs - attrs.update({'ref_frame': ref_frame}) + attrs = ds["dir"].attrs + attrs.update({"ref_frame": ref_frame}) - ds['dir'] = orient[ref_frame] - ds['dir'].attrs = attrs - if hasattr(ds, 'dirIMU'): - ds['dirIMU'] = orientIMU[ref_frame] - ds['dirIMU'].attrs = attrs + ds["dir"] = orient[ref_frame] + ds["dir"].attrs = attrs + if hasattr(ds, "dirIMU"): + ds["dirIMU"] = orientIMU[ref_frame] + ds["dirIMU"].attrs = attrs - ds.attrs['coord_sys'] = ref_frame + ds.attrs["coord_sys"] = ref_frame # These are essentially one extra line to scroll through - tag = ['', '_echo', '_bt'] + tag = ["", "_echo", "_bt"] for tg in tag: - if hasattr(ds, 'coord_sys_axes'+tg): - ds.attrs.pop('coord_sys_axes'+tg) + if hasattr(ds, "coord_sys_axes" + tg): + ds.attrs.pop("coord_sys_axes" + tg) return ds @@ -122,12 +130,12 @@ def _beam2inst(dat, reverse=False, force=False): """ if not force: - if not reverse and dat.coord_sys.lower() != 'beam': - raise ValueError('The input must be in beam coordinates.') - if reverse and dat.coord_sys != 'inst': - raise ValueError('The input must be in inst coordinates.') + if not reverse and dat.coord_sys.lower() != "beam": + raise ValueError("The input must be in beam coordinates.") + if reverse and dat.coord_sys != "inst": + raise ValueError("The input must be in inst coordinates.") - rotmat = dat['beam2inst_orientmat'] + rotmat = dat["beam2inst_orientmat"] if isinstance(force, (list, set, tuple)): # You can force a distinct set of variables to be rotated by @@ -135,16 +143,17 @@ def _beam2inst(dat, reverse=False, force=False): rotate_vars = force else: rotate_vars = [ - ky for ky in dat.rotate_vars if dat[ky].shape[0] == rotmat.shape[0]] + ky for ky in dat.rotate_vars if dat[ky].shape[0] == rotmat.shape[0] + ] - cs = 'inst' + cs = "inst" if reverse: # Can't use transpose because rotation is not between # orthogonal coordinate systems rotmat = inv(rotmat) - cs = 'beam' + cs = "beam" for ky in rotate_vars: - dat[ky].values = np.einsum('ij,j...->i...', rotmat, dat[ky].values) + dat[ky].values = np.einsum("ij,j...->i...", rotmat, dat[ky].values) if force: dat = _set_coords(dat, cs, forced=True) @@ -154,7 +163,7 @@ def _beam2inst(dat, reverse=False, force=False): return dat -def euler2orient(heading, pitch, roll, units='degrees'): +def euler2orient(heading, pitch, roll, units="degrees"): """ Calculate the orientation matrix from DOLfYN-defined euler angles. @@ -163,8 +172,8 @@ def euler2orient(heading, pitch, roll, units='degrees'): The matrices H, P, R are the transpose of the matrices for rotation about z, y, x as shown here https://en.wikipedia.org/wiki/Rotation_matrix. The transpose is used - because in DOLfYN the orientation matrix is organized for - rotation from EARTH --> INST, while the wiki's matrices are organized for + because in DOLfYN the orientation matrix is organized for + rotation from EARTH --> INST, while the wiki's matrices are organized for rotation from INST --> EARTH. Parameters @@ -187,7 +196,7 @@ def euler2orient(heading, pitch, roll, units='degrees'): - a "ZYX" rotation order. That is, these variables are computed assuming that rotation from the earth -> instrument frame happens by rotating around the z-axis first (heading), then rotating - around the y-axis (pitch), then rotating around the x-axis (roll). + around the y-axis (pitch), then rotating around the x-axis (roll). Note this requires matrix multiplication in the reverse order. - heading is defined as the direction the x-axis points, positive @@ -201,11 +210,11 @@ def euler2orient(heading, pitch, roll, units='degrees'): instrument's x-axis """ - if units.lower() == 'degrees': + if units.lower() == "degrees": pitch = np.deg2rad(pitch) roll = np.deg2rad(roll) heading = np.deg2rad(heading) - elif units.lower() == 'radians': + elif units.lower() == "radians": pass else: raise Exception("Invalid units") @@ -227,19 +236,28 @@ def euler2orient(heading, pitch, roll, units='degrees'): one = np.ones_like(sr) H = np.array( - [[ch, sh, zero], - [-sh, ch, zero], - [zero, zero, one], ]) + [ + [ch, sh, zero], + [-sh, ch, zero], + [zero, zero, one], + ] + ) P = np.array( - [[cp, zero, -sp], - [zero, one, zero], - [sp, zero, cp], ]) + [ + [cp, zero, -sp], + [zero, one, zero], + [sp, zero, cp], + ] + ) R = np.array( - [[one, zero, zero], - [zero, cr, sr], - [zero, -sr, cr], ]) + [ + [one, zero, zero], + [zero, cr, sr], + [zero, -sr, cr], + ] + ) - return np.einsum('ij...,jk...,kl...->il...', R, P, H) + return np.einsum("ij...,jk...,kl...->il...", R, P, H) def orient2euler(omat): @@ -258,18 +276,17 @@ def orient2euler(omat): positive clockwise from North (this is *opposite* the right-hand-rule around the Z-axis), range 0-360 degrees. pitch : np.ndarray - The pitch angle (degrees). Pitch is positive when the x-axis + The pitch angle (degrees). Pitch is positive when the x-axis pitches up (this is *opposite* the right-hand-rule around the Y-axis). roll : np.ndarray - The roll angle (degrees). Roll is positive according to the + The roll angle (degrees). Roll is positive according to the right-hand-rule around the instrument's x-axis. """ - if isinstance(omat, np.ndarray) and \ - omat.shape[:2] == (3, 3): + if isinstance(omat, np.ndarray) and omat.shape[:2] == (3, 3): pass - elif hasattr(omat, 'orientmat'): - omat = omat['orientmat'].values + elif hasattr(omat, "orientmat"): + omat = omat["orientmat"].values # Note: orientation matrix is earth->inst unless supplied by an external IMU hh = np.rad2deg(np.arctan2(omat[0, 0], omat[0, 1])) @@ -286,7 +303,7 @@ def orient2euler(omat): def quaternion2orient(quaternions): """ - Calculate orientation from Nortek AHRS quaternions, where q = [W, X, Y, Z] + Calculate orientation from Nortek AHRS quaternions, where q = [W, X, Y, Z] instead of the standard q = [X, Y, Z, W] = [q1, q2, q3, q4] Parameters @@ -305,23 +322,43 @@ def quaternion2orient(quaternions): """ omat = type(quaternions)(np.empty((3, 3, quaternions.time.size))) - omat = omat.rename({'dim_0': 'earth', 'dim_1': 'inst', 'dim_2': 'time'}) + omat = omat.rename({"dim_0": "earth", "dim_1": "inst", "dim_2": "time"}) for i in range(quaternions.time.size): - r = R.from_quat([quaternions.isel(q=1, time=i), - quaternions.isel(q=2, time=i), - quaternions.isel(q=3, time=i), - quaternions.isel(q=0, time=i)]) + r = R.from_quat( + [ + quaternions.isel(q=1, time=i), + quaternions.isel(q=2, time=i), + quaternions.isel(q=3, time=i), + quaternions.isel(q=0, time=i), + ] + ) omat[..., i] = r.as_matrix() # quaternions in inst2earth reference frame, need to rotate to earth2inst omat.values = np.rollaxis(omat.values, 1) - earth = xr.DataArray(['E', 'N', 'U'], dims=['earth'], name='earth', attrs={ - 'units': '1', 'long_name': 'Earth Reference Frame', 'coverage_content_type': 'coordinate'}) - inst = xr.DataArray(['X', 'Y', 'Z'], dims=['inst'], name='inst', attrs={ - 'units': '1', 'long_name': 'Instrument Reference Frame', 'coverage_content_type': 'coordinate'}) - return omat.assign_coords({'earth': earth, 'inst': inst, 'time': quaternions.time}) + earth = xr.DataArray( + ["E", "N", "U"], + dims=["earth"], + name="earth", + attrs={ + "units": "1", + "long_name": "Earth Reference Frame", + "coverage_content_type": "coordinate", + }, + ) + inst = xr.DataArray( + ["X", "Y", "Z"], + dims=["inst"], + name="inst", + attrs={ + "units": "1", + "long_name": "Instrument Reference Frame", + "coverage_content_type": "coordinate", + }, + ) + return omat.assign_coords({"earth": earth, "inst": inst, "time": quaternions.time}) def calc_tilt(pitch, roll): @@ -334,16 +371,16 @@ def calc_tilt(pitch, roll): Instrument roll in degrees pitch : numpy.ndarray or xarray.DataArray Instrument pitch in degrees - + Returns ------- tilt : numpy.ndarray Vertical inclination of the instrument in degrees """ - if 'xarray' in type(pitch).__module__: + if "xarray" in type(pitch).__module__: pitch = pitch.values - if 'xarray' in type(roll).__module__: + if "xarray" in type(roll).__module__: roll = roll.values tilt = np.arctan( diff --git a/mhkit/dolfyn/rotate/rdi.py b/mhkit/dolfyn/rotate/rdi.py index 9f58e3738..36e91c8dd 100644 --- a/mhkit/dolfyn/rotate/rdi.py +++ b/mhkit/dolfyn/rotate/rdi.py @@ -31,15 +31,16 @@ def _inst2earth(adcpo, reverse=False, rotate_vars=None, force=False): """ csin = adcpo.coord_sys.lower() - cs_allowed = ['inst', 'ship'] + cs_allowed = ["inst", "ship"] if reverse: - cs_allowed = ['earth'] + cs_allowed = ["earth"] if not force and csin not in cs_allowed: - raise ValueError("Invalid rotation for data in {}-frame " - "coordinate system.".format(csin)) + raise ValueError( + "Invalid rotation for data in {}-frame " "coordinate system.".format(csin) + ) - if 'orientmat' in adcpo: - omat = adcpo['orientmat'] + if "orientmat" in adcpo: + omat = adcpo["orientmat"] else: omat = _calc_orientmat(adcpo) @@ -52,11 +53,11 @@ def _inst2earth(adcpo, reverse=False, rotate_vars=None, force=False): # view (not a new array) rotmat = np.rollaxis(omat.data, 1) if reverse: - cs_new = 'inst' - sumstr = 'jik,j...k->i...k' + cs_new = "inst" + sumstr = "jik,j...k->i...k" else: - cs_new = 'earth' - sumstr = 'ijk,j...k->i...k' + cs_new = "earth" + sumstr = "ijk,j...k->i...k" # Only operate on the first 3-components, b/c the 4th is err_vel for nm in rotate_vars: @@ -91,18 +92,17 @@ def _calc_beam_orientmat(theta=20, convex=True, degrees=True): c = -1 else: c = 1 - a = 1 / (2. * np.sin(theta)) - b = 1 / (4. * np.cos(theta)) - d = a / (2. ** 0.5) - return np.array([[c * a, -c * a, 0, 0], - [0, 0, -c * a, c * a], - [b, b, b, b], - [d, d, -d, -d]]) + a = 1 / (2.0 * np.sin(theta)) + b = 1 / (4.0 * np.cos(theta)) + d = a / (2.0**0.5) + return np.array( + [[c * a, -c * a, 0, 0], [0, 0, -c * a, c * a], [b, b, b, b], [d, d, -d, -d]] + ) def _calc_orientmat(adcpo): """ - Calculate the orientation matrix using the raw + Calculate the orientation matrix using the raw heading, pitch, roll values from the RDI binary file. Parameters @@ -123,12 +123,12 @@ def _calc_orientmat(adcpo): (Tilt 1) is recorded in the variable leader. P is set to 0 if the "use tilt" bit of the EX command is not set.""" - r = np.deg2rad(adcpo['roll'].values) - p = np.arctan(np.tan(np.deg2rad(adcpo['pitch'].values)) * np.cos(r)) - h = np.deg2rad(adcpo['heading'].values) + r = np.deg2rad(adcpo["roll"].values) + p = np.arctan(np.tan(np.deg2rad(adcpo["pitch"].values)) * np.cos(r)) + h = np.deg2rad(adcpo["heading"].values) - if 'rdi' in adcpo.inst_make.lower(): - if adcpo.orientation == 'up': + if "rdi" in adcpo.inst_make.lower(): + if adcpo.orientation == "up": """ ## RDI-ADCP-MANUAL (Jan 08, section 5.6 page 18) Since the roll describes the ship axes rather than the @@ -139,7 +139,7 @@ def _calc_orientmat(adcpo): to 0 if the "use tilt" bit of the EX command is not set. """ r += np.pi - if (adcpo.coord_sys == 'ship' and adcpo.use_pitchroll == 'yes'): + if adcpo.coord_sys == "ship" and adcpo.use_pitchroll == "yes": r[:] = 0 p[:] = 0 @@ -163,14 +163,29 @@ def _calc_orientmat(adcpo): # The 'orientation matrix' is the transpose of the 'rotation matrix'. omat = np.rollaxis(rotmat, 1) - earth = xr.DataArray(['E', 'N', 'U'], dims=['earth'], name='earth', attrs={ - 'units': '1', 'long_name': 'Earth Reference Frame', 'coverage_content_type': 'coordinate'}) - inst = xr.DataArray(['X', 'Y', 'Z'], dims=['inst'], name='inst', attrs={ - 'units': '1', 'long_name': 'Instrument Reference Frame', 'coverage_content_type': 'coordinate'}) - return xr.DataArray(omat, - coords={'earth': earth, - 'inst': inst, - 'time': adcpo.time}, - dims=['earth', 'inst', 'time'], - attrs={'units': '1', - 'long_name': 'Orientation Matrix'}) + earth = xr.DataArray( + ["E", "N", "U"], + dims=["earth"], + name="earth", + attrs={ + "units": "1", + "long_name": "Earth Reference Frame", + "coverage_content_type": "coordinate", + }, + ) + inst = xr.DataArray( + ["X", "Y", "Z"], + dims=["inst"], + name="inst", + attrs={ + "units": "1", + "long_name": "Instrument Reference Frame", + "coverage_content_type": "coordinate", + }, + ) + return xr.DataArray( + omat, + coords={"earth": earth, "inst": inst, "time": adcpo.time}, + dims=["earth", "inst", "time"], + attrs={"units": "1", "long_name": "Orientation Matrix"}, + ) diff --git a/mhkit/dolfyn/rotate/signature.py b/mhkit/dolfyn/rotate/signature.py index 8d333a136..771842842 100644 --- a/mhkit/dolfyn/rotate/signature.py +++ b/mhkit/dolfyn/rotate/signature.py @@ -22,23 +22,23 @@ def _inst2earth(adcpo, reverse=False, rotate_vars=None, force=False): The list of variables to rotate. By default this is taken from adcpo.rotate_vars. force : bool - Do not check which frame the data is in prior to performing + Do not check which frame the data is in prior to performing this rotation. Default = False """ if reverse: # The transpose of the rotation matrix gives the inverse # rotation, so we simply reverse the order of the einsum: - sumstr = 'jik,j...k->i...k' - cs_now = 'earth' - cs_new = 'inst' + sumstr = "jik,j...k->i...k" + cs_now = "earth" + cs_new = "inst" else: - sumstr = 'ijk,j...k->i...k' - cs_now = 'inst' - cs_new = 'earth' + sumstr = "ijk,j...k->i...k" + cs_now = "inst" + cs_new = "earth" # if ADCP is upside down - if adcpo.orientation == 'down': + if adcpo.orientation == "down": down = True else: # orientation = 'up' or 'AHRS' down = False @@ -52,14 +52,18 @@ def _inst2earth(adcpo, reverse=False, rotate_vars=None, force=False): return elif cs != cs_now: raise ValueError( - "Data must be in the '%s' frame when using this function" % - cs_now) + "Data must be in the '%s' frame when using this function" % cs_now + ) - if 'orientmat' in adcpo: - omat = adcpo['orientmat'] + if "orientmat" in adcpo: + omat = adcpo["orientmat"] else: - omat = _euler2orient(adcpo['time'], adcpo['heading'].values, adcpo['pitch'].values, - adcpo['roll'].values) + omat = _euler2orient( + adcpo["time"], + adcpo["heading"].values, + adcpo["pitch"].values, + adcpo["roll"].values, + ) # Take the transpose of the orientation to get the inst->earth rotation # matrix. @@ -67,12 +71,18 @@ def _inst2earth(adcpo, reverse=False, rotate_vars=None, force=False): _dcheck = rotb._check_rotmat_det(rmat) if not _dcheck.all(): - warnings.warn("Invalid orientation matrix (determinant != 1) at indices: {}. " - "If rotated, data at these indices will be erroneous." - .format(np.nonzero(~_dcheck)[0]), UserWarning) + warnings.warn( + "Invalid orientation matrix (determinant != 1) at indices: {}. " + "If rotated, data at these indices will be erroneous.".format( + np.nonzero(~_dcheck)[0] + ), + UserWarning, + ) # The dictionary of rotation matrices for different sized arrays. - rmd = {3: rmat, } + rmd = { + 3: rmat, + } # The 4-row rotation matrix assume that rows 0,1 are u,v, # and 2,3 are independent estimates of w. @@ -99,30 +109,35 @@ def _inst2earth(adcpo, reverse=False, rotate_vars=None, force=False): signIMU = np.array([1, -1, -1], ndmin=dat.ndim).T if not reverse: if n == 3: - dat = np.einsum(sumstr, rmd[3], signIMU*dat) + dat = np.einsum(sumstr, rmd[3], signIMU * dat) elif n == 4: - dat = np.einsum('ijk,j...k->i...k', rmd[4], sign*dat) + dat = np.einsum("ijk,j...k->i...k", rmd[4], sign * dat) else: - raise Exception("The entry {} is not a vector, it cannot" - "be rotated.".format(nm)) + raise Exception( + "The entry {} is not a vector, it cannot" + "be rotated.".format(nm) + ) elif reverse: if n == 3: - dat = signIMU*np.einsum(sumstr, rmd[3], dat) + dat = signIMU * np.einsum(sumstr, rmd[3], dat) elif n == 4: - dat = sign*np.einsum('ijk,j...k->i...k', rmd[4], dat) + dat = sign * np.einsum("ijk,j...k->i...k", rmd[4], dat) else: - raise Exception("The entry {} is not a vector, it cannot" - "be rotated.".format(nm)) + raise Exception( + "The entry {} is not a vector, it cannot" + "be rotated.".format(nm) + ) else: # 'up' and AHRS if n == 3: dat = np.einsum(sumstr, rmd[3], dat) elif n == 4: - dat = np.einsum('ijk,j...k->i...k', rmd[4], dat) + dat = np.einsum("ijk,j...k->i...k", rmd[4], dat) else: - raise Exception("The entry {} is not a vector, it cannot" - "be rotated.".format(nm)) + raise Exception( + "The entry {} is not a vector, it cannot" "be rotated.".format(nm) + ) adcpo[nm].values = dat.copy() adcpo = rotb._set_coords(adcpo, cs_new) diff --git a/mhkit/dolfyn/rotate/vector.py b/mhkit/dolfyn/rotate/vector.py index bc833d7dd..3fcd856a3 100644 --- a/mhkit/dolfyn/rotate/vector.py +++ b/mhkit/dolfyn/rotate/vector.py @@ -28,28 +28,28 @@ def _beam2inst(dat, reverse=False, force=False): def _rotate_inst2head(advo, reverse=False): """ - Rotates the velocity vector from the instrument frame to the ADV probe (head) frame or + Rotates the velocity vector from the instrument frame to the ADV probe (head) frame or vice versa. - This function uses the rotation matrix 'inst2head_rotmat' to rotate the velocity vector 'vel' - from the instrument frame to the head frame ('inst->head') or from the head frame to the + This function uses the rotation matrix 'inst2head_rotmat' to rotate the velocity vector 'vel' + from the instrument frame to the head frame ('inst->head') or from the head frame to the instrument frame ('head->inst'). Parameters ---------- advo: dict - A dictionary-like object that includes the rotation matrix 'inst2head_rotmat' + A dictionary-like object that includes the rotation matrix 'inst2head_rotmat' and the velocity vector 'vel' to be rotated. reverse: bool, optional - A boolean value indicating the direction of the rotation. - If False (default), the function rotates 'vel' from the instrument frame to the head frame. + A boolean value indicating the direction of the rotation. + If False (default), the function rotates 'vel' from the instrument frame to the head frame. If True, the function rotates 'vel' from the head frame to the instrument frame. Returns ------- advo: dict - The input dictionary-like object with the rotated velocity vector. + The input dictionary-like object with the rotated velocity vector. If 'inst2head_rotmat' doesn't exist in 'advo', the function returns the input 'advo' unmodified. """ @@ -57,9 +57,9 @@ def _rotate_inst2head(advo, reverse=False): # This object doesn't have a head2inst_rotmat, so we do nothing. return advo if reverse: # head->inst - advo['vel'].values = np.dot(advo['inst2head_rotmat'].T, advo['vel']) + advo["vel"].values = np.dot(advo["inst2head_rotmat"].T, advo["vel"]) else: # inst->head - advo['vel'].values = np.dot(advo['inst2head_rotmat'], advo['vel']) + advo["vel"].values = np.dot(advo["inst2head_rotmat"], advo["vel"]) return advo @@ -80,12 +80,14 @@ def _check_inst2head_rotmat(advo): Returns True if 'inst2head_rotmat' exists, was set correctly, and is valid (False if not). """ - if advo.get('inst2head_rotmat', None) is None: + if advo.get("inst2head_rotmat", None) is None: # This is the default value, and we do nothing. return False if not advo.inst2head_rotmat_was_set: - raise Exception("The inst2head rotation matrix exists in props, " - "but it was not set using `set_inst2head_rotmat.") + raise Exception( + "The inst2head rotation matrix exists in props, " + "but it was not set using `set_inst2head_rotmat." + ) if not rotb._check_rotmat_det(advo.inst2head_rotmat.values): raise ValueError("Invalid inst2head_rotmat (determinant != 1).") return True @@ -107,20 +109,20 @@ def _inst2earth(advo, reverse=False, rotate_vars=None, force=False): The list of variables to rotate. By default this is taken from advo.attrs['rotate_vars']. force : bool - Do not check which frame the data is in prior to performing + Do not check which frame the data is in prior to performing this rotation. Default = False """ if reverse: # earth->inst # The transpose of the rotation matrix gives the inverse # rotation, so we simply reverse the order of the einsum: - sumstr = 'jik,j...k->i...k' - cs_now = 'earth' - cs_new = 'inst' + sumstr = "jik,j...k->i...k" + cs_now = "earth" + cs_new = "inst" else: # inst->earth - sumstr = 'ijk,j...k->i...k' - cs_now = 'inst' - cs_new = 'earth' + sumstr = "ijk,j...k->i...k" + cs_now = "inst" + cs_new = "earth" rotate_vars = rotb._check_rotate_vars(advo, rotate_vars) @@ -131,17 +133,18 @@ def _inst2earth(advo, reverse=False, rotate_vars=None, force=False): return elif cs != cs_now: raise ValueError( - "Data must be in the '%s' frame when using this function" % - cs_now) + "Data must be in the '%s' frame when using this function" % cs_now + ) - if hasattr(advo, 'orientmat'): - omat = advo['orientmat'] + if hasattr(advo, "orientmat"): + omat = advo["orientmat"] else: - if 'vector' in advo.inst_model.lower(): - orientation_down = advo['orientation_down'] + if "vector" in advo.inst_model.lower(): + orientation_down = advo["orientation_down"] - omat = _calc_omat(advo['time'], advo['heading'], advo['pitch'], - advo['roll'], orientation_down) + omat = _calc_omat( + advo["time"], advo["heading"], advo["pitch"], advo["roll"], orientation_down + ) # Take the transpose of the orientation to get the inst->earth rotation # matrix. @@ -149,15 +152,20 @@ def _inst2earth(advo, reverse=False, rotate_vars=None, force=False): _dcheck = rotb._check_rotmat_det(rmat) if not _dcheck.all(): - warnings.warn("Invalid orientation matrix (determinant != 1) at indices: {}. " - "If rotated, data at these indices will be erroneous." - .format(np.nonzero(~_dcheck)[0]), UserWarning) + warnings.warn( + "Invalid orientation matrix (determinant != 1) at indices: {}. " + "If rotated, data at these indices will be erroneous.".format( + np.nonzero(~_dcheck)[0] + ), + UserWarning, + ) for nm in rotate_vars: n = advo[nm].shape[0] if n != 3: - raise Exception("The entry {} is not a vector, it cannot " - "be rotated.".format(nm)) + raise Exception( + "The entry {} is not a vector, it cannot " "be rotated.".format(nm) + ) advo[nm].values = np.einsum(sumstr, rmat, advo[nm]) advo = rotb._set_coords(advo, cs_new) @@ -191,34 +199,32 @@ def _earth2principal(advo, reverse=False, rotate_vars=None): # the rest of the function) if reverse: - cs_now = 'principal' - cs_new = 'earth' + cs_now = "principal" + cs_new = "earth" else: ang *= -1 - cs_now = 'earth' - cs_new = 'principal' + cs_now = "earth" + cs_new = "principal" rotate_vars = rotb._check_rotate_vars(advo, rotate_vars) cs = advo.coord_sys.lower() if cs == cs_new: - print('Data is already in the %s coordinate system' % cs_new) + print("Data is already in the %s coordinate system" % cs_new) return elif cs != cs_now: raise ValueError( - 'Data must be in the {} frame ' - 'to use this function'.format(cs_now)) + "Data must be in the {} frame " "to use this function".format(cs_now) + ) # Calculate the rotation matrix: cp, sp = np.cos(ang), np.sin(ang) - rotmat = np.array([[cp, -sp, 0], - [sp, cp, 0], - [0, 0, 1]], dtype=np.float32) + rotmat = np.array([[cp, -sp, 0], [sp, cp, 0], [0, 0, 1]], dtype=np.float32) # Perform the rotation: for nm in rotate_vars: dat = advo[nm].values - dat[:2] = np.einsum('ij,j...->i...', rotmat[:2, :2], dat[:2]) + dat[:2] = np.einsum("ij,j...->i...", rotmat[:2, :2], dat[:2]) advo[nm].values = dat.copy() # Finalize the output. @@ -273,7 +279,7 @@ def _calc_omat(time, hh, pp, rr, orientation_down=None): return _euler2orient(time, hh, pp, rr) -def _euler2orient(time, heading, pitch, roll, units='degrees'): +def _euler2orient(time, heading, pitch, roll, units="degrees"): # For Nortek data only. # The heading, pitch, roll used here are from the Nortek binary files. @@ -281,7 +287,7 @@ def _euler2orient(time, heading, pitch, roll, units='degrees'): # Returns a rotation matrix that rotates earth (ENU) -> inst. # This is based on the Nortek `Transforms.m` file, available in # the refs folder. - if units.lower() == 'degrees': + if units.lower() == "degrees": pitch = np.deg2rad(pitch) roll = np.deg2rad(roll) heading = np.deg2rad(heading) @@ -291,7 +297,7 @@ def _euler2orient(time, heading, pitch, roll, units='degrees'): # This also involved swapping the sign on sh in the def of omat # below from the values provided in the Nortek Matlab script. - heading = (np.pi / 2 - heading) + heading = np.pi / 2 - heading ch = np.cos(heading) sh = np.sin(heading) @@ -313,14 +319,29 @@ def _euler2orient(time, heading, pitch, roll, units='degrees'): omat[1, 2, :] = sr * cp omat[2, 2, :] = cp * cr - earth = xr.DataArray(['E', 'N', 'U'], dims=['earth'], name='earth', attrs={ - 'units': '1', 'long_name': 'Earth Reference Frame', 'coverage_content_type': 'coordinate'}) - inst = xr.DataArray(['X', 'Y', 'Z'], dims=['inst'], name='inst', attrs={ - 'units': '1', 'long_name': 'Instrument Reference Frame', 'coverage_content_type': 'coordinate'}) - return xr.DataArray(omat, - coords={'earth': earth, - 'inst': inst, - 'time': time}, - dims=['earth', 'inst', 'time'], - attrs={'units': '1', - 'long_name': 'Orientation Matrix'}) + earth = xr.DataArray( + ["E", "N", "U"], + dims=["earth"], + name="earth", + attrs={ + "units": "1", + "long_name": "Earth Reference Frame", + "coverage_content_type": "coordinate", + }, + ) + inst = xr.DataArray( + ["X", "Y", "Z"], + dims=["inst"], + name="inst", + attrs={ + "units": "1", + "long_name": "Instrument Reference Frame", + "coverage_content_type": "coordinate", + }, + ) + return xr.DataArray( + omat, + coords={"earth": earth, "inst": inst, "time": time}, + dims=["earth", "inst", "time"], + attrs={"units": "1", "long_name": "Orientation Matrix"}, + ) diff --git a/mhkit/dolfyn/time.py b/mhkit/dolfyn/time.py index 576c395d1..ed25b23a5 100644 --- a/mhkit/dolfyn/time.py +++ b/mhkit/dolfyn/time.py @@ -12,7 +12,7 @@ def _fullyear(year): def epoch2dt64(ep_time): """ - Convert from epoch time (seconds since 1/1/1970 00:00:00) to + Convert from epoch time (seconds since 1/1/1970 00:00:00) to numpy.datetime64 array Parameters @@ -27,14 +27,14 @@ def epoch2dt64(ep_time): """ # assumes t0=1970-01-01 00:00:00 - out = np.array(ep_time.astype('int')).astype('datetime64[s]') - out = out + ((ep_time % 1) * 1e9).astype('timedelta64[ns]') + out = np.array(ep_time.astype("int")).astype("datetime64[s]") + out = out + ((ep_time % 1) * 1e9).astype("timedelta64[ns]") return out def dt642epoch(dt64): """ - Convert numpy.datetime64 array to epoch time + Convert numpy.datetime64 array to epoch time (seconds since 1/1/1970 00:00:00) Parameters @@ -48,7 +48,7 @@ def dt642epoch(dt64): Epoch time (seconds since 1/1/1970 00:00:00) """ - return dt64.astype('datetime64[ns]').astype('float') / 1e9 + return dt64.astype("datetime64[ns]").astype("float") / 1e9 def date2dt64(dt): @@ -66,7 +66,7 @@ def date2dt64(dt): Single or array of datetime64 object(s) """ - return np.array(dt).astype('datetime64[ns]') + return np.array(dt).astype("datetime64[ns]") def dt642date(dt64): @@ -89,7 +89,7 @@ def dt642date(dt64): def epoch2date(ep_time, offset_hr=0, to_str=False): """ - Convert from epoch time (seconds since 1/1/1970 00:00:00) to a list + Convert from epoch time (seconds since 1/1/1970 00:00:00) to a list of datetime objects Parameters @@ -104,12 +104,12 @@ def epoch2date(ep_time, offset_hr=0, to_str=False): Returns ------- time : datetime.datetime - The converted datetime object or list(strings) + The converted datetime object or list(strings) Notes ----- The specific time instance is set during deployment, usually sync'd to the - deployment computer. The time seen by DOLfYN is in the timezone of the + deployment computer. The time seen by DOLfYN is in the timezone of the deployment computer, which is unknown to DOLfYN. """ @@ -161,7 +161,7 @@ def date2str(dt, format_str=None): """ if format_str is None: - format_str = '%Y-%m-%d %H:%M:%S.%f' + format_str = "%Y-%m-%d %H:%M:%S.%f" if not isinstance(dt, list): dt = [dt] @@ -208,9 +208,10 @@ def date2matlab(dt): time = list() for i in range(len(dt)): mdn = dt[i] + timedelta(days=366) - frac_seconds = (dt[i]-datetime(dt[i].year, dt[i].month, - dt[i].day, 0, 0, 0)).seconds / (24*60*60) - frac_microseconds = dt[i].microsecond / (24*60*60*1000000) + frac_seconds = ( + dt[i] - datetime(dt[i].year, dt[i].month, dt[i].day, 0, 0, 0) + ).seconds / (24 * 60 * 60) + frac_microseconds = dt[i].microsecond / (24 * 60 * 60 * 1000000) time.append(mdn.toordinal() + frac_seconds + frac_microseconds) return time @@ -238,9 +239,10 @@ def matlab2date(matlab_dn): time.append(day + dayfrac) # Datenum is precise down to 100 microseconds - add difference to round - us = int(round(time[i].microsecond/100, 0))*100 - time[i] = time[i].replace(microsecond=time[i].microsecond) + \ - timedelta(microseconds=us-time[i].microsecond) + us = int(round(time[i].microsecond / 100, 0)) * 100 + time[i] = time[i].replace(microsecond=time[i].microsecond) + timedelta( + microseconds=us - time[i].microsecond + ) return time @@ -253,7 +255,7 @@ def _fill_time_gaps(epoch, sample_rate_hz): """ # epoch is seconds since 1970 - dt = 1. / sample_rate_hz + dt = 1.0 / sample_rate_hz epoch = fillgaps(epoch) if np.isnan(epoch[0]): i0 = np.nonzero(~np.isnan(epoch))[0][0] @@ -263,6 +265,6 @@ def _fill_time_gaps(epoch, sample_rate_hz): # Search backward through the array to get the 'negative index' ie = -np.nonzero(~np.isnan(epoch[::-1]))[0][0] - 1 delta = np.arange(1, -ie, 1) * dt - epoch[(ie + 1):] = epoch[ie] + delta + epoch[(ie + 1) :] = epoch[ie] + delta return epoch diff --git a/mhkit/dolfyn/tools/fft.py b/mhkit/dolfyn/tools/fft.py index 8810c78b0..7d8c08503 100644 --- a/mhkit/dolfyn/tools/fft.py +++ b/mhkit/dolfyn/tools/fft.py @@ -1,5 +1,6 @@ import numpy as np from .misc import detrend_array + fft = np.fft.fft @@ -28,16 +29,27 @@ def fft_frequency(nfft, fs, full=False): if full: return f else: - return np.abs(f[1:int(nfft / 2. + 1)]) + return np.abs(f[1 : int(nfft / 2.0 + 1)]) def _getwindow(window, nfft): - if window == 'hann': - window = np.hanning(nfft) - elif window == 'hamm': - window = np.hamming(nfft) - elif window is None or window == 1: + if window is None: + window = np.ones(nfft) + elif isinstance(window, (int, float)) and window == 1: window = np.ones(nfft) + elif isinstance(window, str): + if "hann" in window: + window = np.hanning(nfft) + elif "hamm" in window: + window = np.hamming(nfft) + else: + raise ValueError("Unsupported window type: {}".format(window)) + elif isinstance(window, np.ndarray): + if len(window) != nfft: + raise ValueError("Custom window length must be equal to nfft") + else: + raise ValueError("Invalid window parameter") + return window @@ -68,7 +80,7 @@ def _stepsize(l, nfft, nens=None, step=None): if nens is None and step is None: if l == nfft: return 0, 1, int(nfft) - nens = int(2. * l / nfft) + nens = int(2.0 * l / nfft) return int((l - nfft) / (nens - 1)), nens, int(nfft) elif nens is None: return int(step), int((l - nfft) / step + 1), int(nfft) @@ -78,7 +90,7 @@ def _stepsize(l, nfft, nens=None, step=None): return int((l - nfft) / (nens - 1)), int(nens), int(nfft) -def cpsd_quasisync_1D(a, b, nfft, fs, window='hann'): +def cpsd_quasisync_1D(a, b, nfft, fs, window="hann"): """ Compute the cross power spectral density (CPSD) of the signals `a` and `b`. @@ -148,21 +160,24 @@ def cpsd_quasisync_1D(a, b, nfft, fs, window='hann'): step[1], nens, nfft = _stepsize(l[1], nfft, nens=nens) fs = np.float64(fs) window = _getwindow(window, nfft) - fft_inds = slice(1, int(nfft / 2. + 1)) - wght = 2. / (window ** 2).sum() - pwr = fft(detrend_array(a[0:nfft]) * window)[fft_inds] * \ - np.conj(fft(detrend_array(b[0:nfft]) * window)[fft_inds]) + fft_inds = slice(1, int(nfft / 2.0 + 1)) + wght = 2.0 / (window**2).sum() + pwr = fft(detrend_array(a[0:nfft]) * window)[fft_inds] * np.conj( + fft(detrend_array(b[0:nfft]) * window)[fft_inds] + ) if nens - 1: - for i1, i2 in zip(range(step[0], l[0] - nfft + 1, step[0]), - range(step[1], l[1] - nfft + 1, step[1])): - pwr += fft(detrend_array(a[i1:(i1 + nfft)]) * window)[fft_inds] * \ - np.conj( - fft(detrend_array(b[i2:(i2 + nfft)]) * window)[fft_inds]) + for i1, i2 in zip( + range(step[0], l[0] - nfft + 1, step[0]), + range(step[1], l[1] - nfft + 1, step[1]), + ): + pwr += fft(detrend_array(a[i1 : (i1 + nfft)]) * window)[fft_inds] * np.conj( + fft(detrend_array(b[i2 : (i2 + nfft)]) * window)[fft_inds] + ) pwr *= wght / nens / fs return pwr -def cpsd_1D(a, b, nfft, fs, window='hann', step=None): +def cpsd_1D(a, b, nfft, fs, window="hann", step=None): """ Compute the cross power spectral density (CPSD) of the signals `a` and `b`. @@ -229,8 +244,8 @@ def cpsd_1D(a, b, nfft, fs, window='hann', step=None): step, nens, nfft = _stepsize(l, nfft, step=step) fs = np.float64(fs) window = _getwindow(window, nfft) - fft_inds = slice(1, int(nfft / 2. + 1)) - wght = 2. / (window ** 2).sum() + fft_inds = slice(1, int(nfft / 2.0 + 1)) + wght = 2.0 / (window**2).sum() s1 = fft(detrend_array(a[0:nfft]) * window)[fft_inds] if auto_psd: pwr = np.abs(s1) ** 2 @@ -238,18 +253,18 @@ def cpsd_1D(a, b, nfft, fs, window='hann', step=None): pwr = s1 * np.conj(fft(detrend_array(b[0:nfft]) * window)[fft_inds]) if nens - 1: for i in range(step, l - nfft + 1, step): - s1 = fft(detrend_array(a[i:(i + nfft)]) * window)[fft_inds] + s1 = fft(detrend_array(a[i : (i + nfft)]) * window)[fft_inds] if auto_psd: pwr += np.abs(s1) ** 2 else: - pwr += s1 * \ - np.conj( - fft(detrend_array(b[i:(i + nfft)]) * window)[fft_inds]) + pwr += s1 * np.conj( + fft(detrend_array(b[i : (i + nfft)]) * window)[fft_inds] + ) pwr *= wght / nens / fs return pwr -def psd_1D(a, nfft, fs, window='hann', step=None): +def psd_1D(a, nfft, fs, window="hann", step=None): """ Compute the power spectral density (PSD). @@ -286,7 +301,7 @@ def psd_1D(a, nfft, fs, window='hann', step=None): Notes ----- - Credit: This function's line of code was copied from JN's fast_psd.m + Credit: This function's line of code was copied from JN's fast_psd.m routine. See Also diff --git a/mhkit/dolfyn/tools/misc.py b/mhkit/dolfyn/tools/misc.py index de0400772..f97485151 100644 --- a/mhkit/dolfyn/tools/misc.py +++ b/mhkit/dolfyn/tools/misc.py @@ -50,8 +50,9 @@ def detrend_array(arr, axis=-1, in_place=False): x = np.arange(sz[axis], dtype=np.float_).reshape(sz) x -= np.nanmean(x, axis=axis, keepdims=True) arr -= np.nanmean(arr, axis=axis, keepdims=True) - b = np.nanmean((x * arr), axis=axis, keepdims=True) / \ - np.nanmean((x ** 2), axis=axis, keepdims=True) + b = np.nanmean((x * arr), axis=axis, keepdims=True) / np.nanmean( + (x**2), axis=axis, keepdims=True + ) arr -= b * x return arr @@ -82,7 +83,7 @@ def group(bl, min_length=0): if not any(bl): return np.empty(0) - vl = np.diff(bl.astype('int')) + vl = np.diff(bl.astype("int")) ups = np.nonzero(vl == 1)[0] + 1 dns = np.nonzero(vl == -1)[0] + 1 if bl[0]: @@ -95,7 +96,7 @@ def group(bl, min_length=0): dns = np.array([len(bl)]) else: dns = np.concatenate((dns, [len(bl)])) - out = np.empty(len(dns), dtype='O') + out = np.empty(len(dns), dtype="O") idx = 0 for u, d in zip(ups, dns): if d - u < min_length: @@ -134,12 +135,12 @@ def slice1d_along_axis(arr_shape, axis=0): if axis < 0: axis += nd ind = [0] * (nd - 1) - i = np.zeros(nd, 'O') + i = np.zeros(nd, "O") indlist = list(range(nd)) indlist.remove(axis) i[axis] = slice(None) itr_dims = np.asarray(arr_shape).take(indlist) - Ntot = np.product(itr_dims) + Ntot = np.prod(itr_dims) i.put(indlist, ind) k = 0 while k < Ntot: @@ -165,18 +166,18 @@ def convert_degrees(deg, tidal_mode=True): deg: float or array-like Number or array in 'degrees CCW from East' or 'degrees CW from North' tidal_mode : bool - If true, range is set from 0 to +/-180 degrees. If false, range is 0 to + If true, range is set from 0 to +/-180 degrees. If false, range is 0 to 360 degrees. Default = True Returns ------- out : float or array-like - Input data transformed to 'degrees CW from North' or + Input data transformed to 'degrees CW from North' or 'degrees CCW from East', respectively (based on `deg`) Notes ----- - The same algorithm is used to convert back and forth between 'CCW from E' + The same algorithm is used to convert back and forth between 'CCW from E' and 'CW from N' """ @@ -223,11 +224,10 @@ def fillgaps(a, maxgap=np.inf, dim=0, extrapFlg=False): nd = a.ndim if dim < 0: dim += nd - if (dim >= nd): - raise ValueError("dim must be less than a.ndim; dim=%d, rank=%d." - % (dim, nd)) + if dim >= nd: + raise ValueError("dim must be less than a.ndim; dim=%d, rank=%d." % (dim, nd)) ind = [0] * (nd - 1) - i = np.zeros(nd, 'O') + i = np.zeros(nd, "O") indlist = list(range(nd)) indlist.remove(dim) i[dim] = slice(None, None) @@ -238,18 +238,21 @@ def fillgaps(a, maxgap=np.inf, dim=0, extrapFlg=False): # Here we extrapolate the ends, if necessary: if extrapFlg and gd.__len__() > 0: if gd[0] != 0 and gd[0] <= maxgap: - a[:gd[0]] = a[gd[0]] + a[: gd[0]] = a[gd[0]] if gd[-1] != a.__len__() and (a.__len__() - (gd[-1] + 1)) <= maxgap: - a[gd[-1]:] = a[gd[-1]] + a[gd[-1] :] = a[gd[-1]] # Here is the main loop if gd.__len__() > 1: inds = np.nonzero((1 < np.diff(gd)) & (np.diff(gd) <= maxgap + 1))[0] for i2 in range(0, inds.__len__()): ii = list(range(gd[inds[i2]] + 1, gd[inds[i2] + 1])) - a[ii] = (np.diff(a[gd[[inds[i2], inds[i2] + 1]]]) * - (np.arange(0, ii.__len__()) + 1) / - (ii.__len__() + 1) + a[gd[inds[i2]]]).astype(a.dtype) + a[ii] = ( + np.diff(a[gd[[inds[i2], inds[i2] + 1]]]) + * (np.arange(0, ii.__len__()) + 1) + / (ii.__len__() + 1) + + a[gd[inds[i2]]] + ).astype(a.dtype) return a @@ -289,27 +292,28 @@ def interpgaps(a, t, maxgap=np.inf, dim=0, extrapFlg=False): # Here we extrapolate the ends, if necessary: if extrapFlg and gd.__len__() > 0: if gd[0] != 0 and gd[0] <= maxgap: - a[:gd[0]] = a[gd[0]] + a[: gd[0]] = a[gd[0]] if gd[-1] != a.__len__() and (a.__len__() - (gd[-1] + 1)) <= maxgap: - a[gd[-1]:] = a[gd[-1]] + a[gd[-1] :] = a[gd[-1]] # Here is the main loop if gd.__len__() > 1: - inds = _find((1 < np.diff(gd)) & - (np.diff(gd) <= maxgap + 1)) + inds = _find((1 < np.diff(gd)) & (np.diff(gd) <= maxgap + 1)) for i2 in range(0, inds.__len__()): ii = np.arange(gd[inds[i2]] + 1, gd[inds[i2] + 1]) - ti = (t[ii] - t[gd[inds[i2]]]) / np.diff(t[[gd[inds[i2]], - gd[inds[i2] + 1]]]) - a[ii] = (np.diff(a[gd[[inds[i2], inds[i2] + 1]]]) * ti + - a[gd[inds[i2]]]).astype(a.dtype) + ti = (t[ii] - t[gd[inds[i2]]]) / np.diff( + t[[gd[inds[i2]], gd[inds[i2] + 1]]] + ) + a[ii] = ( + np.diff(a[gd[[inds[i2], inds[i2] + 1]]]) * ti + a[gd[inds[i2]]] + ).astype(a.dtype) return a def medfiltnan(a, kernel, thresh=0): """ - Do a running median filter of the data. Regions where more than + Do a running median filter of the data. Regions where more than ``thresh`` fraction of the points are NaN are set to NaN. Parameters @@ -317,9 +321,9 @@ def medfiltnan(a, kernel, thresh=0): a : numpy.ndarray 2D array containing data to be filtered. kernel_size : numpy.ndarray or list, optional - A scalar or a list of length 2, giving the size of the median - filter window in each dimension. Elements of kernel_size should - be odd. If kernel_size is a scalar, then this scalar is used as + A scalar or a list of length 2, giving the size of the median + filter window in each dimension. Elements of kernel_size should + be odd. If kernel_size is a scalar, then this scalar is used as the size in each dimension. thresh : int Maximum gap in *a* to filter over @@ -344,9 +348,9 @@ def medfiltnan(a, kernel, thresh=0): kernel = [1, kernel] out = medfilt2d(a, kernel) if thresh > 0: - out[convolve2d(np.isnan(a), - np.ones(kernel) / np.prod(kernel), - 'same') > thresh] = np.NaN + out[ + convolve2d(np.isnan(a), np.ones(kernel) / np.prod(kernel), "same") > thresh + ] = np.NaN if flag_1D: return out[0] return out diff --git a/mhkit/dolfyn/velocity.py b/mhkit/dolfyn/velocity.py index 47d3a6528..24b14d375 100644 --- a/mhkit/dolfyn/velocity.py +++ b/mhkit/dolfyn/velocity.py @@ -7,13 +7,13 @@ from .tools.misc import slice1d_along_axis, convert_degrees -@xr.register_dataset_accessor('velds') # 'vel dataset' -class Velocity(): +@xr.register_dataset_accessor("velds") # 'vel dataset' +class Velocity: """ All ADCP and ADV xarray datasets wrap this base class. - The turbulence-related attributes defined within this class - assume that the ``'tke_vec'`` and ``'stress_vec'`` data entries are + The turbulence-related attributes defined within this class + assume that the ``'tke_vec'`` and ``'stress_vec'`` data entries are included in the dataset. These are typically calculated using a :class:`VelBinner` tool, but the method for calculating these variables can depend on the details of the measurement @@ -27,7 +27,7 @@ class Velocity(): ######## # Major components of the dolfyn-API - def rotate2(self, out_frame='earth', inplace=True): + def rotate2(self, out_frame="earth", inplace=True): """ Rotate the dataset to a new coordinate system. @@ -173,100 +173,128 @@ def __getitem__(self, key): def __contains__(self, val): return val in self.ds - def __repr__(self, ): - time_string = '{:.2f} {} (started: {})' - if ('time' not in self or dt642epoch(self['time'][0]) < 1): - time_string = '-->No Time Information!<--' + def __repr__( + self, + ): + time_string = "{:.2f} {} (started: {})" + if "time" not in self or dt642epoch(self["time"][0]) < 1: + time_string = "-->No Time Information!<--" else: - tm = self['time'][[0, -1]].values + tm = self["time"][[0, -1]].values dt = dt642date(tm[0])[0] - delta = (dt642epoch(tm[-1]) - - dt642epoch(tm[0])) / (3600 * 24) # days + delta = (dt642epoch(tm[-1]) - dt642epoch(tm[0])) / (3600 * 24) # days if delta > 1: - units = 'days' + units = "days" elif delta * 24 > 1: - units = 'hours' + units = "hours" delta *= 24 elif delta * 24 * 60 > 1: delta *= 24 * 60 - units = 'minutes' + units = "minutes" else: delta *= 24 * 3600 - units = 'seconds' + units = "seconds" try: - time_string = time_string.format(delta, units, - dt.strftime('%b %d, %Y %H:%M')) + time_string = time_string.format( + delta, units, dt.strftime("%b %d, %Y %H:%M") + ) except AttributeError: - time_string = '-->Error in time info<--' + time_string = "-->Error in time info<--" p = self.ds.attrs - t_shape = self['time'].shape + t_shape = self["time"].shape if len(t_shape) > 1: - shape_string = '({} bins, {} pings @ {}Hz)'.format( - t_shape[0], t_shape, p.get('fs')) + shape_string = "({} bins, {} pings @ {}Hz)".format( + t_shape[0], t_shape, p.get("fs") + ) else: - shape_string = '({} pings @ {}Hz)'.format( - t_shape[0], p.get('fs', '??')) - _header = ("<%s data object>: " - " %s %s\n" - " . %s\n" - " . %s-frame\n" - " . %s\n" % - (p.get('inst_type'), - self.ds.attrs['inst_make'], self.ds.attrs['inst_model'], - time_string, - p.get('coord_sys'), - shape_string)) - _vars = ' Variables:\n' + shape_string = "({} pings @ {}Hz)".format(t_shape[0], p.get("fs", "??")) + _header = ( + "<%s data object>: " + " %s %s\n" + " . %s\n" + " . %s-frame\n" + " . %s\n" + % ( + p.get("inst_type"), + self.ds.attrs["inst_make"], + self.ds.attrs["inst_model"], + time_string, + p.get("coord_sys"), + shape_string, + ) + ) + _vars = " Variables:\n" # Specify which variable show up in this view here. # * indicates a wildcard # This list also sets the display order. # Only the first 12 matches are displayed. - show_vars = ['time*', 'vel*', 'range', 'range_echo', - 'orientmat', 'heading', 'pitch', 'roll', - 'temp', 'press*', 'amp*', 'corr*', - 'accel', 'angrt', 'mag', 'echo', - ] + show_vars = [ + "time*", + "vel*", + "range", + "range_echo", + "orientmat", + "heading", + "pitch", + "roll", + "temp", + "press*", + "amp*", + "corr*", + "accel", + "angrt", + "mag", + "echo", + ] n = 0 for v in show_vars: if n > 12: break - if v.endswith('*'): + if v.endswith("*"): v = v[:-1] # Drop the '*' for nm in self.variables: if n > 12: break if nm.startswith(v): n += 1 - _vars += ' - {} {}\n'.format(nm, self.ds[nm].dims) + _vars += " - {} {}\n".format(nm, self.ds[nm].dims) elif v in self.ds: - _vars += ' - {} {}\n'.format(v, self.ds[v].dims) + _vars += " - {} {}\n".format(v, self.ds[v].dims) if n < len(self.variables): - _vars += ' ... and others (see `.variables`)\n' + _vars += " ... and others (see `.variables`)\n" return _header + _vars ###### # Duplicate valuable xarray properties here. @property - def variables(self, ): + def variables( + self, + ): """A sorted list of the variable names in the dataset.""" return sorted(self.ds.variables) @property - def attrs(self, ): + def attrs( + self, + ): """The attributes in the dataset.""" return self.ds.attrs @property - def coords(self, ): + def coords( + self, + ): """The coordinates in the dataset.""" return self.ds.coords ###### # A bunch of DOLfYN specific properties @property - def u(self,): + def u( + self, + ): """ The first velocity component. @@ -279,10 +307,12 @@ def u(self,): - earth: east - principal: streamwise """ - return self.ds['vel'][0].drop('dir') + return self.ds["vel"][0].drop("dir") @property - def v(self,): + def v( + self, + ): """ The second velocity component. @@ -295,10 +325,12 @@ def v(self,): - earth: north - principal: cross-stream """ - return self.ds['vel'][1].drop('dir') + return self.ds["vel"][1].drop("dir") @property - def w(self,): + def w( + self, + ): """ The third velocity component. @@ -311,37 +343,47 @@ def w(self,): - earth: up - principal: up """ - return self.ds['vel'][2].drop('dir') + return self.ds["vel"][2].drop("dir") @property - def U(self,): + def U( + self, + ): """Horizontal velocity as a complex quantity""" return xr.DataArray( - (self.u + self.v * 1j).astype('complex64'), - attrs={'units': 'm s-1', - 'long_name': 'Horizontal Water Velocity'}) - + (self.u + self.v * 1j).astype("complex64"), + attrs={"units": "m s-1", "long_name": "Horizontal Water Velocity"}, + ) + @property - def U_mag(self,): + def U_mag( + self, + ): """Horizontal velocity magnitude""" return xr.DataArray( - np.abs(self.U).astype('float32'), - attrs={'units': 'm s-1', - 'long_name': 'Water Speed', - 'standard_name': 'sea_water_speed'}) + np.abs(self.U).astype("float32"), + attrs={ + "units": "m s-1", + "long_name": "Water Speed", + "standard_name": "sea_water_speed", + }, + ) @property - def U_dir(self,): + def U_dir( + self, + ): """ - Angle of horizontal velocity vector. Direction is 'to', - as opposed to 'from'. This function calculates angle as - "degrees CCW from X/East/streamwise" and then converts it to + Angle of horizontal velocity vector. Direction is 'to', + as opposed to 'from'. This function calculates angle as + "degrees CCW from X/East/streamwise" and then converts it to "degrees CW from X/North/streamwise". """ + def convert_to_CW(angle): - if self.ds.coord_sys == 'earth': + if self.ds.coord_sys == "earth": # Convert "deg CCW from East" to "deg CW from North" [0, 360] angle = convert_degrees(angle, tidal_mode=False) relative_to = self.ds.dir[1].values @@ -353,18 +395,23 @@ def convert_to_CW(angle): return angle, relative_to # Convert from radians to degrees - angle, rel = convert_to_CW(np.angle(self.U)*(180/np.pi)) + angle, rel = convert_to_CW(np.angle(self.U) * (180 / np.pi)) return xr.DataArray( - angle.astype('float32'), + angle.astype("float32"), dims=self.U.dims, coords=self.U.coords, - attrs={'units': 'degrees_CW_from_' + str(rel), - 'long_name': 'Water Direction', - 'standard_name': 'sea_water_to_direction'}) + attrs={ + "units": "degrees_CW_from_" + str(rel), + "long_name": "Water Direction", + "standard_name": "sea_water_to_direction", + }, + ) @property - def E_coh(self,): + def E_coh( + self, + ): """ Coherent turbulent energy @@ -376,11 +423,14 @@ def E_coh(self,): E_coh = (self.upwp_**2 + self.upvp_**2 + self.vpwp_**2) ** (0.5) return xr.DataArray( - E_coh.astype('float32'), - coords={'time': self.ds['stress_vec'].time}, - dims=['time'], - attrs={'units': self.ds['stress_vec'].units, - 'long_name': 'Coherent Turbulence Energy'}) + E_coh.astype("float32"), + coords={"time": self.ds["stress_vec"].time}, + dims=["time"], + attrs={ + "units": self.ds["stress_vec"].units, + "long_name": "Coherent Turbulence Energy", + }, + ) @property def I_tke(self, thresh=0): @@ -389,14 +439,15 @@ def I_tke(self, thresh=0): Ratio of sqrt(tke) to horizontal velocity magnitude. """ - I_tke = np.ma.masked_where(self.U_mag < thresh, - np.sqrt(2 * self.tke) / self.U_mag) + I_tke = np.ma.masked_where( + self.U_mag < thresh, np.sqrt(2 * self.tke) / self.U_mag + ) return xr.DataArray( - I_tke.data.astype('float32'), + I_tke.data.astype("float32"), coords=self.U_mag.coords, dims=self.U_mag.dims, - attrs={'units': '% [0,1]', - 'long_name': 'TKE Intensity'}) + attrs={"units": "% [0,1]", "long_name": "TKE Intensity"}, + ) @property def I(self, thresh=0): @@ -406,61 +457,73 @@ def I(self, thresh=0): Ratio of standard deviation of horizontal velocity to horizontal velocity magnitude. """ - I = np.ma.masked_where(self.U_mag < thresh, - self.ds['U_std'] / self.U_mag) + I = np.ma.masked_where(self.U_mag < thresh, self.ds["U_std"] / self.U_mag) return xr.DataArray( - I.data.astype('float32'), + I.data.astype("float32"), coords=self.U_mag.coords, dims=self.U_mag.dims, - attrs={'units': '% [0,1]', - 'long_name': 'Turbulence Intensity'}) + attrs={"units": "% [0,1]", "long_name": "Turbulence Intensity"}, + ) @property - def tke(self,): - """Turbulent kinetic energy (sum of the three components) - """ - tke = self.ds['tke_vec'].sum('tke') / 2 - tke.name = 'TKE' - tke.attrs['units'] = self.ds['tke_vec'].units - tke.attrs['long_name'] = 'TKE' - tke.attrs['standard_name'] = 'specific_turbulent_kinetic_energy_of_sea_water' + def tke( + self, + ): + """Turbulent kinetic energy (sum of the three components)""" + tke = self.ds["tke_vec"].sum("tke") / 2 + tke.name = "TKE" + tke.attrs["units"] = self.ds["tke_vec"].units + tke.attrs["long_name"] = "TKE" + tke.attrs["standard_name"] = "specific_turbulent_kinetic_energy_of_sea_water" return tke @property - def upvp_(self,): + def upvp_( + self, + ): """u'v'bar Reynolds stress""" - return self.ds['stress_vec'].sel(tau="upvp_").drop('tau') + return self.ds["stress_vec"].sel(tau="upvp_").drop("tau") @property - def upwp_(self,): + def upwp_( + self, + ): """u'w'bar Reynolds stress""" - return self.ds['stress_vec'].sel(tau="upwp_").drop('tau') + return self.ds["stress_vec"].sel(tau="upwp_").drop("tau") @property - def vpwp_(self,): + def vpwp_( + self, + ): """v'w'bar Reynolds stress""" - return self.ds['stress_vec'].sel(tau="vpwp_").drop('tau') + return self.ds["stress_vec"].sel(tau="vpwp_").drop("tau") @property - def upup_(self,): + def upup_( + self, + ): """u'u'bar component of the tke""" - return self.ds['tke_vec'].sel(tke="upup_").drop('tke') + return self.ds["tke_vec"].sel(tke="upup_").drop("tke") @property - def vpvp_(self,): + def vpvp_( + self, + ): """v'v'bar component of the tke""" - return self.ds['tke_vec'].sel(tke="vpvp_").drop('tke') + return self.ds["tke_vec"].sel(tke="vpvp_").drop("tke") @property - def wpwp_(self,): + def wpwp_( + self, + ): """w'w'bar component of the tke""" - return self.ds['tke_vec'].sel(tke="wpwp_").drop('tke') + return self.ds["tke_vec"].sel(tke="wpwp_").drop("tke") class VelBinner(TimeBinner): @@ -487,38 +550,53 @@ class VelBinner(TimeBinner): # This defines how cross-spectra and stresses are computed. _cross_pairs = [(0, 1), (0, 2), (1, 2)] - tke = xr.DataArray(["upup_", "vpvp_", "wpwp_"], - dims=['tke'], - name='tke', - attrs={'units': '1', - 'long_name': 'Turbulent Kinetic Energy Vector Components', - 'coverage_content_type': 'coordinate'}) - - tau = xr.DataArray(["upvp_", "upwp_", "vpwp_"], - dims=['tau'], - name='tau', - attrs={'units': '1', - 'long_name': 'Reynolds Stress Vector Components', - 'coverage_content_type': 'coordinate'}) - - S = xr.DataArray(['Sxx', 'Syy', 'Szz'], - dims=['S'], - name='S', - attrs={'units': '1', - 'long_name': 'Power Spectral Density Vector Components', - 'coverage_content_type': 'coordinate'}) - - C = xr.DataArray(['Cxy', 'Cxz', 'Cyz'], - dims=['C'], - name='C', - attrs={'units': '1', - 'long_name': 'Cross-Spectral Density Vector Components', - 'coverage_content_type': 'coordinate'}) - + tke = xr.DataArray( + ["upup_", "vpvp_", "wpwp_"], + dims=["tke"], + name="tke", + attrs={ + "units": "1", + "long_name": "Turbulent Kinetic Energy Vector Components", + "coverage_content_type": "coordinate", + }, + ) + + tau = xr.DataArray( + ["upvp_", "upwp_", "vpwp_"], + dims=["tau"], + name="tau", + attrs={ + "units": "1", + "long_name": "Reynolds Stress Vector Components", + "coverage_content_type": "coordinate", + }, + ) + + S = xr.DataArray( + ["Sxx", "Syy", "Szz"], + dims=["S"], + name="S", + attrs={ + "units": "1", + "long_name": "Power Spectral Density Vector Components", + "coverage_content_type": "coordinate", + }, + ) + + C = xr.DataArray( + ["Cxy", "Cxz", "Cyz"], + dims=["C"], + name="C", + attrs={ + "units": "1", + "long_name": "Cross-Spectral Density Vector Components", + "coverage_content_type": "coordinate", + }, + ) def bin_average(self, raw_ds, out_ds=None, names=None): """ - Bin the dataset and calculate the ensemble averages of each + Bin the dataset and calculate the ensemble averages of each variable. Parameters @@ -559,36 +637,42 @@ def bin_average(self, raw_ds, out_ds=None, names=None): for ky in names: # set up dimensions and coordinates for Dataset dims_list = raw_ds[ky].dims + if any([ar for ar in dims_list if "altraw" in ar]): + continue coords_dict = {} for nm in dims_list: - if 'time' in nm: + if "time" in nm: coords_dict[nm] = self.mean(raw_ds[ky][nm].values) else: coords_dict[nm] = raw_ds[ky][nm].values # create Dataset - if 'ensemble' not in ky: + if "ensemble" not in ky: try: # variables with time coordinate - out_ds[ky] = xr.DataArray(self.mean(raw_ds[ky].values), - coords=coords_dict, - dims=dims_list, - attrs=raw_ds[ky].attrs - ).astype('float32') + out_ds[ky] = xr.DataArray( + self.mean(raw_ds[ky].values), + coords=coords_dict, + dims=dims_list, + attrs=raw_ds[ky].attrs, + ).astype("float32") except: # variables not needing averaging pass # Add standard deviation std = self.standard_deviation(raw_ds.velds.U_mag.values) - out_ds['U_std'] = xr.DataArray( - std.astype('float32'), + out_ds["U_std"] = xr.DataArray( + std.astype("float32"), dims=raw_ds.vel.dims[1:], - attrs={'units': 'm s-1', - 'long_name': 'Water Velocity Standard Deviation'}) + attrs={ + "units": "m s-1", + "long_name": "Water Velocity Standard Deviation", + }, + ) return out_ds - def bin_variance(self, raw_ds, out_ds=None, names=None, suffix='_var'): + def bin_variance(self, raw_ds, out_ds=None, names=None, suffix="_var"): """ - Bin the dataset and calculate the ensemble variances of each + Bin the dataset and calculate the ensemble variances of each variable. Complementary to `bin_average()`. Parameters @@ -630,21 +714,24 @@ def bin_variance(self, raw_ds, out_ds=None, names=None, suffix='_var'): for ky in names: # set up dimensions and coordinates for dataarray dims_list = raw_ds[ky].dims + if any([ar for ar in dims_list if "altraw" in ar]): + continue coords_dict = {} for nm in dims_list: - if 'time' in nm: + if "time" in nm: coords_dict[nm] = self.mean(raw_ds[ky][nm].values) else: coords_dict[nm] = raw_ds[ky][nm].values # create Dataset - if 'ensemble' not in ky: + if "ensemble" not in ky: try: # variables with time coordinate - out_ds[ky+suffix] = xr.DataArray(self.variance(raw_ds[ky].values), - coords=coords_dict, - dims=dims_list, - attrs=raw_ds[ky].attrs - ).astype('float32') + out_ds[ky + suffix] = xr.DataArray( + self.variance(raw_ds[ky].values), + coords=coords_dict, + dims=dims_list, + attrs=raw_ds[ky].attrs, + ).astype("float32") except: # variables not needing averaging pass @@ -680,17 +767,18 @@ def autocovariance(self, veldat, n_bin=None): indat = veldat.values n_bin = self._parse_nbin(n_bin) - out = np.empty(self._outshape(indat.shape, n_bin=n_bin)[:-1] + - [int(n_bin // 4)], dtype=indat.dtype) + out = np.empty( + self._outshape(indat.shape, n_bin=n_bin)[:-1] + [int(n_bin // 4)], + dtype=indat.dtype, + ) dt1 = self.reshape(indat, n_pad=n_bin / 2 - 2) # Here we de-mean only on the 'valid' range: - dt1 = dt1 - dt1[..., :, int(n_bin // 4): - int(-n_bin // 4)].mean(-1)[..., None] + dt1 = dt1 - dt1[..., :, int(n_bin // 4) : int(-n_bin // 4)].mean(-1)[..., None] dt2 = self.demean(indat) se = slice(int(n_bin // 4) - 1, None, 1) sb = slice(int(n_bin // 4) - 1, None, -1) for slc in slice1d_along_axis(dt1.shape, -1): - tmp = np.correlate(dt1[slc], dt2[slc], 'valid') + tmp = np.correlate(dt1[slc], dt2[slc], "valid") # The zero-padding in reshape means we compute coherence # from one-sided time-series for first and last points. if slc[-2] == 0: @@ -703,100 +791,168 @@ def autocovariance(self, veldat, n_bin=None): dims_list, coords_dict = self._new_coords(veldat) # tack on new coordinate - dims_list.append('lag') - coords_dict['lag'] = np.arange(n_bin//4) + dims_list.append("lag") + coords_dict["lag"] = np.arange(n_bin // 4) - da = xr.DataArray(out.astype('float32'), - coords=coords_dict, - dims=dims_list,) - da['lag'].attrs['units'] = 'timestep' + da = xr.DataArray( + out.astype("float32"), + coords=coords_dict, + dims=dims_list, + ) + da["lag"].attrs["units"] = "timestep" return da + def turbulence_intensity(self, U_mag, noise=0, thresh=0, detrend=False): + """ + Calculate noise-corrected turbulence intensity. + + Parameters + ---------- + U_mag : xarray.DataArray + Raw horizontal velocity magnitude + noise : numeric + Instrument noise level in same units as velocity. Typically + found from `.turbulence.doppler_noise_level`. + Default: None. + thresh : numeric + Theshold below which TI will not be calculated + detrend : bool (default: False) + Detrend the velocity data (True), or simply de-mean it + (False), prior to computing TI. + """ + + if "xarray" in type(U_mag).__module__: + U = U_mag.values + if "xarray" in type(noise).__module__: + noise = noise.values + + if detrend: + up = self.detrend(U) + else: + up = self.demean(U) + + # Take RMS and subtract noise + u_rms = np.sqrt(np.nanmean(up**2, axis=-1) - noise**2) + u_mag = self.mean(U) + + ti = np.ma.masked_where(u_mag < thresh, u_rms / u_mag) + + dims = U_mag.dims + coords = {} + for nm in U_mag.dims: + if "time" in nm: + coords[nm] = self.mean(U_mag[nm].values) + else: + coords[nm] = U_mag[nm].values + + return xr.DataArray( + ti.data.astype("float32"), + coords=coords, + dims=dims, + attrs={ + "units": "% [0,1]", + "long_name": "Turbulence Intensity", + "comment": f"TI was corrected from a noise level of {noise} m/s", + }, + ) + def turbulent_kinetic_energy(self, veldat, noise=None, detrend=True): """ - Calculate the turbulent kinetic energy (TKE) (variances + Calculate the turbulent kinetic energy (TKE) (variances of u,v,w). Parameters ---------- veldat : xarray.DataArray - Velocity data array from ADV or single beam from ADCP. + Velocity data array from ADV or single beam from ADCP. The last dimension is assumed to be time. noise : float or array-like - A vector of the noise levels of the velocity data with - the same first dimension as the velocity vector. + Instrument noise level in same units as velocity. Typically + found from `.turbulence.doppler_noise_level`. + Default: None. detrend : bool (default: False) Detrend the velocity data (True), or simply de-mean it - (False), prior to computing tke. Note: the psd routines + (False), prior to computing TKE. Note: the PSD routines use detrend, so if you want to have the same amount of variance here as there use ``detrend=True``. - + Returns ------- tke_vec : xarray.DataArray dataArray containing u'u'_, v'v'_ and w'w'_ """ - if 'xarray' in type(veldat).__module__: + if "xarray" in type(veldat).__module__: vel = veldat.values - if 'xarray' in type(noise).__module__: + if "xarray" in type(noise).__module__: noise = noise.values if len(np.shape(vel)) > 2: - raise ValueError("This function is only valid for calculating TKE using " - "velocity from an ADV or a single ADCP beam.") + raise ValueError( + "This function is only valid for calculating TKE using " + "velocity from an ADV or a single ADCP beam." + ) # Calc TKE if detrend: - out = np.nanmean(self.detrend(vel)**2, axis=-1) + out = np.nanmean(self.detrend(vel) ** 2, axis=-1) else: - out = np.nanmean(self.demean(vel)**2, axis=-1) + out = np.nanmean(self.demean(vel) ** 2, axis=-1) - if 'dir' in veldat.dims: + if "dir" in veldat.dims: # Subtract noise if noise is not None: if np.shape(noise)[0] != 3: raise Exception( - 'Noise should have same first dimension as velocity') + "Noise should have same first dimension as velocity" + ) out[0] -= noise[0] ** 2 out[1] -= noise[1] ** 2 out[2] -= noise[2] ** 2 # Set coords - dims = ['tke', 'time'] - coords = {'tke': self.tke, - 'time': self.mean(veldat.time.values)} + dims = ["tke", "time"] + coords = {"tke": self.tke, "time": self.mean(veldat.time.values)} else: # Subtract noise if noise is not None: if np.shape(noise) > np.shape(vel): raise Exception( - 'Noise should have same or fewer dimensions as velocity') - out -= noise ** 2 + "Noise should have same or fewer dimensions as velocity" + ) + out -= noise**2 # Set coords dims = veldat.dims coords = {} for nm in veldat.dims: - if 'time' in nm: + if "time" in nm: coords[nm] = self.mean(veldat[nm].values) else: coords[nm] = veldat[nm].values return xr.DataArray( - out.astype('float32'), + out.astype("float32"), dims=dims, coords=coords, - attrs={'units': 'm2 s-2', - 'long_name': 'TKE Vector', - 'standard_name': 'specific_turbulent_kinetic_energy_of_sea_water'}) - - def power_spectral_density(self, veldat, - freq_units='rad/s', - fs=None, - window='hann', - noise=None, - n_bin=None, n_fft=None, n_pad=None, - step=None): + attrs={ + "units": "m2 s-2", + "long_name": "TKE Vector", + "standard_name": "specific_turbulent_kinetic_energy_of_sea_water", + }, + ) + + def power_spectral_density( + self, + veldat, + freq_units="rad/s", + fs=None, + window="hann", + noise=0, + n_bin=None, + n_fft=None, + n_pad=None, + step=None, + ): """ Calculate the power spectral density of velocity. @@ -805,17 +961,16 @@ def power_spectral_density(self, veldat, veldat : xr.DataArray The raw velocity data (of dims 'dir' and 'time'). freq_units : string - Frequency units of the returned spectra in either Hz or rad/s + Frequency units of the returned spectra in either Hz or rad/s (`f` or :math:`\\omega`) fs : float (optional) The sample rate. Default is `binner.fs` window : string or array Specify the window function. Options: 1, None, 'hann', 'hamm' - noise : float or array-like - A vector of the noise levels of the velocity data with - the same first dimension as the velocity vector. - Default = 0. + noise : numeric or array + Instrument noise level in same units as velocity. + Default: 0 (ADCP) or [0, 0, 0] (ADV). n_bin : int (optional) The bin-size. Default: from the binner. n_fft : int (optional) @@ -835,76 +990,93 @@ def power_spectral_density(self, veldat, fs_in = self._parse_fs(fs) n_fft = self._parse_nfft(n_fft) - if 'xarray' in type(veldat).__module__: + if "xarray" in type(veldat).__module__: vel = veldat.values - if 'xarray' in type(noise).__module__: - noise = noise.values - if ('rad' not in freq_units) and ('Hz' not in freq_units): + if ("rad" not in freq_units) and ("Hz" not in freq_units): raise ValueError("`freq_units` should be one of 'Hz' or 'rad/s'") - + # Create frequency vector, also checks whether using f or omega - if 'rad' in freq_units: - fs = 2*np.pi*fs_in - freq_units = 'rad s-1' - units = 'm2 s-1 rad-1' + if "rad" in freq_units: + fs = 2 * np.pi * fs_in + freq_units = "rad s-1" + units = "m2 s-1 rad-1" else: fs = fs_in - freq_units = 'Hz' - units = 'm2 s-2 Hz-1' - freq = xr.DataArray(self._fft_freq(fs=fs_in, units=freq_units, n_fft=n_fft), - dims=['freq'], - name='freq', - attrs={'units': freq_units, - 'long_name': 'FFT Frequency Vector', - 'coverage_content_type': 'coordinate'} - ).astype('float32') + freq_units = "Hz" + units = "m2 s-2 Hz-1" + freq = xr.DataArray( + self._fft_freq(fs=fs_in, units=freq_units, n_fft=n_fft), + dims=["freq"], + name="freq", + attrs={ + "units": freq_units, + "long_name": "FFT Frequency Vector", + "coverage_content_type": "coordinate", + }, + ).astype("float32") # Spectra, if input is full velocity or a single array - if len(vel.shape) == 2: - assert vel.shape[0] == 3, "Function can only handle 1D or 3D arrays." \ - " If ADCP data, please select a specific depth bin." - if (noise is not None) and (np.shape(noise)[0] != 3): - raise Exception( - 'Noise should have same first dimension as velocity') + if len(vel.shape) >= 2: + if vel.shape[0] != 3: + raise ValueError( + "Function can only handle 1D or 3D arrays." + " If ADCP data, please select a specific depth bin." + ) + if np.array(noise).any(): + if np.size(noise) != 3: + raise ValueError("Noise is expected to be an array of 3 scalars") else: + # Reset default to list of 3 zeros noise = np.array([0, 0, 0]) - out = np.empty(self._outshape_fft(vel[:3].shape, n_fft=n_fft, n_bin=n_bin), - dtype=np.float32) + + out = np.empty( + self._outshape_fft(vel[:3].shape, n_fft=n_fft, n_bin=n_bin), + dtype=np.float32, + ) for idx in range(3): - out[idx] = self._psd_base(vel[idx], - fs=fs, - noise=noise[idx], - window=window, - n_bin=n_bin, - n_pad=n_pad, - n_fft=n_fft, - step=step) - coords = {'S': self.S, - 'time': self.mean(veldat['time'].values), - 'freq': freq} - dims = ['S', 'time', 'freq'] + out[idx] = self._psd_base( + vel[idx], + fs=fs, + noise=noise[idx], + window=window, + n_bin=n_bin, + n_pad=n_pad, + n_fft=n_fft, + step=step, + ) + coords = { + "S": self.S, + "time": self.mean(veldat["time"].values), + "freq": freq, + } + dims = ["S", "time", "freq"] else: - if (noise is not None) and (len(np.shape(noise)) > 1): - raise Exception( - 'Noise should have same first dimension as velocity') - else: - noise = np.array(0) - out = self._psd_base(vel, - fs=fs, - noise=noise, - window=window, - n_bin=n_bin, - n_pad=n_pad, - n_fft=n_fft, - step=step) - coords = {veldat.dims[-1]: self.mean(veldat[veldat.dims[-1]].values), - 'freq': freq} - dims = [veldat.dims[-1], 'freq'] + if np.array(noise).any() and np.size(noise) > 1: + raise ValueError("Noise is expected to be a scalar") + + out = self._psd_base( + vel, + fs=fs, + noise=noise, + window=window, + n_bin=n_bin, + n_pad=n_pad, + n_fft=n_fft, + step=step, + ) + coords = { + veldat.dims[-1]: self.mean(veldat[veldat.dims[-1]].values), + "freq": freq, + } + dims = [veldat.dims[-1], "freq"] return xr.DataArray( - out.astype('float32'), + out.astype("float32"), coords=coords, dims=dims, - attrs={'units': units, - 'n_fft': n_fft, - 'long_name': 'Power Spectral Density'}) + attrs={ + "units": units, + "n_fft": n_fft, + "long_name": "Power Spectral Density", + }, + ) diff --git a/mhkit/loads/__init__.py b/mhkit/loads/__init__.py index cd0ea3c22..4c21c7391 100644 --- a/mhkit/loads/__init__.py +++ b/mhkit/loads/__init__.py @@ -1,3 +1,12 @@ +""" +The `loads` package of the MHKiT (Marine and Hydrokinetic Toolkit) library +provides tools and functionalities for analyzing and visualizing loads data +from marine and hydrokinetic (MHK) devices. This package is designed to +assist engineers, researchers, and analysts in understanding the forces and +stresses applied to MHK devices under various operational and environmental +conditions. +""" + from mhkit.loads import general from mhkit.loads import graphics -from mhkit.loads import extreme \ No newline at end of file +from mhkit.loads import extreme diff --git a/mhkit/loads/extreme.py b/mhkit/loads/extreme.py deleted file mode 100644 index b282c0826..000000000 --- a/mhkit/loads/extreme.py +++ /dev/null @@ -1,757 +0,0 @@ -import numpy as np -import pandas as pd -from scipy import stats -from scipy import optimize -from mhkit.wave.resource import frequency_moment - - -def global_peaks(t, data): - """ - Find the global peaks of a zero-centered response time-series. - - The global peaks are the maxima between consecutive zero - up-crossings. - - Parameters - ---------- - t: np.array - Time array. - data: np.array - Response time-series. - - Returns - ------- - t_peaks: np.array - Time array for peaks - peaks: np.array - Peak values of the response time-series - """ - assert isinstance(t, np.ndarray), 't must be of type np.ndarray' - assert isinstance(data, np.ndarray), 'data must be of type np.ndarray' - - # eliminate zeros - zeroMask = (data == 0) - data[zeroMask] = 0.5 * np.min(np.abs(data)) - # zero up-crossings - diff = np.diff(np.sign(data)) - zeroUpCrossings_mask = (diff == 2) | (diff == 1) - zeroUpCrossings_index = np.where(zeroUpCrossings_mask)[0] - zeroUpCrossings_index = np.append(zeroUpCrossings_index, len(data) - 1) - # global peaks - npeaks = len(zeroUpCrossings_index) - peaks = np.array([]) - t_peaks = np.array([]) - for i in range(npeaks - 1): - peak_index = np.argmax( - data[zeroUpCrossings_index[i]:zeroUpCrossings_index[i + 1]]) - t_peaks = np.append(t_peaks, t[zeroUpCrossings_index[i] + peak_index]) - peaks = np.append(peaks, data[zeroUpCrossings_index[i] + peak_index]) - return t_peaks, peaks - - -def number_of_short_term_peaks(n, t, t_st): - """ - Estimate the number of peaks in a specified period. - - Parameters - ---------- - n : int - Number of peaks in analyzed timeseries. - t : float - Length of time of analyzed timeseries. - t_st: float - Short-term period for which to estimate the number of peaks. - - Returns - ------- - n_st : float - Number of peaks in short term period. - """ - assert isinstance(n, int), 'n must be of type int' - assert isinstance(t, float), 't must be of type float' - assert isinstance(t_st, float), 't_st must be of type float' - - return n * t_st / t - - -def peaks_distribution_weibull(x): - """ - Estimate the peaks distribution by fitting a Weibull - distribution to the peaks of the response. - - The fitted parameters can be accessed through the `params` field of - the returned distribution. - - Parameters - ---------- - x : np.array - Global peaks. - - Returns - ------- - peaks: scipy.stats.rv_frozen - Probability distribution of the peaks. - """ - assert isinstance(x, np.ndarray), 'x must be of type np.ndarray' - - # peaks distribution - peaks_params = stats.exponweib.fit(x, f0=1, floc=0) - param_names = ['a', 'c', 'loc', 'scale'] - peaks_params = {k: v for k, v in zip(param_names, peaks_params)} - peaks = stats.exponweib(**peaks_params) - # save the parameter info - peaks.params = peaks_params - return peaks - - -def peaks_distribution_weibull_tail_fit(x): - """ - Estimate the peaks distribution using the Weibull tail fit - method. - - The fitted parameters can be accessed through the `params` field of - the returned distribution. - - Parameters - ---------- - x : np.array - Global peaks. - - Returns - ------- - peaks: scipy.stats.rv_frozen - Probability distribution of the peaks. - """ - assert isinstance(x, np.ndarray), 'x must be of type np.ndarray' - - # Initial guess for Weibull parameters - p0 = stats.exponweib.fit(x, f0=1, floc=0) - p0 = np.array([p0[1], p0[3]]) - # Approximate CDF - x = np.sort(x) - npeaks = len(x) - F = np.zeros(npeaks) - for i in range(npeaks): - F[i] = i / (npeaks + 1.0) - # Divide into seven sets & fit Weibull - subset_shape_params = np.zeros(7) - subset_scale_params = np.zeros(7) - setLim = np.arange(0.60, 0.90, 0.05) - func = lambda x, c, s: stats.exponweib(a=1, c=c, loc=0, scale=s).cdf(x) - for set in range(7): - xset = x[(F > setLim[set])] - Fset = F[(F > setLim[set])] - popt, _ = optimize.curve_fit(func, xset, Fset, p0=p0) - subset_shape_params[set] = popt[0] - subset_scale_params[set] = popt[1] - # peaks distribution - peaks_params = [1, np.mean(subset_shape_params), 0, - np.mean(subset_scale_params)] - param_names = ['a', 'c', 'loc', 'scale'] - peaks_params = {k: v for k, v in zip(param_names, peaks_params)} - peaks = stats.exponweib(**peaks_params) - # save the parameter info - peaks.params = peaks_params - peaks.subset_shape_params = subset_shape_params - peaks.subset_scale_params = subset_scale_params - return peaks - - -def peaks_distribution_peaks_over_threshold(x, threshold=None): - """ - Estimate the peaks distribution using the peaks over threshold - method. - - This fits a generalized Pareto distribution to all the peaks above - the specified threshold. The distribution is only defined for values - above the threshold and therefore cannot be used to obtain integral - metrics such as the expected value. A typical choice of threshold is - 1.4 standard deviations above the mean. The peaks over threshold - distribution can be accessed through the `pot` field of the returned - peaks distribution. - - Parameters - ---------- - x : np.array - Global peaks. - threshold : float - Threshold value. Only peaks above this value will be used. - Default value calculated as: `np.mean(x) + 1.4 * np.std(x)` - - Returns - ------- - peaks: scipy.stats.rv_frozen - Probability distribution of the peaks. - """ - assert isinstance(x, np.ndarray), 'x must be of type np.ndarray' - if threshold is None: - threshold = np.mean(x) + 1.4 * np.std(x) - assert isinstance(threshold, float - ), 'threshold must be of type float' - - # peaks over threshold - x = np.sort(x) - pot = x[(x > threshold)] - threshold - npeaks = len(x) - npot = len(pot) - # Fit a generalized Pareto - pot_params = stats.genpareto.fit(pot, floc=0.) - param_names = ['c', 'loc', 'scale'] - pot_params = {k: v for k, v in zip(param_names, pot_params)} - pot = stats.genpareto(**pot_params) - # save the parameter info - pot.params = pot_params - - # peaks - class _Peaks(stats.rv_continuous): - - def __init__(self, *args, **kwargs): - self.pot = kwargs.pop('pot_distribution') - self.threshold = kwargs.pop('threshold') - super().__init__(*args, **kwargs) - - def _cdf(self, x): - x = np.atleast_1d(np.array(x)) - out = np.zeros(x.shape) - out[x < self.threshold] = np.NaN - xt = x[x >= self.threshold] - if xt.size != 0: - pot_ccdf = 1. - self.pot.cdf(xt-self.threshold) - prop_pot = npot/npeaks - out[x >= self.threshold] = 1. - (prop_pot * pot_ccdf) - return out - - peaks = _Peaks(name="peaks", pot_distribution=pot, threshold=threshold) - # save the peaks over threshold distribution - peaks.pot = pot - return peaks - - -def ste_peaks(peaks_distribution, npeaks): - """ - Estimate the short-term extreme distribution from the peaks - distribution. - - Parameters - ---------- - peaks_distribution: scipy.stats.rv_frozen - Probability distribution of the peaks. - npeaks : float - Number of peaks in short term period. - - Returns - ------- - ste: scipy.stats.rv_frozen - Short-term extreme distribution. - """ - assert callable(peaks_distribution.cdf - ), 'peaks_distribution must be a scipy.stat distribution.' - assert isinstance(npeaks, float), 'npeaks must be of type float' - - class _ShortTermExtreme(stats.rv_continuous): - - def __init__(self, *args, **kwargs): - self.peaks = kwargs.pop('peaks_distribution') - self.npeaks = kwargs.pop('npeaks') - super().__init__(*args, **kwargs) - - def _cdf(self, x): - peaks_cdf = np.array(self.peaks.cdf(x)) - peaks_cdf[np.isnan(peaks_cdf)] = 0.0 - if len(peaks_cdf) == 1: - peaks_cdf = peaks_cdf[0] - return peaks_cdf ** self.npeaks - - ste = _ShortTermExtreme(name="short_term_extreme", - peaks_distribution=peaks_distribution, - npeaks=npeaks) - return ste - - -def block_maxima(t, x, t_st): - """ - Find the block maxima of a time-series. - - The timeseries (t,x) is divided into blocks of length t_st, and the - maxima of each bloock is returned. - - Parameters - ---------- - t : np.array - Time array. - x : np.array - global peaks timeseries. - t_st : float - Short-term period. - - Returns - ------- - block_maxima: np.array - Block maxima (i.e. largest peak in each block). - """ - assert isinstance(t, np.ndarray), 't must be of type np.ndarray' - assert isinstance(x, np.ndarray), 'x must be of type np.ndarray' - assert isinstance(t_st, float), 't_st must be of type float' - - nblock = int(t[-1] / t_st) - block_maxima = np.zeros(int(nblock)) - for iblock in range(nblock): - ix = x[(t >= iblock * t_st) & (t < (iblock+1)*t_st)] - block_maxima[iblock] = np.max(ix) - return block_maxima - - -def ste_block_maxima_gev(block_maxima): - """ - Approximate the short-term extreme distribution using the block - maxima method and the Generalized Extreme Value distribution. - - Parameters - ---------- - block_maxima: np.array - Block maxima (i.e. largest peak in each block). - - Returns - ------- - ste: scipy.stats.rv_frozen - Short-term extreme distribution. - """ - assert isinstance( - block_maxima, np.ndarray), 'block_maxima must be of type np.ndarray' - - ste_params = stats.genextreme.fit(block_maxima) - param_names = ['c', 'loc', 'scale'] - ste_params = {k: v for k, v in zip(param_names, ste_params)} - ste = stats.genextreme(**ste_params) - ste.params = ste_params - return ste - - -def ste_block_maxima_gumbel(block_maxima): - """ - Approximate the short-term extreme distribution using the block - maxima method and the Gumbel (right) distribution. - - Parameters - ---------- - block_maxima: np.array - Block maxima (i.e. largest peak in each block). - - Returns - ------- - ste: scipy.stats.rv_frozen - Short-term extreme distribution. - """ - assert isinstance( - block_maxima, np.ndarray), 'block_maxima must be of type np.ndarray' - - ste_params = stats.gumbel_r.fit(block_maxima) - param_names = ['loc', 'scale'] - ste_params = {k: v for k, v in zip(param_names, ste_params)} - ste = stats.gumbel_r(**ste_params) - ste.params = ste_params - return ste - - -def ste(t, data, t_st, method): - """ - Alias for `short_term_extreme`. - """ - ste = short_term_extreme(t, data, t_st, method) - return ste - - -def short_term_extreme(t, data, t_st, method): - """ - Approximate the short-term extreme distribution from a - timeseries of the response using chosen method. - - The availabe methods are: 'peaks_weibull', 'peaks_weibull_tail_fit', - 'peaks_over_threshold', 'block_maxima_gev', and 'block_maxima_gumbel'. - For the block maxima methods the timeseries needs to be many times - longer than the short-term period. For the peak-fitting methods the - timeseries can be of arbitrary length. - - Parameters - ---------- - t: np.array - Time array. - data: np.array - Response timeseries. - t_st: float - Short-term period. - method : string - Method for estimating the short-term extreme distribution. - - Returns - ------- - ste: scipy.stats.rv_frozen - Short-term extreme distribution. - """ - assert isinstance(t, np.ndarray), 't must be of type np.ndarray' - assert isinstance(data, np.ndarray), 'x must be of type np.ndarray' - assert isinstance(t_st, float), 't_st must be of type float' - assert isinstance(method, str), 'method must be of type string' - - peaks_methods = { - 'peaks_weibull': peaks_distribution_weibull, - 'peaks_weibull_tail_fit': peaks_distribution_weibull_tail_fit, - 'peaks_over_threshold': peaks_distribution_peaks_over_threshold} - blockmaxima_methods = { - 'block_maxima_gev': ste_block_maxima_gev, - 'block_maxima_gumbel': ste_block_maxima_gumbel, - } - - if method in peaks_methods.keys(): - fit_peaks = peaks_methods[method] - _, peaks = global_peaks(t, data) - npeaks = len(peaks) - time = t[-1]-t[0] - nst = number_of_short_term_peaks(npeaks, time, t_st) - peaks_dist = fit_peaks(peaks) - ste = ste_peaks(peaks_dist, nst) - elif method in blockmaxima_methods.keys(): - fit_maxima = blockmaxima_methods[method] - maxima = block_maxima(t, data, t_st) - ste = fit_maxima(maxima) - else: - print("Passed `method` not found.") - return ste - - -def full_seastate_long_term_extreme(ste, weights): - """ - Return the long-term extreme distribution of a response of - interest using the full sea state approach. - - Parameters - ---------- - ste: list[scipy.stats.rv_frozen] - Short-term extreme distribution of the quantity of interest for - each sample sea state. - weights: list[floats] - The weights from the full sea state sampling - - Returns - ------- - ste: scipy.stats.rv_frozen - Short-term extreme distribution. - """ - assert isinstance( - ste, list), 'ste must be of type list[scipy.stats.rv_frozen]' - assert isinstance(weights, (list, np.ndarray) - ), 'weights must be of type list[floats]' - - class _LongTermExtreme(stats.rv_continuous): - - def __init__(self, *args, **kwargs): - weights = kwargs.pop('weights') - # make sure weights add to 1.0 - self.weights = weights / np.sum(weights) - self.ste = kwargs.pop('ste') - self.n = len(self.weights) - super().__init__(*args, **kwargs) - - def _cdf(self, x): - f = 0.0 - for w_i, ste_i in zip(self.weights, self.ste): - f += w_i * ste_i.cdf(x) - return f - - return _LongTermExtreme(name="long_term_extreme", weights=weights, ste=ste) - - -def mler_coefficients(rao, wave_spectrum, response_desired): - """ - Calculate MLER (most likely extreme response) coefficients from a - sea state spectrum and a response RAO. - - Parameters - ---------- - rao: numpy ndarray - Response amplitude operator. - wave_spectrum: pd.DataFrame - Wave spectral density [m^2/Hz] indexed by frequency [Hz]. - response_desired: int or float - Desired response, units should correspond to a motion RAO or - units of force for a force RAO. - - Returns - ------- - mler: pd.DataFrame - DataFrame containing conditioned wave spectral amplitude - coefficient [m^2-s], and Phase [rad] indexed by freq [Hz]. - """ - try: - rao = np.array(rao) - except: - pass - assert isinstance(rao, np.ndarray), 'rao must be of type np.ndarray' - assert isinstance(wave_spectrum, pd.DataFrame - ), 'wave_spectrum must be of type pd.DataFrame' - assert isinstance(response_desired, (int, float) - ), 'response_desired must be of type int or float' - - freq_hz = wave_spectrum.index.values - # convert from Hz to rad/s - freq = freq_hz * (2*np.pi) - # change from Hz to rad/s - wave_spectrum = wave_spectrum.iloc[:, 0].values / (2*np.pi) - # get delta - dw = (2*np.pi - 0.) / (len(freq)-1) - - spectrum_r = np.zeros(len(freq)) # [(response units)^2-s/rad] - _s = np.zeros(len(freq)) # [m^2-s/rad] - _a = np.zeros(len(freq)) # [m^2-s/rad] - _coeff_a_rn = np.zeros(len(freq)) # [1/(response units)] - _phase = np.zeros(len(freq)) - - # Note: waves.A is "S" in Quon2016; 'waves' naming convention - # matches WEC-Sim conventions (EWQ) - # Response spectrum [(response units)^2-s/rad] -- Quon2016 Eqn. 3 - spectrum_r[:] = np.abs(rao)**2 * (2*wave_spectrum) - - # calculate spectral moments and other important spectral values. - m0 = (frequency_moment(pd.Series(spectrum_r, index=freq), 0)).iloc[0, 0] - m1 = (frequency_moment(pd.Series(spectrum_r, index=freq), 1)).iloc[0, 0] - m2 = (frequency_moment(pd.Series(spectrum_r, index=freq), 2)).iloc[0, 0] - wBar = m1 / m0 - - # calculate coefficient A_{R,n} [(response units)^-1] -- Quon2016 Eqn. 8 - # Drummen version. Dietz has negative of this. - _coeff_a_rn[:] = np.abs(rao) * np.sqrt(2*wave_spectrum*dw) * \ - ((m2 - freq*m1) + wBar*(freq*m0 - m1)) / (m0*m2 - m1**2) - - # save the new spectral info to pass out - # Phase delay should be a positive number in this convention (AP) - _phase[:] = -np.unwrap(np.angle(rao)) - - # for negative values of Amp, shift phase by pi and flip sign - # for negative amplitudes, add a pi phase shift, then flip sign on - # negative Amplitudes - _phase[_coeff_a_rn < 0] -= np.pi - _coeff_a_rn[_coeff_a_rn < 0] *= -1 - - # calculate the conditioned spectrum [m^2-s/rad] - _s[:] = wave_spectrum * _coeff_a_rn[:]**2 * response_desired**2 - _a[:] = 2*wave_spectrum * _coeff_a_rn[:]**2 * \ - response_desired**2 - - # if the response amplitude we ask for is negative, we will add - # a pi phase shift to the phase information. This is because - # the sign of self.desiredRespAmp is lost in the squaring above. - # Ordinarily this would be put into the final equation, but we - # are shaping the wave information so that it is buried in the - # new spectral information, S. (AP) - if response_desired < 0: - _phase += np.pi - - mler = pd.DataFrame( - data={'WaveSpectrum': _s, 'Phase': _phase}, index=freq_hz) - mler = mler.fillna(0) - return mler - - -def mler_simulation(parameters=None): - """ - Define the simulation parameters that are used in various MLER - functionalities. - - See `extreme_response_contour_example.ipynb` example for how this is - useful. If no input is given, then default values are returned. - - Parameters - ---------- - parameters: dict (optional) - Simulation parameters. - Keys: - ----- - 'startTime': starting time [s] - 'endTime': ending time [s] - 'dT': time-step size [s] - 'T0': time of maximum event [s] - 'startx': start of simulation space [m] - 'endX': end of simulation space [m] - 'dX': horizontal spacing [m] - 'X': position of maximum event [m] - - Returns - ------- - sim: dict - Simulation parameters including spatial and time calculated - arrays. - """ - if not parameters == None: - assert isinstance(parameters, dict), 'parameters must be of type dict' - - sim = {} - - if parameters == None: - sim['startTime'] = -150.0 # [s] Starting time - sim['endTime'] = 150.0 # [s] Ending time - sim['dT'] = 1.0 # [s] Time-step size - sim['T0'] = 0.0 # [s] Time of maximum event - - sim['startX'] = -300.0 # [m] Start of simulation space - sim['endX'] = 300.0 # [m] End of simulation space - sim['dX'] = 1.0 # [m] Horiontal spacing - sim['X0'] = 0.0 # [m] Position of maximum event - else: - sim = parameters - - # maximum timestep index - sim['maxIT'] = int( - np.ceil((sim['endTime'] - sim['startTime'])/sim['dT'] + 1)) - sim['T'] = np.linspace(sim['startTime'], sim['endTime'], sim['maxIT']) - - sim['maxIX'] = int(np.ceil((sim['endX'] - sim['startX'])/sim['dX'] + 1)) - sim['X'] = np.linspace(sim['startX'], sim['endX'], sim['maxIX']) - - return sim - - -def mler_wave_amp_normalize(wave_amp, mler, sim, k): - """ - Function that renormalizes the incoming amplitude of the MLER wave - to the desired peak height (peak to MSL). - - Parameters - ---------- - wave_amp: float - Desired wave amplitude (peak to MSL). - mler: pd.DataFrame - MLER coefficients generated by 'mler_coefficients' function. - sim: dict - Simulation parameters formatted by output from - 'mler_simulation'. - k: numpy ndarray - Wave number. - - Returns - ------- - mler_norm : pd.DataFrame - MLER coefficients - """ - try: - k = np.array(k) - except: - pass - assert isinstance(mler, pd.DataFrame), 'mler must be of type pd.DataFrame' - assert isinstance(wave_amp, (int, float) - ), 'wave_amp must be of type int or float' - assert isinstance(sim, dict), 'sim must be of type dict' - assert isinstance(k, np.ndarray), 'k must be of type ndarray' - - freq = mler.index.values * 2*np.pi - dw = (max(freq) - min(freq)) / (len(freq)-1) # get delta - - wave_amp_time = np.zeros((sim['maxIX'], sim['maxIT'])) - for ix, x in enumerate(sim['X']): - for it, t in enumerate(sim['T']): - # conditioned wave - wave_amp_time[ix, it] = np.sum( - np.sqrt(2*mler['WaveSpectrum']*dw) * - np.cos(freq*(t-sim['T0']) - k*(x-sim['X0']) + mler['Phase']) - ) - - tmp_max_amp = np.max(np.abs(wave_amp_time)) - - # renormalization of wave amplitudes - rescale_fact = np.abs(wave_amp) / np.abs(tmp_max_amp) - # rescale the wave spectral amplitude coefficients - spectrum = mler['WaveSpectrum'] * rescale_fact**2 - - mler_norm = pd.DataFrame(index=mler.index) - mler_norm['WaveSpectrum'] = spectrum - mler_norm['Phase'] = mler['Phase'] - - return mler_norm - - -def mler_export_time_series(rao, mler, sim, k): - """ - Generate the wave amplitude time series at X0 from the calculated - MLER coefficients - - Parameters - ---------- - rao: numpy ndarray - Response amplitude operator. - mler: pd.DataFrame - MLER coefficients dataframe generated from an MLER function. - sim: dict - Simulation parameters formatted by output from - 'mler_simulation'. - k: numpy ndarray - Wave number. - - Returns - ------- - mler_ts: pd.DataFrame - Time series of wave height [m] and linear response [*] indexed - by time [s]. - - """ - try: - rao = np.array(rao) - except: - pass - try: - k = np.array(k) - except: - pass - assert isinstance(rao, np.ndarray), 'rao must be of type ndarray' - assert isinstance(mler, pd.DataFrame), 'mler must be of type pd.DataFrame' - assert isinstance(sim, dict), 'sim must be of type dict' - assert isinstance(k, np.ndarray), 'k must be of type ndarray' - - freq = mler.index.values * 2*np.pi # convert Hz to rad/s - dw = (max(freq) - min(freq)) / (len(freq)-1) # get delta - - # calculate the series - wave_amp_time = np.zeros((sim['maxIT'], 2)) - xi = sim['X0'] - for i, ti in enumerate(sim['T']): - # conditioned wave - wave_amp_time[i, 0] = np.sum( - np.sqrt(2*mler['WaveSpectrum']*dw) * - np.cos(freq*(ti-sim['T0']) + mler['Phase'] - k*(xi-sim['X0'])) - ) - # Response calculation - wave_amp_time[i, 1] = np.sum( - np.sqrt(2*mler['WaveSpectrum']*dw) * np.abs(rao) * - np.cos(freq*(ti-sim['T0']) - k*(xi-sim['X0'])) - ) - - mler_ts = pd.DataFrame(wave_amp_time, index=sim['T']) - mler_ts = mler_ts.rename(columns={0: 'WaveHeight', 1: 'LinearResponse'}) - - return mler_ts - - -def return_year_value(ppf, return_year, short_term_period_hr): - """ - Calculate the value from a given distribution corresponding to a particular - return year. - - Parameters - ---------- - ppf: callable function of 1 argument - Percentage Point Function (inverse CDF) of short term distribution. - return_year: int, float - Return period in years. - short_term_period_hr: int, float - Short term period the distribution is created from in hours. - - Returns - ------- - value: float - The value corresponding to the return period from the distribution. - """ - assert callable(ppf) - assert isinstance(return_year, (float, int)) - assert isinstance(short_term_period_hr, (float, int)) - - p = 1 / (return_year * 365.25 * 24 / short_term_period_hr) - - return ppf(1 - p) diff --git a/mhkit/loads/extreme/__init__.py b/mhkit/loads/extreme/__init__.py new file mode 100644 index 000000000..318a2cdc8 --- /dev/null +++ b/mhkit/loads/extreme/__init__.py @@ -0,0 +1,39 @@ +""" +This package provides tools and functions for extreme value analysis +and wave data statistics. + +It includes methods for calculating peaks over threshold, estimating +short-term extreme distributions,and performing wave amplitude +normalization for most likely extreme response analysis. +""" + +from mhkit.loads.extreme.extremes import ( + ste_peaks, + block_maxima, + ste_block_maxima_gev, + ste_block_maxima_gumbel, + ste, + short_term_extreme, + full_seastate_long_term_extreme, +) + +from mhkit.loads.extreme.mler import ( + mler_coefficients, + mler_simulation, + mler_wave_amp_normalize, + mler_export_time_series, +) + +from mhkit.loads.extreme.peaks import ( + _peaks_over_threshold, + global_peaks, + number_of_short_term_peaks, + peaks_distribution_weibull, + peaks_distribution_weibull_tail_fit, + automatic_hs_threshold, + peaks_distribution_peaks_over_threshold, +) + +from mhkit.loads.extreme.sample import ( + return_year_value, +) diff --git a/mhkit/loads/extreme/extremes.py b/mhkit/loads/extreme/extremes.py new file mode 100644 index 000000000..d89545c9d --- /dev/null +++ b/mhkit/loads/extreme/extremes.py @@ -0,0 +1,293 @@ +""" +This module provides functionality for estimating the short-term and +long-term extreme distributions of responses in a time series. It +includes methods for analyzing peaks, block maxima, and applying +statistical distributions to model extreme events. The module supports +various methods for short-term extreme estimation, including peaks +fitting with Weibull, tail fitting, peaks over threshold, and block +maxima methods with GEV (Generalized Extreme Value) and Gumbel +distributions. Additionally, it offers functionality to approximate +the long-term extreme distribution by weighting short-term extremes +across different sea states. + +Functions: +- ste_peaks: Estimates the short-term extreme distribution from peaks + distribution using specified statistical methods. +- block_maxima: Finds the block maxima in a time-series data to be used + in block maxima methods. +- ste_block_maxima_gev: Approximates the short-term extreme distribution + using the block maxima method with the GEV distribution. +- ste_block_maxima_gumbel: Approximates the short-term extreme + distribution using the block maxima method with the Gumbel distribution. +- ste: Alias for `short_term_extreme`, facilitating easier access to the + primary functionality of estimating short-term extremes. +- short_term_extreme: Core function to approximate the short-term extreme + distribution from a time series using chosen methods. +- full_seastate_long_term_extreme: Combines short-term extreme + distributions using weights to estimate the long-term extreme distribution. +""" + +from typing import Union + +import numpy as np +from scipy import stats +from scipy.stats import rv_continuous + +import mhkit.loads.extreme.peaks as peaks_distributions + + +def ste_peaks(peaks_distribution: rv_continuous, npeaks: float) -> rv_continuous: + """ + Estimate the short-term extreme distribution from the peaks + distribution. + + Parameters + ---------- + peaks_distribution: scipy.stats.rv_frozen + Probability distribution of the peaks. + npeaks : float + Number of peaks in short term period. + + Returns + ------- + short_term_extreme: scipy.stats.rv_frozen + Short-term extreme distribution. + """ + if not callable(peaks_distribution.cdf): + raise TypeError("peaks_distribution must be a scipy.stat distribution.") + if not isinstance(npeaks, float): + raise TypeError(f"npeaks must be of type float. Got: {type(npeaks)}") + + class _ShortTermExtreme(stats.rv_continuous): + def __init__(self, *args, **kwargs): + self.peaks = kwargs.pop("peaks_distribution") + self.npeaks = kwargs.pop("npeaks") + super().__init__(*args, **kwargs) + + def _cdf(self, x, *args, **kwargs): + peaks_cdf = np.array(self.peaks.cdf(x, *args, **kwargs)) + peaks_cdf[np.isnan(peaks_cdf)] = 0.0 + if len(peaks_cdf) == 1: + peaks_cdf = peaks_cdf[0] + return peaks_cdf**self.npeaks + + short_term_extreme_peaks = _ShortTermExtreme( + name="short_term_extreme", peaks_distribution=peaks_distribution, npeaks=npeaks + ) + return short_term_extreme_peaks + + +def block_maxima( + time: np.ndarray, global_peaks_data: np.ndarray, time_st: float +) -> np.ndarray: + """ + Find the block maxima of a time-series. + + The timeseries (time, global_peaks) is divided into blocks of length t_st, and the + maxima of each bloock is returned. + + Parameters + ---------- + time : np.array + Time array. + global_peaks_data : np.array + global peaks timeseries. + time_st : float + Short-term period. + + Returns + ------- + block_max: np.array + Block maxima (i.e. largest peak in each block). + """ + if not isinstance(time, np.ndarray): + raise TypeError(f"time must be of type np.ndarray. Got: {type(time)}") + if not isinstance(global_peaks_data, np.ndarray): + raise TypeError( + f"global_peaks_data must be of type np.ndarray. Got: {type(global_peaks_data)}" + ) + if not isinstance(time_st, float): + raise TypeError(f"time_st must be of type float. Got: {type(time_st)}") + + nblock = int(time[-1] / time_st) + block_max = np.zeros(int(nblock)) + for iblock in range(nblock): + i_x = global_peaks_data[ + (time >= iblock * time_st) & (time < (iblock + 1) * time_st) + ] + block_max[iblock] = np.max(i_x) + return block_max + + +def ste_block_maxima_gev(block_max): + """ + Approximate the short-term extreme distribution using the block + maxima method and the Generalized Extreme Value distribution. + + Parameters + ---------- + block_max: np.array + Block maxima (i.e. largest peak in each block). + + Returns + ------- + short_term_extreme_rv: scipy.stats.rv_frozen + Short-term extreme distribution. + """ + if not isinstance(block_max, np.ndarray): + raise TypeError(f"block_max must be of type np.ndarray. Got: {type(block_max)}") + + ste_params = stats.genextreme.fit(block_max) + param_names = ["c", "loc", "scale"] + ste_params = dict(zip(param_names, ste_params)) + short_term_extreme_rv = stats.genextreme(**ste_params) + short_term_extreme_rv.params = ste_params + return short_term_extreme_rv + + +def ste_block_maxima_gumbel(block_max): + """ + Approximate the short-term extreme distribution using the block + maxima method and the Gumbel (right) distribution. + + Parameters + ---------- + block_max: np.array + Block maxima (i.e. largest peak in each block). + + Returns + ------- + ste: scipy.stats.rv_frozen + Short-term extreme distribution. + """ + if not isinstance(block_max, np.ndarray): + raise TypeError(f"block_max must be of type np.ndarray. Got: {type(block_max)}") + + ste_params = stats.gumbel_r.fit(block_max) + param_names = ["loc", "scale"] + ste_params = dict(zip(param_names, ste_params)) + short_term_extreme_rv = stats.gumbel_r(**ste_params) + short_term_extreme_rv.params = ste_params + return short_term_extreme_rv + + +def ste(time: np.ndarray, data: np.ndarray, t_st: float, method: str) -> rv_continuous: + """ + Alias for `short_term_extreme`. + """ + ste_dist = short_term_extreme(time, data, t_st, method) + return ste_dist + + +def short_term_extreme( + time: np.ndarray, data: np.ndarray, t_st: float, method: str +) -> Union[rv_continuous, None]: + """ + Approximate the short-term extreme distribution from a + timeseries of the response using chosen method. + + The availabe methods are: 'peaks_weibull', 'peaks_weibull_tail_fit', + 'peaks_over_threshold', 'block_maxima_gev', and 'block_maxima_gumbel'. + For the block maxima methods the timeseries needs to be many times + longer than the short-term period. For the peak-fitting methods the + timeseries can be of arbitrary length. + + Parameters + ---------- + time: np.array + Time array. + data: np.array + Response timeseries. + t_st: float + Short-term period. + method : string + Method for estimating the short-term extreme distribution. + + Returns + ------- + short_term_extreme_dist: scipy.stats.rv_frozen + Short-term extreme distribution. + """ + if not isinstance(time, np.ndarray): + raise TypeError(f"time must be of type np.ndarray. Got: {type(time)}") + if not isinstance(data, np.ndarray): + raise TypeError(f"data must be of type np.ndarray. Got: {type(data)}") + if not isinstance(t_st, float): + raise TypeError(f"t_st must be of type float. Got: {type(t_st)}") + if not isinstance(method, str): + raise TypeError(f"method must be of type string. Got: {type(method)}") + + peaks_methods = { + "peaks_weibull": peaks_distributions.peaks_distribution_weibull, + "peaks_weibull_tail_fit": peaks_distributions.peaks_distribution_weibull_tail_fit, + "peaks_over_threshold": peaks_distributions.peaks_distribution_peaks_over_threshold, + } + blockmaxima_methods = { + "block_maxima_gev": ste_block_maxima_gev, + "block_maxima_gumbel": ste_block_maxima_gumbel, + } + + if method in peaks_methods: + fit_peaks = peaks_methods[method] + _, peaks = peaks_distributions.global_peaks(time, data) + npeaks = len(peaks) + time = time[-1] - time[0] + nst = peaks_distributions.number_of_short_term_peaks(npeaks, time, t_st) + peaks_dist = fit_peaks(peaks) + short_term_extreme_dist = ste_peaks(peaks_dist, nst) + elif method in blockmaxima_methods: + fit_maxima = blockmaxima_methods[method] + maxima = block_maxima(time, data, t_st) + short_term_extreme_dist = fit_maxima(maxima) + else: + print("Passed `method` not found.") + return short_term_extreme_dist + + +def full_seastate_long_term_extreme(short_term_extreme_dist, weights): + """ + Return the long-term extreme distribution of a response of + interest using the full sea state approach. + + Parameters + ---------- + ste: list[scipy.stats.rv_frozen] + Short-term extreme distribution of the quantity of interest for + each sample sea state. + weights: list, np.ndarray + The weights from the full sea state sampling + + Returns + ------- + ste: scipy.stats.rv_frozen + Short-term extreme distribution. + """ + if not isinstance(short_term_extreme_dist, list): + raise TypeError( + "short_term_extreme_dist must be of type list[scipy.stats.rv_frozen]." + + f"Got: {type(short_term_extreme_dist)}" + ) + if not isinstance(weights, (list, np.ndarray)): + raise TypeError( + f"weights must be of type list or np.ndarray. Got: {type(weights)}" + ) + + class _LongTermExtreme(stats.rv_continuous): + def __init__(self, *args, **kwargs): + weights = kwargs.pop("weights") + # make sure weights add to 1.0 + self.weights = weights / np.sum(weights) + self.ste = kwargs.pop("ste") + # Disabled bc not sure where/ how n is applied + self.n = len(self.weights) # pylint: disable=invalid-name + super().__init__(*args, **kwargs) + + def _cdf(self, x, *args, **kwargs): + weighted_cdf = 0.0 + for w_i, ste_i in zip(self.weights, self.ste): + weighted_cdf += w_i * ste_i.cdf(x, *args, **kwargs) + return weighted_cdf + + return _LongTermExtreme( + name="long_term_extreme", weights=weights, ste=short_term_extreme_dist + ) diff --git a/mhkit/loads/extreme/mler.py b/mhkit/loads/extreme/mler.py new file mode 100644 index 000000000..2922fc3b9 --- /dev/null +++ b/mhkit/loads/extreme/mler.py @@ -0,0 +1,458 @@ +""" +This module provides functionalities to calculate and analyze Most +Likely Extreme Response (MLER) coefficients for wave energy converter +design and risk assessment. It includes functions to: + + - Calculate MLER coefficients (`mler_coefficients`) from a sea state + spectrum and a response Amplitude Response Operator (ARO). + - Define and manipulate simulation parameters (`mler_simulation`) used + across various MLER analyses. + - Renormalize the incoming amplitude of the MLER wave + (`mler_wave_amp_normalize`) to match the desired peak height for more + accurate modeling and analysis. + - Export the wave amplitude time series (`mler_export_time_series`) + based on the calculated MLER coefficients for further analysis or + visualization. +""" + +from typing import Union, List, Optional, Dict, Any + +import pandas as pd +import xarray as xr +import numpy as np +from numpy.typing import NDArray + +from mhkit.wave.resource import frequency_moment + +SimulationParameters = Dict[str, Union[float, int, np.ndarray]] + + +def _calculate_spectral_values( + freq_hz: Union[np.ndarray, pd.Series], + rao_array: np.ndarray, + wave_spectrum: Union[pd.Series, pd.DataFrame, np.ndarray], + d_w: float, +) -> Dict[str, Union[float, np.ndarray]]: + """ + Calculates spectral moments and the coefficient A_{R,n} from a given sea state spectrum + and a response RAO. + + Parameters + ---------- + spectrum_r : Union[np.ndarray, pd.Series] + Real part of the spectrum. + freq_hz : Union[np.ndarray, pd.Series] + Frequencies in Hz corresponding to spectrum_r. + rao : numpy ndarray + Response Amplitude Operator (RAO) of the system. + wave_spectrum : Union[pd.Series, pd.DataFrame, np.ndarray] + Wave spectrum values corresponding to freq_hz. + d_w : float + Delta omega, the frequency interval. + + Returns + ------- + Dict[str, Union[float, np.ndarray]] + A dictionary containing spectral moments (m_0, m_1, m_2) and the coefficient A_{R,n}. + """ + # Note: waves.A is "S" in Quon2016; 'waves' naming convention + # matches WEC-Sim conventions (EWQ) + # Response spectrum [(response units)^2-s/rad] -- Quon2016 Eqn. 3 + spectrum_r = np.abs(rao_array) ** 2 * (2 * wave_spectrum) + + # Calculate spectral moments + m_0 = frequency_moment(pd.Series(spectrum_r, index=freq_hz), 0).iloc[0, 0] + m_1 = frequency_moment(pd.Series(spectrum_r, index=freq_hz), 1).iloc[0, 0] + m_2 = frequency_moment(pd.Series(spectrum_r, index=freq_hz), 2).iloc[0, 0] + + # Calculate coefficient A_{R,n} + coeff_a_rn = ( + np.abs(rao_array) + * np.sqrt(2 * wave_spectrum * d_w) + * ((m_2 - freq_hz * m_1) + (m_1 / m_0) * (freq_hz * m_0 - m_1)) + / (m_0 * m_2 - m_1**2) + ) + + return { + "m_0": m_0, + "m_1": m_1, + "m_2": m_2, + "coeff_a_rn": coeff_a_rn, + } + + +def mler_coefficients( + rao: Union[NDArray[np.float_], pd.Series, List[float], List[int], xr.DataArray], + wave_spectrum: Union[pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset], + response_desired: Union[int, float], + frequency_dimension: str = "", + to_pandas: bool = True, +) -> Union[pd.DataFrame, xr.Dataset]: + """ + Calculate MLER (most likely extreme response) coefficients from a + sea state spectrum and a response RAO. + + Parameters + ---------- + rao: numpy ndarray + Response amplitude operator. + wave_spectrum: pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset + Wave spectral density [m^2/Hz] indexed by frequency [Hz]. + DataFrame and Dataset inputs should only have one data variable + response_desired: int or float + Desired response, units should correspond to a motion RAO or + units of force for a force RAO. + frequency_dimension: string (optional) + Name of the xarray dimension corresponding to frequency. If not supplied, + defaults to the first dimension. Does not affect pandas input. + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. + + Returns + ------- + mler: pandas DataFrame or xarray Dataset + DataFrame containing conditioned wave spectral amplitude + coefficient [m^2-s], and Phase [rad] indexed by freq [Hz]. + """ + + if isinstance(rao, (list, pd.Series, xr.DataArray)): + rao_array = np.array(rao) + elif isinstance(rao, np.ndarray): + rao_array = rao + else: + raise TypeError( + "Unsupported type for 'rao'. Must be one of: list, pd.Series, \ + np.ndarray, xr.DataArray." + ) + + if not isinstance(rao_array, np.ndarray): + raise TypeError(f"rao must be of type np.ndarray. Got: {type(rao_array)}") + if not isinstance( + wave_spectrum, (pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset) + ): + raise TypeError( + f"wave_spectrum must be of type pd.Series, pd.DataFrame, " + f"xr.DataArray, or xr.Dataset. Got: {type(wave_spectrum)}" + ) + if not isinstance(response_desired, (int, float)): + raise TypeError( + f"response_desired must be of type int or float. Got: {type(response_desired)}" + ) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + # Convert input to xarray DataArray + if isinstance(wave_spectrum, (pd.Series, pd.DataFrame)): + wave_spectrum = wave_spectrum.squeeze().to_xarray() + + if isinstance(wave_spectrum, xr.Dataset): + if len(wave_spectrum.data_vars) > 1: + raise ValueError( + f"wave_spectrum can only contain one variable. Got {list(wave_spectrum.data_vars)}." + ) + wave_spectrum = wave_spectrum.to_array() + + if frequency_dimension == "": + frequency_dimension = list(wave_spectrum.coords)[0] + + # convert from Hz to rad/s + freq_hz = wave_spectrum.coords[frequency_dimension].values * (2 * np.pi) + wave_spectrum = wave_spectrum.to_numpy() / (2 * np.pi) + + # get frequency step + d_w = 2.0 * np.pi / (len(freq_hz) - 1) + + spectral_values = _calculate_spectral_values(freq_hz, rao_array, wave_spectrum, d_w) + + # save the new spectral info to pass out + # Phase delay should be a positive number in this convention (AP) + _phase = -np.unwrap(np.angle(rao_array)) + + # for negative values of Amp, shift phase by pi and flip sign + # for negative amplitudes, add a pi phase shift, then flip sign on + # negative Amplitudes + _phase[spectral_values["coeff_a_rn"] < 0] -= np.pi + spectral_values["coeff_a_rn"][spectral_values["coeff_a_rn"] < 0] *= -1 + + # calculate the conditioned spectrum [m^2-s/rad] + conditioned_spectrum = ( + wave_spectrum * spectral_values["coeff_a_rn"] ** 2 * response_desired**2 + ) + + # if the response amplitude we ask for is negative, we will add + # a pi phase shift to the phase information. This is because + # the sign of self.desiredRespAmp is lost in the squaring above. + # Ordinarily this would be put into the final equation, but we + # are shaping the wave information so that it is buried in the + # new spectral information, S. (AP) + if response_desired < 0: + _phase += np.pi + + mler = xr.Dataset( + { + "WaveSpectrum": (["frequency"], np.array(conditioned_spectrum)), + "Phase": (["frequency"], _phase + np.pi * (response_desired < 0)), + }, + coords={"frequency": freq_hz}, + ) + mler.fillna(0) + + return mler.to_pandas() if to_pandas else mler + + +def mler_simulation( + parameters: Optional[SimulationParameters] = None, +) -> SimulationParameters: + """ + Define the simulation parameters that are used in various MLER + functionalities. + + See `extreme_response_contour_example.ipynb` example for how this is + useful. If no input is given, then default values are returned. + + Parameters + ---------- + parameters: dict (optional) + Simulation parameters. + Keys: + ----- + - 'startTime': starting time [s] + - 'endTime': ending time [s] + - 'dT': time-step size [s] + - 'T0': time of maximum event [s] + - 'startx': start of simulation space [m] + - 'endX': end of simulation space [m] + - 'dX': horizontal spacing [m] + - 'X': position of maximum event [m] + The following keys are calculated from the above parameters: + - 'maxIT': int, maximum timestep index + - 'T': np.ndarray, time array + - 'maxIX': int, maximum index for space + - 'X': np.ndarray, space array + + Returns + ------- + sim: dict + Simulation parameters including spatial and time calculated + arrays. + """ + if not isinstance(parameters, (type(None), dict)): + raise TypeError( + f"If specified, parameters must be of type dict. Got: {type(parameters)}" + ) + + sim = {} + + if parameters is None: + sim["startTime"] = -150.0 # [s] Starting time + sim["endTime"] = 150.0 # [s] Ending time + sim["dT"] = 1.0 # [s] Time-step size + sim["T0"] = 0.0 # [s] Time of maximum event + sim["startX"] = -300.0 # [m] Start of simulation space + sim["endX"] = 300.0 # [m] End of simulation space + sim["dX"] = 1.0 # [m] Horiontal spacing + sim["X0"] = 0.0 # [m] Position of maximum event + else: + sim = parameters + + # maximum timestep index + sim["maxIT"] = int(np.ceil((sim["endTime"] - sim["startTime"]) / sim["dT"] + 1)) + sim["T"] = np.linspace(sim["startTime"], sim["endTime"], sim["maxIT"]) + + sim["maxIX"] = int(np.ceil((sim["endX"] - sim["startX"]) / sim["dX"] + 1)) + sim["X"] = np.linspace(sim["startX"], sim["endX"], sim["maxIX"]) + + return sim + + +def mler_wave_amp_normalize( + wave_amp: float, + mler: Union[pd.DataFrame, xr.Dataset], + sim: SimulationParameters, + k: Union[NDArray[np.float_], List[float], pd.Series], + **kwargs: Any, +) -> Union[pd.DataFrame, xr.Dataset]: + """ + Function that renormalizes the incoming amplitude of the MLER wave + to the desired peak height (peak to MSL). + + Parameters + ---------- + wave_amp: float + Desired wave amplitude (peak to MSL). + mler: pandas DataFrame or xarray Dataset + MLER coefficients generated by 'mler_coefficients' function. + sim: dict + Simulation parameters formatted by output from + 'mler_simulation'. + k: numpy ndarray + Wave number + frequency_dimension: string (optional) + Name of the xarray dimension corresponding to frequency. If not supplied, + defaults to the first dimension. Does not affect pandas input. + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. + + Returns + ------- + mler_norm : pandas DataFrame or xarray Dataset + MLER coefficients + """ + frequency_dimension = kwargs.get("frequency_dimension", "") + to_pandas = kwargs.get("to_pandas", True) + + k_array = np.array(k, dtype=float) if not isinstance(k, np.ndarray) else k + + if not isinstance(mler, (pd.DataFrame, xr.Dataset)): + raise TypeError( + f"mler must be of type pd.DataFrame or xr.Dataset. Got: {type(mler)}" + ) + if not isinstance(wave_amp, (int, float)): + raise TypeError(f"wave_amp must be of type int or float. Got: {type(wave_amp)}") + if not isinstance(sim, dict): + raise TypeError(f"sim must be of type dict. Got: {type(sim)}") + if not isinstance(frequency_dimension, str): + raise TypeError( + "frequency_dimension must be of type bool." + + f"Got: {type(frequency_dimension)}" + ) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + # If input is pandas, convert to xarray + mler_xr = mler.to_xarray() if isinstance(mler, pd.DataFrame) else mler() + + # Determine frequency dimension + freq_dim = frequency_dimension or list(mler_xr.coords)[0] + # freq = mler_xr.coords[freq_dim].values * 2 * np.pi + # d_w = np.diff(freq).mean() + + wave_amp_time = np.array( + [ + np.sum( + np.sqrt( + 2 + * mler_xr["WaveSpectrum"].values + * np.diff(mler_xr.coords[freq_dim].values * 2 * np.pi).mean() + ) + * np.cos( + mler_xr.coords[freq_dim].values * 2 * np.pi * (t - sim["T0"]) + - k_array * (x - sim["X0"]) + + mler_xr["Phase"].values + ) + ) + for x in np.linspace(sim["startX"], sim["endX"], sim["maxIX"]) + for t in np.linspace(sim["startTime"], sim["endTime"], sim["maxIT"]) + ] + ).reshape(sim["maxIX"], sim["maxIT"]) + + rescale_fact = np.abs(wave_amp) / np.max(np.abs(wave_amp_time)) + + # Rescale the wave spectral amplitude coefficients and assign phase + mler_norm = xr.Dataset( + { + "WaveSpectrum": ( + ["frequency"], + mler_xr["WaveSpectrum"].data * rescale_fact**2, + ), + "Phase": (["frequency"], mler_xr["Phase"].data), + }, + coords={"frequency": (["frequency"], mler_xr.coords[freq_dim].data)}, + ) + return mler_norm.to_pandas() if to_pandas else mler_norm + + +def mler_export_time_series( + rao: Union[NDArray[np.float_], List[float], pd.Series], + mler: Union[pd.DataFrame, xr.Dataset], + sim: SimulationParameters, + k: Union[NDArray[np.float_], List[float], pd.Series], + **kwargs: Any, +) -> Union[pd.DataFrame, xr.Dataset]: + """ + Generate the wave amplitude time series at X0 from the calculated + MLER coefficients + + Parameters + ---------- + rao: numpy ndarray + Response amplitude operator. + mler: pandas DataFrame or xarray Dataset + MLER coefficients dataframe generated from an MLER function. + sim: dict + Simulation parameters formatted by output from + 'mler_simulation'. + k: numpy ndarray + Wave number. + frequency_dimension: string (optional) + Name of the xarray dimension corresponding to frequency. If not supplied, + defaults to the first dimension. Does not affect pandas input. + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. + + Returns + ------- + mler_ts: pandas DataFrame or xarray Dataset + Time series of wave height [m] and linear response [*] indexed + by time [s]. + + """ + frequency_dimension = kwargs.get("frequency_dimension", "") + to_pandas = kwargs.get("to_pandas", True) + + if not isinstance(rao, np.ndarray): + raise TypeError(f"rao must be of type ndarray. Got: {type(rao)}") + if not isinstance(mler, (pd.DataFrame, xr.Dataset)): + raise TypeError( + f"mler must be of type pd.DataFrame or xr.Dataset. Got: {type(mler)}" + ) + if not isinstance(sim, dict): + raise TypeError(f"sim must be of type dict. Got: {type(sim)}") + if not isinstance(k, (np.ndarray, list, pd.Series)): + raise TypeError(f"k must be of type ndarray. Got: {type(k)}") + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + if not isinstance(frequency_dimension, str): + raise TypeError( + f"frequency_dimension must be of type str. Got: {type(frequency_dimension)}" + ) + + rao = np.array(rao, dtype=float) if not isinstance(rao, np.ndarray) else rao + k = np.array(k, dtype=float) if not isinstance(k, np.ndarray) else k + # If input is pandas, convert to xarray + mler = mler if isinstance(mler, xr.Dataset) else mler.to_xarray() + + # Handle optional frequency dimension + frequency_dimension = ( + frequency_dimension if frequency_dimension else list(mler.coords)[0] + ) + freq = mler.coords[frequency_dimension].values * 2 * np.pi + d_w = np.diff(freq).mean() + + wave_height = np.zeros(len(sim["T"])) + linear_response = np.zeros(len(sim["T"])) + for i, t_i in enumerate(sim["T"]): + cos_terms = np.cos( + freq * (t_i - sim["T0"]) + - k * (sim["X0"] - sim["X0"]) + + mler["Phase"].values + ) + wave_height[i] = np.sum(np.sqrt(2 * mler["WaveSpectrum"] * d_w) * cos_terms) + + linear_response[i] = np.sum( + np.sqrt(2 * mler["WaveSpectrum"] * d_w) + * np.abs(rao) + * np.cos(freq * (t_i - sim["T0"]) - k * (sim["X0"] - sim["X0"])) + ) + + # Construct the output dataset + mler_ts = xr.Dataset( + { + "WaveHeight": (["time"], wave_height), + "LinearResponse": (["time"], linear_response), + }, + coords={"time": sim["T"]}, + ) + + # Convert to pandas DataFrame if requested + return mler_ts.to_dataframe() if to_pandas else mler_ts diff --git a/mhkit/loads/extreme/peaks.py b/mhkit/loads/extreme/peaks.py new file mode 100644 index 000000000..3f588237a --- /dev/null +++ b/mhkit/loads/extreme/peaks.py @@ -0,0 +1,481 @@ +""" +This module provides utilities for analyzing wave data, specifically +for identifying significant wave heights and estimating wave peak +distributions using statistical methods. + +Functions: +- _calculate_window_size: Calculates the window size for peak + independence using the auto-correlation function of wave peaks. +- _peaks_over_threshold: Identifies peaks over a specified + threshold and returns independent storm peak values adjusted by + the threshold. +- global_peaks: Identifies global peaks in a zero-centered + response time-series based on consecutive zero up-crossings. +- number_of_short_term_peaks: Estimates the number of peaks within a + specified short-term period. +- peaks_distribution_weibull: Estimates the peaks distribution by + fitting a Weibull distribution to the peaks of the response. +- peaks_distribution_weibull_tail_fit: Estimates the peaks distribution + using the Weibull tail fit method. +- automatic_hs_threshold: Determines the best significant wave height + threshold for the peaks-over-threshold method. +- peaks_distribution_peaks_over_threshold: Estimates the peaks + distribution using the peaks over threshold method by fitting a + generalized Pareto distribution. + +References: +- Neary, V. S., S. Ahn, B. E. Seng, M. N. Allahdadi, T. Wang, Z. Yang, + and R. He (2020). "Characterization of Extreme Wave Conditions for + Wave Energy Converter Design and Project Risk Assessment.” J. Mar. + Sci. Eng. 2020, 8(4), 289; https://doi.org/10.3390/jmse8040289. + +""" + +from typing import List, Tuple, Optional + +import numpy as np +from numpy.typing import NDArray +from scipy import stats, optimize, signal +from scipy.stats import rv_continuous + +from mhkit.utils import upcrossing + + +def _calculate_window_size(peaks: NDArray[np.float64], sampling_rate: float) -> float: + """ + Calculate the window size for independence based on the auto-correlation function. + + Parameters + ---------- + peaks : np.ndarray + A NumPy array of peak values from a time series. + sampling_rate : float + The sampling rate of the time series in Hz (samples per second). + + Returns + ------- + float + The window size determined by the auto-correlation function. + """ + n_lags = int(14 * 24 / sampling_rate) + deviations_from_mean = peaks - np.mean(peaks) + acf = signal.correlate(deviations_from_mean, deviations_from_mean, mode="full") + lag = signal.correlation_lags(len(peaks), len(peaks), mode="full") + idx_zero = np.argmax(lag == 0) + positive_lag = lag[idx_zero : idx_zero + n_lags + 1] + acf_positive = acf[idx_zero : idx_zero + n_lags + 1] / acf[idx_zero] + + window_size = sampling_rate * positive_lag[acf_positive < 0.5][0] + return window_size / sampling_rate + + +def _peaks_over_threshold( + peaks: NDArray[np.float64], threshold: float, sampling_rate: float +) -> List[float]: + """ + Identifies peaks in a time series that are over a specified threshold and + returns a list of independent storm peak values adjusted by the threshold. + Independence is determined by a window size calculated from the auto-correlation + function to ensure that peaks are separated by at least the duration + corresponding to the first significant drop in auto-correlation. + + Parameters + ---------- + peaks : np.ndarray + A NumPy array of peak values from a time series. + threshold : float + The percentile threshold (0-1) to identify significant peaks. + For example, 0.95 for the 95th percentile. + sampling_rate : float + The sampling rate of the time series in Hz (samples per second). + + Returns + ------- + List[float] + A list of peak values exceeding the specified threshold, adjusted + for independence based on the calculated window size. + + Notes + ----- + This function requires the global_peaks function to identify the + maxima between consecutive zero up-crossings and uses the signal processing + capabilities from scipy.signal for calculating the auto-correlation function. + """ + threshold_unit = np.percentile(peaks, 100 * threshold, method="hazen") + idx_peaks = np.arange(len(peaks)) + idx_storm_peaks, storm_peaks = global_peaks(idx_peaks, peaks - threshold_unit) + idx_storm_peaks = idx_storm_peaks.astype(int) + + independent_storm_peaks = [storm_peaks[0]] + idx_independent_storm_peaks = [idx_storm_peaks[0]] + + window = _calculate_window_size(peaks, sampling_rate) + + for idx in idx_storm_peaks[1:]: + if (idx - idx_independent_storm_peaks[-1]) > window: + idx_independent_storm_peaks.append(idx) + independent_storm_peaks.append(peaks[idx] - threshold_unit) + elif peaks[idx] > independent_storm_peaks[-1]: + idx_independent_storm_peaks[-1] = idx + independent_storm_peaks[-1] = peaks[idx] - threshold_unit + + return independent_storm_peaks + + +def global_peaks(time: np.ndarray, data: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: + """ + Find the global peaks of a zero-centered response time-series. + + The global peaks are the maxima between consecutive zero + up-crossings. + + Parameters + ---------- + time: np.array + Time array. + data: np.array + Response time-series. + + Returns + ------- + time_peaks: np.array + Time array for peaks + peaks: np.array + Peak values of the response time-series + """ + if not isinstance(time, np.ndarray): + raise TypeError(f"time must be of type np.ndarray. Got: {type(time)}") + if not isinstance(data, np.ndarray): + raise TypeError(f"data must be of type np.ndarray. Got: {type(data)}") + + # Find zero up-crossings + inds = upcrossing(time, data) + + # We also include the final point in the dataset + inds = np.append(inds, len(data) - 1) + + # As we want to return both the time and peak + # values, look for the index at the peak. + # The call to argmax gives us the index within the + # upcrossing period. Therefore to get the index in the + # original array we need to add on the index that + # starts the zero crossing period, ind1. + def find_peak_index(ind1, ind2): + return np.argmax(data[ind1:ind2]) + ind1 + + peak_inds = np.array( + [find_peak_index(ind1, inds[i + 1]) for i, ind1 in enumerate(inds[:-1])], + dtype=int, + ) + + return time[peak_inds], data[peak_inds] + + +def number_of_short_term_peaks(n_peaks: int, time: float, time_st: float) -> float: + """ + Estimate the number of peaks in a specified period. + + Parameters + ---------- + n_peaks : int + Number of peaks in analyzed timeseries. + time : float + Length of time of analyzed timeseries. + time_st: float + Short-term period for which to estimate the number of peaks. + + Returns + ------- + n_st : float + Number of peaks in short term period. + """ + if not isinstance(n_peaks, int): + raise TypeError(f"n_peaks must be of type int. Got: {type(n_peaks)}") + if not isinstance(time, float): + raise TypeError(f"time must be of type float. Got: {type(time)}") + if not isinstance(time_st, float): + raise TypeError(f"time_st must be of type float. Got: {type(time_st)}") + + return n_peaks * time_st / time + + +def peaks_distribution_weibull(peaks_data: NDArray[np.float_]) -> rv_continuous: + """ + Estimate the peaks distribution by fitting a Weibull + distribution to the peaks of the response. + + The fitted parameters can be accessed through the `params` field of + the returned distribution. + + Parameters + ---------- + peaks_data : NDArray[np.float_] + Global peaks. + + Returns + ------- + peaks: scipy.stats.rv_frozen + Probability distribution of the peaks. + """ + if not isinstance(peaks_data, np.ndarray): + raise TypeError( + f"peaks_data must be of type np.ndarray. Got: {type(peaks_data)}" + ) + + # peaks distribution + peaks_params = stats.exponweib.fit(peaks_data, f0=1, floc=0) + param_names = ["a", "c", "loc", "scale"] + peaks_params = dict(zip(param_names, peaks_params)) + peaks = stats.exponweib(**peaks_params) + # save the parameter info + peaks.params = peaks_params + return peaks + + +# pylint: disable=R0914 +def peaks_distribution_weibull_tail_fit( + peaks_data: NDArray[np.float_], +) -> rv_continuous: + """ + Estimate the peaks distribution using the Weibull tail fit + method. + + The fitted parameters can be accessed through the `params` field of + the returned distribution. + + Parameters + ---------- + peaks_data : np.array + Global peaks. + + Returns + ------- + peaks: scipy.stats.rv_frozen + Probability distribution of the peaks. + """ + if not isinstance(peaks_data, np.ndarray): + raise TypeError( + f"peaks_data must be of type np.ndarray. Got: {type(peaks_data)}" + ) + + # Initial guess for Weibull parameters + p_0 = stats.exponweib.fit(peaks_data, f0=1, floc=0) + p_0 = np.array([p_0[1], p_0[3]]) + # Approximate CDF + peaks_data = np.sort(peaks_data) + n_peaks = len(peaks_data) + cdf_positions = np.zeros(n_peaks) + for i in range(n_peaks): + cdf_positions[i] = i / (n_peaks + 1.0) + # Divide into seven sets & fit Weibull + subset_shape_params = np.zeros(7) + subset_scale_params = np.zeros(7) + set_lim = np.arange(0.60, 0.90, 0.05) + + def weibull_cdf(data_points, shape, scale): + return stats.exponweib(a=1, c=shape, loc=0, scale=scale).cdf(data_points) + + for local_set in range(7): + global_peaks_set = peaks_data[(cdf_positions > set_lim[local_set])] + cdf_positions_set = cdf_positions[(cdf_positions > set_lim[local_set])] + # pylint: disable=W0632 + p_opt, _ = optimize.curve_fit( + weibull_cdf, global_peaks_set, cdf_positions_set, p0=p_0 + ) + subset_shape_params[local_set] = p_opt[0] + subset_scale_params[local_set] = p_opt[1] + # peaks distribution + peaks_params = [1, np.mean(subset_shape_params), 0, np.mean(subset_scale_params)] + param_names = ["a", "c", "loc", "scale"] + peaks_params = dict(zip(param_names, peaks_params)) + peaks = stats.exponweib(**peaks_params) + # save the parameter info + peaks.params = peaks_params + peaks.subset_shape_params = subset_shape_params + peaks.subset_scale_params = subset_scale_params + return peaks + + +# pylint: disable=R0914 +def automatic_hs_threshold( + peaks: NDArray[np.float_], + sampling_rate: float, + initial_threshold_range: Tuple[float, float, float] = (0.990, 0.995, 0.001), + max_refinement: int = 5, +) -> Tuple[float, float]: + """ + Find the best significant wave height threshold for the + peaks-over-threshold method. + + This method was developed by: + + > Neary, V. S., S. Ahn, B. E. Seng, M. N. Allahdadi, T. Wang, Z. Yang and R. He (2020). + > "Characterization of Extreme Wave Conditions for Wave Energy Converter Design and + > Project Risk Assessment.” + > J. Mar. Sci. Eng. 2020, 8(4), 289; https://doi.org/10.3390/jmse8040289. + + Please cite this paper if using this method. + + After all thresholds in the initial range are evaluated, the search + range is refined around the optimal point until either (i) there + is minimal change from the previous refinement results, (ii) the + number of data points become smaller than about 1 per year, or (iii) + the maximum number of iterations is reached. + + Parameters + ---------- + peaks: NDArray[np.float_] + Peak values of the response time-series. + sampling_rate: float + Sampling rate in hours. + initial_threshold_range: Tuple[float, float, float] + Initial range of thresholds to search. Described as + (min, max, step). + max_refinement: int + Maximum number of times to refine the search range. + + Returns + ------- + Tuple[float, float] + The best threshold and its corresponding unit. + + """ + if not isinstance(sampling_rate, (float, int)): + raise TypeError( + f"sampling_rate must be of type float or int. Got: {type(sampling_rate)}" + ) + if not isinstance(peaks, np.ndarray): + raise TypeError(f"peaks must be of type np.ndarray. Got: {type(peaks)}") + if not len(initial_threshold_range) == 3: + raise ValueError( + f"initial_threshold_range must be length 3. Got: {len(initial_threshold_range)}" + ) + if not isinstance(max_refinement, int): + raise TypeError( + f"max_refinement must be of type int. Got: {type(max_refinement)}" + ) + + range_min, range_max, range_step = initial_threshold_range + best_threshold = -1 + years = len(peaks) / (365.25 * 24 / sampling_rate) + + for i in range(max_refinement): + thresholds = np.arange(range_min, range_max, range_step) + correlations = [] + + for threshold in thresholds: + distribution = stats.genpareto + over_threshold = _peaks_over_threshold(peaks, threshold, sampling_rate) + rate_per_year = len(over_threshold) / years + if rate_per_year < 2: + break + distributions_parameters = distribution.fit(over_threshold, floc=0.0) + _, (_, _, correlation) = stats.probplot( + peaks, distributions_parameters, distribution, fit=True + ) + correlations.append(correlation) + + max_i = np.argmax(correlations) + minimal_change = np.abs(best_threshold - thresholds[max_i]) < 0.0005 + best_threshold = thresholds[max_i] + if minimal_change and i < max_refinement - 1: + break + range_step /= 10 + if max_i == len(thresholds) - 1: + range_min = thresholds[max_i - 1] + range_max = thresholds[max_i] + 5 * range_step + elif max_i == 0: + range_min = thresholds[max_i] - 9 * range_step + range_max = thresholds[max_i + 1] + else: + range_min = thresholds[max_i - 1] + range_max = thresholds[max_i + 1] + + best_threshold_unit = np.percentile(peaks, 100 * best_threshold, method="hazen") + return best_threshold, best_threshold_unit + + +def peaks_distribution_peaks_over_threshold( + peaks_data: NDArray[np.float_], threshold: Optional[float] = None +) -> rv_continuous: + """ + Estimate the peaks distribution using the peaks over threshold + method. + + This fits a generalized Pareto distribution to all the peaks above + the specified threshold. The distribution is only defined for values + above the threshold and therefore cannot be used to obtain integral + metrics such as the expected value. A typical choice of threshold is + 1.4 standard deviations above the mean. The peaks over threshold + distribution can be accessed through the `pot` field of the returned + peaks distribution. + + Parameters + ---------- + peaks_data : NDArray[np.float_] + Global peaks. + threshold : Optional[float] + Threshold value. Only peaks above this value will be used. + Default value calculated as: `np.mean(x) + 1.4 * np.std(x)` + + Returns + ------- + peaks: rv_continuous + Probability distribution of the peaks. + """ + if not isinstance(peaks_data, np.ndarray): + raise TypeError( + f"peaks_data must be of type np.ndarray. Got: {type(peaks_data)}" + ) + if threshold is None: + threshold = np.mean(peaks_data) + 1.4 * np.std(peaks_data) + if threshold is not None and not isinstance(threshold, float): + raise TypeError( + f"If specified, threshold must be of type float. Got: {type(threshold)}" + ) + + # peaks over threshold + peaks_data = np.sort(peaks_data) + pot = peaks_data[peaks_data > threshold] - threshold + npeaks = len(peaks_data) + npot = len(pot) + # Fit a generalized Pareto + pot_params = stats.genpareto.fit(pot, floc=0.0) + param_names = ["c", "loc", "scale"] + pot_params = dict(zip(param_names, pot_params)) + pot = stats.genpareto(**pot_params) + # save the parameter info + pot.params = pot_params + + # peaks + class _Peaks(rv_continuous): + def __init__( + self, pot_distribution: rv_continuous, threshold: float, *args, **kwargs + ): + self.pot = pot_distribution + self.threshold = threshold + super().__init__(*args, **kwargs) + + # pylint: disable=arguments-differ + def _cdf(self, data_points, *args, **kwds) -> NDArray[np.float_]: + # Convert data_points to a NumPy array if it's not already + data_points = np.atleast_1d(data_points) + out = np.zeros_like(data_points) + + # Use the instance's threshold attribute instead of passing as a parameter + below_threshold = data_points < self.threshold + out[below_threshold] = np.NaN + + above_threshold_indices = ~below_threshold + if np.any(above_threshold_indices): + points_above_threshold = data_points[above_threshold_indices] + pot_ccdf = 1.0 - self.pot.cdf( + points_above_threshold - self.threshold, *args, **kwds + ) + prop_pot = npot / npeaks + out[above_threshold_indices] = 1.0 - (prop_pot * pot_ccdf) + return out + + peaks = _Peaks(name="peaks", pot_distribution=pot, threshold=threshold) + peaks.pot = pot + return peaks diff --git a/mhkit/loads/extreme/sample.py b/mhkit/loads/extreme/sample.py new file mode 100644 index 000000000..3da0377de --- /dev/null +++ b/mhkit/loads/extreme/sample.py @@ -0,0 +1,52 @@ +""" +This module provides statistical analysis tools for extreme value +analysis in environmental and engineering applications. It focuses on +estimating values corresponding to specific return periods based on +the statistical distribution of observed or simulated data. + +Functionality: +- return_year_value: Calculates the value from a given distribution + corresponding to a specified return year. This function is particularly + useful for determining design values for engineering structures or for + risk assessment in environmental studies. + +""" + +from typing import Callable + + +def return_year_value( + ppf: Callable[[float], float], return_year: float, short_term_period_hr: float +) -> float: + """ + Calculate the value from a given distribution corresponding to a particular + return year. + + Parameters + ---------- + ppf: callable function of 1 argument + Percentage Point Function (inverse CDF) of short term distribution. + return_year: int, float + Return period in years. + short_term_period_hr: int, float + Short term period the distribution is created from in hours. + + Returns + ------- + value: float + The value corresponding to the return period from the distribution. + """ + if not callable(ppf): + raise TypeError("ppf must be a callable Percentage Point Function") + if not isinstance(return_year, (float, int)): + raise TypeError( + f"return_year must be of type float or int. Got: {type(return_year)}" + ) + if not isinstance(short_term_period_hr, (float, int)): + raise TypeError( + f"short_term_period_hr must be of type float or int. Got: {type(short_term_period_hr)}" + ) + + probability_of_exceedance = 1 / (return_year * 365.25 * 24 / short_term_period_hr) + + return ppf(1 - probability_of_exceedance) diff --git a/mhkit/loads/general.py b/mhkit/loads/general.py index 0c38b6bc7..119731443 100644 --- a/mhkit/loads/general.py +++ b/mhkit/loads/general.py @@ -1,79 +1,148 @@ +""" +This module provides tools for analyzing and processing data signals +related to turbine blade performance and fatigue analysis. It implements +methodologies based on standards such as IEC TS 62600-3:2020 ED1, +incorporating statistical binning, moment calculations, and fatigue +damage estimation using the rainflow counting algorithm. Key +functionalities include: + + - `bin_statistics`: Bins time-series data against a specified signal, + such as wind speed, to calculate mean and standard deviation statistics + for each bin, following IEC TS 62600-3:2020 ED1 guidelines. It supports + output in both pandas DataFrame and xarray Dataset formats. + + - `blade_moments`: Calculates the flapwise and edgewise moments of turbine + blades using derived calibration coefficients and raw strain signals. + This function is crucial for understanding the loading and performance + characteristics of turbine blades. + + - `damage_equivalent_load`: Estimates the damage equivalent load (DEL) + of a single data signal using a 4-point rainflow counting algorithm. + This method is vital for assessing fatigue life and durability of + materials under variable amplitude loading. + +References: +- C. Amzallag et. al., International Journal of Fatigue, 16 (1994) 287-293. +- ISO 12110-2, Metallic materials - Fatigue testing - Variable amplitude fatigue testing. +- G. Marsh et. al., International Journal of Fatigue, 82 (2016) 757-765. +""" + +from typing import Union, List, Tuple, Optional from scipy.stats import binned_statistic -import pandas as pd +import pandas as pd +import xarray as xr import numpy as np import fatpack +from mhkit.utils.type_handling import to_numeric_array -def bin_statistics(data,bin_against,bin_edges,data_signal=[]): + +def bin_statistics( + data: Union[pd.DataFrame, xr.Dataset], + bin_against: np.ndarray, + bin_edges: np.ndarray, + data_signal: Optional[List[str]] = None, + to_pandas: bool = True, +) -> Tuple[Union[pd.DataFrame, xr.Dataset], Union[pd.DataFrame, xr.Dataset]]: """ - Bins calculated statistics against data signal (or channel) + Bins calculated statistics against data signal (or channel) according to IEC TS 62600-3:2020 ED1. - + Parameters ----------- - data : pandas DataFrame - Time-series statistics of data signal(s) + data : pandas DataFrame or xarray Dataset + Time-series statistics of data signal(s) bin_against : array Data signal to bin data against (e.g. wind speed) bin_edges : array Bin edges with consistent step size - data_signal : list, optional + data_signal : list, optional List of data signal(s) to bin, default = all data signals - + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. + Returns -------- - bin_mean : pandas DataFrame + bin_mean : pandas DataFrame or xarray Dataset Mean of each bin - bin_std : pandas DataFrame + bin_std : pandas DataFrame or xarray Dataset Standard deviation of each bim """ - assert isinstance(data, pd.DataFrame), 'data must be of type pd.DataFram' - try: bin_against = np.asarray(bin_against) - except: 'bin_against must be of type np.ndarray' - try: bin_edges = np.asarray(bin_edges) - except: 'bin_edges must be of type np.ndarray' + if not isinstance(data, (pd.DataFrame, xr.Dataset)): + raise TypeError( + f"data must be of type pd.DataFrame or xr.Dataset. Got: {type(data)}" + ) + + # Use _to_numeric_array to process bin_against and bin_edges + bin_against = to_numeric_array(bin_against, "bin_against") + bin_edges = to_numeric_array(bin_edges, "bin_edges") + + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + # If input is pandas, convert to xarray + if isinstance(data, pd.DataFrame): + data = data.to_xarray() + + if data_signal is None: + data_signal = [] # Determine variables to analyze - if len(data_signal)==0: # if not specified, bin all variables - data_signal=data.columns.values + if len(data_signal) == 0: # if not specified, bin all variables + data_signal = list(data.keys()) else: - assert isinstance(data_signal, list), 'must be of type list' + if not isinstance(data_signal, list): + raise TypeError( + f"data_signal must be of type list. Got: {type(data_signal)}" + ) - # Pre-allocate list variables - bin_stat_list = [] - bin_std_list = [] + # Pre-allocate variable dictionaries + bin_stat_list = {} + bin_std_list = {} # loop through data_signal and get binned means for signal_name in data_signal: # Bin data - bin_stat = binned_statistic(bin_against,data[signal_name], - statistic='mean',bins=bin_edges) - # Calculate std of bins - std = [] - stdev = pd.DataFrame(data[signal_name]) - stdev.set_index(bin_stat.binnumber,inplace=True) - for i in range(1,len(bin_stat.bin_edges)): - try: - temp = stdev.loc[i].std(ddof=0) - std.append(temp[0]) - except: - std.append(np.nan) - bin_stat_list.append(bin_stat.statistic) - bin_std_list.append(std) - - # Convert to DataFrames - bin_mean = pd.DataFrame(np.transpose(bin_stat_list),columns=data_signal) - bin_std = pd.DataFrame(np.transpose(bin_std_list),columns=data_signal) - - # Check for nans - if bin_mean.isna().any().any(): - print('Warning: some bins may be empty!') + bin_stat_mean = binned_statistic( + bin_against, data[signal_name], statistic="mean", bins=bin_edges + ) + bin_stat_std = binned_statistic( + bin_against, data[signal_name], statistic="std", bins=bin_edges + ) + + bin_stat_list[signal_name] = ("index", bin_stat_mean.statistic) + bin_std_list[signal_name] = ("index", bin_stat_std.statistic) + + # Convert to Datasets + bin_mean = xr.Dataset( + data_vars=bin_stat_list, + coords={"index": np.arange(0, len(bin_stat_mean.statistic))}, + ) + bin_std = xr.Dataset( + data_vars=bin_std_list, + coords={"index": np.arange(0, len(bin_stat_std.statistic))}, + ) + + # Check for nans + for variable in list(bin_mean.variables): + if bin_mean[variable].isnull().any(): + print("Warning: bins for some variables may be empty!") + break + + if to_pandas: + bin_mean = bin_mean.to_pandas() + bin_std = bin_std.to_pandas() return bin_mean, bin_std -def blade_moments(blade_coefficients,flap_offset,flap_raw,edge_offset,edge_raw): - ''' +def blade_moments( + blade_coefficients: np.ndarray, + flap_offset: float, + flap_raw: np.ndarray, + edge_offset: float, + edge_raw: np.ndarray, +) -> Tuple[np.ndarray, np.ndarray]: + """ Transfer function for deriving blade flap and edge moments using blade matrix. Parameters @@ -88,42 +157,51 @@ def blade_moments(blade_coefficients,flap_offset,flap_raw,edge_offset,edge_raw): Derived offset of raw edge signal obtained during calibration process edge_raw : numpy array Raw strain signal of blade in the edgewise direction - + Returns -------- M_flap : numpy array Blade flapwise moment in SI units M_edge : numpy array Blade edgewise moment in SI units - ''' - - try: blade_coefficients = np.asarray(blade_coefficients) - except: 'blade_coefficients must be of type np.ndarray' - try: flap_raw = np.asarray(flap_raw) - except: 'flap_raw must be of type np.ndarray' - try: edge_raw = np.asarray(edge_raw) - except: 'edge_raw must be of type np.ndarray' - - assert isinstance(flap_offset, (float,int)), 'flap_offset must be of type int or float' - assert isinstance(edge_offset, (float,int)), 'edge_offset must be of type int or float' - + """ + + # Convert and validate blade_coefficients, flap_raw, and edge_raw + blade_coefficients = to_numeric_array(blade_coefficients, "blade_coefficients") + flap_raw = to_numeric_array(flap_raw, "flap_raw") + edge_raw = to_numeric_array(edge_raw, "edge_raw") + + if not isinstance(flap_offset, (float, int)): + raise TypeError( + f"flap_offset must be of type int or float. Got: {type(flap_offset)}" + ) + if not isinstance(edge_offset, (float, int)): + raise TypeError( + f"edge_offset must be of type int or float. Got: {type(edge_offset)}" + ) + # remove offset from raw signal flap_signal = flap_raw - flap_offset edge_signal = edge_raw - edge_offset # apply matrix to get load signals - M_flap = blade_coefficients[0]*flap_signal + blade_coefficients[1]*edge_signal - M_edge = blade_coefficients[2]*flap_signal + blade_coefficients[3]*edge_signal + m_flap = blade_coefficients[0] * flap_signal + blade_coefficients[1] * edge_signal + m_edge = blade_coefficients[2] * flap_signal + blade_coefficients[3] * edge_signal - return M_flap, M_edge + return m_flap, m_edge -def damage_equivalent_load(data_signal, m, bin_num=100, data_length=600): - ''' - Calculates the damage equivalent load of a single data signal (or channel) - based on IEC TS 62600-3:2020 ED1. 4-point rainflow counting algorithm from +def damage_equivalent_load( + data_signal: np.ndarray, + m: Union[float, int], + bin_num: int = 100, + data_length: Union[float, int] = 600, +) -> float: + """ + Calculates the damage equivalent load of a single data signal (or channel) + based on IEC TS 62600-3:2020 ED1. 4-point rainflow counting algorithm from fatpack module is based on the following resources: - + - `C. Amzallag et. al. Standardization of the rainflow counting method for fatigue analysis. International Journal of Fatigue, 16 (1994) 287-293` - `ISO 12110-2, Metallic materials - Fatigue testing - Variable amplitude @@ -131,7 +209,7 @@ def damage_equivalent_load(data_signal, m, bin_num=100, data_length=600): - `G. Marsh et. al. Review and application of Rainflow residue processing techniques for accurate fatigue damage estimation. International Journal of Fatigue, 82 (2016) 757-765` - + Parameters: ----------- @@ -143,25 +221,29 @@ def damage_equivalent_load(data_signal, m, bin_num=100, data_length=600): Number of bins for rainflow counting method (minimum=100) data_length : float/int Length of measured data (seconds) - + Returns -------- DEL : float Damage equivalent load (DEL) of single data signal - ''' - - try: data_signal = np.array(data_signal) - except: 'data_signal must be of type np.ndarray' - assert isinstance(m, (float,int)), 'm must be of type float or int' - assert isinstance(bin_num, (float,int)), 'bin_num must be of type float or int' - assert isinstance(data_length, (float,int)), 'data_length must be of type float or int' + """ + + to_numeric_array(data_signal, "data_signal") + if not isinstance(m, (float, int)): + raise TypeError(f"m must be of type float or int. Got: {type(m)}") + if not isinstance(bin_num, (float, int)): + raise TypeError(f"bin_num must be of type float or int. Got: {type(bin_num)}") + if not isinstance(data_length, (float, int)): + raise TypeError( + f"data_length must be of type float or int. Got: {type(data_length)}" + ) - rainflow_ranges = fatpack.find_rainflow_ranges(data_signal,k=256) + rainflow_ranges = fatpack.find_rainflow_ranges(data_signal, k=256) # Range count and bin - Nrf, Srf = fatpack.find_range_count(rainflow_ranges, bin_num) + n_rf, s_rf = fatpack.find_range_count(rainflow_ranges, bin_num) - DELs = Srf**m * Nrf / data_length - DEL = DELs.sum() ** (1/m) + del_s = s_rf**m * n_rf / data_length + del_value = del_s.sum() ** (1 / m) - return DEL + return del_value diff --git a/mhkit/loads/graphics.py b/mhkit/loads/graphics.py index 291e028af..26847f5ef 100644 --- a/mhkit/loads/graphics.py +++ b/mhkit/loads/graphics.py @@ -1,8 +1,36 @@ -import matplotlib.pyplot as plt +""" +This module provides functionalities for plotting statistical data +related to a given variable or dataset. + + - `plot_statistics` is designed to plot raw statistical measures + (mean, maximum, minimum, and optional standard deviation) of a + variable across a series of x-axis values. It allows for + customization of plot labels, title, and saving the plot to a file. + + - `plot_bin_statistics` extends these capabilities to binned data, + offering a way to visualize binned statistics (mean, maximum, minimum) + along with their respective standard deviations. This function also + supports label and title customization, as well as saving the plot to + a specified path. +""" + +from typing import Optional, Dict, Any import numpy as np +import matplotlib.pyplot as plt + +from mhkit.utils.type_handling import to_numeric_array + -def plot_statistics(x,y_mean,y_max,y_min,y_stdev=[],**kwargs): - ''' +# pylint: disable=R0914 +def plot_statistics( + x: np.ndarray, + y_mean: np.ndarray, + y_max: np.ndarray, + y_min: np.ndarray, + y_stdev: Optional[np.ndarray] = None, + **kwargs: Dict[str, Any], +) -> plt.Axes: + """ Plot showing standard raw statistics of variable Parameters @@ -17,7 +45,7 @@ def plot_statistics(x,y_mean,y_max,y_min,y_stdev=[],**kwargs): Array of min statistical values of variable y_stdev : numpy array, optional Array of standard deviation statistical values of variable - **kwargs : optional + **kwargs : optional x_label : string x axis label for plot y_label : string @@ -30,53 +58,72 @@ def plot_statistics(x,y_mean,y_max,y_min,y_stdev=[],**kwargs): Returns -------- ax : matplotlib pyplot axes - ''' - - try: x = np.array(x) - except: 'x must be of type np.ndarray' - try: y_mean = np.array(y_mean) - except: 'y_mean must be of type np.ndarray' - try:y_max = np.array(y_max) - except: 'y_max must be of type np.ndarray' - try: y_min = np.array(y_min) - except: 'y_min must be of type np.ndarray' - - x_label = kwargs.get("x_label", None) - y_label = kwargs.get("y_label", None) - title = kwargs.get("title", None) + """ + if y_stdev is None: + y_stdev = [] + + input_variables = [x, y_mean, y_max, y_min, y_stdev] + + variable_names = ["x", "y_mean", "y_max", "y_min", "y_stdev"] + # Convert each input variable to a numeric array, ensuring all are numeric + for i, variable in enumerate(input_variables): + input_variables[i] = to_numeric_array(variable, variable_names[i]) + + x, y_mean, y_max, y_min, y_stdev = input_variables + + x_label = kwargs.get("x_label", None) + y_label = kwargs.get("y_label", None) + title = kwargs.get("title", None) save_path = kwargs.get("save_path", None) - - assert isinstance(x_label, (str, type(None))), 'x_label must be of type str' - assert isinstance(y_label, (str, type(None))), 'y_label must be of type str' - assert isinstance(title, (str, type(None))), 'title must be of type str' - assert isinstance(save_path, (str, type(None))), 'save_path must be of type str' - - fig, ax = plt.subplots(figsize=(6,4)) - ax.plot(x,y_max,'^',label='max',mfc='none') - ax.plot(x,y_mean,'o',label='mean',mfc='none') - ax.plot(x,y_min,'v',label='min',mfc='none') - - if len(y_stdev)>0: ax.plot(x,y_stdev,'+',label='stdev',c='m') + + if not isinstance(x_label, (str, type(None))): + raise TypeError(f"x_label must be of type str. Got: {type(x_label)}") + if not isinstance(y_label, (str, type(None))): + raise TypeError(f"y_label must be of type str. Got: {type(y_label)}") + if not isinstance(title, (str, type(None))): + raise TypeError(f"title must be of type str. Got: {type(title)}") + if not isinstance(save_path, (str, type(None))): + raise TypeError(f"save_path must be of type str. Got: {type(save_path)}") + + fig, ax = plt.subplots(figsize=(6, 4)) + ax.plot(x, y_max, "^", label="max", mfc="none") + ax.plot(x, y_mean, "o", label="mean", mfc="none") + ax.plot(x, y_min, "v", label="min", mfc="none") + + if len(y_stdev) > 0: + ax.plot(x, y_stdev, "+", label="stdev", c="m") ax.grid(alpha=0.4) - ax.legend(loc='best') - - if x_label!=None: ax.set_xlabel(x_label) - if y_label!=None: ax.set_ylabel(y_label) - if title!=None: ax.set_title(title) - + ax.legend(loc="best") + + if x_label: + ax.set_xlabel(x_label) + if y_label: + ax.set_ylabel(y_label) + if title: + ax.set_title(title) + fig.tight_layout() - - if save_path==None: plt.show() - else: + + if save_path is None: + plt.show() + else: fig.savefig(save_path) plt.close() return ax -def plot_bin_statistics(bin_centers, bin_mean,bin_max, bin_min, - bin_mean_std, bin_max_std, bin_min_std, - **kwargs): - ''' +# pylint: disable=R0913 +def plot_bin_statistics( + bin_centers: np.ndarray, + bin_mean: np.ndarray, + bin_max: np.ndarray, + bin_min: np.ndarray, + bin_mean_std: np.ndarray, + bin_max_std: np.ndarray, + bin_min_std: np.ndarray, + **kwargs: Dict[str, Any], +) -> plt.Axes: + """ Plot showing standard binned statistics of single variable Parameters @@ -95,7 +142,7 @@ def plot_bin_statistics(bin_centers, bin_mean,bin_max, bin_min, Standard deviations of max binned statistics bin_min_std : numpy array Standard deviations of min binned statistics - **kwargs : optional + **kwargs : optional x_label : string x axis label for plot y_label : string @@ -108,55 +155,99 @@ def plot_bin_statistics(bin_centers, bin_mean,bin_max, bin_min, Returns -------- ax : matplotlib pyplot axes - ''' - - try: bin_centers = np.asarray(bin_centers) - except: 'bin_centers must be of type np.ndarray' - - try: bin_mean = np.asarray(bin_mean) - except: 'bin_mean must be of type np.ndarray' - try: bin_max = np.asarray(bin_max) - except:'bin_max must be of type np.ndarray' - try: bin_min = np.asarray(bin_min) - except: 'bin_min must be of type type np.ndarray' - - try: bin_mean_std = np.asarray(bin_mean_std) - except: 'bin_mean_std must be of type np.ndarray' - try: bin_max_std = np.asarray(bin_max_std) - except: 'bin_max_std must be of type np.ndarray' - try: bin_min_std = np.asarray(bin_min_std) - except: 'bin_min_std must be of type np.ndarray' - - x_label = kwargs.get("x_label", None) - y_label = kwargs.get("y_label", None) - title = kwargs.get("title", None) + """ + + input_variables = [ + bin_centers, + bin_mean, + bin_max, + bin_min, + bin_mean_std, + bin_max_std, + bin_min_std, + ] + variable_names = [ + "bin_centers", + "bin_mean", + "bin_max", + "bin_min", + "bin_mean_std", + "bin_max_std", + "bin_min_std", + ] + + # Convert each input variable to a numeric array, ensuring all are numeric + for i, variable in enumerate(input_variables): + input_variables[i] = to_numeric_array(variable, variable_names[i]) + + ( + bin_centers, + bin_mean, + bin_max, + bin_min, + bin_mean_std, + bin_max_std, + bin_min_std, + ) = input_variables + + x_label = kwargs.get("x_label", None) + y_label = kwargs.get("y_label", None) + title = kwargs.get("title", None) save_path = kwargs.get("save_path", None) - - assert isinstance(x_label, (str, type(None))), 'x_label must be of type str' - assert isinstance(y_label, (str, type(None))), 'y_label must be of type str' - assert isinstance(title, (str, type(None))), 'title must be of type str' - assert isinstance(save_path, (str, type(None))), 'save_path must be of type str' - - fig, ax = plt.subplots(figsize=(7,5)) - ax.errorbar(bin_centers,bin_max,marker='^',mfc='none', - yerr=bin_max_std,capsize=4,label='max') - ax.errorbar(bin_centers,bin_mean,marker='o',mfc='none', - yerr=bin_mean_std,capsize=4,label='mean') - ax.errorbar(bin_centers,bin_min,marker='v',mfc='none', - yerr=bin_min_std,capsize=4,label='min') - + + if not isinstance(x_label, (str, type(None))): + raise TypeError(f"x_label must be of type str. Got: {type(x_label)}") + if not isinstance(y_label, (str, type(None))): + raise TypeError(f"y_label must be of type str. Got: {type(y_label)}") + if not isinstance(title, (str, type(None))): + raise TypeError(f"title must be of type str. Got: {type(title)}") + if not isinstance(save_path, (str, type(None))): + raise TypeError(f"save_path must be of type str. Got: {type(save_path)}") + + fig, ax = plt.subplots(figsize=(7, 5)) + ax.errorbar( + bin_centers, + bin_max, + marker="^", + mfc="none", + yerr=bin_max_std, + capsize=4, + label="max", + ) + ax.errorbar( + bin_centers, + bin_mean, + marker="o", + mfc="none", + yerr=bin_mean_std, + capsize=4, + label="mean", + ) + ax.errorbar( + bin_centers, + bin_min, + marker="v", + mfc="none", + yerr=bin_min_std, + capsize=4, + label="min", + ) + ax.grid(alpha=0.5) - ax.legend(loc='best') - - if x_label!=None: ax.set_xlabel(x_label) - if y_label!=None: ax.set_ylabel(y_label) - if title!=None: ax.set_title(title) - + ax.legend(loc="best") + + if x_label: + ax.set_xlabel(x_label) + if y_label: + ax.set_ylabel(y_label) + if title: + ax.set_title(title) + fig.tight_layout() - - if save_path==None: plt.show() - else: + + if save_path is None: + plt.show() + else: fig.savefig(save_path) plt.close() return ax - diff --git a/mhkit/mooring/graphics.py b/mhkit/mooring/graphics.py index a8dc678df..389953c45 100644 --- a/mhkit/mooring/graphics.py +++ b/mhkit/mooring/graphics.py @@ -29,8 +29,22 @@ from matplotlib.animation import FuncAnimation -def animate(dsani, dimension='2d', xaxis='x', yaxis='z', zaxis='y', xlim=None, ylim=None, zlim=None, - interval=10, repeat=False, xlabel=None, ylabel=None, zlabel=None, title=None): +def animate( + dsani, + dimension="2d", + xaxis="x", + yaxis="z", + zaxis="y", + xlim=None, + ylim=None, + zlim=None, + interval=10, + repeat=False, + xlabel=None, + ylabel=None, + zlabel=None, + title=None, +): """ Graphics function that creates a 2D or 3D animation of the node positions of a mooring line over time. @@ -73,25 +87,26 @@ def animate(dsani, dimension='2d', xaxis='x', yaxis='z', zaxis='y', xlim=None, y Raises ------ TypeError - Checks for correct input types for dsani, dimension, xaxis, yaxis, zaxis, xlim, ylim, + Checks for correct input types for dsani, dimension, xaxis, yaxis, zaxis, xlim, ylim, zlim, interval, repeat, xlabel, ylabel, zlabel, and title """ - _validate_input(dsani, xlim, ylim, interval, repeat, - xlabel, ylabel, title, dimension) - if dimension == '3d': + _validate_input( + dsani, xlim, ylim, interval, repeat, xlabel, ylabel, title, dimension + ) + if dimension == "3d": if not isinstance(zlim, (list, type(None))): - raise TypeError('zlim must be of type list') + raise TypeError("zlim must be of type list") if not isinstance(zlabel, (str, type(None))): - raise TypeError('zlabel must be of type str') + raise TypeError("zlabel must be of type str") if not isinstance(xaxis, str): - raise TypeError('xaxis must be of type str') + raise TypeError("xaxis must be of type str") if not isinstance(yaxis, str): - raise TypeError('yaxis must be of type str') + raise TypeError("yaxis must be of type str") if not isinstance(zaxis, str): - raise TypeError('zaxis must be of type str') + raise TypeError("zaxis must be of type str") current_idx = list(dsani.dims.mapping.keys())[0] - dsani = dsani.rename({current_idx: 'time'}) + dsani = dsani.rename({current_idx: "time"}) nodes_x, nodes_y, nodes_z = _get_axis_nodes(dsani, xaxis, yaxis, zaxis) @@ -99,18 +114,18 @@ def animate(dsani, dimension='2d', xaxis='x', yaxis='z', zaxis='y', xlim=None, y xlim = _find_limits(dsani[nodes_x]) if not ylim: ylim = _find_limits(dsani[nodes_y]) - if dimension == '3d' and not zlim: + if dimension == "3d" and not zlim: zlim = _find_limits(dsani[nodes_z]) fig = plt.figure() - if dimension == '3d': - ax = fig.add_subplot(projection='3d') + if dimension == "3d": + ax = fig.add_subplot(projection="3d") else: ax = fig.add_subplot() ax.grid() - if dimension == '2d': - ln, = ax.plot([], [], '-o') + if dimension == "2d": + (ln,) = ax.plot([], [], "-o") def init(): ax.set(xlim=xlim, ylim=ylim) @@ -122,8 +137,8 @@ def update(frame): y = dsani[nodes_y].isel(time=frame).to_array().values ln.set_data(x, y) - elif dimension == '3d': - ln, = ax.plot([], [], [], '-o') + elif dimension == "3d": + (ln,) = ax.plot([], [], [], "-o") def init(): ax.set(xlim3d=xlim, ylim3d=ylim, zlim3d=zlim) @@ -137,33 +152,41 @@ def update(frame): ln.set_data(x, y) ln.set_3d_properties(z) - ani = FuncAnimation(fig, update, frames=len(dsani.time), - init_func=init, interval=interval, repeat=repeat) + ani = FuncAnimation( + fig, + update, + frames=len(dsani.time), + init_func=init, + interval=interval, + repeat=repeat, + ) return ani -def _validate_input(dsani, xlim, ylim, interval, repeat, xlabel, ylabel, title, dimension): +def _validate_input( + dsani, xlim, ylim, interval, repeat, xlabel, ylabel, title, dimension +): """ Validate common input parameters for animate function. """ if not isinstance(dsani, xr.Dataset): - raise TypeError('dsani must be of type xr.Dataset') + raise TypeError("dsani must be of type xr.Dataset") if not isinstance(xlim, (list, type(None))): - raise TypeError('xlim must be of type list') + raise TypeError("xlim must be of type list") if not isinstance(ylim, (list, type(None))): - raise TypeError('ylim must be of type list') + raise TypeError("ylim must be of type list") if not isinstance(interval, int): - raise TypeError('interval must be of type int') + raise TypeError("interval must be of type int") if not isinstance(repeat, bool): - raise TypeError('repeat must be of type bool') + raise TypeError("repeat must be of type bool") if not isinstance(xlabel, (str, type(None))): - raise TypeError('xlabel must be of type str') + raise TypeError("xlabel must be of type str") if not isinstance(ylabel, (str, type(None))): - raise TypeError('ylabel must be of type str') + raise TypeError("ylabel must be of type str") if not isinstance(title, (str, type(None))): - raise TypeError('title must be of type str') - if dimension not in ['2d', '3d']: + raise TypeError("title must be of type str") + if dimension not in ["2d", "3d"]: raise ValueError('dimension must be either "2d" or "3d"') @@ -191,10 +214,10 @@ def _get_axis_nodes(dsani, xaxis, yaxis, zaxis): nodesZ : list List of nodes along the z-axis """ - nodes = [s for s in list(dsani.data_vars) if 'Node' in s] - nodes_x = [s for s in nodes if f'p{xaxis}' in s] - nodes_y = [s for s in nodes if f'p{yaxis}' in s] - nodes_z = [s for s in nodes if f'p{zaxis}' in s] + nodes = [s for s in list(dsani.data_vars) if "Node" in s] + nodes_x = [s for s in nodes if f"p{xaxis}" in s] + nodes_y = [s for s in nodes if f"p{yaxis}" in s] + nodes_z = [s for s in nodes if f"p{zaxis}" in s] return nodes_x, nodes_y, nodes_z @@ -213,9 +236,9 @@ def _find_limits(dataset): Min and max plot limits for axis """ x_1 = dataset.min().to_array().min().values - x_1 = x_1 - abs(x_1*0.1) + x_1 = x_1 - abs(x_1 * 0.1) x_2 = dataset.max().to_array().max().values - x_2 = x_2 + abs(x_2*0.1) + x_2 = x_2 + abs(x_2 * 0.1) return [x_1, x_2] diff --git a/mhkit/mooring/io.py b/mhkit/mooring/io.py index bb5715193..a85c92358 100644 --- a/mhkit/mooring/io.py +++ b/mhkit/mooring/io.py @@ -16,15 +16,16 @@ dataset = read_moordyn(filepath="FAST.MD.out", input_file="FAST.MD.input") """ + import os import pandas as pd def read_moordyn(filepath, input_file=None): """ - Reads in MoorDyn OUT files such as "FAST.MD.out" and - "FAST.MD.Line1.out" and stores inside xarray. Also allows for - parsing and storage of MoorDyn input file as attributes inside + Reads in MoorDyn OUT files such as "FAST.MD.out" and + "FAST.MD.Line1.out" and stores inside xarray. Also allows for + parsing and storage of MoorDyn input file as attributes inside the xarray. Parameters @@ -45,15 +46,16 @@ def read_moordyn(filepath, input_file=None): Checks for correct input types for filepath and input_file """ if not isinstance(filepath, str): - raise TypeError('filepath must be of type str') + raise TypeError("filepath must be of type str") if input_file: if not isinstance(input_file, str): - raise TypeError('input_file must be of type str') + raise TypeError("input_file must be of type str") if not os.path.isfile(filepath): raise FileNotFoundError(f"No file found at provided path: {filepath}") - data = pd.read_csv(filepath, header=0, skiprows=[ - 1], sep=' ', skipinitialspace=True, index_col=0) + data = pd.read_csv( + filepath, header=0, skiprows=[1], sep=" ", skipinitialspace=True, index_col=0 + ) data = data.dropna(axis=1) dataset = data.to_xarray() @@ -80,11 +82,13 @@ def _moordyn_input(input_file, dataset): return Dataset that includes input file parameters as attributes """ - with open(input_file, 'r', encoding='utf-8') as moordyn_file: - for line in moordyn_file: # loop through each line in the file + with open(input_file, "r", encoding="utf-8") as moordyn_file: + for line in moordyn_file: # loop through each line in the file # get line type property sets - if line.count('---') > 0 and (line.upper().count('LINE DICTIONARY') > 0 or - line.upper().count('LINE TYPES') > 0): + if line.count("---") > 0 and ( + line.upper().count("LINE DICTIONARY") > 0 + or line.upper().count("LINE TYPES") > 0 + ): linetypes = dict() # skip this header line, plus channel names and units lines line = next(moordyn_file) @@ -92,19 +96,21 @@ def _moordyn_input(input_file, dataset): line = next(moordyn_file) units = line.split() line = next(moordyn_file) - while line.count('---') == 0: + while line.count("---") == 0: entries = line.split() linetypes[entries[0]] = dict() for x in range(1, len(entries)): linetypes[entries[0]][variables[x]] = entries[x] line = next(moordyn_file) - linetypes['units'] = units[1:] - dataset.attrs['LINE_TYPES'] = linetypes + linetypes["units"] = units[1:] + dataset.attrs["LINE_TYPES"] = linetypes # get properties of each Point - if line.count('---') > 0 and (line.upper().count('POINTS') > 0 - or line.upper().count('POINT LIST') > 0 - or line.upper().count('POINT PROPERTIES') > 0): + if line.count("---") > 0 and ( + line.upper().count("POINTS") > 0 + or line.upper().count("POINT LIST") > 0 + or line.upper().count("POINT PROPERTIES") > 0 + ): # skip this header line, plus channel names and units lines line = next(moordyn_file) variables = line.split() @@ -112,19 +118,21 @@ def _moordyn_input(input_file, dataset): units = line.split() line = next(moordyn_file) points = dict() - while line.count('---') == 0: + while line.count("---") == 0: entries = line.split() points[entries[0]] = dict() for x in range(1, len(entries)): points[entries[0]][variables[x]] = entries[x] line = next(moordyn_file) - points['units'] = units[1:] - dataset.attrs['POINTS'] = points + points["units"] = units[1:] + dataset.attrs["POINTS"] = points # get properties of each line - if line.count('---') > 0 and (line.upper().count('LINES') > 0 - or line.upper().count('LINE LIST') > 0 - or line.upper().count('LINE PROPERTIES') > 0): + if line.count("---") > 0 and ( + line.upper().count("LINES") > 0 + or line.upper().count("LINE LIST") > 0 + or line.upper().count("LINE PROPERTIES") > 0 + ): # skip this header line, plus channel names and units lines line = next(moordyn_file) variables = line.split() @@ -132,24 +140,24 @@ def _moordyn_input(input_file, dataset): units = line.split() line = next(moordyn_file) lines = {} - while line.count('---') == 0: + while line.count("---") == 0: entries = line.split() lines[entries[0]] = dict() for x in range(1, len(entries)): lines[entries[0]][variables[x]] = entries[x] line = next(moordyn_file) - lines['units'] = units[1:] - dataset.attrs['LINES'] = lines + lines["units"] = units[1:] + dataset.attrs["LINES"] = lines # get options entries - if line.count('---') > 0 and "options" in line.lower(): + if line.count("---") > 0 and "options" in line.lower(): line = next(moordyn_file) # skip this header line options = {} - while line.count('---') == 0: + while line.count("---") == 0: entries = line.split() options[entries[1]] = entries[0] line = next(moordyn_file) - dataset.attrs['OPTIONS'] = options + dataset.attrs["OPTIONS"] = options moordyn_file.close() diff --git a/mhkit/mooring/main.py b/mhkit/mooring/main.py index c4221a850..a5ebeafa4 100644 --- a/mhkit/mooring/main.py +++ b/mhkit/mooring/main.py @@ -27,40 +27,41 @@ def lay_length(dataset, depth, tolerance=0.25): Checks for correct input types for ds, depth, and tolerance """ if not isinstance(dataset, xr.Dataset): - raise TypeError('dataset must be of type xr.Dataset') + raise TypeError("dataset must be of type xr.Dataset") if not isinstance(depth, (float, int)): - raise TypeError('depth must be of type float or int') + raise TypeError("depth must be of type float or int") if not isinstance(tolerance, (float, int)): - raise TypeError('tolerance must be of type float or int') + raise TypeError("tolerance must be of type float or int") # get channel names chans = list(dataset.keys()) - nodes_x = [x for x in chans if 'x' in x] - nodes_y = [y for y in chans if 'y' in y] - nodes_z = [z for z in chans if 'z' in z] + nodes_x = [x for x in chans if "x" in x] + nodes_y = [y for y in chans if "y" in y] + nodes_z = [z for z in chans if "z" in z] # check if the dataset contains the necessary 'x', 'y', 'z' nodes if not nodes_x or not nodes_y or not nodes_z: - raise ValueError('The dataset must contain x, y, and z node data') + raise ValueError("The dataset must contain x, y, and z node data") if len(nodes_z) < 3: raise ValueError( - 'This function requires at least 3 nodes to calculate lay length') + "This function requires at least 3 nodes to calculate lay length" + ) # find name of first z point where tolerance is exceeded - laypoint = dataset[nodes_z].where(dataset[nodes_z] > depth+abs(tolerance)) + laypoint = dataset[nodes_z].where(dataset[nodes_z] > depth + abs(tolerance)) laypoint = laypoint.to_dataframe().dropna(axis=1).columns[0] # get previous z-point lay_indx = nodes_z.index(laypoint) - 1 lay_z = nodes_z[lay_indx] # get corresponding x-point and y-point node names - lay_x = lay_z[:-1] + 'x' - lay_y = lay_z[:-1] + 'y' + lay_x = lay_z[:-1] + "x" + lay_y = lay_z[:-1] + "y" lay_0x = nodes_x[0] lay_0y = nodes_y[0] # find distance between initial point and lay point laylength_x = dataset[lay_x] - dataset[lay_0x] laylength_y = dataset[lay_y] - dataset[lay_0y] - line_lay_length = (laylength_x**2 + laylength_y**2) ** (1/2) + line_lay_length = (laylength_x**2 + laylength_y**2) ** (1 / 2) return line_lay_length diff --git a/mhkit/power/__init__.py b/mhkit/power/__init__.py index 0056a8f31..5cae03212 100644 --- a/mhkit/power/__init__.py +++ b/mhkit/power/__init__.py @@ -1,3 +1,6 @@ +""" +Power Module +""" + from mhkit.power import quality from mhkit.power import characteristics - diff --git a/mhkit/power/characteristics.py b/mhkit/power/characteristics.py index 08578f984..0ae45a789 100644 --- a/mhkit/power/characteristics.py +++ b/mhkit/power/characteristics.py @@ -1,112 +1,252 @@ +""" +This module contains functions for calculating electrical power metrics from +measured voltage and current data. It supports both direct current (DC) and +alternating current (AC) calculations, including instantaneous frequency +analysis for AC signals and power calculations for three-phase AC systems. +The calculations can accommodate both line-to-neutral and line-to-line voltage +measurements and offer flexibility in output formats, allowing results to be +saved as either pandas DataFrames or xarray Datasets. + +Functions: + instantaneous_frequency: Calculates the instantaneous frequency of a measured + voltage signal over time. + + dc_power: Computes the DC power from voltage and current measurements, providing + both individual channel outputs and a gross power calculation. + + ac_power_three_phase: Calculates the magnitude of active AC power for three-phase + systems, considering the power factor and voltage measurement configuration + (line-to-neutral or line-to-line). +""" + +from typing import Union import pandas as pd +import xarray as xr import numpy as np from scipy.signal import hilbert -import datetime +from mhkit.utils import convert_to_dataset -def instantaneous_frequency(um): +def instantaneous_frequency( + measured_voltage: Union[pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset], + time_dimension: str = "", + to_pandas: bool = True, +) -> Union[pd.DataFrame, xr.Dataset]: """ Calculates instantaneous frequency of measured voltage - - + Parameters ----------- - um: pandas Series or DataFrame - Measured voltage (V) indexed by time + measured_voltage: pandas Series, pandas DataFrame, xarray DataArray, + or xarray Dataset Measured voltage (V) indexed by time + + time_dimension: string (optional) + Name of the xarray dimension corresponding to time. If not supplied, + defaults to the first dimension. Does not affect pandas input. + + to_pandas: bool (Optional) + Flag to save output to pandas instead of xarray. Default = True. - Returns --------- - frequency: pandas DataFrame - Frequency of the measured voltage (Hz) indexed by time + frequency: pandas DataFrame or xarray Dataset + Frequency of the measured voltage (Hz) indexed by time with signal name columns - """ - assert isinstance(um, (pd.Series, pd.DataFrame)), 'um must be of type pd.Series or pd.DataFrame' - - if isinstance(um.index[0], datetime.datetime): - t = (um.index - datetime.datetime(1970,1,1)).total_seconds() + """ + if not isinstance( + measured_voltage, (pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset) + ): + raise TypeError( + "measured_voltage must be of type pd.Series, pd.DataFrame, " + + f"xr.DataArray, or xr.Dataset. Got {type(measured_voltage)}" + ) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + if not isinstance(time_dimension, str): + raise TypeError( + f"time_dimension must be of type bool. Got: {type(time_dimension)}" + ) + + # Convert input to xr.Dataset + measured_voltage = convert_to_dataset(measured_voltage, "data") + + if time_dimension != "" and time_dimension not in measured_voltage.coords: + raise ValueError( + "time_dimension was supplied but is not a dimension " + + f"of measured_voltage. Got {time_dimension}" + ) + + # Get the dimension of interest + if time_dimension == "": + time_dimension = list(measured_voltage.coords)[0] + + # Calculate time step + if isinstance(measured_voltage.coords[time_dimension].values[0], np.datetime64): + time = ( + measured_voltage[time_dimension] - np.datetime64("1970-01-01 00:00:00") + ) / np.timedelta64(1, "s") else: - t = um.index + time = measured_voltage[time_dimension] + d_t = np.diff(time) + + # Calculate frequency + frequency = xr.Dataset() + for var in measured_voltage.data_vars: + freq = hilbert(measured_voltage[var]) + instantaneous_phase = np.unwrap(np.angle(freq)) + f_instantaneous = np.diff(instantaneous_phase) / (2.0 * np.pi) * (1 / d_t) - dt = pd.Series(t).diff()[1:] + frequency = frequency.assign({var: (time_dimension, f_instantaneous)}) + frequency = frequency.assign_coords( + {time_dimension: measured_voltage.coords[time_dimension].values[0:-1]} + ) - if isinstance(um,pd.Series): - um = um.to_frame() + if to_pandas: + frequency = frequency.to_pandas() - columns = um.columns - frequency=pd.DataFrame(columns=columns) - for column in um.columns: - f = hilbert(um[column]) - instantaneous_phase = np.unwrap(np.angle(f)) - instantaneous_frequency = np.diff(instantaneous_phase) /(2.0*np.pi) * (1/dt) - frequency[column] = instantaneous_frequency - return frequency -def dc_power(voltage, current): + +def dc_power( + voltage: Union[pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset], + current: Union[pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset], + to_pandas: bool = True, +) -> Union[pd.DataFrame, xr.Dataset]: """ Calculates DC power from voltage and current Parameters ----------- - voltage: pandas Series or DataFrame + voltage: pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset Measured DC voltage [V] indexed by time - current: pandas Series or DataFrame + + current: pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset Measured three phase current [A] indexed by time - + + to_pandas: bool (Optional) + Flag to save output to pandas instead of xarray. Default = True. + Returns -------- - P: pandas DataFrame + power_dc: pandas DataFrame or xarray Dataset DC power [W] from each channel and gross power indexed by time """ - assert isinstance(voltage, (pd.Series, pd.DataFrame)), 'voltage must be of type pd.Series or pd.DataFrame' - assert isinstance(current, (pd.Series, pd.DataFrame)), 'current must be of type pd.Series or pd.DataFrame' - assert voltage.shape == current.shape, 'current and volatge must have the same shape' - - - P = current.values * voltage.values - P = pd.DataFrame(P) - P['Gross'] = P.sum(axis=1, skipna=True) + if not isinstance(voltage, (pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset)): + raise TypeError( + "voltage must be of type pd.Series, pd.DataFrame, " + + f"xr.DataArray, or xr.Dataset. Got {type(voltage)}" + ) + if not isinstance(current, (pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset)): + raise TypeError( + "current must be of type pd.Series, pd.DataFrame, " + + f"xr.DataArray, or xr.Dataset. Got {type(current)}" + ) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + # Convert inputs to xr.Dataset + voltage = convert_to_dataset(voltage, "voltage") + current = convert_to_dataset(current, "current") - return P + # Check that sizes are the same + if not ( + voltage.sizes == current.sizes + and len(voltage.data_vars) == len(current.data_vars) + ): + raise ValueError("current and voltage must have the same shape") -def ac_power_three_phase(voltage, current, power_factor, line_to_line=False): + power_dc = xr.Dataset() + gross = None + + # Multiply current and voltage variables together, in order they're assigned + for i, (current_var, voltage_var) in enumerate( + zip(current.data_vars, voltage.data_vars) + ): + temp = current[current_var] * voltage[voltage_var] + power_dc = power_dc.assign({f"{i}": temp}) + if gross is None: + gross = temp + else: + gross = gross + temp + + power_dc = power_dc.assign({"Gross": gross}) + + if to_pandas: + power_dc = power_dc.to_dataframe() + + return power_dc + + +def ac_power_three_phase( + voltage: Union[pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset], + current: Union[pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset], + power_factor: float, + line_to_line: bool = False, + to_pandas: bool = True, +) -> Union[pd.DataFrame, xr.Dataset]: """ - Calculates magnitude of active AC power from line to neutral voltage and current + Calculates magnitude of active AC power from line to neutral voltage and current Parameters ----------- - voltage: pandas DataFrame - Time-series of three phase measured voltage [V] indexed by time - current: pandas DataFrame - Time-series of three phase measured current [A] indexed by time - power_factor: float + voltage: pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset + Measured DC voltage [V] indexed by time + + current: pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset + Measured three phase current [A] indexed by time + + power_factor: float Power factor for the efficiency of the system - line_to_line: bool + + line_to_line: bool (Optional) Set to true if the given voltage measurements are line_to_line - + + to_pandas: bool (Optional) + Flag to save output to pandas instead of xarray. Default = True. + Returns -------- - P: pandas DataFrame - Magnitude of active AC power [W] indexed by time with Power column + power_ac: pandas DataFrame or xarray Dataset + Magnitude of active AC power [W] indexed by time with Power column """ - assert isinstance(voltage, pd.DataFrame), 'voltage must be of type pd.DataFrame' - assert isinstance(current, pd.DataFrame), 'current must be of type pd.DataFrame' - assert len(voltage.columns) == 3, 'voltage must have three columns' - assert len(current.columns) == 3, 'current must have three columns' - assert current.shape == voltage.shape, 'current and voltage must be of the same size' - + if not isinstance(voltage, (pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset)): + raise TypeError( + "voltage must be of type pd.Series, pd.DataFrame, " + + f"xr.DataArray, or xr.Dataset. Got {type(voltage)}" + ) + if not isinstance(current, (pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset)): + raise TypeError( + "current must be of type pd.Series, pd.DataFrame, " + + f"xr.DataArray, or xr.Dataset. Got {type(current)}" + ) + if not isinstance(line_to_line, bool): + raise TypeError(f"line_to_line must be of type bool. Got: {type(line_to_line)}") + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + # Convert inputs to xr.Dataset + voltage = convert_to_dataset(voltage, "voltage") + current = convert_to_dataset(current, "current") - abs_current = np.abs(current.values) - abs_voltage = np.abs(voltage.values) + # Check that sizes are the same + if len(voltage.data_vars) != 3: + raise ValueError("voltage must have three columns") + if len(current.data_vars) != 3: + raise ValueError("current must have three columns") + if current.sizes != voltage.sizes: + raise ValueError("current and voltage must be of the same size") + + power = dc_power(voltage, current, to_pandas=False)["Gross"] + power.name = "Power" + power = ( + power.to_dataset() + ) # force xr.DataArray to be consistently in xr.Dataset format + power_ac = np.abs(power) * power_factor if line_to_line: - power = abs_current * (abs_voltage * np.sqrt(3)) - else: - power = abs_current * abs_voltage - - power = pd.DataFrame(power) - P = power.sum(axis=1) * power_factor - P = P.to_frame('Power') - - return P + power_ac = power_ac * np.sqrt(3) + + if to_pandas: + power_ac = power_ac.to_pandas() + + return power_ac diff --git a/mhkit/power/quality.py b/mhkit/power/quality.py index 27f89c20f..8f830348d 100644 --- a/mhkit/power/quality.py +++ b/mhkit/power/quality.py @@ -1,208 +1,378 @@ +""" +This module contains functions for calculating various aspects of power quality, +particularly focusing on the analysis of harmonics and interharmonics in electrical +power systems. These functions are designed to assist in power quality assessments +by providing tools to analyze voltage and current signals for their harmonic +and interharmonic components based on the guidelines and methodologies +outlined in IEC 61000-4-7. + +Functions in this module include: + +- harmonics: Calculates the harmonics from time series of voltage or current. + This function returns the amplitude of the time-series data harmonics indexed by + the harmonic frequency, aiding in the identification of harmonic distortions + within the power system. + +- harmonic_subgroups: Computes the harmonic subgroups as per IEC 61000-4-7 standards. + Harmonic subgroups provide insights into the distribution of power across + different harmonic frequencies, which is crucial for understanding the behavior + of non-linear loads and their impact on the power quality. + +- total_harmonic_current_distortion (THCD): Determines the total harmonic current + distortion, offering a summary metric that quantifies the overall level of + harmonic distortion present in the current waveform. This metric is essential + for assessing compliance with power quality standards and guidelines. + +- interharmonics: Identifies and calculates the interharmonics present in the + power system. Interharmonics, which are frequencies that occur between the + fundamental and harmonic frequencies, can arise from various sources and + potentially lead to power quality issues. +""" + +from typing import Union import pandas as pd import numpy as np -import scipy.integrate as integrate -from scipy.optimize import fsolve -from scipy.signal import hilbert -from scipy import signal, fft, fftpack +from scipy import fftpack +import xarray as xr +from mhkit.utils import convert_to_dataset -#This group of functions are to be used for power quality assessments - -def harmonics(x,freq,grid_freq): +def harmonics( + signal_data: Union[pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset], + freq: Union[float, int], + grid_freq: int, + to_pandas: bool = True, +) -> Union[pd.DataFrame, xr.Dataset]: """ - Calculates the harmonics from time series of voltage or current based on IEC 61000-4-7. + Calculates the harmonics from time series of voltage or current based on IEC 61000-4-7. Parameters ----------- - x: pandas Series or DataFrame + signal_data: pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset Time-series of voltage [V] or current [A] - + freq: float or Int Frequency of the time-series data [Hz] - + grid_freq: int Value indicating if the power supply is 50 or 60 Hz. Options = 50 or 60 - - + + to_pandas: bool (Optional) + Flag to save output to pandas instead of xarray. Default = True. + Returns -------- - harmonics: pandas DataFrame - Amplitude of the time-series data harmonics indexed by the harmonic + harmonic_amplitudes: pandas DataFrame or xarray Dataset + Amplitude of the time-series data harmonics indexed by the harmonic frequency with signal name columns """ - assert isinstance(x, (pd.Series, pd.DataFrame)), 'Provided voltage or current must be of type pd.DataFrame or pd.Series' - assert isinstance(freq, (float, int)), 'freq must be of type float or integer' - assert (grid_freq == 50 or grid_freq == 60), 'grid_freq must be either 50 or 60' + if not isinstance(signal_data, (pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset)): + raise TypeError( + "signal_data must be of type pd.Series, pd.DataFrame, " + + f"xr.DataArray, or xr.Dataset. Got {type(signal_data)}" + ) + + if not isinstance(freq, (float, int)): + raise TypeError(f"freq must be of type float or integer. Got {type(freq)}") - # Check if x is a DataFrame - if isinstance(x, (pd.DataFrame)) == True: - cols = x.columns - - x = x.to_numpy() - sample_spacing = 1./freq - frequency_bin_centers = fftpack.fftfreq(len(x), d=sample_spacing) + if grid_freq not in [50, 60]: + raise ValueError(f"grid_freq must be either 50 or 60. Got {grid_freq}") - harmonics_amplitude = np.abs(np.fft.fft(x, axis=0)) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got {type(to_pandas)}") - harmonics = pd.DataFrame(harmonics_amplitude, index=frequency_bin_centers) - harmonics = harmonics.sort_index() - - # Keep the signal name as the column name - if 'cols' in locals(): - harmonics.columns = cols + # Convert input to xr.Dataset + signal_data = convert_to_dataset(signal_data, "data") - if grid_freq == 60: - hz = np.arange(0,3060,5) - elif grid_freq == 50: - hz = np.arange(0,2570,5) + sample_spacing = 1.0 / freq + # Loop through all variables in signal_data + harmonic_amplitudes = xr.Dataset() + for var in signal_data.data_vars: + dataarray = signal_data[var] + dataarray = dataarray.to_numpy() - harmonics = harmonics.reindex(hz, method='nearest') - harmonics = harmonics/len(x)*2 + frequency_bin_centers = fftpack.fftfreq(len(dataarray), d=sample_spacing) + harmonics_amplitude = np.abs(np.fft.fft(dataarray, axis=0)) + + harmonic_amplitudes = harmonic_amplitudes.assign( + {var: (["frequency"], harmonics_amplitude)} + ) + harmonic_amplitudes = harmonic_amplitudes.assign_coords( + {"frequency": frequency_bin_centers} + ) + harmonic_amplitudes = harmonic_amplitudes.sortby("frequency") + + if grid_freq == 60: + hertz = np.arange(0, 3060, 5) + elif grid_freq == 50: + hertz = np.arange(0, 2570, 5) - - return harmonics + harmonic_amplitudes = harmonic_amplitudes.reindex( + {"frequency": hertz}, method="nearest" + ) + harmonic_amplitudes = ( + harmonic_amplitudes / len(signal_data[list(signal_data.dims)[0]]) * 2 + ) + if to_pandas: + harmonic_amplitudes = harmonic_amplitudes.to_pandas() -def harmonic_subgroups(harmonics, grid_freq): + return harmonic_amplitudes + + +def harmonic_subgroups( + harmonic_amplitudes: Union[pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset], + grid_freq: int, + frequency_dimension: str = "", + to_pandas: bool = True, +) -> Union[pd.DataFrame, xr.Dataset]: """ Calculates the harmonic subgroups based on IEC 61000-4-7 Parameters ---------- - harmonics: pandas Series or DataFrame - Harmonic amplitude indexed by the harmonic frequency + harmonic_amplitudes: pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset + Harmonic amplitude indexed by the harmonic frequency + grid_freq: int Value indicating if the power supply is 50 or 60 Hz. Options = 50 or 60 + frequency_dimension: string (optional) + Name of the xarray dimension corresponding to frequency. If not supplied, + defaults to the first dimension. Does not affect pandas input. + + to_pandas: bool (Optional) + Flag to save output to pandas instead of xarray. Default = True. + Returns -------- - harmonic_subgroups: pandas DataFrame - Harmonic subgroups indexed by harmonic frequency + subgroup_results: pandas DataFrame or xarray Dataset + Harmonic subgroups indexed by harmonic frequency with signal name columns - """ - assert isinstance(harmonics, (pd.Series, pd.DataFrame)), 'harmonics must be of type pd.DataFrame or pd.Series' - assert (grid_freq == 50 or grid_freq == 60), 'grid_freq must be either 50 or 60' - - # Check if harmonics is a DataFrame - if isinstance(harmonics, (pd.DataFrame)) == True: - cols = harmonics.columns - - + """ + if not isinstance( + harmonic_amplitudes, (pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset) + ): + raise TypeError( + "harmonic_amplitudes must be of type pd.Series, pd.DataFrame, " + + f"xr.DataArray, or xr.Dataset. Got {type(harmonic_amplitudes)}" + ) + + if grid_freq not in [50, 60]: + raise ValueError(f"grid_freq must be either 50 or 60. Got {grid_freq}") + + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + if not isinstance(frequency_dimension, str): + raise TypeError( + f"frequency_dimension must be of type str. Got: {type(frequency_dimension)}" + ) + + # Convert input to xr.Dataset + harmonic_amplitudes = convert_to_dataset(harmonic_amplitudes, "harmonic_amplitudes") + + if ( + frequency_dimension != "" + and frequency_dimension not in harmonic_amplitudes.coords + ): + raise ValueError( + "frequency_dimension was supplied but is not a dimension " + + f"of harmonic_amplitudes. Got {frequency_dimension}" + ) + if grid_freq == 60: - - hz = np.arange(0,3060,60) - elif grid_freq == 50: - - hz = np.arange(0,2550,50) - - j=0 - i=0 - cols=harmonics.columns - harmonic_subgroups=np.ones((np.size(hz),np.size(cols))) - for n in hz: - - harmonics=harmonics.sort_index(axis=0) - ind=pd.Index(harmonics.index) - - indn = ind.get_loc(n, method='nearest') - for col in cols: - harmonic_subgroups[i,j] = np.sqrt(np.sum([harmonics[col].iloc[indn-1]**2,harmonics[col].iloc[indn]**2,harmonics[col].iloc[indn+1]**2])) - j=j+1 - j=0 - i=i+1 - - harmonic_subgroups = pd.DataFrame(harmonic_subgroups,index=hz) - - # Keep the signal name as the column name - if 'cols' in locals(): - harmonic_subgroups.columns = cols - - return harmonic_subgroups - -def total_harmonic_current_distortion(harmonics_subgroup,rated_current): + hertz = np.arange(0, 3060, 60) + else: + hertz = np.arange(0, 2550, 50) + + # Sort input data index + if frequency_dimension == "": + frequency_dimension = list(harmonic_amplitudes.dims)[0] + harmonic_amplitudes = harmonic_amplitudes.sortby(frequency_dimension) + + # Loop through all variables in harmonics + subgroup_results = xr.Dataset() + for var in harmonic_amplitudes.data_vars: + dataarray = harmonic_amplitudes[var] + subgroup = np.zeros(np.size(hertz)) + for ihz in np.arange(0, len(hertz)): + current_frequency = hertz[ihz] + ind = dataarray.indexes[frequency_dimension].get_loc(current_frequency) + + data_subset = dataarray.isel({frequency_dimension: [ind - 1, ind, ind + 1]}) + subgroup[ihz] = (data_subset**2).sum() ** 0.5 + + subgroup_results = subgroup_results.assign({var: (["frequency"], subgroup)}) + subgroup_results = subgroup_results.assign_coords({"frequency": hertz}) + + if to_pandas: + subgroup_results = subgroup_results.to_pandas() + + return subgroup_results + + +def total_harmonic_current_distortion( + harmonics_subgroup: Union[pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset], + frequency_dimension: str = "", + to_pandas: bool = True, +) -> Union[pd.DataFrame, xr.Dataset]: """ Calculates the total harmonic current distortion (THC) based on IEC/TS 62600-30 Parameters ---------- - harmonics_subgroup: pandas DataFrame or Series + harmonics_subgroup: pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset Subgrouped current harmonics indexed by harmonic frequency - - rated_current: float - Rated current of the energy device in Amps - + + frequency_dimension: string (optional) + Name of the xarray dimension corresponding to frequency. If not supplied, + defaults to the first dimension. Does not affect pandas input. + + to_pandas: bool (optional) + Flag to save output to pandas instead of xarray. Default = True. + Returns -------- - THCD: pd.DataFrame - Total harmonic current distortion indexed by signal name with THCD column + thcd_result: pd.DataFrame or xarray Dataset + Total harmonic current distortion indexed by signal name with THCD column """ - assert isinstance(harmonics_subgroup, (pd.Series, pd.DataFrame)), 'harmonic_subgroups must be of type pd.DataFrame or pd.Series' - assert isinstance(rated_current, float), 'rated_current must be a float' - - harmonics_sq = harmonics_subgroup.iloc[2:50]**2 + if not isinstance( + harmonics_subgroup, (pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset) + ): + raise TypeError( + "harmonics_subgroup must be of type pd.Series, pd.DataFrame, " + + f"xr.DataArray, or xr.Dataset. Got {type(harmonics_subgroup)}" + ) + + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + if not isinstance(frequency_dimension, str): + raise TypeError( + f"frequency_dimension must be of type bool. Got: {type(frequency_dimension)}" + ) + + # Convert input to xr.Dataset + harmonics_subgroup = convert_to_dataset(harmonics_subgroup, "harmonics_subgroup") + + if ( + frequency_dimension != "" + and frequency_dimension not in harmonics_subgroup.coords + ): + raise ValueError( + "frequency_dimension was supplied but is not a dimension " + + f"of harmonics. Got {frequency_dimension}" + ) + + if frequency_dimension == "": + frequency_dimension = list(harmonics_subgroup.dims)[0] + harmonics_sq = harmonics_subgroup.isel({frequency_dimension: slice(2, 50)}) ** 2 + harmonics_sum = harmonics_sq.sum() + + thcd_result = ( + np.sqrt(harmonics_sum) / harmonics_subgroup.isel({frequency_dimension: 1}) + ) * 100 - harmonics_sum=harmonics_sq.sum() + if isinstance(thcd_result, xr.DataArray): + thcd_result.name = ["THCD"] - THCD = (np.sqrt(harmonics_sum)/harmonics_subgroup.iloc[1])*100 - THCD = pd.DataFrame(THCD) # converting to dataframe for Matlab - THCD.columns = ['THCD'] - THCD = THCD.T + if to_pandas: + thcd_result = thcd_result.to_pandas() - return THCD + return thcd_result -def interharmonics(harmonics,grid_freq): + +def interharmonics( + harmonic_amplitudes: Union[pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset], + grid_freq: int, + frequency_dimension: str = "", + to_pandas: bool = True, +) -> Union[pd.DataFrame, xr.Dataset]: """ - Calculates the interharmonics from the harmonics of current + Calculates the interharmonics from the harmonic_amplitudes of current Parameters ----------- - harmonics: pandas Series or DataFrame - Harmonic amplitude indexed by the harmonic frequency + harmonic_amplitudes: pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset + Harmonic amplitude indexed by the harmonic frequency grid_freq: int Value indicating if the power supply is 50 or 60 Hz. Options = 50 or 60 + frequency_dimension: string (optional) + Name of the xarray dimension corresponding to frequency. If not supplied, + defaults to the first dimension. Does not affect pandas input. + + to_pandas: bool (Optional) + Flag to save output to pandas instead of xarray. Default = True. + Returns ------- - interharmonics: pandas DataFrame + interharmonic_groups: pandas DataFrame or xarray Dataset Interharmonics groups """ - assert isinstance(harmonics, (pd.Series, pd.DataFrame)), 'harmonics must be of type pd.DataFrame or pd.Series' - assert (grid_freq == 50 or grid_freq == 60), 'grid_freq must be either 50 or 60' - + if not isinstance( + harmonic_amplitudes, (pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset) + ): + raise TypeError( + "harmonic_amplitudes must be of type pd.Series, pd.DataFrame, " + + f"xr.DataArray, or xr.Dataset. Got {type(harmonic_amplitudes)}" + ) + + if grid_freq not in [50, 60]: + raise ValueError(f"grid_freq must be either 50 or 60. Got {grid_freq}") + + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + # Convert input to xr.Dataset + harmonic_amplitudes = convert_to_dataset(harmonic_amplitudes, "harmonic_amplitudes") + + if ( + frequency_dimension != "" + and frequency_dimension not in harmonic_amplitudes.coords + ): + raise ValueError( + "frequency_dimension was supplied but is not a dimension " + + f"of harmonic_amplitudes. Got {frequency_dimension}" + ) if grid_freq == 60: - - hz = np.arange(0,3060,60) - elif grid_freq == 50: - - hz = np.arange(0,2550,50) - - j=0 - i=0 - cols=harmonics.columns - interharmonics=np.ones((np.size(hz),np.size(cols))) - for n in hz: - harmonics=harmonics.sort_index(axis=0) - ind=pd.Index(harmonics.index) - - indn = ind.get_loc(n, method='nearest') - for col in cols: + hertz = np.arange(0, 3060, 60) + elif grid_freq == 50: + hertz = np.arange(0, 2550, 50) + + # Sort input data index + if frequency_dimension == "": + frequency_dimension = list(harmonic_amplitudes.dims)[0] + harmonic_amplitudes = harmonic_amplitudes.sortby(frequency_dimension) + + # Loop through all variables in harmonic_amplitudes + interharmonic_groups = xr.Dataset() + for var in harmonic_amplitudes.data_vars: + dataarray = harmonic_amplitudes[var] + subset = np.zeros(np.size(hertz)) + + for ihz in np.arange(0, len(hertz)): + current_frequency = hertz[ihz] + ind = dataarray.indexes[frequency_dimension].get_loc(current_frequency) + if grid_freq == 60: - subset = harmonics[col].iloc[indn+1:indn+11]**2 - subset = subset.squeeze() - else: - subset = harmonics[col].iloc[indn+1:indn+7]**2 - subset = subset.squeeze() - - interharmonics[i,j] = np.sqrt(np.sum(subset)) - j=j+1 - j=0 - i=i+1 - - - interharmonics = pd.DataFrame(interharmonics,index=hz) - - return interharmonics + data = dataarray.isel({frequency_dimension: slice(ind + 1, ind + 11)}) + subset[ihz] = (data**2).sum() ** 0.5 + else: + data = dataarray.isel({frequency_dimension: slice(ind + 1, ind + 7)}) + subset[ihz] = (data**2).sum() ** 0.5 + + interharmonic_groups = interharmonic_groups.assign( + {var: (["frequency"], subset)} + ) + interharmonic_groups = interharmonic_groups.assign_coords({"frequency": hertz}) + + if to_pandas: + interharmonic_groups = interharmonic_groups.to_pandas() + + return interharmonic_groups diff --git a/mhkit/qc/__init__.py b/mhkit/qc/__init__.py index 841442eca..c325f37f2 100644 --- a/mhkit/qc/__init__.py +++ b/mhkit/qc/__init__.py @@ -1,2 +1,8 @@ -from pecos.monitoring import check_timestamp, check_missing, check_corrupt, \ - check_range, check_delta, check_outlier +from pecos.monitoring import ( + check_timestamp, + check_missing, + check_corrupt, + check_range, + check_delta, + check_outlier, +) diff --git a/mhkit/river/__init__.py b/mhkit/river/__init__.py index 452810833..8406b8cf1 100644 --- a/mhkit/river/__init__.py +++ b/mhkit/river/__init__.py @@ -1,5 +1,4 @@ -from mhkit.river import performance +from mhkit.river import performance from mhkit.river import graphics -from mhkit.river import resource -from mhkit.river import io - +from mhkit.river import resource +from mhkit.river import io diff --git a/mhkit/river/graphics.py b/mhkit/river/graphics.py index 46b621f88..396ce1271 100644 --- a/mhkit/river/graphics.py +++ b/mhkit/river/graphics.py @@ -1,10 +1,10 @@ import numpy as np -import pandas as pd -import matplotlib.pyplot as plt +import xarray as xr +import matplotlib.pyplot as plt +from mhkit.utils import convert_to_dataarray -def _xy_plot(x, y, fmt='.', label=None, xlabel=None, ylabel=None, title=None, - ax=None): +def _xy_plot(x, y, fmt=".", label=None, xlabel=None, ylabel=None, title=None, ax=None): """ Base function to plot any x vs y data @@ -14,241 +14,304 @@ def _xy_plot(x, y, fmt='.', label=None, xlabel=None, ylabel=None, title=None, Data for the x axis of plot y: array-like Data for y axis of plot - + Returns ------- ax : matplotlib.pyplot axes - + """ if ax is None: - plt.figure(figsize=(16,8)) - params = {'legend.fontsize': 'x-large', - 'axes.labelsize': 'x-large', - 'axes.titlesize':'x-large', - 'xtick.labelsize':'x-large', - 'ytick.labelsize':'x-large'} + plt.figure(figsize=(16, 8)) + params = { + "legend.fontsize": "x-large", + "axes.labelsize": "x-large", + "axes.titlesize": "x-large", + "xtick.labelsize": "x-large", + "ytick.labelsize": "x-large", + } plt.rcParams.update(params) ax = plt.gca() - + ax.plot(x, y, fmt, label=label, markersize=7) - + ax.grid() - - if label: ax.legend() - if xlabel: ax.set_xlabel(xlabel) - if ylabel: ax.set_ylabel(ylabel) - if title: ax.set_title(title) - + + if label: + ax.legend() + if xlabel: + ax.set_xlabel(xlabel) + if ylabel: + ax.set_ylabel(ylabel) + if title: + ax.set_title(title) + plt.tight_layout() - + return ax def plot_flow_duration_curve(D, F, label=None, ax=None): """ - Plots discharge vs exceedance probability as a Flow Duration Curve (FDC) - + Plots discharge vs exceedance probability as a Flow Duration Curve (FDC) + Parameters ------------ D: array-like Discharge [m/s] indexed by time - - F: array-like + + F: array-like Exceedance probability [unitless] indexed by time - + label: string Label to use in the legend - + ax : matplotlib axes object - Axes for plotting. If None, then a new figure with a single + Axes for plotting. If None, then a new figure with a single axes is used. - + Returns --------- ax : matplotlib pyplot axes - + """ # Sort by F - temp = pd.DataFrame({'D': D, 'F': F}) - temp.sort_values('F', ascending=False, kind='mergesort', inplace=True) - - ax = _xy_plot(temp['D'], temp['F'], fmt='-', label=label, xlabel='Discharge [$m^3/s$]', - ylabel='Exceedance Probability', ax=ax) - plt.xscale('log') + temp = xr.Dataset(data_vars={"D": D, "F": F}) + temp.sortby("F", ascending=False) + + ax = _xy_plot( + temp["D"], + temp["F"], + fmt="-", + label=label, + xlabel="Discharge [$m^3/s$]", + ylabel="Exceedance Probability", + ax=ax, + ) + plt.xscale("log") return ax def plot_velocity_duration_curve(V, F, label=None, ax=None): """ - Plots velocity vs exceedance probability as a Velocity Duration Curve (VDC) - + Plots velocity vs exceedance probability as a Velocity Duration Curve (VDC) + Parameters ------------ - V: array-like + V: array-like Velocity [m/s] indexed by time - - F: array-like + + F: array-like Exceedance probability [unitless] indexed by time - + label: string Label to use in the legend - + ax : matplotlib axes object - Axes for plotting. If None, then a new figure with a single + Axes for plotting. If None, then a new figure with a single axes is used. - + Returns --------- ax : matplotlib pyplot axes - + """ # Sort by F - temp = pd.DataFrame({'V': V, 'F': F}) - temp.sort_values('F', ascending=False, kind='mergesort', inplace=True) - - ax = _xy_plot(temp['V'], temp['F'], fmt='-', label=label, xlabel='Velocity [$m/s$]', - ylabel='Exceedance Probability', ax=ax) + temp = xr.Dataset(data_vars={"V": V, "F": F}) + temp.sortby("F", ascending=False) + + ax = _xy_plot( + temp["V"], + temp["F"], + fmt="-", + label=label, + xlabel="Velocity [$m/s$]", + ylabel="Exceedance Probability", + ax=ax, + ) return ax def plot_power_duration_curve(P, F, label=None, ax=None): """ - Plots power vs exceedance probability as a Power Duration Curve (PDC) + Plots power vs exceedance probability as a Power Duration Curve (PDC) Parameters ------------ - P: array-like + P: array-like Power [W] indexed by time - - F: array-like + + F: array-like Exceedance probability [unitless] indexed by time - + label: string Label to use in the legend - + ax : matplotlib axes object - Axes for plotting. If None, then a new figure with a single + Axes for plotting. If None, then a new figure with a single axes is used. - + Returns --------- ax : matplotlib pyplot axes - + """ # Sort by F - temp = pd.DataFrame({'P': P, 'F': F}) - temp.sort_values('F', ascending=False, kind='mergesort', inplace=True) - - ax = _xy_plot(temp['P'], temp['F'], fmt='-', label=label, xlabel='Power [W]', - ylabel='Exceedance Probability', ax=ax) + temp = xr.Dataset(data_vars={"P": P, "F": F}) + temp.sortby("F", ascending=False) + + ax = _xy_plot( + temp["P"], + temp["F"], + fmt="-", + label=label, + xlabel="Power [W]", + ylabel="Exceedance Probability", + ax=ax, + ) return ax - -def plot_discharge_timeseries(Q, label=None, ax=None): + +def plot_discharge_timeseries(Q, time_dimension="", label=None, ax=None): """ Plots discharge time-series - + Parameters ------------ Q: array-like Discharge [m3/s] indexed by time - + + time_dimension: string (optional) + Name of the xarray dimension corresponding to time. If not supplied, + defaults to the first dimension. + label: string Label to use in the legend - + ax : matplotlib axes object - Axes for plotting. If None, then a new figure with a single + Axes for plotting. If None, then a new figure with a single axes is used. - + Returns --------- - ax : matplotlib pyplot axes - + ax : matplotlib pyplot axes + """ + Q = convert_to_dataarray(Q) + + if time_dimension == "": + time_dimension = list(Q.coords)[0] + ax = _xy_plot( - Q.index, - Q, - fmt='-', - label=label, - xlabel='Time', - ylabel='Discharge [$m^3/s$]', - ax=ax + Q.coords[time_dimension].values, + Q, + fmt="-", + label=label, + xlabel="Time", + ylabel="Discharge [$m^3/s$]", + ax=ax, ) - + return ax def plot_discharge_vs_velocity(D, V, polynomial_coeff=None, label=None, ax=None): """ Plots discharge vs velocity data along with the polynomial fit - + Parameters ------------ - D : pandas Series + D : array-like Discharge [m/s] indexed by time - - V : pandas Series + + V : array-like Velocity [m/s] indexed by time - + polynomial_coeff: numpy polynomial - Polynomial coefficients, which can be computed using - `river.resource.polynomial_fit`. If None, then the polynomial fit is - not included int the plot. - + Polynomial coefficients, which can be computed using + `river.resource.polynomial_fit`. If None, then the polynomial fit is + not included int the plot. + ax : matplotlib axes object - Axes for plotting. If None, then a new figure with a single + Axes for plotting. If None, then a new figure with a single axes is used. - + Returns --------- ax : matplotlib pyplot axes - + """ - ax = _xy_plot(D, V, fmt='.', label=label, xlabel='Discharge [$m^3/s$]', - ylabel='Velocity [$m/s$]', ax=ax) + ax = _xy_plot( + D, + V, + fmt=".", + label=label, + xlabel="Discharge [$m^3/s$]", + ylabel="Velocity [$m/s$]", + ax=ax, + ) if polynomial_coeff: x = np.linspace(D.min(), D.max()) - ax = _xy_plot(x, polynomial_coeff(x), fmt='--', label='Polynomial fit', - xlabel='Discharge [$m^3/s$]', ylabel='Velocity [$m/s$]', - ax=ax) + ax = _xy_plot( + x, + polynomial_coeff(x), + fmt="--", + label="Polynomial fit", + xlabel="Discharge [$m^3/s$]", + ylabel="Velocity [$m/s$]", + ax=ax, + ) return ax def plot_velocity_vs_power(V, P, polynomial_coeff=None, label=None, ax=None): """ - Plots velocity vs power data along with the polynomial fit - + Plots velocity vs power data along with the polynomial fit + Parameters ------------ - V : pandas Series + V : array-like Velocity [m/s] indexed by time - - P: pandas Series + + P: array-like Power [W] indexed by time - + polynomial_coeff: numpy polynomial - Polynomial coefficients, which can be computed using - `river.resource.polynomial_fit`. If None, then the polynomial fit is - not included int the plot. - + Polynomial coefficients, which can be computed using + `river.resource.polynomial_fit`. If None, then the polynomial fit is + not included int the plot. + ax : matplotlib axes object - Axes for plotting. If None, then a new figure with a single + Axes for plotting. If None, then a new figure with a single axes is used. - + Returns --------- ax : matplotlib pyplot axes - + """ - ax = _xy_plot(V, P, fmt='.', label=label, xlabel='Velocity [$m/s$]', - ylabel='Power [$W$]', ax=ax) + ax = _xy_plot( + V, + P, + fmt=".", + label=label, + xlabel="Velocity [$m/s$]", + ylabel="Power [$W$]", + ax=ax, + ) if polynomial_coeff: x = np.linspace(V.min(), V.max()) - ax = _xy_plot(x, polynomial_coeff(x), fmt='--', label='Polynomial fit', - xlabel='Velocity [$m/s$]', ylabel='Power [$W$]', ax=ax) - + ax = _xy_plot( + x, + polynomial_coeff(x), + fmt="--", + label="Polynomial fit", + xlabel="Velocity [$m/s$]", + ylabel="Power [$W$]", + ax=ax, + ) + return ax diff --git a/mhkit/river/io/__init__.py b/mhkit/river/io/__init__.py index bf2aea4d1..852964f7b 100644 --- a/mhkit/river/io/__init__.py +++ b/mhkit/river/io/__init__.py @@ -1,2 +1,2 @@ from mhkit.river.io import usgs -from mhkit.river.io import d3d +from mhkit.river.io import d3d diff --git a/mhkit/river/io/d3d.py b/mhkit/river/io/d3d.py index d4db2e266..19a61df62 100644 --- a/mhkit/river/io/d3d.py +++ b/mhkit/river/io/d3d.py @@ -2,20 +2,21 @@ import scipy.interpolate as interp import numpy as np import pandas as pd +import xarray as xr import netCDF4 import warnings def get_all_time(data): - ''' - Returns all of the time stamps from a D3D simulation passed to the function + """ + Returns all of the time stamps from a D3D simulation passed to the function as a NetCDF object (data) - + Parameters ---------- - data: NetCDF4 object + data: NetCDF4 object A NetCDF4 object that contains spatial data, e.g. velocity or shear - stress generated by running a Delft3D model. + stress generated by running a Delft3D model. Returns ------- @@ -23,25 +24,26 @@ def get_all_time(data): Returns an array of integers representing the number of seconds after the simulation started and that the data object contains a snapshot of simulation conditions at that time. - ''' - - assert type(data)== netCDF4._netCDF4.Dataset, 'data must be NetCDF4 object' + """ + + if not isinstance(data, netCDF4._netCDF4.Dataset): + raise TypeError("data must be a NetCDF4 object") - seconds_run = np.ma.getdata(data.variables['time'][:], False) + seconds_run = np.ma.getdata(data.variables["time"][:], False) return seconds_run def index_to_seconds(data, time_index): - ''' - The function will return 'seconds_run' if passed a 'time_index' + """ + The function will return 'seconds_run' if passed a 'time_index' Parameters ---------- - data: NetCDF4 object + data: NetCDF4 object A NetCDF4 object that contains spatial data, e.g. velocity or shear - stress, generated by running a Delft3D model. - time_index: int + stress, generated by running a Delft3D model. + time_index: int A positive integer to pull the time index from the dataset. 0 being closest to time 0. Default is last time index -1. @@ -49,87 +51,98 @@ def index_to_seconds(data, time_index): ------- seconds_run: int, float The 'seconds_run' is the seconds corresponding to the 'time_index' increments. - ''' + """ return _convert_time(data, time_index=time_index) def seconds_to_index(data, seconds_run): - ''' + """ The function will return the nearest 'time_index' in the data if passed an integer number of 'seconds_run' - + Parameters ---------- - data: NetCDF4 object + data: NetCDF4 object A NetCDF4 object that contains spatial data, e.g. velocity or shear - stress, generated by running a Delft3D model. + stress, generated by running a Delft3D model. seconds_run: int, float - A positive integer or float that represents the amount of time in seconds + A positive integer or float that represents the amount of time in seconds passed since starting the simulation. Returns ------- time_index: int - The 'time_index' is a positive integer starting from 0 + The 'time_index' is a positive integer starting from 0 and incrementing until in simulation is complete. - ''' + """ return _convert_time(data, seconds_run=seconds_run) def _convert_time(data, time_index=None, seconds_run=None): - ''' - Converts a time index to seconds or seconds to a time index. The user - must specify 'time_index' or 'seconds_run' (Not both). The function - will returns 'seconds_run' if passed a 'time_index' or will return the + """ + Converts a time index to seconds or seconds to a time index. The user + must specify 'time_index' or 'seconds_run' (Not both). The function + will returns 'seconds_run' if passed a 'time_index' or will return the closest 'time_index' if passed a number of 'seconds_run'. Parameters ---------- - data: NetCDF4 object + data: NetCDF4 object A NetCDF4 object that contains spatial data, e.g. velocity or shear - stress, generated by running a Delft3D model. - time_index: int + stress, generated by running a Delft3D model. + time_index: int An integer to pull the time index from the dataset. 0 being closest - to the start time. + to the start time. seconds_run: int, float - An integer or float that represents the amount of time in seconds + An integer or float that represents the amount of time in seconds passed since starting the simulation. Returns ------- QoI: int, float - The quantity of interest is the unknown value either the 'time_index' - or the 'seconds_run'. The 'time_index' is an integer starting from 0 + The quantity of interest is the unknown value either the 'time_index' + or the 'seconds_run'. The 'time_index' is an integer starting from 0 and incrementing until in simulation is complete. The 'seconds_run' is the seconds corresponding to the 'time_index' increments. - ''' - - assert type(data)== netCDF4._netCDF4.Dataset, 'data must be NetCDF4 object' - assert time_index or seconds_run, 'input of time_index or seconds_run needed' - assert not(time_index and seconds_run), f'only one time_index or seconds_run' - assert isinstance(time_index, (int, float)) or isinstance(seconds_run, (int, - float)),'time_index or seconds_run input must be a int or float' - + """ + + if not isinstance(data, netCDF4._netCDF4.Dataset): + raise TypeError("data must be NetCDF4 object") + + if not (time_index or seconds_run): + raise ValueError("Input of time_index or seconds_run needed") + + if time_index and seconds_run: + raise ValueError("Only one of time_index or seconds_run should be provided") + + if not ( + isinstance(time_index, (int, float)) or isinstance(seconds_run, (int, float)) + ): + raise TypeError("time_index or seconds_run input must be an int or float") + times = get_all_time(data) - + if time_index: - QoI= times[time_index] + QoI = times[time_index] if seconds_run: - try: - idx=np.where(times == seconds_run) - QoI=idx[0][0] - except: + try: + idx = np.where(times == seconds_run) + QoI = idx[0][0] + except: idx = (np.abs(times - seconds_run)).argmin() - QoI= idx - warnings.warn( f'Warning: seconds_run not found. Closest time stamp' - +'found {times[idx]}', stacklevel= 2) + QoI = idx + warnings.warn( + "Warning: seconds_run not found. Closest time stamp" + + f"found {times[idx]}", + stacklevel=2, + ) return QoI -def get_layer_data(data, variable, layer_index=-1, time_index=-1): - ''' - Get variable data from the NetCDF4 object at a specified layer and timestep. +def get_layer_data(data, variable, layer_index=-1, time_index=-1, to_pandas=True): + """ + Get variable data from the NetCDF4 object at a specified layer and timestep. If the data is 2D the layer_index is ignored. Parameters @@ -139,490 +152,658 @@ def get_layer_data(data, variable, layer_index=-1, time_index=-1): stress, generated by running a Delft3D model. variable: string Delft3D outputs many vairables. The full list can be - found using "data.variables.keys()" in the console. + found using "data.variables.keys()" in the console. layer_index: int - An integer to pull out a layer from the dataset. 0 being closest + An integer to pull out a layer from the dataset. 0 being closest to the surface. Default is the bottom layer, found with input -1. - time_index: int + time_index: int An integer to pull the time index from the dataset. 0 being closest to the start time. Default is last time index, found with input -1. + to_pandas : bool (optional) + Flag to output pandas instead of xarray. Default = True. + Returns ------- - layer_data: DataFrame - DataFrame with columns of "x", "y", "waterdepth", and "waterlevel" location - of the specified layer, variable values "v", and the "time" the + layer_data: pd.DataFrame or xr.Dataset + Dataset with columns of "x", "y", "waterdepth", and "waterlevel" location + of the specified layer, variable values "v", and the "time" the simulation has run. The waterdepth is measured from the water surface and the - "waterlevel" is the water level diffrencein meters from the zero water level. - ''' - - assert isinstance(time_index, int), 'time_index must be an int' - assert isinstance(layer_index, int), 'layer_index must be an int' - assert type(data)== netCDF4._netCDF4.Dataset, 'data must be NetCDF4 object' - assert variable in data.variables.keys(), 'variable not recognized' + "waterlevel" is the water level diffrencein meters from the zero water level. + """ + + if not isinstance(time_index, int): + raise TypeError("time_index must be an int") + + if not isinstance(layer_index, int): + raise TypeError("layer_index must be an int") + + if not isinstance(data, netCDF4._netCDF4.Dataset): + raise TypeError("data must be NetCDF4 object") + + if variable not in data.variables.keys(): + raise ValueError("variable not recognized") + + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + coords = str(data.variables[variable].coordinates).split() - var=data.variables[variable][:] - max_time_index= data['time'].shape[0]-1 # to account for zero index - assert abs(time_index) <= max_time_index, (f'time_index must be less than' - +'the absolute value of the max time index {max_time_index}') - - x=np.ma.getdata(data.variables[coords[0]][:], False) - y=np.ma.getdata(data.variables[coords[1]][:], False) - - - if type(var[0][0]) == np.ma.core.MaskedArray: - max_layer= len(var[0][0]) - - assert abs(layer_index) <= max_layer,( f'layer_index must be less than' - +'the max layer {max_layer}') - v= np.ma.getdata(var[time_index,:,layer_index], False) - dimensions= 3 - - else: - assert type(var[0][0])== np.float64, 'data not recognized' - dimensions= 2 - v= np.ma.getdata(var[time_index,:], False) - - #waterdepth + var = data.variables[variable][:] + max_time_index = data["time"].shape[0] - 1 # to account for zero index + + if abs(time_index) > max_time_index: + raise ValueError( + f"time_index must be less than the absolute value of the max time index {max_time_index}" + ) + + x = np.ma.getdata(data.variables[coords[0]][:], False) + y = np.ma.getdata(data.variables[coords[1]][:], False) + + if type(var[0][0]) == np.ma.core.MaskedArray: + max_layer = len(var[0][0]) + + if abs(layer_index) > max_layer: + raise ValueError(f"layer_index must be less than the max layer {max_layer}") + + v = np.ma.getdata(var[time_index, :, layer_index], False) + dimensions = 3 + + else: + if type(var[0][0]) != np.float64: + raise TypeError("data not recognized") + + dimensions = 2 + v = np.ma.getdata(var[time_index, :], False) + + # waterdepth if "mesh2d" in variable: - cords_to_layers= {'mesh2d_face_x mesh2d_face_y': {'name':'mesh2d_nLayers', - 'coords':data.variables['mesh2d_layer_sigma'][:]}, - 'mesh2d_edge_x mesh2d_edge_y': {'name':'mesh2d_nInterfaces', - 'coords':data.variables['mesh2d_interface_sigma'][:]}} - bottom_depth=np.ma.getdata(data.variables['mesh2d_waterdepth'][time_index, :], False) - waterlevel= np.ma.getdata(data.variables['mesh2d_s1'][time_index, :], False) - coords = str(data.variables['waterdepth'].coordinates).split() - + cords_to_layers = { + "mesh2d_face_x mesh2d_face_y": { + "name": "mesh2d_nLayers", + "coords": data.variables["mesh2d_layer_sigma"][:], + }, + "mesh2d_edge_x mesh2d_edge_y": { + "name": "mesh2d_nInterfaces", + "coords": data.variables["mesh2d_interface_sigma"][:], + }, + } + bottom_depth = np.ma.getdata( + data.variables["mesh2d_waterdepth"][time_index, :], False + ) + waterlevel = np.ma.getdata(data.variables["mesh2d_s1"][time_index, :], False) + coords = str(data.variables["waterdepth"].coordinates).split() + + elif str(data.variables[variable].coordinates) == "FlowElem_xcc FlowElem_ycc": + cords_to_layers = { + "FlowElem_xcc FlowElem_ycc": { + "name": "laydim", + "coords": data.variables["LayCoord_cc"][:], + }, + "FlowLink_xu FlowLink_yu": { + "name": "wdim", + "coords": data.variables["LayCoord_w"][:], + }, + } + bottom_depth = np.ma.getdata(data.variables["waterdepth"][time_index, :], False) + waterlevel = np.ma.getdata(data.variables["s1"][time_index, :], False) + coords = str(data.variables["waterdepth"].coordinates).split() else: - cords_to_layers= {'FlowElem_xcc FlowElem_ycc':{'name':'laydim', - 'coords':data.variables['LayCoord_cc'][:]}, - 'FlowLink_xu FlowLink_yu': {'name':'wdim', - 'coords':data.variables['LayCoord_w'][:]}} - bottom_depth=np.ma.getdata(data.variables['waterdepth'][time_index, :], False) - waterlevel= np.ma.getdata(data.variables['s1'][time_index, :], False) - coords = str(data.variables['waterdepth'].coordinates).split() - - layer_dim = str(data.variables[variable].coordinates) - - cord_sys= cords_to_layers[layer_dim]['coords'] - layer_percentages= np.ma.getdata(cord_sys, False) #accumulative - - if layer_dim == 'FlowLink_xu FlowLink_yu': - #interpolate - x_laydim=np.ma.getdata(data.variables[coords[0]][:], False) - y_laydim=np.ma.getdata(data.variables[coords[1]][:], False) - points_laydim = np.array([ [x, y] for x, y in zip(x_laydim, y_laydim)]) - + cords_to_layers = { + "FlowElem_xcc FlowElem_ycc LayCoord_cc LayCoord_cc": { + "name": "laydim", + "coords": data.variables["LayCoord_cc"][:], + }, + "FlowLink_xu FlowLink_yu": { + "name": "wdim", + "coords": data.variables["LayCoord_w"][:], + }, + } + bottom_depth = np.ma.getdata(data.variables["waterdepth"][time_index, :], False) + waterlevel = np.ma.getdata(data.variables["s1"][time_index, :], False) + coords = str(data.variables["waterdepth"].coordinates).split() + + layer_dim = str(data.variables[variable].coordinates) + + cord_sys = cords_to_layers[layer_dim]["coords"] + layer_percentages = np.ma.getdata(cord_sys, False) # accumulative + + if layer_dim == "FlowLink_xu FlowLink_yu": + # interpolate + x_laydim = np.ma.getdata(data.variables[coords[0]][:], False) + y_laydim = np.ma.getdata(data.variables[coords[1]][:], False) + points_laydim = np.array([[x, y] for x, y in zip(x_laydim, y_laydim)]) + coords_request = str(data.variables[variable].coordinates).split() - x_wdim=np.ma.getdata(data.variables[coords_request[0]][:], False) - y_wdim=np.ma.getdata(data.variables[coords_request[1]][:], False) - points_wdim=np.array([ [x, y] for x, y in zip(x_wdim, y_wdim)]) - - bottom_depth_wdim = interp.griddata(points_laydim, bottom_depth, - points_wdim) - water_level_wdim= interp.griddata(points_laydim, waterlevel, - points_wdim) - - idx_bd= np.where(np.isnan(bottom_depth_wdim)) - - for i in idx_bd: - bottom_depth_wdim[i]= interp.griddata(points_laydim, bottom_depth, - points_wdim[i], method='nearest') - water_level_wdim[i]= interp.griddata(points_laydim, waterlevel, - points_wdim[i], method='nearest') - - - waterdepth=[] - - if dimensions== 2: - if layer_dim == 'FlowLink_xu FlowLink_yu': + x_wdim = np.ma.getdata(data.variables[coords_request[0]][:], False) + y_wdim = np.ma.getdata(data.variables[coords_request[1]][:], False) + points_wdim = np.array([[x, y] for x, y in zip(x_wdim, y_wdim)]) + + bottom_depth_wdim = interp.griddata(points_laydim, bottom_depth, points_wdim) + water_level_wdim = interp.griddata(points_laydim, waterlevel, points_wdim) + + idx_bd = np.where(np.isnan(bottom_depth_wdim)) + + for i in idx_bd: + bottom_depth_wdim[i] = interp.griddata( + points_laydim, bottom_depth, points_wdim[i], method="nearest" + ) + water_level_wdim[i] = interp.griddata( + points_laydim, waterlevel, points_wdim[i], method="nearest" + ) + + waterdepth = [] + + if dimensions == 2: + if layer_dim == "FlowLink_xu FlowLink_yu": z = [bottom_depth_wdim] - waterlevel=water_level_wdim + waterlevel = water_level_wdim else: z = [bottom_depth] else: - if layer_dim == 'FlowLink_xu FlowLink_yu': - z = [bottom_depth_wdim*layer_percentages[layer_index]] - waterlevel=water_level_wdim + if layer_dim == "FlowLink_xu FlowLink_yu": + z = [bottom_depth_wdim * layer_percentages[layer_index]] + waterlevel = water_level_wdim else: - z = [bottom_depth*layer_percentages[layer_index]] - waterdepth=np.append(waterdepth, z) + z = [bottom_depth * layer_percentages[layer_index]] + waterdepth = np.append(waterdepth, z) + + time = np.ma.getdata(data.variables["time"][time_index], False) * np.ones(len(x)) + + index = np.arange(0, len(time)) + layer_data = xr.Dataset( + data_vars={ + "x": (["index"], x), + "y": (["index"], y), + "waterdepth": (["index"], waterdepth), + "waterlevel": (["index"], waterlevel), + "v": (["index"], v), + "time": (["index"], time), + }, + coords={"index": index}, + ) + + if to_pandas: + layer_data = layer_data.to_pandas() - time= np.ma.getdata(data.variables['time'][time_index], False)*np.ones(len(x)) + return layer_data - layer= np.array([ [x_i, y_i, d_i, w_i, v_i, t_i] for x_i, y_i, d_i, w_i, v_i, t_i in - zip(x, y, waterdepth, waterlevel, v, time)]) - layer_data = pd.DataFrame(layer, columns=['x', 'y', 'waterdepth','waterlevel', 'v', 'time']) - return layer_data +def create_points(x, y, waterdepth, to_pandas=True): + """ + Generate a Dataset of points from combinations of input coordinates. + + This function accepts three inputs and combines them to generate a + Dataset of points. The inputs can be: + - 3 points + - 2 points and 1 array + - 1 point and 2 arrays + - 3 arrays (x and y must have the same size) + For 3 points or less, every combination will be in the output. + For 3 arrays, x and y are treated as coordinate pairs and combined + with each value from the waterdepth array. -def create_points(x, y, waterdepth): - ''' - Turns three coordinate inputs into a single output DataFrame of points. - In any order the three inputs can consist of 3 points, 2 points and 1 array, - or 1 point and 2 arrays. The final output DataFrame will be the unique - combinations of the 3 inputs. - Parameters ---------- - x: float, array or int - x values to create points. - y: float, array or int - y values to create points. - waterdepth: float, array or int - waterdepth values to create points. + x : int, float, array-like + X values (longitude) for the points. + y : int, float, array-like + Y values (latitude) for the points. + waterdepth : int, float, array-like + Waterdepth values for the points. + to_pandas : bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns ------- - points: DateFrame - DataFrame with columns x, y and waterdepth points. - - Example + points : xr.Dataset or pd.DataFrame + A Dataset with columns 'x', 'y', and 'waterdepth' representing the generated points. + + Example ------- - If the inputs are 2 arrays: and [3,4,5] and 1 point [6], the output - will contain 6 array combinations of the 3 inputs as shown. - - x=np.array([1,2]) - y=np.array([3,4,5]) - waterdepth= 6 - d3d.create_points(x,y,waterdepth) - + 2 arrays and 1 point: + >>> x = np.array([1, 2]) + >>> y = np.array([3, 4, 5]) + >>> waterdepth = 6 + >>> create_points(x, y, waterdepth) + x y waterdepth 0 1.0 3.0 6.0 1 2.0 3.0 6.0 2 1.0 4.0 6.0 3 2.0 4.0 6.0 4 1.0 5.0 6.0 - 5 2.0 5.0 6.0 - ''' - - assert isinstance(x, (int, float, np.ndarray)), ('x must be a int, float' - +' or array') - assert isinstance(y, (int, float, np.ndarray)), ('y must be a int, float' - +' or array') - assert isinstance(waterdepth, (int, float, np.ndarray)), ('waterdepth must be a int, float' - +' or array') - - directions = {0:{'name': 'x', - 'values': x}, - 1:{'name': 'y', - 'values': y}, - 2:{'name': 'waterdepth', - 'values': waterdepth}} - - for i in directions: - try: - N=len(directions[i]['values']) - except: - directions[i]['values'] = np.array([directions[i]['values']]) - N=len(directions[i]['values']) - if N == 1 : - directions[i]['type']= 'point' - elif N > 1 : - directions[i]['type']= 'array' - else: - raise Exception(f'length of direction {directions[i]["name"]} was' - +'neagative or zero') - - # Check how many times point is in "types" - types= [directions[i]['type'] for i in directions] - N_points = types.count('point') - - if N_points >= 2: - lens = np.array([len(directions[d]['values']) for d in directions]) - max_len_idx = lens.argmax() - not_max_idxs= [i for i in directions.keys()] - - del not_max_idxs[max_len_idx] - - for not_max in not_max_idxs: - N= len(directions[max_len_idx]['values']) - vals =np.ones(N)*directions[not_max]['values'] - directions[not_max]['values'] = np.array(vals) - - x_new = directions[0]['values'] - y_new = directions[1]['values'] - depth_new = directions[2]['values'] - - request= np.array([ [x_i, y_i, depth_i] for x_i, y_i, depth_i in zip(x_new, - y_new, depth_new)]) - points= pd.DataFrame(request, columns=[ 'x', 'y', 'waterdepth']) - - elif N_points == 1: - # treat as plane - #find index of point - idx_point = types.index('point') - max_idxs= [i for i in directions.keys()] - print(max_idxs) - del max_idxs[idx_point] - #find vectors - XX, YY = np.meshgrid(directions[max_idxs[0]]['values'], - directions[max_idxs[1]]['values'] ) - N_X=np.shape(XX)[1] - N_Y=np.shape(YY)[0] - ZZ= np.ones((N_Y,N_X))*directions[idx_point]['values'] - - request= np.array([ [x_i, y_i, z_i] for x_i, y_i, z_i in zip(XX.ravel(), - YY.ravel() , ZZ.ravel())]) - columns=[ directions[max_idxs[0]]['name'], - directions[max_idxs[1]]['name'], directions[idx_point]['name']] - - points= pd.DataFrame(request, columns=columns) - else: - raise Exception('Can provide at most two arrays') - - return points - - -def variable_interpolation(data, variables, points='cells', edges= 'none'): - ''' - Interpolate multiple variables from the Delft3D onto the same points. + 5 2.0 5.0 6.0 + + 3 arrays (x and y must have the same length): + >>> x = np.array([1, 2, 3]) + >>> y = np.array([4, 5, 6]) + >>> waterdepth = np.array([1, 2]) + >>> create_points(x, y, waterdepth) + + x y waterdepth + 0 1.0 4.0 1.0 + 1 2.0 5.0 1.0 + 2 3.0 6.0 1.0 + 3 1.0 4.0 2.0 + 4 2.0 5.0 2.0 + 5 4.0 6.0 2.0 + """ + + # Check input types + inputs = {"x": x, "y": y, "waterdepth": waterdepth} + for name, value in inputs.items(): + # Convert lists to numpy arrays + if isinstance(value, list): + value = np.array(value) + inputs[name] = value # Update the value in the dictionary + + # Check data type + if not isinstance(value, (int, float, np.ndarray, pd.Series, xr.DataArray)): + raise TypeError( + f"{name} must be an int, float, np.ndarray, pd.Series, or xr.DataArray. Got: {type(value)}" + ) + + # Check for empty arrays + if isinstance(value, (np.ndarray, pd.Series, xr.DataArray)) and len(value) == 0: + raise ValueError(f"{name} should not be an empty array") + + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + x_array_like = not isinstance(x, (int, float)) + y_array_like = not isinstance(y, (int, float)) + waterdepth_array_like = not isinstance(waterdepth, (int, float)) + + if x_array_like and y_array_like and waterdepth_array_like: + # if all inputs are arrays, grid the coordinate and waterdepth + y_grid, waterdepth_grid = np.meshgrid(y, waterdepth) + y_grid = y_grid.ravel() + waterdepth_grid = waterdepth_grid.ravel() + + x_grid, _ = np.meshgrid(x, waterdepth) + x_grid = x_grid.ravel() + else: + # if at least one input is a point, grid all inputs + x_grid, y_grid, waterdepth_grid = np.meshgrid(x, y, waterdepth) + x_grid = x_grid.ravel() + y_grid = y_grid.ravel() + waterdepth_grid = waterdepth_grid.ravel() + + index = np.arange(0, len(x_grid)) + points = xr.Dataset( + data_vars={ + "x": (["index"], x_grid), + "y": (["index"], y_grid), + "waterdepth": (["index"], waterdepth_grid), + }, + coords={"index": index}, + ) + + if to_pandas: + points = points.to_pandas() + + return points + + +def variable_interpolation( + data, + variables, + points="cells", + edges="none", + x_max_lim=float("inf"), + x_min_lim=float("-inf"), + y_max_lim=float("inf"), + y_min_lim=float("-inf"), + to_pandas=True, +): + """ + Interpolate multiple variables from the Delft3D onto the same points. Parameters ---------- - data: NetCDF4 object + data: NetCDF4 object A NetCDF4 object that contains spatial data, e.g. velocity or shear - stress generated by running a Delft3D model. + stress generated by running a Delft3D model. variables: array of strings Name of variables to interpolate, e.g. 'turkin1', 'ucx', 'ucy' and 'ucz'. The full list can be found using "data.variables.keys()" in the console. - points: string, DataFrame + points: string, pd.DataFrame, or xr.Dataset The points to interpolate data onto. 'cells'- interpolates all data onto the Delft3D cell coordinate system (Default) - 'faces'- interpolates all dada onto the Delft3D face coordinate system - DataFrame of x, y, and waterdepth coordinates - Interpolates data onto user + 'faces'- interpolates all dada onto the Delft3D face coordinate system + Dataset of x, y, and waterdepth coordinates - Interpolates data onto user povided points. Can be created with `create_points` function. - edges: sting: 'nearest' - If edges is set to 'nearest' the code will fill in nan values with nearest - interpolation. Otherwise only linear interpolarion will be used. - + edges: string: 'nearest' + If edges is set to 'nearest' the code will fill in nan values with nearest + interpolation. Otherwise only linear interpolarion will be used. + to_pandas : bool (optional) + Flag to output pandas instead of xarray. Default = True. + Returns ------- - transformed_data: DataFrame - Variables on specified grid points saved under the input variable names - and the x, y, and waterdepth coordinates of those points. - ''' - - assert isinstance(points, (str, pd.DataFrame)),('points must be a string ' - +'or DataFrame') - if isinstance ( points, str): - assert any([points == 'cells', points=='faces']), ('points must be' - +' cells or faces') - assert type(data)== netCDF4._netCDF4.Dataset, 'data must be nerCDF4 object' + transformed_data: pd.DataFrame or xr.Dataset + Variables on specified grid points saved under the input variable names + and the x, y, and waterdepth coordinates of those points. + """ + + if not isinstance(points, (str, pd.DataFrame, xr.Dataset)): + raise TypeError( + f"points must be a string, pd.DataFrame, or xr.Dataset. Got {type(points)}." + ) + + if isinstance(points, xr.Dataset): + points = points.to_pandas() + + if isinstance(points, str): + if not (points == "cells" or points == "faces"): + raise ValueError( + f"If a string, points must be cells or faces. Got {points}" + ) + + if not isinstance(data, netCDF4._netCDF4.Dataset): + raise TypeError(f"data must be netCDF4 object. Got {type(data)}") + + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") data_raw = {} for var in variables: - var_data_df = get_all_data_points(data, var,time_index=-1) - var_data_df=var_data_df.loc[:,~var_data_df.T.duplicated(keep='first')] - data_raw[var] = var_data_df - if type(points) == pd.DataFrame: - print('points provided') - elif points=='faces': - points = data_raw['ucx'][['x','y','waterdepth']] - elif points=='cells': - points = data_raw['turkin1'][['x','y','waterdepth']] - - transformed_data= points.copy(deep=True) - - for var in variables : - transformed_data[var] = interp.griddata(data_raw[var][['x','y','waterdepth']], - data_raw[var][var], points[['x','y','waterdepth']]) - if edges == 'nearest' : - idx= np.where(np.isnan(transformed_data[var])) - + var_data_df = get_all_data_points(data, var, time_index=-1, to_pandas=True) + var_data_df["depth"] = var_data_df.waterdepth - var_data_df.waterlevel # added + var_data_df = var_data_df.loc[:, ~var_data_df.T.duplicated(keep="first")] + var_data_df = var_data_df[var_data_df.x > x_min_lim] + var_data_df = var_data_df[var_data_df.x < x_max_lim] + var_data_df = var_data_df[var_data_df.y > y_min_lim] + var_data_df = var_data_df[var_data_df.y < y_max_lim] + data_raw[var] = var_data_df + if isinstance(points, pd.DataFrame): + print("points provided") + elif points == "faces": + points = data_raw["ucx"][["x", "y", "waterdepth"]] + elif points == "cells": + points = data_raw["turkin1"][["x", "y", "waterdepth"]] + + transformed_data = points.copy(deep=True) + + for var in variables: + transformed_data[var] = interp.griddata( + data_raw[var][["x", "y", "waterdepth"]], # waterdepth to depth + data_raw[var][var], + points[["x", "y", "waterdepth"]], + ) + if edges == "nearest": + idx = np.where(np.isnan(transformed_data[var])) + if len(idx[0]): - for i in idx[0]: - transformed_data[var][i]= (interp - .griddata(data_raw[var][['x','y','waterdepth']], - data_raw[var][var], - [points['x'][i],points['y'][i], - points['waterdepth'][i]], method='nearest')) - + for i in idx[0]: + transformed_data[var][i] = interp.griddata( + data_raw[var][["x", "y", "waterdepth"]], + data_raw[var][var], + [points["x"][i], points["y"][i], points["waterdepth"][i]], + method="nearest", + ) + + if not to_pandas: + transformed_data = transformed_data.to_dataset() + return transformed_data -def get_all_data_points(data, variable, time_index=-1): - ''' - Get data points for a passed variable for all layers at a specified time from - the Delft3D NetCDF4 object by iterating over the `get_layer_data` function. +def get_all_data_points(data, variable, time_index=-1, to_pandas=True): + """ + Get data points for a passed variable for all layers at a specified time from + the Delft3D NetCDF4 object by iterating over the `get_layer_data` function. Parameters ---------- - data: Netcdf4 object + data: Netcdf4 object A NetCDF4 object that contains spatial data, e.g. velocity or shear - stress, generated by running a Delft3D model. + stress, generated by running a Delft3D model. variable: string Delft3D variable. The full list can be of variables can be - found using "data.variables.keys()" in the console. + found using "data.variables.keys()" in the console. time_index: int - An integer to pull the time step from the dataset. + An integer to pull the time step from the dataset. Default is last time step, found with the input -1. - + to_pandas : bool (optional) + Flag to output pandas instead of xarray. Default = True. + Returns ------- - all_data: DataFrame + all_data: xr.Dataset or pd.Dataframe Dataframe with columns x, y, waterdepth, waterlevel, variable, and time. - The waterdepth is measured from the water surface and the "waterlevel" is + The waterdepth is measured from the water surface and the "waterlevel" is the water level diffrence in meters from the zero water level. - - ''' - - assert isinstance(time_index, int), 'time_index must be a int' - assert type(data)== netCDF4._netCDF4.Dataset, 'data must be NetCDF4 object' - assert variable in data.variables.keys(), 'variable not recognized' + + """ + + if not isinstance(time_index, int): + raise TypeError("time_index must be an int") + + if not isinstance(data, netCDF4._netCDF4.Dataset): + raise TypeError("data must be NetCDF4 object") + + if variable not in data.variables.keys(): + raise ValueError("variable not recognized") + + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") max_time_index = len(data.variables[variable][:]) - assert abs(time_index) <= max_time_index, (f'time_index must be less than' - +'the max time index {max_time_index}') + if abs(time_index) > max_time_index: + raise ValueError( + f"time_index must be less than the max time index {max_time_index}" + ) if "mesh2d" in variable: - cords_to_layers= {'mesh2d_face_x mesh2d_face_y': {'name':'mesh2d_nLayers', - 'coords':data.variables['mesh2d_layer_sigma'][:]}, - 'mesh2d_edge_x mesh2d_edge_y': {'name':'mesh2d_nInterfaces', - 'coords':data.variables['mesh2d_interface_sigma'][:]}} + cords_to_layers = { + "mesh2d_face_x mesh2d_face_y": { + "name": "mesh2d_nLayers", + "coords": data.variables["mesh2d_layer_sigma"][:], + }, + "mesh2d_edge_x mesh2d_edge_y": { + "name": "mesh2d_nInterfaces", + "coords": data.variables["mesh2d_interface_sigma"][:], + }, + } + + elif str(data.variables[variable].coordinates) == "FlowElem_xcc FlowElem_ycc": + cords_to_layers = { + "FlowElem_xcc FlowElem_ycc": { + "name": "laydim", + "coords": data.variables["LayCoord_cc"][:], + }, + "FlowLink_xu FlowLink_yu": { + "name": "wdim", + "coords": data.variables["LayCoord_w"][:], + }, + } + else: + cords_to_layers = { + "FlowElem_xcc FlowElem_ycc LayCoord_cc LayCoord_cc": { + "name": "laydim", + "coords": data.variables["LayCoord_cc"][:], + }, + "FlowLink_xu FlowLink_yu": { + "name": "wdim", + "coords": data.variables["LayCoord_w"][:], + }, + } + + layer_dim = str(data.variables[variable].coordinates) + + try: + cord_sys = cords_to_layers[layer_dim]["coords"] + except: + raise Exception("Coordinates not recognized.") else: - cords_to_layers= {'FlowElem_xcc FlowElem_ycc':{'name':'laydim', - 'coords':data.variables['LayCoord_cc'][:]}, - 'FlowLink_xu FlowLink_yu': {'name':'wdim', - 'coords':data.variables['LayCoord_w'][:]}} - - layer_dim = str(data.variables[variable].coordinates) - - try: - cord_sys= cords_to_layers[layer_dim]['coords'] - except: - raise Exception('Coordinates not recognized.') - else: - layer_percentages= np.ma.getdata(cord_sys, False) - - x_all=[] - y_all=[] - depth_all=[] - water_level_all=[] - v_all=[] - time_all=[] - + layer_percentages = np.ma.getdata(cord_sys, False) + + x_all = [] + y_all = [] + depth_all = [] + water_level_all = [] + v_all = [] + time_all = [] + layers = range(len(layer_percentages)) for layer in layers: - layer_data= get_layer_data(data, variable, layer, time_index) - - x_all=np.append(x_all, layer_data.x) - y_all=np.append(y_all, layer_data.y) - depth_all=np.append(depth_all, layer_data.waterdepth) - water_level_all=np.append(water_level_all, layer_data.waterlevel) - v_all=np.append(v_all, layer_data.v) - time_all= np.append(time_all, layer_data.time) - - known_points = np.array([ [x, y, waterdepth, waterlevel, v, time] - for x, y, waterdepth, waterlevel, v, time in zip(x_all, y_all, - depth_all, water_level_all, v_all, time_all)]) - - all_data= pd.DataFrame(known_points, columns=['x','y','waterdepth', 'waterlevel' - ,f'{variable}', 'time']) + layer_data = get_layer_data(data, variable, layer, time_index) + + x_all = np.append(x_all, layer_data.x) + y_all = np.append(y_all, layer_data.y) + depth_all = np.append(depth_all, layer_data.waterdepth) + water_level_all = np.append(water_level_all, layer_data.waterlevel) + v_all = np.append(v_all, layer_data.v) + time_all = np.append(time_all, layer_data.time) + + index = np.arange(0, len(time_all)) + all_data = xr.Dataset( + data_vars={ + "x": (["index"], x_all), + "y": (["index"], y_all), + "waterdepth": (["index"], depth_all), + "waterlevel": (["index"], water_level_all), + f"{variable}": (["index"], v_all), + "time": (["index"], time_all), + }, + coords={"index": index}, + ) + + if to_pandas: + all_data = all_data.to_pandas() return all_data - -def turbulent_intensity(data, points='cells', time_index= -1, - intermediate_values = False ): - ''' - Calculate the turbulent intensity percentage for a given data set for the +def turbulent_intensity( + data, points="cells", time_index=-1, intermediate_values=False, to_pandas=True +): + """ + Calculate the turbulent intensity percentage for a given data set for the specified points. Assumes variable names: ucx, ucy, ucz and turkin1. Parameters ---------- - data : NetCDF4 object + data: NetCDF4 object A NetCDF4 object that contains spatial data, e.g. velocity or shear stress, generated by running a Delft3D model. - points : string, DataFrame - Points to interpolate data onto. - 'cells': interpolates all data onto velocity coordinate system (Default). - 'faces': interpolates all data onto the TKE coordinate system. - DataFrame of x, y, and z coordinates: Interpolates data onto user - provided points. - time_index : int + points: string, pd.DataFrame, xr.Dataset + Points to interpolate data onto. + 'cells': interpolates all data onto velocity coordinate system (Default). + 'faces': interpolates all data onto the TKE coordinate system. + DataFrame of x, y, and z coordinates: Interpolates data onto user + provided points. + time_index: int An integer to pull the time step from the dataset. Default is - late time step -1. - intermediate_values : boolean (optional) - If false the function will return position and turbulent intensity values. + late time step -1. + intermediate_values: boolean (optional) + If false the function will return position and turbulent intensity values. If true the function will return position(x,y,z) and values need to calculate turbulent intensity (ucx, uxy, uxz and turkin1) in a Dataframe. Default False. - + to_pandas : bool (optional) + Flag to output pandas instead of xarray. Default = True. + Returns ------- - TI_data : Dataframe - If intermediate_values is true all values are output. - If intermediate_values is equal to false only turbulent_intesity and - x, y, and z variables are output. - x- position in the x direction - y- position in the y direction + TI_data: xr.Dataset or pd.DataFrame + If intermediate_values is true all values are output. + If intermediate_values is equal to false only turbulent_intesity and + x, y, and z variables are output. + x- position in the x direction + y- position in the y direction waterdepth- position in the vertical direction turbulet_intesity- turbulent kinetic energy divided by the root mean squared velocity - turkin1- turbulent kinetic energy - ucx- velocity in the x direction - ucy- velocity in the y direction - ucz- velocity in the vertical direction - ''' - - assert isinstance(points, (str, pd.DataFrame)),('points must a string or' - +' DataFrame') - if isinstance ( points, str): - assert any([points == 'cells', points=='faces']), ('points must be cells' - +' or faces') - assert isinstance(time_index, int), 'time_index must be a int' - max_time_index= data['time'].shape[0]-1 # to account for zero index - assert abs(time_index) <= max_time_index, (f'time_index must be less than' - +'the absolute value of the max time index {max_time_index}') - assert type(data)== netCDF4._netCDF4.Dataset, 'data must be nerCDF4 object' - assert 'turkin1' in data.variables.keys(), ('Varaiable turkin1 not' - +' present in Data') - assert 'ucx' in data.variables.keys(),'Varaiable ucx 1 not present in Data' - assert 'ucy' in data.variables.keys(),'Varaiable ucy 1 not present in Data' - assert 'ucz' in data.variables.keys(),'Varaiable ucz 1 not present in Data' - - TI_vars= ['turkin1', 'ucx', 'ucy', 'ucz'] + turkin1- turbulent kinetic energy + ucx- velocity in the x direction + ucy- velocity in the y direction + ucz- velocity in the vertical direction + """ + + if not isinstance(points, (str, pd.DataFrame, xr.Dataset)): + raise TypeError("points must be a string, pd.DataFrame, xr.Dataset") + + if isinstance(points, str): + if not (points == "cells" or points == "faces"): + raise ValueError("points must be cells or faces") + + if not isinstance(time_index, int): + raise TypeError("time_index must be an int") + + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + if isinstance(points, xr.Dataset): + points = points.to_pandas() + + max_time_index = data["time"].shape[0] - 1 # to account for zero index + if abs(time_index) > max_time_index: + raise ValueError( + f"time_index must be less than the absolute value of the max time index {max_time_index}" + ) + + if not isinstance(data, netCDF4._netCDF4.Dataset): + raise TypeError("data must be netCDF4 object") + + for variable in ["turkin1", "ucx", "ucy", "ucz"]: + if variable not in data.variables.keys(): + raise ValueError(f"Variable {variable} not present in Data") + + TI_vars = ["turkin1", "ucx", "ucy", "ucz"] TI_data_raw = {} for var in TI_vars: - var_data_df = get_all_data_points(data, var ,time_index) - TI_data_raw[var] = var_data_df - if type(points) == pd.DataFrame: - print('points provided') - elif points=='faces': - points = TI_data_raw['turkin1'].drop(['waterlevel','turkin1'],axis=1) - elif points=='cells': - points = TI_data_raw['ucx'].drop(['waterlevel','ucx'],axis=1) - + var_data_df = get_all_data_points(data, var, time_index) + TI_data_raw[var] = var_data_df + if type(points) == pd.DataFrame: + print("points provided") + elif points == "faces": + points = TI_data_raw["turkin1"].drop(["waterlevel", "turkin1"], axis=1) + elif points == "cells": + points = TI_data_raw["ucx"].drop(["waterlevel", "ucx"], axis=1) + TI_data = points.copy(deep=True) - for var in TI_vars: - TI_data[var] = interp.griddata(TI_data_raw[var][['x','y','waterdepth']], - TI_data_raw[var][var], points[['x','y','waterdepth']]) - idx= np.where(np.isnan(TI_data[var])) - + for var in TI_vars: + TI_data[var] = interp.griddata( + TI_data_raw[var][["x", "y", "waterdepth"]], + TI_data_raw[var][var], + points[["x", "y", "waterdepth"]], + ) + idx = np.where(np.isnan(TI_data[var])) + if len(idx[0]): - for i in idx[0]: - TI_data[var][i]= interp.griddata(TI_data_raw[var][['x','y','waterdepth']], - TI_data_raw[var][var], - [points['x'][i],points['y'][i], points['waterdepth'][i]], - method='nearest') - - u_mag=unorm(np.array(TI_data['ucx']),np.array(TI_data['ucy']), - np.array(TI_data['ucz'])) - - neg_index=np.where( TI_data['turkin1']<0) - zero_bool= np.isclose( TI_data['turkin1'][ TI_data['turkin1']<0].array, - np.zeros(len( TI_data['turkin1'][TI_data['turkin1']<0].array)), - atol=1.0e-4) - zero_ind= neg_index[0][zero_bool] - non_zero_ind= neg_index[0][~zero_bool] - TI_data.loc[zero_ind,'turkin1']=np.zeros(len(zero_ind)) - TI_data.loc[non_zero_ind,'turkin1']=[np.nan]*len(non_zero_ind) - - TI_data['turbulent_intensity']= np.sqrt(2/3*TI_data['turkin1'])/u_mag * 100 #% - + for i in idx[0]: + TI_data[var][i] = interp.griddata( + TI_data_raw[var][["x", "y", "waterdepth"]], + TI_data_raw[var][var], + [points["x"][i], points["y"][i], points["waterdepth"][i]], + method="nearest", + ) + + u_mag = unorm( + np.array(TI_data["ucx"]), np.array(TI_data["ucy"]), np.array(TI_data["ucz"]) + ) + + neg_index = np.where(TI_data["turkin1"] < 0) + zero_bool = np.isclose( + TI_data["turkin1"][TI_data["turkin1"] < 0].array, + np.zeros(len(TI_data["turkin1"][TI_data["turkin1"] < 0].array)), + atol=1.0e-4, + ) + zero_ind = neg_index[0][zero_bool] + non_zero_ind = neg_index[0][~zero_bool] + TI_data.loc[zero_ind, "turkin1"] = np.zeros(len(zero_ind)) + TI_data.loc[non_zero_ind, "turkin1"] = [np.nan] * len(non_zero_ind) + + TI_data["turbulent_intensity"] = ( + np.sqrt(2 / 3 * TI_data["turkin1"]) / u_mag * 100 + ) # % + if intermediate_values == False: - TI_data= TI_data.drop(TI_vars, axis = 1) - + TI_data = TI_data.drop(TI_vars, axis=1) + + if not to_pandas: + TI_data = TI_data.to_dataset() + return TI_data diff --git a/mhkit/river/io/usgs.py b/mhkit/river/io/usgs.py index 4583d458c..54c97966c 100644 --- a/mhkit/river/io/usgs.py +++ b/mhkit/river/io/usgs.py @@ -1,28 +1,38 @@ -import pandas as pd -import numpy as np +import os import json import requests +import shutil +import pandas as pd +from mhkit.utils.cache import handle_caching -def _read_usgs_json(text): - + +def _read_usgs_json(text, to_pandas=True): data = pd.DataFrame() - for i in range(len(text['value']['timeSeries'])): + for i in range(len(text["value"]["timeSeries"])): try: - site_name = text['value']['timeSeries'][i]['variable']['variableDescription'] #text['value']['timeSeries'][i]['sourceInfo']['siteName'] - site_data = pd.DataFrame(text['value']['timeSeries'][i]['values'][0]['value']) - site_data.set_index('dateTime', drop=True, inplace=True) + site_name = text["value"]["timeSeries"][i]["variable"][ + "variableDescription" + ] + site_data = pd.DataFrame( + text["value"]["timeSeries"][i]["values"][0]["value"] + ) + site_data.set_index("dateTime", drop=True, inplace=True) site_data.index = pd.to_datetime(site_data.index, utc=True) - site_data.rename(columns={'value': site_name}, inplace=True) + site_data.rename(columns={"value": site_name}, inplace=True) site_data[site_name] = pd.to_numeric(site_data[site_name]) site_data.index.name = None - del site_data['qualifiers'] + del site_data["qualifiers"] data = data.combine_first(site_data) except: pass - - return data # we could also extract metadata and return that here -def read_usgs_file(file_name): + if not to_pandas: + data = data.to_dataset() + + return data + + +def read_usgs_file(file_name, to_pandas=True): """ Reads a USGS JSON data file (from https://waterdata.usgs.gov/nwis) @@ -30,27 +40,41 @@ def read_usgs_file(file_name): ---------- file_name : str Name of USGS JSON data file - + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. + Returns ------- - data : pandas DataFrame - Data indexed by datetime with columns named according to the parameter's + data : pandas DataFrame or xarray Dataset + Data indexed by datetime with columns named according to the parameter's variable description """ + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + with open(file_name) as json_file: text = json.load(json_file) - - data = _read_usgs_json(text) - - return data + + data = _read_usgs_json(text, to_pandas) + + return data -def request_usgs_data(station, parameter, start_date, end_date, - data_type='Daily', proxy=None, write_json=None): +def request_usgs_data( + station, + parameter, + start_date, + end_date, + data_type="Daily", + proxy=None, + write_json=None, + clear_cache=False, + to_pandas=True, +): """ - Loads USGS data directly from https://waterdata.usgs.gov/nwis using a + Loads USGS data directly from https://waterdata.usgs.gov/nwis using a GET request - + The request URL prints to the screen. Parameters @@ -64,43 +88,89 @@ def request_usgs_data(station, parameter, start_date, end_date, end_date : str End date in the format 'YYYY-MM-DD' (e.g. '2018-12-31') data_type : str - Data type, options include 'Daily' (return the mean daily value) and + Data type, options include 'Daily' (return the mean daily value) and 'Instantaneous'. proxy : dict or None - To request data from behind a firewall, define a dictionary of proxy settings, + To request data from behind a firewall, define a dictionary of proxy settings, for example {"http": 'localhost:8080'} write_json : str or None Name of json file to write data - + clear_cache : bool + If True, the cache for this specific request will be cleared. + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. + Returns ------- - data : pandas DataFrame - Data indexed by datetime with columns named according to the parameter's + data : pandas DataFrame or xarray Dataset + Data indexed by datetime with columns named according to the parameter's variable description """ - assert data_type in ['Daily', 'Instantaneous'], 'data_type must be Daily or Instantaneous' - - if data_type == 'Daily': - data_url = 'https://waterservices.usgs.gov/nwis/dv' - api_query = '/?format=json&sites='+station+ \ - '&startDT='+start_date+'&endDT='+end_date+ \ - '&statCd=00003'+ \ - '¶meterCd='+parameter+'&siteStatus=all' + if not data_type in ["Daily", "Instantaneous"]: + raise ValueError(f"data_type must be Daily or Instantaneous. Got: {data_type}") + + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + # Define the path to the cache directory + cache_dir = os.path.join(os.path.expanduser("~"), ".cache", "mhkit", "usgs") + + # Create a unique filename based on the function parameters + hash_params = f"{station}_{parameter}_{start_date}_{end_date}_{data_type}" + + # Use handle_caching to manage cache + cached_data, metadata, cache_filepath = handle_caching( + hash_params, cache_dir, write_json, clear_cache + ) + + if cached_data is not None: + return cached_data + + # If no cached data, proceed with the API request + if data_type == "Daily": + data_url = "https://waterservices.usgs.gov/nwis/dv" + api_query = ( + "/?format=json&sites=" + + station + + "&startDT=" + + start_date + + "&endDT=" + + end_date + + "&statCd=00003" + + "¶meterCd=" + + parameter + + "&siteStatus=all" + ) else: - data_url = 'https://waterservices.usgs.gov/nwis/iv' - api_query = '/?format=json&sites='+station+ \ - '&startDT='+start_date+'&endDT='+end_date+ \ - '¶meterCd='+parameter+'&siteStatus=all' - - print('Data request URL: ', data_url+api_query) - - response = requests.get(url=data_url+api_query,proxies=proxy) + data_url = "https://waterservices.usgs.gov/nwis/iv" + api_query = ( + "/?format=json&sites=" + + station + + "&startDT=" + + start_date + + "&endDT=" + + end_date + + "¶meterCd=" + + parameter + + "&siteStatus=all" + ) + + print("Data request URL: ", data_url + api_query) + + response = requests.get(url=data_url + api_query, proxies=proxy) text = json.loads(response.text) - - if write_json is not None: - with open(write_json, 'w') as outfile: - json.dump(text, outfile) - - data = _read_usgs_json(text) - - return data + + # handle_caching is only set-up for pandas, so force this data to output as pandas for now + data = _read_usgs_json(text, True) + + # After making the API request and processing the response, write the + # response to a cache file + handle_caching(hash_params, cache_dir, data=data, clear_cache_file=clear_cache) + + if write_json: + shutil.copy(cache_filepath, write_json) + + if not to_pandas: + data = data.to_dataset() + + return data diff --git a/mhkit/river/performance.py b/mhkit/river/performance.py index ac4529793..c805517ab 100644 --- a/mhkit/river/performance.py +++ b/mhkit/river/performance.py @@ -1,15 +1,16 @@ import numpy as np + def circular(diameter): """ - Calculates the equivalent diameter and projected capture area of a + Calculates the equivalent diameter and projected capture area of a circular turbine - + Parameters ------------ diameter : int/float Turbine diameter [m] - + Returns --------- equivalent_diameter : float @@ -17,23 +18,25 @@ def circular(diameter): projected_capture_area : float Projected capture area [m^2] """ - assert isinstance(diameter, (int,float)), 'diameter must be of type int or float' - + if not isinstance(diameter, (int, float)): + raise TypeError(f"diameter must be of type int or float. Got: {type(diameter)}") + equivalent_diameter = diameter - projected_capture_area = (1/4)*np.pi*(equivalent_diameter**2) - + projected_capture_area = (1 / 4) * np.pi * (equivalent_diameter**2) + return equivalent_diameter, projected_capture_area + def ducted(duct_diameter): """ Calculates the equivalent diameter and projected capture area of a ducted turbine - + Parameters ------------ duct_diameter : int/float Duct diameter [m] - + Returns --------- equivalent_diameter : float @@ -41,25 +44,29 @@ def ducted(duct_diameter): projected_capture_area : float Projected capture area [m^2] """ - assert isinstance(duct_diameter, (int,float)), 'duct_diameter must be of type int or float' - + if not isinstance(duct_diameter, (int, float)): + raise TypeError( + f"duct_diameter must be of type int or float. Got: {type(duct_diameter)}" + ) + equivalent_diameter = duct_diameter - projected_capture_area = (1/4)*np.pi*(equivalent_diameter**2) + projected_capture_area = (1 / 4) * np.pi * (equivalent_diameter**2) return equivalent_diameter, projected_capture_area + def rectangular(h, w): """ - Calculates the equivalent diameter and projected capture area of a + Calculates the equivalent diameter and projected capture area of a retangular turbine - + Parameters ------------ h : int/float Turbine height [m] w : int/float Turbine width [m] - + Returns --------- equivalent_diameter : float @@ -67,24 +74,27 @@ def rectangular(h, w): projected_capture_area : float Projected capture area [m^2] """ - assert isinstance(h, (int,float)), 'h must be of type int or float' - assert isinstance(w, (int,float)), 'w must be of type int or float' - - equivalent_diameter = np.sqrt(4.*h*w / np.pi) - projected_capture_area = h*w + if not isinstance(h, (int, float)): + raise TypeError(f"h must be of type int or float. Got: {type(h)}") + if not isinstance(w, (int, float)): + raise TypeError(f"w must be of type int or float. Got: {type(w)}") + + equivalent_diameter = np.sqrt(4.0 * h * w / np.pi) + projected_capture_area = h * w return equivalent_diameter, projected_capture_area + def multiple_circular(diameters): """ - Calculates the equivalent diameter and projected capture area of a + Calculates the equivalent diameter and projected capture area of a multiple circular turbine - + Parameters ------------ - diameters: list + diameters: list List of device diameters [m] - + Returns --------- equivalent_diameter : float @@ -92,16 +102,18 @@ def multiple_circular(diameters): projected_capture_area : float Projected capture area [m^2] """ - assert isinstance(diameters, list), 'diameters must be of type list' - + if not isinstance(diameters, list): + raise TypeError(f"diameters must be of type list. Got: {type(diameters)}") + diameters_squared = [x**2 for x in diameters] equivalent_diameter = np.sqrt(sum(diameters_squared)) - projected_capture_area = 0.25*np.pi*sum(diameters_squared) + projected_capture_area = 0.25 * np.pi * sum(diameters_squared) return equivalent_diameter, projected_capture_area -def tip_speed_ratio(rotor_speed,rotor_diameter,inflow_speed): - ''' + +def tip_speed_ratio(rotor_speed, rotor_diameter, inflow_speed): + """ Function used to calculate the tip speed ratio (TSR) of a MEC device with rotor Parameters @@ -117,24 +129,31 @@ def tip_speed_ratio(rotor_speed,rotor_diameter,inflow_speed): -------- TSR : numpy array Calculated tip speed ratio (TSR) - ''' - - try: rotor_speed = np.asarray(rotor_speed) - except: 'rotor_speed must be of type np.ndarray' - try: inflow_speed = np.asarray(inflow_speed) - except: 'inflow_speed must be of type np.ndarray' - - assert isinstance(rotor_diameter, (float,int)), 'rotor diameter must be of type int or float' + """ + try: + rotor_speed = np.asarray(rotor_speed) + except: + "rotor_speed must be of type np.ndarray" + try: + inflow_speed = np.asarray(inflow_speed) + except: + "inflow_speed must be of type np.ndarray" - rotor_velocity = rotor_speed * np.pi*rotor_diameter + if not isinstance(rotor_diameter, (float, int)): + raise TypeError( + f"rotor_diameter must be of type int or float. Got: {type(rotor_diameter)}" + ) + + rotor_velocity = rotor_speed * np.pi * rotor_diameter TSR = rotor_velocity / inflow_speed return TSR -def power_coefficient(power,inflow_speed,capture_area,rho): - ''' + +def power_coefficient(power, inflow_speed, capture_area, rho): + """ Function that calculates the power coefficient of MEC device Parameters @@ -152,20 +171,27 @@ def power_coefficient(power,inflow_speed,capture_area,rho): -------- Cp : numpy array Power coefficient of device [-] - ''' - - try: power = np.asarray(power) - except: 'power must be of type np.ndarray' - try: inflow_speed = np.asarray(inflow_speed) - except: 'inflow_speed must be of type np.ndarray' - - assert isinstance(capture_area, (float,int)), 'capture_area must be of type int or float' - assert isinstance(rho, (float,int)), 'rho must be of type int or float' + """ + + try: + power = np.asarray(power) + except: + "power must be of type np.ndarray" + try: + inflow_speed = np.asarray(inflow_speed) + except: + "inflow_speed must be of type np.ndarray" + + if not isinstance(capture_area, (float, int)): + raise TypeError( + f"capture_area must be of type int or float. Got: {type(capture_area)}" + ) + if not isinstance(rho, (float, int)): + raise TypeError(f"rho must be of type int or float. Got: {type(rho)}") # Predicted power from inflow - power_in = (0.5 * rho * capture_area * inflow_speed**3) + power_in = 0.5 * rho * capture_area * inflow_speed**3 - Cp = power / power_in + Cp = power / power_in return Cp - diff --git a/mhkit/river/resource.py b/mhkit/river/resource.py index c4a0e760c..2a0e06ffd 100644 --- a/mhkit/river/resource.py +++ b/mhkit/river/resource.py @@ -1,20 +1,21 @@ -import pandas as pd +import xarray as xr import numpy as np from scipy.stats import linregress as _linregress from scipy.stats import rv_histogram as _rv_histogram +from mhkit.utils import convert_to_dataarray def Froude_number(v, h, g=9.80665): """ Calculate the Froude Number of the river, channel or duct flow, to check subcritical flow assumption (if Fr <1). - + Parameters ------------ - v : int/float + v : int/float Average velocity [m/s]. h : int/float - Mean hydrolic depth float [m]. + Mean hydraulic depth float [m]. g : int/float Gravitational acceleration [m/s2]. @@ -24,40 +25,60 @@ def Froude_number(v, h, g=9.80665): Froude Number of the river [unitless]. """ - assert isinstance(v, (int,float)), 'v must be of type int or float' - assert isinstance(h, (int,float)), 'h must be of type int or float' - assert isinstance(g, (int,float)), 'g must be of type int or float' - - Fr = v / np.sqrt( g * h ) - - return Fr + if not isinstance(v, (int, float)): + raise TypeError(f"v must be of type int or float. Got: {type(v)}") + if not isinstance(h, (int, float)): + raise TypeError(f"h must be of type int or float. Got: {type(h)}") + if not isinstance(g, (int, float)): + raise TypeError(f"g must be of type int or float. Got: {type(g)}") + + Fr = v / np.sqrt(g * h) + + return Fr -def exceedance_probability(D): +def exceedance_probability(D, dimension="", to_pandas=True): """ Calculates the exceedance probability - + Parameters ---------- - D : pandas Series - Data indexed by time [datetime or s]. - - Returns + D : pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset + Discharge indexed by time [datetime or s]. + + dimension: string (optional) + Name of the relevant xarray dimension. If not supplied, + defaults to the first dimension. Does not affect pandas input. + + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. + + Returns ------- - F : pandas DataFrame + F : pandas DataFrame or xarray Dataset Exceedance probability [unitless] indexed by time [datetime or s] - """ - assert isinstance(D, (pd.DataFrame, pd.Series)), 'D must be of type pd.Series' # dataframe allowed for matlab - - if isinstance(D, pd.DataFrame) and len(D.columns) == 1: # for matlab - D = D.squeeze().copy() - - # Calculate exceedence probability (F) - rank = D.rank(method='max', ascending=False) - F = 100* (rank / (len(D)+1) ) - - F = F.to_frame('F') # for matlab - + """ + if not isinstance(dimension, str): + raise TypeError(f"dimension must be of type str. Got: {type(dimension)}") + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + D = convert_to_dataarray(D) + + if dimension == "": + dimension = list(D.coords)[0] + + # Calculate exceedance probability (F) + rank = D.rank(dim=dimension) + rank = len(D[dimension]) - rank + 1 # convert to descending rank + F = 100 * rank / (len(D[dimension]) + 1) + F.name = "F" + + F = F.to_dataset() # for matlab + + if to_pandas: + F = F.to_pandas() + return F @@ -81,7 +102,7 @@ def polynomial_fit(x, y, n): List of polynomial coefficients R2 : float Polynomical fit coeffcient of determination - + """ try: x = np.array(x) @@ -91,132 +112,176 @@ def polynomial_fit(x, y, n): y = np.array(y) except: pass - assert isinstance(x, np.ndarray), 'x must be of type np.ndarray' - assert isinstance(y, np.ndarray), 'y must be of type np.ndarray' - assert isinstance(n, int), 'n must be of type int' - - # Get coeffcients of polynomial of order n + if not isinstance(x, np.ndarray): + raise TypeError(f"x must be of type np.ndarray. Got: {type(x)}") + if not isinstance(y, np.ndarray): + raise TypeError(f"y must be of type np.ndarray. Got: {type(y)}") + if not isinstance(n, int): + raise TypeError(f"n must be of type int. Got: {type(n)}") + + # Get coeffcients of polynomial of order n polynomial_coefficients = np.poly1d(np.polyfit(x, y, n)) - + # Calculate the coeffcient of determination - slope, intercept, r_value, p_value, std_err = _linregress(y, polynomial_coefficients(x)) + slope, intercept, r_value, p_value, std_err = _linregress( + y, polynomial_coefficients(x) + ) R2 = r_value**2 - + return polynomial_coefficients, R2 - -def discharge_to_velocity(D, polynomial_coefficients): + +def discharge_to_velocity(D, polynomial_coefficients, dimension="", to_pandas=True): """ - Calculates velocity given discharge data and the relationship between + Calculates velocity given discharge data and the relationship between discharge and velocity at an individual turbine - + Parameters ------------ - D : pandas Series + D : numpy ndarray, pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Discharge data [m3/s] indexed by time [datetime or s] polynomial_coefficients : numpy polynomial - List of polynomial coefficients that discribe the relationship between + List of polynomial coefficients that describe the relationship between discharge and velocity at an individual turbine - - Returns + dimension: string (optional) + Name of the relevant xarray dimension. If not supplied, + defaults to the first dimension. Does not affect pandas input. + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. + + Returns ------------ - V: pandas DataFrame + V: pandas DataFrame or xarray Dataset Velocity [m/s] indexed by time [datetime or s] - """ - assert isinstance(D, (pd.DataFrame, pd.Series)), 'D must be of type pd.Series' # dataframe allowed for matlab - assert isinstance(polynomial_coefficients, np.poly1d), 'polynomial_coefficients must be of type np.poly1d' - - if isinstance(D, pd.DataFrame) and len(D.columns) == 1: # for matlab - D = D.squeeze().copy() - + """ + if not isinstance(polynomial_coefficients, np.poly1d): + raise TypeError( + f"polynomial_coefficients must be of type np.poly1d. Got: {type(polynomial_coefficients)}" + ) + if not isinstance(dimension, str): + raise TypeError(f"dimension must be of type str. Got: {type(dimension)}") + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type str. Got: {type(to_pandas)}") + + D = convert_to_dataarray(D) + + if dimension == "": + dimension = list(D.coords)[0] + # Calculate velocity using polynomial - vals = polynomial_coefficients(D) - V = pd.Series(vals, index=D.index) - - V = V.to_frame('V') # for matlab - + V = xr.DataArray( + data=polynomial_coefficients(D), + dims=dimension, + coords={dimension: D[dimension]}, + ) + V.name = "V" + + V = V.to_dataset() # for matlab + + if to_pandas: + V = V.to_pandas() + return V - -def velocity_to_power(V, polynomial_coefficients, cut_in, cut_out): + +def velocity_to_power( + V, polynomial_coefficients, cut_in, cut_out, dimension="", to_pandas=True +): """ - Calculates power given velocity data and the relationship + Calculates power given velocity data and the relationship between velocity and power from an individual turbine - + Parameters ---------- - V : pandas Series + V : numpy ndarray, pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Velocity [m/s] indexed by time [datetime or s] polynomial_coefficients : numpy polynomial - List of polynomial coefficients that discribe the relationship between + List of polynomial coefficients that describe the relationship between velocity and power at an individual turbine cut_in: int/float Velocity values below cut_in are not used to compute P cut_out: int/float Velocity values above cut_out are not used to compute P - - Returns + dimension: string (optional) + Name of the relevant xarray dimension. If not supplied, + defaults to the first dimension. Does not affect pandas input. + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. + + Returns ------- - P : pandas DataFrame + P : pandas DataFrame or xarray Dataset Power [W] indexed by time [datetime or s] - """ - assert isinstance(V, (pd.DataFrame, pd.Series)), 'V must be of type pd.Series' # dataframe allowed for matlab - assert isinstance(polynomial_coefficients, np.poly1d), 'polynomial_coefficients must be of type np.poly1d' - assert isinstance(cut_in, (int,float)), 'cut_in must be of type int or float' - assert isinstance(cut_out, (int,float)), 'cut_out must be of type int or float' - - if isinstance(V, pd.DataFrame) and len(V.columns) == 1: - V = V.squeeze().copy() - - # Calculate power using tranfer function and FDC - vals = polynomial_coefficients(V) - + """ + if not isinstance(polynomial_coefficients, np.poly1d): + raise TypeError( + f"polynomial_coefficients must be of type np.poly1d. Got: {type(polynomial_coefficients)}" + ) + if not isinstance(cut_in, (int, float)): + raise TypeError(f"cut_in must be of type int or float. Got: {type(cut_in)}") + if not isinstance(cut_out, (int, float)): + raise TypeError(f"cut_out must be of type int or float. Got: {type(cut_out)}") + if not isinstance(dimension, str): + raise TypeError(f"dimension must be of type str. Got: {type(dimension)}") + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type str. Got: {type(to_pandas)}") + + V = convert_to_dataarray(V) + + if dimension == "": + dimension = list(V.coords)[0] + + # Calculate velocity using polynomial + power = polynomial_coefficients(V) + # Power for velocity values outside lower and upper bounds Turbine produces 0 power - vals[V < cut_in] = 0. - vals[V > cut_out] = 0. + power[V < cut_in] = 0.0 + power[V > cut_out] = 0.0 + + P = xr.DataArray(data=power, dims=dimension, coords={dimension: V[dimension]}) + P.name = "P" + + P = P.to_dataset() + + if to_pandas: + P = P.to_pandas() - P = pd.Series(vals, index=V.index) - - P = P.to_frame('P') # for matlab - return P def energy_produced(P, seconds): """ Returns the energy produced for a given time period provided - exceedence probability and power. - + exceedance probability and power. + Parameters ---------- - P : pandas Series + P : numpy ndarray, pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Power [W] indexed by time [datetime or s] seconds: int or float Seconds in the time period of interest - + Returns ------- E : float - Energy [J] produced in the given time frame + Energy [J] produced in the given length of time """ - assert isinstance(P, (pd.DataFrame, pd.Series)), 'D must be of type pd.Series' # dataframe allowed for matlab - assert isinstance(seconds, (int, float)), 'seconds must be of type int or float' + if not isinstance(seconds, (int, float)): + raise TypeError(f"seconds must be of type int or float. Got: {type(seconds)}") + + P = convert_to_dataarray(P) - if isinstance(P, pd.DataFrame) and len(P.columns) == 1: # for matlab - P = P.squeeze().copy() - # Calculate Histogram of power - H, edges = np.histogram(P, 100 ) + H, edges = np.histogram(P, 100) # Create a distribution - hist_dist = _rv_histogram([H,edges]) + hist_dist = _rv_histogram([H, edges]) # Sample range for pdf - x = np.linspace(edges.min(),edges.max(),1000) + x = np.linspace(edges.min(), edges.max(), 1000) # Calculate the expected value of Power - expected_val_of_power = np.trapz(x*hist_dist.pdf(x),x=x) + expected_val_of_power = np.trapz(x * hist_dist.pdf(x), x=x) # Note: Built-in Expected Value method often throws warning - #EV = hist_dist.expect(lb=edges.min(), ub=edges.max()) + # EV = hist_dist.expect(lb=edges.min(), ub=edges.max()) # Energy - E = seconds * expected_val_of_power - - return E + E = seconds * expected_val_of_power + return E diff --git a/mhkit/tests/dolfyn/base.py b/mhkit/tests/dolfyn/base.py index 13327baa4..780b9688c 100644 --- a/mhkit/tests/dolfyn/base.py +++ b/mhkit/tests/dolfyn/base.py @@ -7,15 +7,16 @@ def rfnm(filename): testdir = dirname(abspath(__file__)) - datadir = normpath(join(testdir, relpath( - '../../../examples/data/dolfyn/test_data/'))) - return datadir + '/' + filename + datadir = normpath( + join(testdir, relpath("../../../examples/data/dolfyn/test_data/")) + ) + return datadir + "/" + filename def exdt(filename): testdir = dirname(abspath(__file__)) - exdir = normpath(join(testdir, relpath('../../../examples/data/dolfyn/'))) - return exdir + '/' + filename + exdir = normpath(join(testdir, relpath("../../../examples/data/dolfyn/"))) + return exdir + "/" + filename def assert_allclose(dat0, dat1, *args, **kwargs): @@ -30,8 +31,9 @@ def assert_allclose(dat0, dat1, *args, **kwargs): _assert_allclose(dat0, dat1, *args, **kwargs) # Check attributes for nm in dat0.attrs: - assert dat0.attrs[nm] == dat1.attrs[nm], "The " + \ - nm + " attribute does not match." + assert dat0.attrs[nm] == dat1.attrs[nm], ( + "The " + nm + " attribute does not match." + ) # If test debugging for v in names: dat0[v] = time.epoch2dt64(dat0[v]) @@ -46,9 +48,9 @@ def save_netcdf(data, name, *args, **kwargs): io.save(data, rfnm(name), *args, **kwargs) -def load_matlab(name, *args, **kwargs): +def load_matlab(name, *args, **kwargs): return io.load_mat(rfnm(name), *args, **kwargs) -def save_matlab(data, name, *args, **kwargs): +def save_matlab(data, name, *args, **kwargs): io.save_mat(data, rfnm(name), *args, **kwargs) diff --git a/mhkit/tests/dolfyn/test_analysis.py b/mhkit/tests/dolfyn/test_analysis.py index f75d5e952..da10f5449 100644 --- a/mhkit/tests/dolfyn/test_analysis.py +++ b/mhkit/tests/dolfyn/test_analysis.py @@ -1,5 +1,9 @@ from . import test_read_adp as tr, test_read_adv as tv -from mhkit.tests.dolfyn.base import load_netcdf as load, save_netcdf as save, assert_allclose +from mhkit.tests.dolfyn.base import ( + load_netcdf as load, + save_netcdf as save, + assert_allclose, +) from mhkit.dolfyn import VelBinner, read_example import mhkit.dolfyn.adv.api as avm import mhkit.dolfyn.adp.api as apm @@ -15,14 +19,14 @@ class analysis_testcase(unittest.TestCase): @classmethod def setUpClass(self): self.adv1 = tv.dat.copy(deep=True) - self.adv2 = read_example('vector_burst_mode01.VEC', nens=90) + self.adv2 = read_example("vector_burst_mode01.VEC", nens=90) self.adv_tool = VelBinner(n_bin=self.adv1.fs, fs=self.adv1.fs) self.adp = tr.dat_sig.copy(deep=True) with pytest.warns(UserWarning): - self.adp_tool = VelBinner(n_bin=self.adp.fs*20, - fs=self.adp.fs, - n_fft=self.adp.fs*40) + self.adp_tool = VelBinner( + n_bin=self.adp.fs * 20, fs=self.adp.fs, n_fft=self.adp.fs * 40 + ) @classmethod def tearDownClass(self): @@ -33,19 +37,19 @@ def test_do_func(self): ds_vec = self.adv_tool.bin_variance(self.adv1, out_ds=ds_vec) # test non-integer bin sizes - mean_test = self.adv_tool.mean(self.adv1['vel'].values, n_bin=ds_vec.fs*1.01) + mean_test = self.adv_tool.mean(self.adv1["vel"].values, n_bin=ds_vec.fs * 1.01) ds_sig = self.adp_tool.bin_average(self.adp) ds_sig = self.adp_tool.bin_variance(self.adp, out_ds=ds_sig) if make_data: - save(ds_vec, 'vector_data01_avg.nc') - save(ds_sig, 'BenchFile01_avg.nc') + save(ds_vec, "vector_data01_avg.nc") + save(ds_sig, "BenchFile01_avg.nc") return - assert np.sum(mean_test-ds_vec.vel.values) == 0, "Mean test failed" - assert_allclose(ds_vec, load('vector_data01_avg.nc'), atol=1e-6) - assert_allclose(ds_sig, load('BenchFile01_avg.nc'), atol=1e-6) + assert np.sum(mean_test - ds_vec.vel.values) == 0, "Mean test failed" + assert_allclose(ds_vec, load("vector_data01_avg.nc"), atol=1e-6) + assert_allclose(ds_sig, load("BenchFile01_avg.nc"), atol=1e-6) def test_calc_func(self): c = self.adv_tool @@ -54,94 +58,144 @@ def test_calc_func(self): test_ds = type(self.adv1)() test_ds_adp = type(self.adp)() - test_ds['acov'] = c.autocovariance(self.adv1.vel) - test_ds['tke_vec_detrend'] = c.turbulent_kinetic_energy( - self.adv1.vel, detrend=True) - test_ds['tke_vec_demean'] = c.turbulent_kinetic_energy( - self.adv1.vel, detrend=False) - test_ds['psd'] = c.power_spectral_density( - self.adv1.vel, freq_units='Hz') + test_ds["acov"] = c.autocovariance(self.adv1.vel) + test_ds["tke_vec_detrend"] = c.turbulent_kinetic_energy( + self.adv1.vel, detrend=True + ) + test_ds["tke_vec_demean"] = c.turbulent_kinetic_energy( + self.adv1.vel, detrend=False + ) + test_ds["psd"] = c.power_spectral_density(self.adv1.vel, freq_units="Hz") # Test ADCP single vector spectra, cross-spectra to test radians code - test_ds_adp['psd_b5'] = c2.power_spectral_density( - self.adp.vel_b5.isel(range_b5=5), freq_units='rad', window='hamm') - test_ds_adp['tke_b5'] = c2.turbulent_kinetic_energy(self.adp.vel_b5) + test_ds_adp["psd_b5"] = c2.power_spectral_density( + self.adp.vel_b5.isel(range_b5=5), freq_units="rad", window="hamm" + ) + test_ds_adp["tke_b5"] = c2.turbulent_kinetic_energy(self.adp.vel_b5) if make_data: - save(test_ds, 'vector_data01_func.nc') - save(test_ds_adp, 'BenchFile01_func.nc') + save(test_ds, "vector_data01_func.nc") + save(test_ds_adp, "BenchFile01_func.nc") return - assert_allclose(test_ds, load('vector_data01_func.nc'), atol=1e-6) - assert_allclose(test_ds_adp, load('BenchFile01_func.nc'), atol=1e-6) + assert_allclose(test_ds, load("vector_data01_func.nc"), atol=1e-6) + assert_allclose(test_ds_adp, load("BenchFile01_func.nc"), atol=1e-6) def test_fft_freq(self): - f = self.adv_tool._fft_freq(units='Hz') - omega = self.adv_tool._fft_freq(units='rad/s') + f = self.adv_tool._fft_freq(units="Hz") + omega = self.adv_tool._fft_freq(units="rad/s") - np.testing.assert_equal(f, np.arange(1, 17, 1, dtype='float')) - np.testing.assert_equal(omega, np.arange( - 1, 17, 1, dtype='float')*(2*np.pi)) + np.testing.assert_equal(f, np.arange(1, 17, 1, dtype="float")) + np.testing.assert_equal(omega, np.arange(1, 17, 1, dtype="float") * (2 * np.pi)) def test_adv_turbulence(self): dat = tv.dat.copy(deep=True) bnr = avm.ADVBinner(n_bin=20.0, fs=dat.fs) tdat = bnr(dat) - acov = bnr.autocovariance(dat.vel) - - assert_identical(tdat, avm.turbulence_statistics( - dat, n_bin=20.0, fs=dat.fs)) - - tdat['stress_detrend'] = bnr.reynolds_stress(dat.vel) - tdat['stress_demean'] = bnr.reynolds_stress(dat.vel, detrend=False) - tdat['csd'] = bnr.cross_spectral_density( - dat.vel, freq_units='rad', window='hamm', n_fft_coh=10) - tdat['LT83'] = bnr.dissipation_rate_LT83(tdat.psd, tdat.velds.U_mag) - tdat['SF'] = bnr.dissipation_rate_SF(dat.vel[0], tdat.velds.U_mag) - tdat['TE01'] = bnr.dissipation_rate_TE01(dat, tdat) - tdat['L'] = bnr.integral_length_scales(acov, tdat.velds.U_mag) + acov = bnr.autocovariance(dat["vel"]) + + assert_identical(tdat, avm.turbulence_statistics(dat, n_bin=20.0, fs=dat.fs)) + + tdat["stress_detrend"] = bnr.reynolds_stress(dat["vel"]) + tdat["stress_demean"] = bnr.reynolds_stress(dat["vel"], detrend=False) + tdat["csd"] = bnr.cross_spectral_density( + dat["vel"], freq_units="rad", window="hamm", n_fft_coh=10 + ) + tdat["LT83"] = bnr.dissipation_rate_LT83(tdat["psd"], tdat.velds.U_mag) + tdat["noise"] = bnr.doppler_noise_level(tdat["psd"], pct_fN=0.8) + tdat["LT83_noise"] = bnr.dissipation_rate_LT83( + tdat["psd"], tdat.velds.U_mag, noise=tdat["noise"] + ) + tdat["SF"] = bnr.dissipation_rate_SF(dat["vel"][0], tdat.velds.U_mag) + tdat["TE01"] = bnr.dissipation_rate_TE01(dat, tdat) + tdat["L"] = bnr.integral_length_scales(acov, tdat.velds.U_mag) slope_check = bnr.check_turbulence_cascade_slope( - tdat['psd'][-1].mean('time'), freq_range=[10, 100]) + tdat["psd"][-1].mean("time"), freq_range=[10, 100] + ) + tdat["psd_noise"] = bnr.power_spectral_density( + dat["vel"], freq_units="rad", noise=[0.06, 0.04, 0.01] + ) if make_data: - save(tdat, 'vector_data01_bin.nc') + save(tdat, "vector_data01_bin.nc") return assert np.round(slope_check[0].values, 4), 0.1713 - assert_allclose(tdat, load('vector_data01_bin.nc'), atol=1e-6) - + assert_allclose(tdat, load("vector_data01_bin.nc"), atol=1e-6) def test_adcp_turbulence(self): - dat = tr.dat_sig_i.copy(deep=True) - bnr = apm.ADPBinner(n_bin=20.0, fs=dat.fs, diff_style='centered') + dat = tr.dat_sig_tide.copy(deep=True) + dat.velds.rotate2("earth") + dat.attrs["principal_heading"] = apm.calc_principal_heading( + dat.vel.mean("range") + ) + bnr = apm.ADPBinner(n_bin=20.0, fs=dat.fs, diff_style="centered") tdat = bnr.bin_average(dat) - tdat['dudz'] = bnr.dudz(tdat.vel) - tdat['dvdz'] = bnr.dvdz(tdat.vel) - tdat['dwdz'] = bnr.dwdz(tdat.vel) - tdat['tau2'] = bnr.shear_squared(tdat.vel) - tdat['psd'] = bnr.power_spectral_density(dat['vel'].isel( - dir=2, range=len(dat.range)//2), freq_units='Hz') - tdat['noise'] = bnr.doppler_noise_level(tdat['psd'], pct_fN=0.8) - tdat['stress_vec4'] = bnr.reynolds_stress_4beam( - dat, noise=tdat['noise'], orientation='up', beam_angle=25) - tdat['tke_vec5'], tdat['stress_vec5'] = bnr.stress_tensor_5beam( - dat, noise=tdat['noise'], orientation='up', beam_angle=25, tke_only=False) - tdat['tke'] = bnr.total_turbulent_kinetic_energy( - dat, noise=tdat['noise'], orientation='up', beam_angle=25) + + tdat["dudz"] = bnr.dudz(tdat["vel"]) + tdat["dvdz"] = bnr.dvdz(tdat["vel"]) + tdat["dwdz"] = bnr.dwdz(tdat["vel"]) + tdat["tau2"] = bnr.shear_squared(tdat["vel"]) + tdat["I"] = tdat.velds.I + tdat["ti"] = bnr.turbulence_intensity(dat.velds.U_mag, detrend=False) + dat.velds.rotate2("beam") + + tdat["psd"] = bnr.power_spectral_density( + dat["vel"].isel(dir=2, range=len(dat.range) // 2), freq_units="Hz" + ) + tdat["noise"] = bnr.doppler_noise_level(tdat["psd"], pct_fN=0.8) + tdat["stress_vec4"] = bnr.reynolds_stress_4beam( + dat, noise=tdat["noise"], orientation="up", beam_angle=25 + ) + tdat["tke_vec5"], tdat["stress_vec5"] = bnr.stress_tensor_5beam( + dat, noise=tdat["noise"], orientation="up", beam_angle=25, tke_only=False + ) + tdat["tke"] = bnr.total_turbulent_kinetic_energy( + dat, noise=tdat["noise"], orientation="up", beam_angle=25 + ) + tdat["ti_noise"] = bnr.turbulence_intensity( + dat.velds.U_mag, detrend=False, noise=tdat["noise"] + ) # This is "negative" for this code check - tdat['wpwp'] = bnr.turbulent_kinetic_energy(dat['vel_b5'], noise=tdat['noise']) - tdat['dissipation_rate_LT83'] = bnr.dissipation_rate_LT83( - tdat['psd'], tdat.velds.U_mag.isel(range=len(dat.range)//2), freq_range=[0.2, 0.4]) - tdat['dissipation_rate_SF'], tdat['noise_SF'], tdat['D_SF'] = bnr.dissipation_rate_SF( - dat.vel.isel(dir=2), r_range=[1, 5]) - tdat['friction_vel'] = bnr.friction_velocity( - tdat, upwp_=tdat['stress_vec5'].sel(tau='upwp_'), z_inds=slice(1, 5), H=50) + tdat["wpwp"] = bnr.turbulent_kinetic_energy(dat["vel_b5"], noise=tdat["noise"]) + tdat["dissipation_rate_LT83"] = bnr.dissipation_rate_LT83( + tdat["psd"], + tdat.velds.U_mag.isel(range=len(dat.range) // 2), + freq_range=[0.2, 0.4], + ) + tdat["dissipation_rate_LT83_noise"] = bnr.dissipation_rate_LT83( + tdat["psd"], + tdat.velds.U_mag.isel(range=len(dat.range) // 2), + freq_range=[0.2, 0.4], + noise=tdat["noise"], + ) + ( + tdat["dissipation_rate_SF"], + tdat["noise_SF"], + tdat["D_SF"], + ) = bnr.dissipation_rate_SF(dat.vel.isel(dir=2), r_range=[1, 5]) + tdat["friction_vel"] = bnr.friction_velocity( + tdat, upwp_=tdat["stress_vec5"].sel(tau="upwp_"), z_inds=slice(1, 5), H=50 + ) slope_check = bnr.check_turbulence_cascade_slope( - tdat['psd'].mean('time'), freq_range=[0.4, 4]) + tdat["psd"].mean("time"), freq_range=[0.4, 4] + ) + tdat["psd_noise"] = bnr.power_spectral_density( + dat["vel"].isel(dir=2, range=len(dat.range) // 2), + freq_units="Hz", + noise=0.01, + ) if make_data: - save(tdat, 'Sig1000_IMU_bin.nc') + save(tdat, "Sig1000_tidal_bin.nc") return + with pytest.raises(Exception): + bnr.calc_psd(dat["vel"], freq_units="Hz", noise=0.01) + + with pytest.raises(Exception): + bnr.calc_psd(dat["vel"][0], freq_units="Hz", noise=0.01) + assert np.round(slope_check[0].values, 4), -1.0682 - assert_allclose(tdat, load('Sig1000_IMU_bin.nc'), atol=1e-6) + + assert_allclose(tdat, load("Sig1000_tidal_bin.nc"), atol=1e-6) diff --git a/mhkit/tests/dolfyn/test_api.py b/mhkit/tests/dolfyn/test_api.py index 57320cb71..272ff1215 100644 --- a/mhkit/tests/dolfyn/test_api.py +++ b/mhkit/tests/dolfyn/test_api.py @@ -3,22 +3,24 @@ make_data = False -vec = load('vector_data01.nc') -sig = load('BenchFile01.nc') -rdi = load('RDI_test01.nc') +vec = load("vector_data01.nc") +sig = load("BenchFile01.nc") +rdi = load("RDI_test01.nc") class api_testcase(unittest.TestCase): def test_repr(self): _str = [] - for dat, fnm in [(vec, rfnm('vector_data01.repr.txt')), - (sig, rfnm('BenchFile01.repr.txt')), - (rdi, rfnm('RDI_test01.repr.txt')), ]: + for dat, fnm in [ + (vec, rfnm("vector_data01.repr.txt")), + (sig, rfnm("BenchFile01.repr.txt")), + (rdi, rfnm("RDI_test01.repr.txt")), + ]: _str = dat.velds.__repr__() if make_data: - with open(fnm, 'w') as fl: + with open(fnm, "w") as fl: fl.write(_str) else: - with open(fnm, 'r') as fl: + with open(fnm, "r") as fl: test_str = fl.read() assert test_str == _str diff --git a/mhkit/tests/dolfyn/test_clean.py b/mhkit/tests/dolfyn/test_clean.py index e237bd569..17c3d3f3e 100644 --- a/mhkit/tests/dolfyn/test_clean.py +++ b/mhkit/tests/dolfyn/test_clean.py @@ -15,50 +15,48 @@ def test_GN2002(self): td_imu = tv.dat_imu.copy(deep=True) mask = avm.clean.GN2002(td.vel, npt=20) - td['vel'] = avm.clean.clean_fill( - td.vel, mask, method='cubic', maxgap=6) - td['vel_clean_1D'] = avm.clean.fill_nan_ensemble_mean( - td.vel[0], mask[0], fs=1, window=45) - td['vel_clean_2D'] = avm.clean.fill_nan_ensemble_mean( - td.vel, mask, fs=1, window=45) + td["vel"] = avm.clean.clean_fill(td.vel, mask, method="cubic", maxgap=6) + td["vel_clean_1D"] = avm.clean.fill_nan_ensemble_mean( + td.vel[0], mask[0], fs=1, window=45 + ) + td["vel_clean_2D"] = avm.clean.fill_nan_ensemble_mean( + td.vel, mask, fs=1, window=45 + ) mask = avm.clean.GN2002(td_imu.vel, npt=20) - td_imu['vel'] = avm.clean.clean_fill( - td_imu.vel, mask, method='cubic', maxgap=6) + td_imu["vel"] = avm.clean.clean_fill(td_imu.vel, mask, method="cubic", maxgap=6) if make_data: - save(td, 'vector_data01_GN.nc') - save(td_imu, 'vector_data_imu01_GN.nc') + save(td, "vector_data01_GN.nc") + save(td_imu, "vector_data_imu01_GN.nc") return - assert_allclose(td, load('vector_data01_GN.nc'), atol=1e-6) - assert_allclose(td_imu, load('vector_data_imu01_GN.nc'), atol=1e-6) + assert_allclose(td, load("vector_data01_GN.nc"), atol=1e-6) + assert_allclose(td_imu, load("vector_data_imu01_GN.nc"), atol=1e-6) def test_spike_thresh(self): td = tv.dat_imu.copy(deep=True) mask = avm.clean.spike_thresh(td.vel, thresh=10) - td['vel'] = avm.clean.clean_fill( - td.vel, mask, method='cubic', maxgap=6) + td["vel"] = avm.clean.clean_fill(td.vel, mask, method="cubic", maxgap=6) if make_data: - save(td, 'vector_data01_sclean.nc') + save(td, "vector_data01_sclean.nc") return - assert_allclose(td, load('vector_data01_sclean.nc'), atol=1e-6) + assert_allclose(td, load("vector_data01_sclean.nc"), atol=1e-6) def test_range_limit(self): td = tv.dat_imu.copy(deep=True) mask = avm.clean.range_limit(td.vel) - td['vel'] = avm.clean.clean_fill( - td.vel, mask, method='cubic', maxgap=6) + td["vel"] = avm.clean.clean_fill(td.vel, mask, method="cubic", maxgap=6) if make_data: - save(td, 'vector_data01_rclean.nc') + save(td, "vector_data01_rclean.nc") return - assert_allclose(td, load('vector_data01_rclean.nc'), atol=1e-6) + assert_allclose(td, load("vector_data01_rclean.nc"), atol=1e-6) def test_clean_upADCP(self): td_awac = tp.dat_awac.copy(deep=True) @@ -73,22 +71,22 @@ def test_clean_upADCP(self): td_sig = apm.clean.correlation_filter(td_sig, thresh=50) if make_data: - save(td_awac, 'AWAC_test01_clean.nc') - save(td_sig, 'Sig1000_tidal_clean.nc') + save(td_awac, "AWAC_test01_clean.nc") + save(td_sig, "Sig1000_tidal_clean.nc") return - assert_allclose(td_awac, load('AWAC_test01_clean.nc'), atol=1e-6) - assert_allclose(td_sig, load('Sig1000_tidal_clean.nc'), atol=1e-6) + assert_allclose(td_awac, load("AWAC_test01_clean.nc"), atol=1e-6) + assert_allclose(td_sig, load("Sig1000_tidal_clean.nc"), atol=1e-6) def test_clean_downADCP(self): td = tp.dat_sig_ie.copy(deep=True) # First remove bad data - td['vel'] = apm.clean.val_exceeds_thresh(td.vel, thresh=3) - td['vel'] = apm.clean.fillgaps_time(td.vel) - td['vel_b5'] = apm.clean.fillgaps_time(td.vel_b5) - td['vel'] = apm.clean.fillgaps_depth(td.vel) - td['vel_b5'] = apm.clean.fillgaps_depth(td.vel_b5) + td["vel"] = apm.clean.val_exceeds_thresh(td.vel, thresh=3) + td["vel"] = apm.clean.fillgaps_time(td.vel) + td["vel_b5"] = apm.clean.fillgaps_time(td.vel_b5) + td["vel"] = apm.clean.fillgaps_depth(td.vel) + td["vel_b5"] = apm.clean.fillgaps_depth(td.vel_b5) # Then clean below seabed apm.clean.set_range_offset(td, 0.5) @@ -96,24 +94,24 @@ def test_clean_downADCP(self): td = apm.clean.nan_beyond_surface(td) if make_data: - save(td, 'Sig500_Echo_clean.nc') + save(td, "Sig500_Echo_clean.nc") return - assert_allclose(td, load('Sig500_Echo_clean.nc'), atol=1e-6) + assert_allclose(td, load("Sig500_Echo_clean.nc"), atol=1e-6) def test_orient_filter(self): td_sig = tp.dat_sig_i.copy(deep=True) td_sig = apm.clean.medfilt_orient(td_sig) - apm.rotate2(td_sig, 'earth', inplace=True) + apm.rotate2(td_sig, "earth", inplace=True) td_rdi = tp.dat_rdi.copy(deep=True) td_rdi = apm.clean.medfilt_orient(td_rdi) - apm.rotate2(td_rdi, 'earth', inplace=True) + apm.rotate2(td_rdi, "earth", inplace=True) if make_data: - save(td_sig, 'Sig1000_IMU_ofilt.nc') - save(td_rdi, 'RDI_test01_ofilt.nc') + save(td_sig, "Sig1000_IMU_ofilt.nc") + save(td_rdi, "RDI_test01_ofilt.nc") return - assert_allclose(td_sig, load('Sig1000_IMU_ofilt.nc'), atol=1e-6) - assert_allclose(td_rdi, load('RDI_test01_ofilt.nc'), atol=1e-6) + assert_allclose(td_sig, load("Sig1000_IMU_ofilt.nc"), atol=1e-6) + assert_allclose(td_rdi, load("RDI_test01_ofilt.nc"), atol=1e-6) diff --git a/mhkit/tests/dolfyn/test_motion.py b/mhkit/tests/dolfyn/test_motion.py index 47c193a95..e066058e0 100644 --- a/mhkit/tests/dolfyn/test_motion.py +++ b/mhkit/tests/dolfyn/test_motion.py @@ -3,7 +3,11 @@ from mhkit.dolfyn.adv.motion import correct_motion from . import test_read_adv as tv -from mhkit.tests.dolfyn.base import load_netcdf as load, save_netcdf as save, assert_allclose +from mhkit.tests.dolfyn.base import ( + load_netcdf as load, + save_netcdf as save, + assert_allclose, +) from mhkit.dolfyn.adv import api from mhkit.dolfyn.io.api import read_example as read import unittest @@ -29,50 +33,49 @@ def test_motion_adv(self): tdm0 = tv.dat_imu.copy(deep=True) tdm0.velds.set_declination(0.0, inplace=True) tdm0 = api.correct_motion(tdm0) - tdm0.attrs.pop('declination') - tdm0.attrs.pop('declination_in_orientmat') + tdm0.attrs.pop("declination") + tdm0.attrs.pop("declination_in_orientmat") # test motion-corrected data rotation tdmE = tv.dat_imu.copy(deep=True) tdmE.velds.set_declination(10.0, inplace=True) - tdmE.velds.rotate2('earth', inplace=True) + tdmE.velds.rotate2("earth", inplace=True) tdmE = api.correct_motion(tdmE) # ensure trailing nans are removed from AHRS data - ahrs = read('vector_data_imu01.VEC', userdata=True) - for var in ['accel', 'angrt', 'mag']: - assert not ahrs[var].isnull().any( - ), "nan's in {} variable".format(var) + ahrs = read("vector_data_imu01.VEC", userdata=True) + for var in ["accel", "angrt", "mag"]: + assert not ahrs[var].isnull().any(), "nan's in {} variable".format(var) if make_data: - save(tdm, 'vector_data_imu01_mc.nc') - save(tdm10, 'vector_data_imu01_mcDeclin10.nc') - save(tdmj, 'vector_data_imu01-json_mc.nc') + save(tdm, "vector_data_imu01_mc.nc") + save(tdm10, "vector_data_imu01_mcDeclin10.nc") + save(tdmj, "vector_data_imu01-json_mc.nc") return - cdm10 = load('vector_data_imu01_mcDeclin10.nc') + cdm10 = load("vector_data_imu01_mcDeclin10.nc") - assert_allclose(tdm, load('vector_data_imu01_mc.nc'), atol=1e-7) + assert_allclose(tdm, load("vector_data_imu01_mc.nc"), atol=1e-7) assert_allclose(tdm10, tdmj, atol=1e-7) assert_allclose(tdm0, tdm, atol=1e-7) assert_allclose(tdm10, cdm10, atol=1e-7) assert_allclose(tdmE, cdm10, atol=1e-7) - assert_allclose(tdmj, load('vector_data_imu01-json_mc.nc'), atol=1e-7) + assert_allclose(tdmj, load("vector_data_imu01-json_mc.nc"), atol=1e-7) def test_sep_probes(self): tdm = tv.dat_imu.copy(deep=True) tdm = api.correct_motion(tdm, separate_probes=True) if make_data: - save(tdm, 'vector_data_imu01_mcsp.nc') + save(tdm, "vector_data_imu01_mcsp.nc") return - assert_allclose(tdm, load('vector_data_imu01_mcsp.nc'), atol=1e-7) + assert_allclose(tdm, load("vector_data_imu01_mcsp.nc"), atol=1e-7) def test_duty_cycle(self): - tdc = load('vector_duty_cycle.nc') + tdc = load("vector_duty_cycle.nc") tdc.velds.set_inst2head_rotmat(np.eye(3)) - tdc.attrs['inst2head_vec'] = [0.5, 0, 0.1] + tdc.attrs["inst2head_vec"] = [0.5, 0, 0.1] # with duty cycle code td = correct_motion(tdc, accel_filtfreq=0.03, to_earth=False) @@ -80,16 +83,16 @@ def test_duty_cycle(self): # Wrapped function n_burst = 50 - n_ensembles = len(tdc.time)//n_burst + n_ensembles = len(tdc.time) // n_burst cd = xr.Dataset() - tdc.attrs.pop('duty_cycle_n_burst') + tdc.attrs.pop("duty_cycle_n_burst") for i in range(n_ensembles): - cd0 = tdc.isel(time=slice(n_burst*i, n_burst*i+n_burst)) + cd0 = tdc.isel(time=slice(n_burst * i, n_burst * i + n_burst)) cd0 = correct_motion(cd0, accel_filtfreq=0.03, to_earth=False) - cd = xr.merge((cd, cd0), combine_attrs='no_conflicts') - cd.attrs['duty_cycle_n_burst'] = n_burst + cd = xr.merge((cd, cd0), combine_attrs="no_conflicts") + cd.attrs["duty_cycle_n_burst"] = n_burst - cd_ENU = cd.velds.rotate2('earth', inplace=False) + cd_ENU = cd.velds.rotate2("earth", inplace=False) assert_allclose(td, cd, atol=1e-7) assert_allclose(td_ENU, cd_ENU, atol=1e-7) diff --git a/mhkit/tests/dolfyn/test_orient.py b/mhkit/tests/dolfyn/test_orient.py index 72afb4e92..1cee3aed4 100644 --- a/mhkit/tests/dolfyn/test_orient.py +++ b/mhkit/tests/dolfyn/test_orient.py @@ -8,12 +8,25 @@ def check_hpr(h, p, r, omatin): omat = euler2orient(h, p, r) - assert_allclose(omat, omatin, atol=1e-13, err_msg='Orientation matrix different than expected!\nExpected:\n{}\nGot:\n{}' - .format(np.array(omatin), omat)) + assert_allclose( + omat, + omatin, + atol=1e-13, + err_msg="Orientation matrix different than expected!\nExpected:\n{}\nGot:\n{}".format( + np.array(omatin), omat + ), + ) hpr = orient2euler(omat) - assert_allclose(hpr, [h, p, r], atol=1e-13, err_msg="Angles different than specified, orient2euler and euler2orient are " - "antisymmetric!\nExpected:\n{}\nGot:\n{}" - .format(hpr, np.array([h, p, r]), )) + assert_allclose( + hpr, + [h, p, r], + atol=1e-13, + err_msg="Angles different than specified, orient2euler and euler2orient are " + "antisymmetric!\nExpected:\n{}\nGot:\n{}".format( + hpr, + np.array([h, p, r]), + ), + ) class orient_testcase(unittest.TestCase): @@ -42,67 +55,133 @@ def test_hpr_defs(self): DOCUMENTATION. """ - check_hpr(0, 0, 0, [[0, 1, 0], - [-1, 0, 0], - [0, 0, 1], ]) - - check_hpr(90, 0, 0, [[1, 0, 0], - [0, 1, 0], - [0, 0, 1], ]) - - check_hpr(90, 0, 90, [[1, 0, 0], - [0, 0, 1], - [0, -1, 0], ]) - - sq2 = 1. / np.sqrt(2) - check_hpr(45, 0, 0, [[sq2, sq2, 0], - [-sq2, sq2, 0], - [0, 0, 1], ]) - - check_hpr(0, 45, 0, [[0, sq2, sq2], - [-1, 0, 0], - [0, -sq2, sq2], ]) - - check_hpr(0, 0, 45, [[0, 1, 0], - [-sq2, 0, sq2], - [sq2, 0, sq2], ]) - - check_hpr(90, 45, 90, [[sq2, 0, sq2], - [-sq2, 0, sq2], - [0, -1, 0], ]) + check_hpr( + 0, + 0, + 0, + [ + [0, 1, 0], + [-1, 0, 0], + [0, 0, 1], + ], + ) + + check_hpr( + 90, + 0, + 0, + [ + [1, 0, 0], + [0, 1, 0], + [0, 0, 1], + ], + ) + + check_hpr( + 90, + 0, + 90, + [ + [1, 0, 0], + [0, 0, 1], + [0, -1, 0], + ], + ) + + sq2 = 1.0 / np.sqrt(2) + check_hpr( + 45, + 0, + 0, + [ + [sq2, sq2, 0], + [-sq2, sq2, 0], + [0, 0, 1], + ], + ) + + check_hpr( + 0, + 45, + 0, + [ + [0, sq2, sq2], + [-1, 0, 0], + [0, -sq2, sq2], + ], + ) + + check_hpr( + 0, + 0, + 45, + [ + [0, 1, 0], + [-sq2, 0, sq2], + [sq2, 0, sq2], + ], + ) + + check_hpr( + 90, + 45, + 90, + [ + [sq2, 0, sq2], + [-sq2, 0, sq2], + [0, -1, 0], + ], + ) c30 = np.cos(np.deg2rad(30)) s30 = np.sin(np.deg2rad(30)) - check_hpr(30, 0, 0, [[s30, c30, 0], - [-c30, s30, 0], - [0, 0, 1], ]) + check_hpr( + 30, + 0, + 0, + [ + [s30, c30, 0], + [-c30, s30, 0], + [0, 0, 1], + ], + ) def test_pr_declination(self): # Test to confirm that pitch and roll don't change when you set # declination declin = 15.37 - dat = load('vector_data_imu01.nc') - h0, p0, r0 = orient2euler(dat['orientmat'].values) + dat = load("vector_data_imu01.nc") + h0, p0, r0 = orient2euler(dat["orientmat"].values) set_declination(dat, declin, inplace=True) - h1, p1, r1 = orient2euler(dat['orientmat'].values) - - assert_allclose(p0, p1, atol=1e-5, - err_msg="Pitch changes when setting declination") - assert_allclose(r0, r1, atol=1e-5, - err_msg="Roll changes when setting declination") - assert_allclose(h0 + declin, h1, atol=1e-5, err_msg="incorrect heading change when " - "setting declination") + h1, p1, r1 = orient2euler(dat["orientmat"].values) + + assert_allclose( + p0, p1, atol=1e-5, err_msg="Pitch changes when setting declination" + ) + assert_allclose( + r0, r1, atol=1e-5, err_msg="Roll changes when setting declination" + ) + assert_allclose( + h0 + declin, + h1, + atol=1e-5, + err_msg="incorrect heading change when " "setting declination", + ) def test_q_hpr(self): - dat = load('Sig1000_IMU.nc') + dat = load("Sig1000_IMU.nc") dcm = quaternion2orient(dat.quaternions) - assert_allclose(dat.orientmat, dcm, atol=5e-4, - err_msg="Disagreement b/t quaternion-calc'd & HPR-calc'd orientmat") + assert_allclose( + dat.orientmat, + dcm, + atol=5e-4, + err_msg="Disagreement b/t quaternion-calc'd & HPR-calc'd orientmat", + ) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/dolfyn/test_read_adp.py b/mhkit/tests/dolfyn/test_read_adp.py index cfd7f306b..a64fca546 100644 --- a/mhkit/tests/dolfyn/test_read_adp.py +++ b/mhkit/tests/dolfyn/test_read_adp.py @@ -12,58 +12,63 @@ load = tb.load_netcdf save = tb.save_netcdf -dat_rdi = load('RDI_test01.nc') -dat_rdi_7f79 = load('RDI_7f79.nc') -dat_rdi_bt = load('RDI_withBT.nc') -dat_vm_ws = load('vmdas01_wh.nc') -dat_vm_os = load('vmdas02_os.nc') -dat_wr1 = load('winriver01.nc') -dat_wr2 = load('winriver02.nc') -dat_rp = load('RiverPro_test01.nc') -dat_trsc = load('winriver02_transect.nc') - -dat_awac = load('AWAC_test01.nc') -dat_awac_ud = load('AWAC_test01_ud.nc') -dat_hwac = load('H-AWAC_test01.nc') -dat_sig = load('BenchFile01.nc') -dat_sig_i = load('Sig1000_IMU.nc') -dat_sig_i_ud = load('Sig1000_IMU_ud.nc') -dat_sig_ieb = load('VelEchoBT01.nc') -dat_sig_ie = load('Sig500_Echo.nc') -dat_sig_tide = load('Sig1000_tidal.nc') -dat_sig_skip = load('Sig_SkippedPings01.nc') -dat_sig_badt = load('Sig1000_BadTime01.nc') -dat_sig5_leiw = load('Sig500_last_ensemble_is_whole.nc') +dat_rdi = load("RDI_test01.nc") +dat_rdi_7f79 = load("RDI_7f79.nc") +dat_rdi_7f79_2 = load("RDI_7f79_2.nc") +dat_rdi_bt = load("RDI_withBT.nc") +dat_vm_ws = load("vmdas01_wh.nc") +dat_vm_os = load("vmdas02_os.nc") +dat_wr1 = load("winriver01.nc") +dat_wr2 = load("winriver02.nc") +dat_rp = load("RiverPro_test01.nc") +dat_trsc = load("winriver02_transect.nc") + +dat_awac = load("AWAC_test01.nc") +dat_awac_ud = load("AWAC_test01_ud.nc") +dat_hwac = load("H-AWAC_test01.nc") +dat_sig = load("BenchFile01.nc") +dat_sig_i = load("Sig1000_IMU.nc") +dat_sig_i_ud = load("Sig1000_IMU_ud.nc") +dat_sig_ieb = load("VelEchoBT01.nc") +dat_sig_ie = load("Sig500_Echo.nc") +dat_sig_tide = load("Sig1000_tidal.nc") +dat_sig_skip = load("Sig_SkippedPings01.nc") +dat_sig_badt = load("Sig1000_BadTime01.nc") +dat_sig5_leiw = load("Sig500_last_ensemble_is_whole.nc") +dat_sig_dp2 = load("dual_profile.nc") class io_adp_testcase(unittest.TestCase): def test_io_rdi(self): - warnings.simplefilter('ignore', UserWarning) + warnings.simplefilter("ignore", UserWarning) nens = 100 - td_rdi = read('RDI_test01.000') - td_7f79 = read('RDI_7f79.000') - td_rdi_bt = read('RDI_withBT.000', nens=nens) - td_vm = read('vmdas01_wh.ENX', nens=nens) - td_os = read('vmdas02_os.ENR', nens=nens) - td_wr1 = read('winriver01.PD0') - td_wr2 = read('winriver02.PD0') - td_rp = read('RiverPro_test01.PD0', nens=nens) - td_transect = read('winriver02_transect.PD0', nens=nens) + td_rdi = read("RDI_test01.000") + td_7f79 = read("RDI_7f79.000") + td_7f79_2 = read("RDI_7f79_2.000") + td_rdi_bt = read("RDI_withBT.000", nens=nens) + td_vm = read("vmdas01_wh.ENX", nens=nens) + td_os = read("vmdas02_os.ENR", nens=nens) + td_wr1 = read("winriver01.PD0") + td_wr2 = read("winriver02.PD0") + td_rp = read("RiverPro_test01.PD0") + td_transect = read("winriver02_transect.PD0", nens=nens) if make_data: - save(td_rdi, 'RDI_test01.nc') - save(td_7f79, 'RDI_7f79.nc') - save(td_rdi_bt, 'RDI_withBT.nc') - save(td_vm, 'vmdas01_wh.nc') - save(td_os, 'vmdas02_os.nc') - save(td_wr1, 'winriver01.nc') - save(td_wr2, 'winriver02.nc') - save(td_rp, 'RiverPro_test01.nc') - save(td_transect, 'winriver02_transect.nc') + save(td_rdi, "RDI_test01.nc") + save(td_7f79, "RDI_7f79.nc") + save(td_7f79_2, "RDI_7f79_2.nc") + save(td_rdi_bt, "RDI_withBT.nc") + save(td_vm, "vmdas01_wh.nc") + save(td_os, "vmdas02_os.nc") + save(td_wr1, "winriver01.nc") + save(td_wr2, "winriver02.nc") + save(td_rp, "RiverPro_test01.nc") + save(td_transect, "winriver02_transect.nc") return assert_allclose(td_rdi, dat_rdi, atol=1e-6) assert_allclose(td_7f79, dat_rdi_7f79, atol=1e-6) + assert_allclose(td_7f79_2, dat_rdi_7f79_2, atol=1e-6) assert_allclose(td_rdi_bt, dat_rdi_bt, atol=1e-6) assert_allclose(td_vm, dat_vm_ws, atol=1e-6) assert_allclose(td_os, dat_vm_os, atol=1e-6) @@ -75,14 +80,14 @@ def test_io_rdi(self): def test_io_nortek(self): nens = 100 with pytest.warns(UserWarning): - td_awac = read('AWAC_test01.wpr', userdata=False, nens=[0, nens]) - td_awac_ud = read('AWAC_test01.wpr', nens=nens) - td_hwac = read('H-AWAC_test01.wpr') + td_awac = read("AWAC_test01.wpr", userdata=False, nens=[0, nens]) + td_awac_ud = read("AWAC_test01.wpr", nens=nens) + td_hwac = read("H-AWAC_test01.wpr") if make_data: - save(td_awac, 'AWAC_test01.nc') - save(td_awac_ud, 'AWAC_test01_ud.nc') - save(td_hwac, 'H-AWAC_test01.nc') + save(td_awac, "AWAC_test01.nc") + save(td_awac_ud, "AWAC_test01_ud.nc") + save(td_hwac, "H-AWAC_test01.nc") return assert_allclose(td_awac, dat_awac, atol=1e-6) @@ -91,44 +96,49 @@ def test_io_nortek(self): def test_io_nortek2(self): nens = 100 - td_sig = read('BenchFile01.ad2cp', nens=nens) - td_sig_i = read('Sig1000_IMU.ad2cp', userdata=False, nens=nens) - td_sig_i_ud = read('Sig1000_IMU.ad2cp', nens=nens) - td_sig_ieb = read('VelEchoBT01.ad2cp', nens=nens) - td_sig_ie = read('Sig500_Echo.ad2cp', nens=nens) - td_sig_tide = read('Sig1000_tidal.ad2cp', nens=nens) + td_sig = read("BenchFile01.ad2cp", nens=nens, rebuild_index=True) + td_sig_i = read( + "Sig1000_IMU.ad2cp", userdata=False, nens=nens, rebuild_index=True + ) + td_sig_i_ud = read("Sig1000_IMU.ad2cp", nens=nens, rebuild_index=True) + td_sig_ieb = read("VelEchoBT01.ad2cp", nens=nens, rebuild_index=True) + td_sig_ie = read("Sig500_Echo.ad2cp", nens=nens, rebuild_index=True) + td_sig_tide = read("Sig1000_tidal.ad2cp", nens=nens, rebuild_index=True) + # Only need to test 2nd dataset + td_sig_dp1, td_sig_dp2 = read("dual_profile.ad2cp") with pytest.warns(UserWarning): # This issues a warning... - td_sig_skip = read('Sig_SkippedPings01.ad2cp') + td_sig_skip = read("Sig_SkippedPings01.ad2cp") with pytest.warns(UserWarning): - td_sig_badt = sig.read_signature( - tb.rfnm('Sig1000_BadTime01.ad2cp')) + td_sig_badt = sig.read_signature(tb.rfnm("Sig1000_BadTime01.ad2cp")) # Make sure we read all the way to the end of the file. # This file ends exactly at the end of an ensemble. - td_sig5_leiw = read('Sig500_last_ensemble_is_whole.ad2cp') - - os.remove(tb.exdt('BenchFile01.ad2cp.index')) - os.remove(tb.exdt('Sig1000_IMU.ad2cp.index')) - os.remove(tb.exdt('VelEchoBT01.ad2cp.index')) - os.remove(tb.exdt('Sig500_Echo.ad2cp.index')) - os.remove(tb.exdt('Sig1000_tidal.ad2cp.index')) - os.remove(tb.exdt('Sig_SkippedPings01.ad2cp.index')) - os.remove(tb.exdt('Sig500_last_ensemble_is_whole.ad2cp.index')) - os.remove(tb.rfnm('Sig1000_BadTime01.ad2cp.index')) + td_sig5_leiw = read("Sig500_last_ensemble_is_whole.ad2cp") + + os.remove(tb.exdt("BenchFile01.ad2cp.index")) + os.remove(tb.exdt("Sig1000_IMU.ad2cp.index")) + os.remove(tb.exdt("VelEchoBT01.ad2cp.index")) + os.remove(tb.exdt("Sig500_Echo.ad2cp.index")) + os.remove(tb.exdt("Sig1000_tidal.ad2cp.index")) + os.remove(tb.exdt("Sig_SkippedPings01.ad2cp.index")) + os.remove(tb.exdt("Sig500_last_ensemble_is_whole.ad2cp.index")) + os.remove(tb.rfnm("Sig1000_BadTime01.ad2cp.index")) + os.remove(tb.exdt("dual_profile.ad2cp.index")) if make_data: - save(td_sig, 'BenchFile01.nc') - save(td_sig_i, 'Sig1000_IMU.nc') - save(td_sig_i_ud, 'Sig1000_IMU_ud.nc') - save(td_sig_ieb, 'VelEchoBT01.nc') - save(td_sig_ie, 'Sig500_Echo.nc') - save(td_sig_tide, 'Sig1000_tidal.nc') - save(td_sig_skip, 'Sig_SkippedPings01.nc') - save(td_sig_badt, 'Sig1000_BadTime01.nc') - save(td_sig5_leiw, 'Sig500_last_ensemble_is_whole.nc') + save(td_sig, "BenchFile01.nc") + save(td_sig_i, "Sig1000_IMU.nc") + save(td_sig_i_ud, "Sig1000_IMU_ud.nc") + save(td_sig_ieb, "VelEchoBT01.nc") + save(td_sig_ie, "Sig500_Echo.nc") + save(td_sig_tide, "Sig1000_tidal.nc") + save(td_sig_skip, "Sig_SkippedPings01.nc") + save(td_sig_badt, "Sig1000_BadTime01.nc") + save(td_sig5_leiw, "Sig500_last_ensemble_is_whole.nc") + save(td_sig_dp2, "dual_profile.nc") return assert_allclose(td_sig, dat_sig, atol=1e-6) @@ -140,25 +150,42 @@ def test_io_nortek2(self): assert_allclose(td_sig5_leiw, dat_sig5_leiw, atol=1e-6) assert_allclose(td_sig_skip, dat_sig_skip, atol=1e-6) assert_allclose(td_sig_badt, dat_sig_badt, atol=1e-6) + assert_allclose(td_sig_dp2, dat_sig_dp2, atol=1e-6) def test_nortek2_crop(self): # Test file cropping function - crop_ensembles(infile=tb.exdt('Sig500_Echo.ad2cp'), - outfile=tb.exdt('Sig500_Echo_crop.ad2cp'), - range=[50, 100]) - td_sig_ie_crop = read('Sig500_Echo_crop.ad2cp') + crop_ensembles( + infile=tb.exdt("Sig500_Echo.ad2cp"), + outfile=tb.exdt("Sig500_Echo_crop.ad2cp"), + range=[50, 100], + ) + td_sig_ie_crop = read("Sig500_Echo_crop.ad2cp") + + crop_ensembles( + infile=tb.exdt("BenchFile01.ad2cp"), + outfile=tb.exdt("BenchFile01_crop.ad2cp"), + range=[50, 100], + ) + td_sig_crop = read("BenchFile01_crop.ad2cp") if make_data: - save(td_sig_ie_crop, 'Sig500_Echo_crop.nc') + save(td_sig_ie_crop, "Sig500_Echo_crop.nc") + save(td_sig_crop, "BenchFile01_crop.nc") return - os.remove(tb.exdt('Sig500_Echo.ad2cp.index')) - os.remove(tb.exdt('Sig500_Echo_crop.ad2cp')) - os.remove(tb.exdt('Sig500_Echo_crop.ad2cp.index')) + os.remove(tb.exdt("Sig500_Echo.ad2cp.index")) + os.remove(tb.exdt("Sig500_Echo_crop.ad2cp")) + os.remove(tb.exdt("Sig500_Echo_crop.ad2cp.index")) + os.remove(tb.exdt("BenchFile01.ad2cp.index")) + os.remove(tb.exdt("BenchFile01_crop.ad2cp")) + os.remove(tb.exdt("BenchFile01_crop.ad2cp.index")) + + cd_sig_ie_crop = load("Sig500_Echo_crop.nc") + cd_sig_crop = load("BenchFile01_crop.nc") - cd_sig_ie_crop = load('Sig500_Echo_crop.nc') assert_allclose(td_sig_ie_crop, cd_sig_ie_crop, atol=1e-6) + assert_allclose(td_sig_crop, cd_sig_crop, atol=1e-6) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/dolfyn/test_read_adv.py b/mhkit/tests/dolfyn/test_read_adv.py index f1d03c7af..9143099a6 100644 --- a/mhkit/tests/dolfyn/test_read_adv.py +++ b/mhkit/tests/dolfyn/test_read_adv.py @@ -9,32 +9,34 @@ save = tb.save_netcdf assert_allclose = tb.assert_allclose -dat = load('vector_data01') -dat_imu = load('vector_data_imu01') -dat_imu_json = load('vector_data_imu01-json') -dat_burst = load('vector_burst_mode01') +dat = load("vector_data01") +dat_imu = load("vector_data_imu01") +dat_imu_json = load("vector_data_imu01-json") +dat_burst = load("vector_burst_mode01") class io_adv_testcase(unittest.TestCase): def test_io_adv(self): nens = 100 - td = read('vector_data01.VEC', nens=nens) - tdm = read('vector_data_imu01.VEC', userdata=False, nens=nens) - tdb = read('vector_burst_mode01.VEC', nens=nens) - tdm2 = read('vector_data_imu01.VEC', - userdata=tb.exdt('vector_data_imu01.userdata.json'), - nens=nens) + td = read("vector_data01.VEC", nens=nens) + tdm = read("vector_data_imu01.VEC", userdata=False, nens=nens) + tdb = read("vector_burst_mode01.VEC", nens=nens) + tdm2 = read( + "vector_data_imu01.VEC", + userdata=tb.exdt("vector_data_imu01.userdata.json"), + nens=nens, + ) # These values are not correct for this data but I'm adding them for # test purposes only. set_inst2head_rotmat(tdm, np.eye(3), inplace=True) - tdm.attrs['inst2head_vec'] = [-1.0, 0.5, 0.2] + tdm.attrs["inst2head_vec"] = [-1.0, 0.5, 0.2] if make_data: - save(td, 'vector_data01.nc') - save(tdm, 'vector_data_imu01.nc') - save(tdb, 'vector_burst_mode01.nc') - save(tdm2, 'vector_data_imu01-json.nc') + save(td, "vector_data01.nc") + save(tdm, "vector_data_imu01.nc") + save(tdb, "vector_burst_mode01.nc") + save(tdm2, "vector_data_imu01-json.nc") return assert_allclose(td, dat, atol=1e-6) @@ -43,5 +45,5 @@ def test_io_adv(self): assert_allclose(tdm2, dat_imu_json, atol=1e-6) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/dolfyn/test_read_io.py b/mhkit/tests/dolfyn/test_read_io.py index 16f1b2c6a..835acc6bd 100644 --- a/mhkit/tests/dolfyn/test_read_io.py +++ b/mhkit/tests/dolfyn/test_read_io.py @@ -1,6 +1,13 @@ from . import test_read_adp as tp from . import test_read_adv as tv -from mhkit.tests.dolfyn.base import assert_allclose, save_netcdf, save_matlab, load_matlab, exdt, rfnm +from mhkit.tests.dolfyn.base import ( + assert_allclose, + save_netcdf, + save_matlab, + load_matlab, + exdt, + rfnm, +) import mhkit.dolfyn.io.rdi as wh import mhkit.dolfyn.io.nortek as awac import mhkit.dolfyn.io.nortek2 as sig @@ -15,34 +22,40 @@ class io_testcase(unittest.TestCase): def test_save(self): ds = tv.dat.copy(deep=True) + ds2 = tp.dat_sig.copy(deep=True) + save_netcdf(ds, "test_save") + save_netcdf(ds2, "test_save_comp.nc", compression=True) + save_matlab(ds, "test_save") - save_netcdf(ds, 'test_save') - save_matlab(ds, 'test_save') + assert os.path.exists(rfnm("test_save.nc")) + assert os.path.exists(rfnm("test_save_comp.nc")) + assert os.path.exists(rfnm("test_save.mat")) - assert os.path.exists(rfnm('test_save.nc')) - assert os.path.exists(rfnm('test_save.mat')) + os.remove(rfnm("test_save.nc")) + os.remove(rfnm("test_save_comp.nc")) + os.remove(rfnm("test_save.mat")) def test_matlab_io(self): nens = 100 - td_vec = read('vector_data_imu01.VEC', nens=nens) - td_rdi_bt = read('RDI_withBT.000', nens=nens) + td_vec = read("vector_data_imu01.VEC", nens=nens) + td_rdi_bt = read("RDI_withBT.000", nens=nens) # This read should trigger a warning about the declination being # defined in two places (in the binary .ENX files), and in the # .userdata.json file. NOTE: DOLfYN defaults to using what is in # the .userdata.json file. - with pytest.warns(UserWarning, match='magnetic_var_deg'): - td_vm = read('vmdas01_wh.ENX', nens=nens) + with pytest.warns(UserWarning, match="magnetic_var_deg"): + td_vm = read("vmdas01_wh.ENX", nens=nens) if make_data: - save_matlab(td_vec, 'dat_vec') - save_matlab(td_rdi_bt, 'dat_rdi_bt') - save_matlab(td_vm, 'dat_vm') + save_matlab(td_vec, "dat_vec") + save_matlab(td_rdi_bt, "dat_rdi_bt") + save_matlab(td_vm, "dat_vm") return - mat_vec = load_matlab('dat_vec.mat') - mat_rdi_bt = load_matlab('dat_rdi_bt.mat') - mat_vm = load_matlab('dat_vm.mat') + mat_vec = load_matlab("dat_vec.mat") + mat_rdi_bt = load_matlab("dat_rdi_bt.mat") + mat_vm = load_matlab("dat_vm.mat") assert_allclose(td_vec, mat_vec, atol=1e-6) assert_allclose(td_rdi_bt, mat_rdi_bt, atol=1e-6) @@ -50,18 +63,18 @@ def test_matlab_io(self): def test_debugging(self): def read_txt(fname, loc): - with open(loc(fname), 'r') as f: + with open(loc(fname), "r") as f: string = f.read() return string def clip_file(fname): log = read_txt(fname, exdt) - newlines = [i for i, ltr in enumerate(log) if ltr == '\n'] + newlines = [i for i, ltr in enumerate(log) if ltr == "\n"] try: - log = log[:newlines[100]+1] + log = log[: newlines[100] + 1] except: pass - with open(rfnm(fname), 'w') as f: + with open(rfnm(fname), "w") as f: f.write(log) def read_file_and_test(fname): @@ -71,32 +84,36 @@ def read_file_and_test(fname): os.remove(exdt(fname)) nens = 100 - wh.read_rdi(exdt('RDI_withBT.000'), nens, debug_level=3) - awac.read_nortek(exdt('AWAC_test01.wpr'), nens, debug=True, do_checksum=True) - awac.read_nortek(exdt('vector_data_imu01.VEC'), nens, debug=True, do_checksum=True) - sig.read_signature(exdt('Sig500_Echo.ad2cp'), nens, rebuild_index=True, debug=True) - os.remove(exdt('Sig500_Echo.ad2cp.index')) + wh.read_rdi(exdt("RDI_withBT.000"), nens, debug_level=3) + awac.read_nortek(exdt("AWAC_test01.wpr"), nens, debug=True, do_checksum=True) + awac.read_nortek( + exdt("vector_data_imu01.VEC"), nens, debug=True, do_checksum=True + ) + sig.read_signature( + exdt("Sig500_Echo.ad2cp"), nens, rebuild_index=True, debug=True + ) + os.remove(exdt("Sig500_Echo.ad2cp.index")) if make_data: - clip_file('RDI_withBT.dolfyn.log') - clip_file('AWAC_test01.dolfyn.log') - clip_file('vector_data_imu01.dolfyn.log') - clip_file('Sig500_Echo.dolfyn.log') + clip_file("RDI_withBT.dolfyn.log") + clip_file("AWAC_test01.dolfyn.log") + clip_file("vector_data_imu01.dolfyn.log") + clip_file("Sig500_Echo.dolfyn.log") return - read_file_and_test('RDI_withBT.dolfyn.log') - read_file_and_test('AWAC_test01.dolfyn.log') - read_file_and_test('vector_data_imu01.dolfyn.log') - read_file_and_test('Sig500_Echo.dolfyn.log') + read_file_and_test("RDI_withBT.dolfyn.log") + read_file_and_test("AWAC_test01.dolfyn.log") + read_file_and_test("vector_data_imu01.dolfyn.log") + read_file_and_test("Sig500_Echo.dolfyn.log") def test_read_warnings(self): with self.assertRaises(Exception): - wh.read_rdi(exdt('H-AWAC_test01.wpr')) + wh.read_rdi(exdt("H-AWAC_test01.wpr")) with self.assertRaises(Exception): - awac.read_nortek(exdt('BenchFile01.ad2cp')) + awac.read_nortek(exdt("BenchFile01.ad2cp")) with self.assertRaises(Exception): - sig.read_signature(exdt('AWAC_test01.wpr')) + sig.read_signature(exdt("AWAC_test01.wpr")) with self.assertRaises(IOError): - read(rfnm('AWAC_test01.nc')) + read(rfnm("AWAC_test01.nc")) with self.assertRaises(Exception): - save_netcdf(tp.dat_rdi, 'test_save.fail') + save_netcdf(tp.dat_rdi, "test_save.fail") diff --git a/mhkit/tests/dolfyn/test_rotate_adp.py b/mhkit/tests/dolfyn/test_rotate_adp.py index 4ec21353d..5fa67f05e 100644 --- a/mhkit/tests/dolfyn/test_rotate_adp.py +++ b/mhkit/tests/dolfyn/test_rotate_adp.py @@ -4,28 +4,28 @@ import numpy as np import numpy.testing as npt import unittest + make_data = False class rotate_adp_testcase(unittest.TestCase): def test_rotate_beam2inst(self): - - td_rdi = rotate2(tr.dat_rdi, 'inst', inplace=False) - td_sig = rotate2(tr.dat_sig, 'inst', inplace=False) - td_sig_i = rotate2(tr.dat_sig_i, 'inst', inplace=False) - td_sig_ieb = rotate2(tr.dat_sig_ieb, 'inst', inplace=False) + td_rdi = rotate2(tr.dat_rdi, "inst", inplace=False) + td_sig = rotate2(tr.dat_sig, "inst", inplace=False) + td_sig_i = rotate2(tr.dat_sig_i, "inst", inplace=False) + td_sig_ieb = rotate2(tr.dat_sig_ieb, "inst", inplace=False) if make_data: - save(td_rdi, 'RDI_test01_rotate_beam2inst.nc') - save(td_sig, 'BenchFile01_rotate_beam2inst.nc') - save(td_sig_i, 'Sig1000_IMU_rotate_beam2inst.nc') - save(td_sig_ieb, 'VelEchoBT01_rotate_beam2inst.nc') + save(td_rdi, "RDI_test01_rotate_beam2inst.nc") + save(td_sig, "BenchFile01_rotate_beam2inst.nc") + save(td_sig_i, "Sig1000_IMU_rotate_beam2inst.nc") + save(td_sig_ieb, "VelEchoBT01_rotate_beam2inst.nc") return - cd_rdi = load('RDI_test01_rotate_beam2inst.nc') - cd_sig = load('BenchFile01_rotate_beam2inst.nc') - cd_sig_i = load('Sig1000_IMU_rotate_beam2inst.nc') - cd_sig_ieb = load('VelEchoBT01_rotate_beam2inst.nc') + cd_rdi = load("RDI_test01_rotate_beam2inst.nc") + cd_sig = load("BenchFile01_rotate_beam2inst.nc") + cd_sig_i = load("Sig1000_IMU_rotate_beam2inst.nc") + cd_sig_ieb = load("VelEchoBT01_rotate_beam2inst.nc") assert_allclose(td_rdi, cd_rdi, atol=1e-5) assert_allclose(td_sig, cd_sig, atol=1e-5) @@ -33,32 +33,31 @@ def test_rotate_beam2inst(self): assert_allclose(td_sig_ieb, cd_sig_ieb, atol=1e-5) def test_rotate_inst2beam(self): - - td = load('RDI_test01_rotate_beam2inst.nc') - rotate2(td, 'beam', inplace=True) - td_awac = load('AWAC_test01_earth2inst.nc') - rotate2(td_awac, 'beam', inplace=True) - td_sig = load('BenchFile01_rotate_beam2inst.nc') - rotate2(td_sig, 'beam', inplace=True) - td_sig_i = load('Sig1000_IMU_rotate_beam2inst.nc') - rotate2(td_sig_i, 'beam', inplace=True) - td_sig_ie = load('Sig500_Echo_earth2inst.nc') - rotate2(td_sig_ie, 'beam', inplace=True) + td = load("RDI_test01_rotate_beam2inst.nc") + rotate2(td, "beam", inplace=True) + td_awac = load("AWAC_test01_earth2inst.nc") + rotate2(td_awac, "beam", inplace=True) + td_sig = load("BenchFile01_rotate_beam2inst.nc") + rotate2(td_sig, "beam", inplace=True) + td_sig_i = load("Sig1000_IMU_rotate_beam2inst.nc") + rotate2(td_sig_i, "beam", inplace=True) + td_sig_ie = load("Sig500_Echo_earth2inst.nc") + rotate2(td_sig_ie, "beam", inplace=True) if make_data: - save(td_awac, 'AWAC_test01_inst2beam.nc') - save(td_sig_ie, 'Sig500_Echo_inst2beam.nc') + save(td_awac, "AWAC_test01_inst2beam.nc") + save(td_sig_ie, "Sig500_Echo_inst2beam.nc") return cd_td = tr.dat_rdi.copy(deep=True) - cd_awac = load('AWAC_test01_inst2beam.nc') + cd_awac = load("AWAC_test01_inst2beam.nc") cd_sig = tr.dat_sig.copy(deep=True) cd_sig_i = tr.dat_sig_i.copy(deep=True) - cd_sig_ie = load('Sig500_Echo_inst2beam.nc') + cd_sig_ie = load("Sig500_Echo_inst2beam.nc") # # The reverse RDI rotation doesn't work b/c of NaN's in one beam # # that propagate to others, so we impose that here. - cd_td['vel'].values[:, np.isnan(cd_td['vel'].values).any(0)] = np.NaN + cd_td["vel"].values[:, np.isnan(cd_td["vel"].values).any(0)] = np.NaN assert_allclose(td, cd_td, atol=1e-5) assert_allclose(td_awac, cd_awac, atol=1e-5) @@ -69,38 +68,35 @@ def test_rotate_inst2beam(self): def test_rotate_inst2earth(self): # AWAC & Sig500 are loaded in earth td_awac = tr.dat_awac.copy(deep=True) - rotate2(td_awac, 'inst', inplace=True) + rotate2(td_awac, "inst", inplace=True) td_sig_ie = tr.dat_sig_ie.copy(deep=True) - rotate2(td_sig_ie, 'inst', inplace=True) + rotate2(td_sig_ie, "inst", inplace=True) td_sig_o = td_sig_ie.copy(deep=True) - td = rotate2(tr.dat_rdi, 'earth', inplace=False) - tdwr2 = rotate2(tr.dat_wr2, 'earth', inplace=False) - td_sig = load('BenchFile01_rotate_beam2inst.nc') - rotate2(td_sig, 'earth', inplace=True) - td_sig_i = load('Sig1000_IMU_rotate_beam2inst.nc') - rotate2(td_sig_i, 'earth', inplace=True) + td = rotate2(tr.dat_rdi, "earth", inplace=False) + tdwr2 = rotate2(tr.dat_wr2, "earth", inplace=False) + td_sig = load("BenchFile01_rotate_beam2inst.nc") + rotate2(td_sig, "earth", inplace=True) + td_sig_i = load("Sig1000_IMU_rotate_beam2inst.nc") + rotate2(td_sig_i, "earth", inplace=True) if make_data: - save(td_awac, 'AWAC_test01_earth2inst.nc') - save(td, 'RDI_test01_rotate_inst2earth.nc') - save(tdwr2, 'winriver02_rotate_ship2earth.nc') - save(td_sig, 'BenchFile01_rotate_inst2earth.nc') - save(td_sig_i, 'Sig1000_IMU_rotate_inst2earth.nc') - save(td_sig_ie, 'Sig500_Echo_earth2inst.nc') + save(td_awac, "AWAC_test01_earth2inst.nc") + save(td, "RDI_test01_rotate_inst2earth.nc") + save(tdwr2, "winriver02_rotate_ship2earth.nc") + save(td_sig, "BenchFile01_rotate_inst2earth.nc") + save(td_sig_i, "Sig1000_IMU_rotate_inst2earth.nc") + save(td_sig_ie, "Sig500_Echo_earth2inst.nc") return - td_awac = rotate2(load('AWAC_test01_earth2inst.nc'), - 'earth', inplace=False) - td_sig_ie = rotate2(load('Sig500_Echo_earth2inst.nc'), - 'earth', inplace=False) - td_sig_o = rotate2(td_sig_o.drop_vars( - 'orientmat'), 'earth', inplace=False) + td_awac = rotate2(load("AWAC_test01_earth2inst.nc"), "earth", inplace=False) + td_sig_ie = rotate2(load("Sig500_Echo_earth2inst.nc"), "earth", inplace=False) + td_sig_o = rotate2(td_sig_o.drop_vars("orientmat"), "earth", inplace=False) - cd = load('RDI_test01_rotate_inst2earth.nc') - cdwr2 = load('winriver02_rotate_ship2earth.nc') - cd_sig = load('BenchFile01_rotate_inst2earth.nc') - cd_sig_i = load('Sig1000_IMU_rotate_inst2earth.nc') + cd = load("RDI_test01_rotate_inst2earth.nc") + cdwr2 = load("winriver02_rotate_ship2earth.nc") + cd_sig = load("BenchFile01_rotate_inst2earth.nc") + cd_sig_i = load("Sig1000_IMU_rotate_inst2earth.nc") assert_allclose(td, cd, atol=1e-5) assert_allclose(tdwr2, cdwr2, atol=1e-5) @@ -111,66 +107,66 @@ def test_rotate_inst2earth(self): npt.assert_allclose(td_sig_o.vel, tr.dat_sig_ie.vel, atol=1e-5) def test_rotate_earth2inst(self): - - td_rdi = load('RDI_test01_rotate_inst2earth.nc') - rotate2(td_rdi, 'inst', inplace=True) - tdwr2 = load('winriver02_rotate_ship2earth.nc') - rotate2(tdwr2, 'inst', inplace=True) + td_rdi = load("RDI_test01_rotate_inst2earth.nc") + rotate2(td_rdi, "inst", inplace=True) + tdwr2 = load("winriver02_rotate_ship2earth.nc") + rotate2(tdwr2, "inst", inplace=True) td_awac = tr.dat_awac.copy(deep=True) - rotate2(td_awac, 'inst', inplace=True) # AWAC is in earth coords - td_sig = load('BenchFile01_rotate_inst2earth.nc') - rotate2(td_sig, 'inst', inplace=True) - td_sig_i = load('Sig1000_IMU_rotate_inst2earth.nc') - rotate2(td_sig_i, 'inst', inplace=True) + rotate2(td_awac, "inst", inplace=True) # AWAC is in earth coords + td_sig = load("BenchFile01_rotate_inst2earth.nc") + rotate2(td_sig, "inst", inplace=True) + td_sig_i = load("Sig1000_IMU_rotate_inst2earth.nc") + rotate2(td_sig_i, "inst", inplace=True) - cd_rdi = load('RDI_test01_rotate_beam2inst.nc') + cd_rdi = load("RDI_test01_rotate_beam2inst.nc") cd_wr2 = tr.dat_wr2 # ship and inst are considered equivalent in dolfy - cd_wr2.attrs['coord_sys'] = 'inst' - cd_awac = load('AWAC_test01_earth2inst.nc') - cd_sig = load('BenchFile01_rotate_beam2inst.nc') - cd_sig_i = load('Sig1000_IMU_rotate_beam2inst.nc') + cd_wr2.attrs["coord_sys"] = "inst" + cd_awac = load("AWAC_test01_earth2inst.nc") + cd_sig = load("BenchFile01_rotate_beam2inst.nc") + cd_sig_i = load("Sig1000_IMU_rotate_beam2inst.nc") assert_allclose(td_rdi, cd_rdi, atol=1e-5) assert_allclose(tdwr2, cd_wr2, atol=1e-5) assert_allclose(td_awac, cd_awac, atol=1e-5) assert_allclose(td_sig, cd_sig, atol=1e-5) # known failure due to orientmat, see test_vs_nortek - #assert_allclose(td_sig_i, cd_sig_i, atol=1e-3) - npt.assert_allclose(td_sig_i.accel.values, - cd_sig_i.accel.values, atol=1e-3) + # assert_allclose(td_sig_i, cd_sig_i, atol=1e-3) + npt.assert_allclose(td_sig_i.accel.values, cd_sig_i.accel.values, atol=1e-3) def test_rotate_earth2principal(self): - - td_rdi = load('RDI_test01_rotate_inst2earth.nc') - td_sig = load('BenchFile01_rotate_inst2earth.nc') + td_rdi = load("RDI_test01_rotate_inst2earth.nc") + td_sig = load("BenchFile01_rotate_inst2earth.nc") td_awac = tr.dat_awac.copy(deep=True) - td_rdi.attrs['principal_heading'] = calc_principal_heading( - td_rdi.vel.mean('range')) - td_sig.attrs['principal_heading'] = calc_principal_heading( - td_sig.vel.mean('range')) - td_awac.attrs['principal_heading'] = calc_principal_heading(td_awac.vel.mean('range'), - tidal_mode=False) - rotate2(td_rdi, 'principal', inplace=True) - rotate2(td_sig, 'principal', inplace=True) - rotate2(td_awac, 'principal', inplace=True) + td_rdi.attrs["principal_heading"] = calc_principal_heading( + td_rdi.vel.mean("range") + ) + td_sig.attrs["principal_heading"] = calc_principal_heading( + td_sig.vel.mean("range") + ) + td_awac.attrs["principal_heading"] = calc_principal_heading( + td_awac.vel.mean("range"), tidal_mode=False + ) + rotate2(td_rdi, "principal", inplace=True) + rotate2(td_sig, "principal", inplace=True) + rotate2(td_awac, "principal", inplace=True) if make_data: - save(td_rdi, 'RDI_test01_rotate_earth2principal.nc') - save(td_sig, 'BenchFile01_rotate_earth2principal.nc') - save(td_awac, 'AWAC_test01_earth2principal.nc') + save(td_rdi, "RDI_test01_rotate_earth2principal.nc") + save(td_sig, "BenchFile01_rotate_earth2principal.nc") + save(td_awac, "AWAC_test01_earth2principal.nc") return - cd_rdi = load('RDI_test01_rotate_earth2principal.nc') - cd_sig = load('BenchFile01_rotate_earth2principal.nc') - cd_awac = load('AWAC_test01_earth2principal.nc') + cd_rdi = load("RDI_test01_rotate_earth2principal.nc") + cd_sig = load("BenchFile01_rotate_earth2principal.nc") + cd_awac = load("AWAC_test01_earth2principal.nc") assert_allclose(td_rdi, cd_rdi, atol=1e-5) assert_allclose(td_awac, cd_awac, atol=1e-5) assert_allclose(td_sig, cd_sig, atol=1e-5) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/dolfyn/test_rotate_adv.py b/mhkit/tests/dolfyn/test_rotate_adv.py index 26ab76d3c..b967c838d 100644 --- a/mhkit/tests/dolfyn/test_rotate_adv.py +++ b/mhkit/tests/dolfyn/test_rotate_adv.py @@ -1,11 +1,16 @@ from . import test_read_adv as tr from .base import load_netcdf as load, save_netcdf as save, assert_allclose -from mhkit.dolfyn.rotate.api import rotate2, calc_principal_heading, \ - set_declination, set_inst2head_rotmat +from mhkit.dolfyn.rotate.api import ( + rotate2, + calc_principal_heading, + set_declination, + set_inst2head_rotmat, +) from mhkit.dolfyn.rotate.base import euler2orient, orient2euler import numpy as np import numpy.testing as npt import unittest + make_data = False @@ -14,14 +19,14 @@ def test_heading(self): td = tr.dat_imu.copy(deep=True) head, pitch, roll = orient2euler(td) - td['pitch'].values = pitch - td['roll'].values = roll - td['heading'].values = head + td["pitch"].values = pitch + td["roll"].values = roll + td["heading"].values = head if make_data: - save(td, 'vector_data_imu01_head_pitch_roll.nc') + save(td, "vector_data_imu01_head_pitch_roll.nc") return - cd = load('vector_data_imu01_head_pitch_roll.nc') + cd = load("vector_data_imu01_head_pitch_roll.nc") assert_allclose(td, cd, atol=1e-6) @@ -30,9 +35,7 @@ def test_inst2head_rotmat(self): td = tr.dat.copy(deep=True) # Swap x,y, reverse z - set_inst2head_rotmat(td, [[0, 1, 0], - [1, 0, 0], - [0, 0, -1]], inplace=True) + set_inst2head_rotmat(td, [[0, 1, 0], [1, 0, 0], [0, 0, -1]], inplace=True) # Coords don't get altered here npt.assert_allclose(td.vel[0].values, tr.dat.vel[1].values, atol=1e-6) @@ -41,7 +44,7 @@ def test_inst2head_rotmat(self): # Validation for non-symmetric rotations td = tr.dat.copy(deep=True) - R = euler2orient(20, 30, 60, units='degrees') # arbitrary angles + R = euler2orient(20, 30, 60, units="degrees") # arbitrary angles td = set_inst2head_rotmat(td, R, inplace=False) vel1 = td.vel # validate that a head->inst rotation occurs (transpose of inst2head_rotmat) @@ -51,64 +54,64 @@ def test_inst2head_rotmat(self): def test_rotate_inst2earth(self): td = tr.dat.copy(deep=True) - rotate2(td, 'earth', inplace=True) + rotate2(td, "earth", inplace=True) tdm = tr.dat_imu.copy(deep=True) - rotate2(tdm, 'earth', inplace=True) + rotate2(tdm, "earth", inplace=True) tdo = tr.dat.copy(deep=True) - omat = tdo['orientmat'] - tdo = rotate2(tdo.drop_vars('orientmat'), 'earth', inplace=False) - tdo['orientmat'] = omat + omat = tdo["orientmat"] + tdo = rotate2(tdo.drop_vars("orientmat"), "earth", inplace=False) + tdo["orientmat"] = omat if make_data: - save(td, 'vector_data01_rotate_inst2earth.nc') - save(tdm, 'vector_data_imu01_rotate_inst2earth.nc') + save(td, "vector_data01_rotate_inst2earth.nc") + save(tdm, "vector_data_imu01_rotate_inst2earth.nc") return - cd = load('vector_data01_rotate_inst2earth.nc') - cdm = load('vector_data_imu01_rotate_inst2earth.nc') + cd = load("vector_data01_rotate_inst2earth.nc") + cdm = load("vector_data_imu01_rotate_inst2earth.nc") assert_allclose(td, cd, atol=1e-6) assert_allclose(tdm, cdm, atol=1e-6) assert_allclose(tdo, cd, atol=1e-6) def test_rotate_earth2inst(self): - td = load('vector_data01_rotate_inst2earth.nc') - rotate2(td, 'inst', inplace=True) - tdm = load('vector_data_imu01_rotate_inst2earth.nc') - rotate2(tdm, 'inst', inplace=True) + td = load("vector_data01_rotate_inst2earth.nc") + rotate2(td, "inst", inplace=True) + tdm = load("vector_data_imu01_rotate_inst2earth.nc") + rotate2(tdm, "inst", inplace=True) cd = tr.dat.copy(deep=True) cdm = tr.dat_imu.copy(deep=True) # The heading/pitch/roll data gets modified during rotation, so it # doesn't go back to what it was. - cdm = cdm.drop_vars(['heading', 'pitch', 'roll']) - tdm = tdm.drop_vars(['heading', 'pitch', 'roll']) + cdm = cdm.drop_vars(["heading", "pitch", "roll"]) + tdm = tdm.drop_vars(["heading", "pitch", "roll"]) assert_allclose(td, cd, atol=1e-6) assert_allclose(tdm, cdm, atol=1e-6) def test_rotate_inst2beam(self): td = tr.dat.copy(deep=True) - rotate2(td, 'beam', inplace=True) + rotate2(td, "beam", inplace=True) tdm = tr.dat_imu.copy(deep=True) - rotate2(tdm, 'beam', inplace=True) + rotate2(tdm, "beam", inplace=True) if make_data: - save(td, 'vector_data01_rotate_inst2beam.nc') - save(tdm, 'vector_data_imu01_rotate_inst2beam.nc') + save(td, "vector_data01_rotate_inst2beam.nc") + save(tdm, "vector_data_imu01_rotate_inst2beam.nc") return - cd = load('vector_data01_rotate_inst2beam.nc') - cdm = load('vector_data_imu01_rotate_inst2beam.nc') + cd = load("vector_data01_rotate_inst2beam.nc") + cdm = load("vector_data_imu01_rotate_inst2beam.nc") assert_allclose(td, cd, atol=1e-6) assert_allclose(tdm, cdm, atol=1e-6) def test_rotate_beam2inst(self): - td = load('vector_data01_rotate_inst2beam.nc') - rotate2(td, 'inst', inplace=True) - tdm = load('vector_data_imu01_rotate_inst2beam.nc') - rotate2(tdm, 'inst', inplace=True) + td = load("vector_data01_rotate_inst2beam.nc") + rotate2(td, "inst", inplace=True) + tdm = load("vector_data_imu01_rotate_inst2beam.nc") + rotate2(tdm, "inst", inplace=True) cd = tr.dat.copy(deep=True) cdm = tr.dat_imu.copy(deep=True) @@ -117,60 +120,59 @@ def test_rotate_beam2inst(self): assert_allclose(tdm, cdm, atol=1e-5) def test_rotate_earth2principal(self): - td = load('vector_data01_rotate_inst2earth.nc') - td.attrs['principal_heading'] = calc_principal_heading(td['vel']) - rotate2(td, 'principal', inplace=True) - tdm = load('vector_data_imu01_rotate_inst2earth.nc') - tdm.attrs['principal_heading'] = calc_principal_heading(tdm['vel']) - rotate2(tdm, 'principal', inplace=True) + td = load("vector_data01_rotate_inst2earth.nc") + td.attrs["principal_heading"] = calc_principal_heading(td["vel"]) + rotate2(td, "principal", inplace=True) + tdm = load("vector_data_imu01_rotate_inst2earth.nc") + tdm.attrs["principal_heading"] = calc_principal_heading(tdm["vel"]) + rotate2(tdm, "principal", inplace=True) if make_data: - save(td, 'vector_data01_rotate_earth2principal.nc') - save(tdm, 'vector_data_imu01_rotate_earth2principal.nc') + save(td, "vector_data01_rotate_earth2principal.nc") + save(tdm, "vector_data_imu01_rotate_earth2principal.nc") return - cd = load('vector_data01_rotate_earth2principal.nc') - cdm = load('vector_data_imu01_rotate_earth2principal.nc') + cd = load("vector_data01_rotate_earth2principal.nc") + cdm = load("vector_data_imu01_rotate_earth2principal.nc") assert_allclose(td, cd, atol=1e-6) assert_allclose(tdm, cdm, atol=1e-6) def test_rotate_earth2principal_set_declination(self): declin = 3.875 - td = load('vector_data01_rotate_inst2earth.nc') + td = load("vector_data01_rotate_inst2earth.nc") td0 = td.copy(deep=True) - td.attrs['principal_heading'] = calc_principal_heading(td['vel']) - rotate2(td, 'principal', inplace=True) + td.attrs["principal_heading"] = calc_principal_heading(td["vel"]) + rotate2(td, "principal", inplace=True) set_declination(td, declin, inplace=True) - rotate2(td, 'earth', inplace=True) + rotate2(td, "earth", inplace=True) set_declination(td0, -1, inplace=True) set_declination(td0, declin, inplace=True) - td0.attrs['principal_heading'] = calc_principal_heading(td0['vel']) - rotate2(td0, 'earth', inplace=True) + td0.attrs["principal_heading"] = calc_principal_heading(td0["vel"]) + rotate2(td0, "earth", inplace=True) assert_allclose(td0, td, atol=1e-6) def test_rotate_warnings(self): warn1 = tr.dat.copy(deep=True) warn2 = tr.dat.copy(deep=True) - warn2.attrs['coord_sys'] = 'flow' + warn2.attrs["coord_sys"] = "flow" warn3 = tr.dat.copy(deep=True) - warn3.attrs['inst_model'] = 'ADV' + warn3.attrs["inst_model"] = "ADV" warn4 = tr.dat.copy(deep=True) - warn4.attrs['inst_model'] = 'adv' + warn4.attrs["inst_model"] = "adv" with self.assertRaises(Exception): - rotate2(warn1, 'ship') + rotate2(warn1, "ship") with self.assertRaises(Exception): - rotate2(warn2, 'earth') + rotate2(warn2, "earth") with self.assertRaises(Exception): set_inst2head_rotmat(warn3, np.eye(3)) - set_inst2head_rotmat(warn3, np.eye(3)) with self.assertRaises(Exception): set_inst2head_rotmat(warn4, np.eye(3)) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/dolfyn/test_shortcuts.py b/mhkit/tests/dolfyn/test_shortcuts.py index 513660d1d..948736603 100644 --- a/mhkit/tests/dolfyn/test_shortcuts.py +++ b/mhkit/tests/dolfyn/test_shortcuts.py @@ -14,27 +14,26 @@ class analysis_testcase(unittest.TestCase): @classmethod def setUpClass(self): dat = tv.dat.copy(deep=True) - self.dat = rotate2(dat, 'earth', inplace=False) - self.tdat = avm.turbulence_statistics( - self.dat, n_bin=20.0, fs=self.dat.fs) + self.dat = rotate2(dat, "earth", inplace=False) + self.tdat = avm.turbulence_statistics(self.dat, n_bin=20.0, fs=self.dat.fs) short = xr.Dataset() - short['u'] = self.tdat.velds.u - short['v'] = self.tdat.velds.v - short['w'] = self.tdat.velds.w - short['U'] = self.tdat.velds.U - short['U_mag'] = self.tdat.velds.U_mag - short['U_dir'] = self.tdat.velds.U_dir + short["u"] = self.tdat.velds.u + short["v"] = self.tdat.velds.v + short["w"] = self.tdat.velds.w + short["U"] = self.tdat.velds.U + short["U_mag"] = self.tdat.velds.U_mag + short["U_dir"] = self.tdat.velds.U_dir short["upup_"] = self.tdat.velds.upup_ short["vpvp_"] = self.tdat.velds.vpvp_ short["wpwp_"] = self.tdat.velds.wpwp_ short["upvp_"] = self.tdat.velds.upvp_ short["upwp_"] = self.tdat.velds.upwp_ short["vpwp_"] = self.tdat.velds.vpwp_ - short['tke'] = self.tdat.velds.tke - short['I'] = self.tdat.velds.I - short['E_coh'] = self.tdat.velds.E_coh - short['I_tke'] = self.tdat.velds.I_tke + short["tke"] = self.tdat.velds.tke + short["I"] = self.tdat.velds.I + short["E_coh"] = self.tdat.velds.E_coh + short["I_tke"] = self.tdat.velds.I_tke self.short = short @classmethod @@ -44,15 +43,15 @@ def tearDownClass(self): def test_shortcuts(self): ds = self.short.copy(deep=True) if make_data: - save(ds, 'vector_data01_u.nc') + save(ds, "vector_data01_u.nc") return - assert_allclose(ds, load('vector_data01_u.nc'), atol=1e-6) + assert_allclose(ds, load("vector_data01_u.nc"), atol=1e-6) def test_save_complex_data(self): # netcdf4 cannot natively handle complex values # This test is a sanity check that ensures this code's # workaround functions ds_save = self.short.copy(deep=True) - save(ds_save, 'test_save.nc') - assert os.path.exists(rfnm('test_save.nc')) + save(ds_save, "test_save.nc") + assert os.path.exists(rfnm("test_save.nc")) diff --git a/mhkit/tests/dolfyn/test_time.py b/mhkit/tests/dolfyn/test_time.py index c7fecfdf2..9c1ae7597 100644 --- a/mhkit/tests/dolfyn/test_time.py +++ b/mhkit/tests/dolfyn/test_time.py @@ -20,11 +20,12 @@ def test_time_conversion(self): assert_equal(dt[0], datetime(2012, 6, 12, 12, 0, 2, 687283)) assert_equal(dt1, [datetime(2012, 6, 12, 12, 0, 2, 687283)]) assert_equal(dt_off[0], datetime(2012, 6, 12, 5, 0, 2, 687283)) - assert_equal(t_str[0], '2012-06-12 12:00:02.687283') + assert_equal(t_str[0], "2012-06-12 12:00:02.687283") # Validated based on data in ad2cp.index file - assert_equal(time.dt642date(dat_sig.time[0])[0], - datetime(2017, 7, 24, 17, 0, 0, 63500)) + assert_equal( + time.dt642date(dat_sig.time[0])[0], datetime(2017, 7, 24, 17, 0, 0, 63500) + ) # This should always be true assert_equal(time.epoch2date([0])[0], datetime(1970, 1, 1, 0, 0)) @@ -48,5 +49,5 @@ def test_datenum(self): assert_equal(dn[0], 735032.5000311028) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/dolfyn/test_tools.py b/mhkit/tests/dolfyn/test_tools.py index 611512f48..6aaa10a9c 100644 --- a/mhkit/tests/dolfyn/test_tools.py +++ b/mhkit/tests/dolfyn/test_tools.py @@ -1,4 +1,4 @@ -import mhkit.dolfyn.tools.misc as tools +import mhkit.dolfyn.tools as tools from numpy.testing import assert_equal, assert_allclose import numpy as np import unittest @@ -8,55 +8,111 @@ class tools_testcase(unittest.TestCase): @classmethod def setUpClass(self): self.array = np.arange(10, dtype=float) - self.nan = np.zeros(3)*np.NaN + self.nan = np.zeros(3) * np.NaN @classmethod def tearDownClass(self): pass def test_detrend_array(self): - d = tools.detrend_array(self.array) + d = tools.misc.detrend_array(self.array) assert_allclose(d, np.zeros(10), atol=1e-10) def test_group(self): array = np.concatenate((self.array, self.array)) - d = tools.group(array) + d = tools.misc.group(array) out = np.array([slice(1, 20, None)], dtype=object) assert_equal(d, out) def test_slice(self): - tensor = np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]], - [[10, 11, 12], [13, 14, 15], [16, 17, 18]], - [[19, 20, 21], [22, 23, 24], [25, 26, 27]]]) + tensor = np.array( + [ + [[1, 2, 3], [4, 5, 6], [7, 8, 9]], + [[10, 11, 12], [13, 14, 15], [16, 17, 18]], + [[19, 20, 21], [22, 23, 24], [25, 26, 27]], + ] + ) out = np.zeros((3, 3, 3)) slices = list() - for slc in tools.slice1d_along_axis((3, 3, 3), axis=-1): + for slc in tools.misc.slice1d_along_axis((3, 3, 3), axis=-1): slices.append(slc) out[slc] = tensor[slc] - slc_out = [(0, 0, slice(None, None, None)), - (0, 1, slice(None, None, None)), - (0, 2, slice(None, None, None)), - (1, 0, slice(None, None, None)), - (1, 1, slice(None, None, None)), - (1, 2, slice(None, None, None)), - (2, 0, slice(None, None, None)), - (2, 1, slice(None, None, None)), - (2, 2, slice(None, None, None))] + slc_out = [ + (0, 0, slice(None, None, None)), + (0, 1, slice(None, None, None)), + (0, 2, slice(None, None, None)), + (1, 0, slice(None, None, None)), + (1, 1, slice(None, None, None)), + (1, 2, slice(None, None, None)), + (2, 0, slice(None, None, None)), + (2, 1, slice(None, None, None)), + (2, 2, slice(None, None, None)), + ] assert_equal(slc_out, slices) assert_allclose(tensor, out, atol=1e-10) def test_fillgaps(self): arr = np.concatenate((self.array, self.nan, self.array)) - d1 = tools.fillgaps(arr.copy()) - d2 = tools.fillgaps(arr.copy(), maxgap=1) + d1 = tools.misc.fillgaps(arr.copy()) + d2 = tools.misc.fillgaps(arr.copy(), maxgap=1) - out1 = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 6.75, 4.5, 2.25, - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) - out2 = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, np.nan, np.nan, np.nan, - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) + out1 = np.array( + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 6.75, + 4.5, + 2.25, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + ] + ) + out2 = np.array( + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + np.nan, + np.nan, + np.nan, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + ] + ) assert_allclose(d1, out1, atol=1e-10) assert_allclose(d2, out2, atol=1e-10) @@ -65,13 +121,69 @@ def test_interpgaps(self): arr = np.concatenate((self.array, self.nan, self.array, self.nan)) t = np.arange(0, arr.shape[0], 0.1) - d1 = tools.interpgaps(arr.copy(), t, extrapFlg=True) - d2 = tools.interpgaps(arr.copy(), t, maxgap=1) + d1 = tools.misc.interpgaps(arr.copy(), t, extrapFlg=True) + d2 = tools.misc.interpgaps(arr.copy(), t, maxgap=1) - out1 = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 6.75, 4.5, 2.25, - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 9, 9]) - out2 = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, np.nan, np.nan, np.nan, - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, np.nan, np.nan, np.nan]) + out1 = np.array( + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 6.75, + 4.5, + 2.25, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 9, + 9, + 9, + ] + ) + out2 = np.array( + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + np.nan, + np.nan, + np.nan, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + np.nan, + np.nan, + np.nan, + ] + ) assert_allclose(d1, out1, atol=1e-10) assert_allclose(d2, out2, atol=1e-10) @@ -80,22 +192,140 @@ def test_medfiltnan(self): arr = np.concatenate((self.array, self.nan, self.array)) a = np.concatenate((arr[None, :], arr[None, :]), axis=0) - d = tools.medfiltnan(a, [1, 5], thresh=3) + d = tools.misc.medfiltnan(a, [1, 5], thresh=3) - out = np.array([[0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 8, 9, np.nan, np.nan, np.nan, 2, 3, 4, 5, - 6, 7, 7, 7], - [0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 8, 9, np.nan, np.nan, np.nan, 2, 3, 4, 5, - 6, 7, 7, 7]]) + out = np.array( + [ + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 7, + 7, + 8, + 9, + np.nan, + np.nan, + np.nan, + 2, + 3, + 4, + 5, + 6, + 7, + 7, + 7, + ], + [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 7, + 7, + 8, + 9, + np.nan, + np.nan, + np.nan, + 2, + 3, + 4, + 5, + 6, + 7, + 7, + 7, + ], + ] + ) assert_allclose(d, out, atol=1e-10) def test_deg_conv(self): - d = tools.convert_degrees(self.array) + d = tools.misc.convert_degrees(self.array) - out = np.array([90., 89., 88., 87., 86., 85., 84., 83., 82., 81.]) + out = np.array([90.0, 89.0, 88.0, 87.0, 86.0, 85.0, 84.0, 83.0, 82.0, 81.0]) assert_allclose(d, out, atol=1e-10) + def test_fft_frequency(self): + fs = 1000 # Sampling frequency + nfft = 512 # Number of samples in a window -if __name__ == '__main__': + # Test for full frequency range + freq_full = tools.fft.fft_frequency(nfft, fs, full=True) + assert_equal(len(freq_full), nfft) + + # Check symmetry of positive and negative frequencies, ignoring the zero frequency + positive_freqs = freq_full[1 : int(nfft / 2)] + negative_freqs = freq_full[int(nfft / 2) + 1 :] + assert_allclose(positive_freqs, -negative_freqs[::-1]) + + def test_stepsize(self): + # Case 1: l < nfft + step, nens, nfft = tools.fft._stepsize(100, 200) + assert_equal((step, nens, nfft), (0, 1, 100)) + + # Case 2: l == nfft + step, nens, nfft = tools.fft._stepsize(200, 200) + assert_equal((step, nens, nfft), (0, 1, 200)) + + # Case 3: l > nfft, no nens + step, nens, nfft = tools.fft._stepsize(300, 100) + expected_nens = int(2.0 * 300 / 100) + expected_step = int((300 - 100) / (expected_nens - 1)) + assert_equal((step, nens, nfft), (expected_step, expected_nens, 100)) + + # Case 4: l > nfft, with nens + step, nens, nfft = tools.fft._stepsize(300, 100, nens=5) + expected_step = int((300 - 100) / (5 - 1)) + assert_equal((step, nens, nfft), (expected_step, 5, 100)) + + # Case 5: l > nfft, with step + step, nens, nfft = tools.fft._stepsize(300, 100, step=50) + expected_nens = int((300 - 100) / 50 + 1) + assert_equal((step, nens, nfft), (50, expected_nens, 100)) + + # Case 6: nens is 1 + step, nens, nfft = tools.fft._stepsize(300, 100, nens=1) + assert_equal((step, nens, nfft), (0, 1, 100)) + + def test_cpsd_quasisync_1D(self): + fs = 1000 # Sample rate + nfft = 512 # Number of points in the fft + + # Test with signals of same length + a = np.random.normal(0, 1, 1000) + b = np.random.normal(0, 1, 1000) + cpsd = tools.fft.cpsd_quasisync_1D(a, b, nfft, fs) + self.assertEqual(cpsd.shape, (nfft // 2,)) + + # Test with signals of different lengths + a = np.random.normal(0, 1, 1500) + b = np.random.normal(0, 1, 1000) + cpsd = tools.fft.cpsd_quasisync_1D(a, b, nfft, fs) + self.assertEqual(cpsd.shape, (nfft // 2,)) + + # Test with different window types + for window in [None, 1, "hann"]: + cpsd = tools.fft.cpsd_quasisync_1D(a, b, nfft, fs, window=window) + self.assertEqual(cpsd.shape, (nfft // 2,)) + + # Test with a custom window + custom_window = np.hamming(nfft) + cpsd = tools.fft.cpsd_quasisync_1D(a, b, nfft, fs, window=custom_window) + self.assertEqual(cpsd.shape, (nfft // 2,)) + + +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/dolfyn/test_vs_nortek.py b/mhkit/tests/dolfyn/test_vs_nortek.py index ac54e99e1..f1abdd406 100644 --- a/mhkit/tests/dolfyn/test_vs_nortek.py +++ b/mhkit/tests/dolfyn/test_vs_nortek.py @@ -14,42 +14,40 @@ def load_nortek_matfile(filename): - data = sio.loadmat(filename, - struct_as_record=False, - squeeze_me=True) - d = data['Data'] + data = sio.loadmat(filename, struct_as_record=False, squeeze_me=True) + d = data["Data"] # print(d._fieldnames) - burst = 'Burst' - bt = 'BottomTrack' + burst = "Burst" + bt = "BottomTrack" - beam = ['_VelBeam1', '_VelBeam2', '_VelBeam3', '_VelBeam4'] - b5 = 'IBurst_VelBeam5' - inst = ['_VelX', '_VelY', '_VelZ1', '_VelZ2'] - earth = ['_VelEast', '_VelNorth', '_VelUp1', '_VelUp2'] - axis = {'beam': beam, 'inst': inst, 'earth': earth} - AHRS = 'Burst_AHRSRotationMatrix' # , 'IBurst_AHRSRotationMatrix'] + beam = ["_VelBeam1", "_VelBeam2", "_VelBeam3", "_VelBeam4"] + b5 = "IBurst_VelBeam5" + inst = ["_VelX", "_VelY", "_VelZ1", "_VelZ2"] + earth = ["_VelEast", "_VelNorth", "_VelUp1", "_VelUp2"] + axis = {"beam": beam, "inst": inst, "earth": earth} + AHRS = "Burst_AHRSRotationMatrix" # , 'IBurst_AHRSRotationMatrix'] - vel = {'beam': {}, 'inst': {}, 'earth': {}} + vel = {"beam": {}, "inst": {}, "earth": {}} for ky in vel.keys(): for i in range(len(axis[ky])): - vel[ky][i] = np.transpose(getattr(d, burst+axis[ky][i])) - vel[ky] = np.stack((vel[ky][0], vel[ky][1], - vel[ky][2], vel[ky][3]), axis=0) + vel[ky][i] = np.transpose(getattr(d, burst + axis[ky][i])) + vel[ky] = np.stack((vel[ky][0], vel[ky][1], vel[ky][2], vel[ky][3]), axis=0) if AHRS in d._fieldnames: - vel['omat'] = np.transpose(getattr(d, AHRS)) + vel["omat"] = np.transpose(getattr(d, AHRS)) if b5 in d._fieldnames: - vel['b5'] = np.transpose(getattr(d, b5)) - #vel['omat5'] = getattr(d, AHRS[1]) + vel["b5"] = np.transpose(getattr(d, b5)) + # vel['omat5'] = getattr(d, AHRS[1]) - if bt+beam[0] in d._fieldnames: - vel_bt = {'beam': {}, 'inst': {}, 'earth': {}} + if bt + beam[0] in d._fieldnames: + vel_bt = {"beam": {}, "inst": {}, "earth": {}} for ky in vel_bt.keys(): for i in range(len(axis[ky])): - vel_bt[ky][i] = np.transpose(getattr(d, bt+axis[ky][i])) - vel_bt[ky] = np.stack((vel_bt[ky][0], vel_bt[ky][1], - vel_bt[ky][2], vel_bt[ky][3]), axis=0) + vel_bt[ky][i] = np.transpose(getattr(d, bt + axis[ky][i])) + vel_bt[ky] = np.stack( + (vel_bt[ky][0], vel_bt[ky][1], vel_bt[ky][2], vel_bt[ky][3]), axis=0 + ) return vel, vel_bt else: @@ -62,60 +60,61 @@ def rotate(axis): # Sig1000_IMU.ad2cp no userdata td_sig_i = rotate2(tr.dat_sig_i, axis, inplace=False) # VelEchoBT01.ad2cp - td_sig_ieb = rotate2(tr.dat_sig_ieb, axis, - inplace=False) + td_sig_ieb = rotate2(tr.dat_sig_ieb, axis, inplace=False) # Sig500_Echo.ad2cp - td_sig_ie = rotate2(tr.dat_sig_ie, axis, - inplace=False) + td_sig_ie = rotate2(tr.dat_sig_ie, axis, inplace=False) - td_sig_vel = load_nortek_matfile(base.rfnm('BenchFile01.mat')) - td_sig_i_vel = load_nortek_matfile(base.rfnm('Sig1000_IMU.mat')) - td_sig_ieb_vel, vel_bt = load_nortek_matfile(base.rfnm('VelEchoBT01.mat')) - td_sig_ie_vel = load_nortek_matfile(base.rfnm('Sig500_Echo.mat')) + td_sig_vel = load_nortek_matfile(base.rfnm("BenchFile01.mat")) + td_sig_i_vel = load_nortek_matfile(base.rfnm("Sig1000_IMU.mat")) + td_sig_ieb_vel, vel_bt = load_nortek_matfile(base.rfnm("VelEchoBT01.mat")) + td_sig_ie_vel = load_nortek_matfile(base.rfnm("Sig500_Echo.mat")) nens = 100 # ARHS inst2earth orientation matrix check # Checks the 1,1 element because the nortek orientmat's shape is [9,:] as # opposed to [3,3,:] - if axis == 'inst': - assert_allclose(td_sig_i.orientmat[0][0].values, - td_sig_i_vel['omat'][0, :nens], atol=1e-7) - assert_allclose(td_sig_ieb.orientmat[0][0].values, - td_sig_ieb_vel['omat'][0, :][..., :nens], atol=1e-7) + if axis == "inst": + assert_allclose( + td_sig_i.orientmat[0][0].values, td_sig_i_vel["omat"][0, :nens], atol=1e-7 + ) + assert_allclose( + td_sig_ieb.orientmat[0][0].values, + td_sig_ieb_vel["omat"][0, :][..., :nens], + atol=1e-7, + ) # 4-beam velocity assert_allclose(td_sig.vel.values, td_sig_vel[axis][..., :nens], atol=1e-5) - assert_allclose(td_sig_i.vel.values, - td_sig_i_vel[axis][..., :nens], atol=5e-3) - assert_allclose(td_sig_ieb.vel.values, - td_sig_ieb_vel[axis][..., :nens], atol=5e-3) - assert_allclose(td_sig_ie.vel.values, - td_sig_ie_vel[axis][..., :nens], atol=1e-5) + assert_allclose(td_sig_i.vel.values, td_sig_i_vel[axis][..., :nens], atol=5e-3) + assert_allclose(td_sig_ieb.vel.values, td_sig_ieb_vel[axis][..., :nens], atol=5e-3) + assert_allclose(td_sig_ie.vel.values, td_sig_ie_vel[axis][..., :nens], atol=1e-5) # 5th-beam velocity - if axis == 'beam': - assert_allclose(td_sig_i.vel_b5.values, - td_sig_i_vel['b5'][..., :nens], atol=1e-5) - assert_allclose(td_sig_ieb.vel_b5.values, - td_sig_ieb_vel['b5'][..., :nens], atol=1e-5) - assert_allclose(td_sig_ie.vel_b5.values, - td_sig_ie_vel['b5'][..., :nens], atol=1e-5) + if axis == "beam": + assert_allclose( + td_sig_i.vel_b5.values, td_sig_i_vel["b5"][..., :nens], atol=1e-5 + ) + assert_allclose( + td_sig_ieb.vel_b5.values, td_sig_ieb_vel["b5"][..., :nens], atol=1e-5 + ) + assert_allclose( + td_sig_ie.vel_b5.values, td_sig_ie_vel["b5"][..., :nens], atol=1e-5 + ) # bottom-track - assert_allclose(td_sig_ieb.vel_bt.values, - vel_bt[axis][..., :nens], atol=5e-3) + assert_allclose(td_sig_ieb.vel_bt.values, vel_bt[axis][..., :nens], atol=5e-3) class nortek_testcase(unittest.TestCase): def test_rotate2_beam(self): - rotate('beam') + rotate("beam") def test_rotate2_inst(self): - rotate('inst') + rotate("inst") def test_rotate2_earth(self): - rotate('earth') + rotate("earth") -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/loads/test_extreme.py b/mhkit/tests/loads/test_extreme.py new file mode 100644 index 000000000..e0ede2e93 --- /dev/null +++ b/mhkit/tests/loads/test_extreme.py @@ -0,0 +1,50 @@ +import numpy as np +import unittest +import mhkit.loads as loads +from numpy.testing import assert_allclose + + +class TestExtreme(unittest.TestCase): + @classmethod + def setUpClass(self): + self.t, self.signal = self._example_waveform(self) + + def _example_waveform(self): + # Create simple wave form to analyse. + # This has been created to perform + # a simple independent calcuation that + # the mhkit functions can be tested against. + + A = np.array([0.5, 0.6, 0.3]) + T = np.array([3, 2, 1]) + w = 2 * np.pi / T + + t = np.linspace(0, 4.5, 100) + + signal = np.zeros(t.size) + for i in range(A.size): + signal += A[i] * np.sin(w[i] * t) + + return t, signal + + def _example_crest_analysis(self, t, signal): + # NB: This only works due to the construction + # of our test signal. It is not suitable as + # a general approach. + grad = np.diff(signal) + + # +1 to get the index at turning point + turning_points = np.flatnonzero(grad[1:] * grad[:-1] < 0) + 1 + + crest_inds = turning_points[signal[turning_points] > 0] + crests = signal[crest_inds] + + return crests, crest_inds + + def test_global_peaks(self): + peaks_t, peaks_val = loads.extreme.global_peaks(self.t, self.signal) + + test_crests, test_crests_ind = self._example_crest_analysis(self.t, self.signal) + + assert_allclose(peaks_t, self.t[test_crests_ind]) + assert_allclose(peaks_val, test_crests) diff --git a/mhkit/tests/loads/test_loads.py b/mhkit/tests/loads/test_loads.py index f17e89cc4..8c119a38e 100644 --- a/mhkit/tests/loads/test_loads.py +++ b/mhkit/tests/loads/test_loads.py @@ -2,7 +2,6 @@ from numpy.testing import assert_array_almost_equal, assert_allclose from pandas._testing.asserters import assert_series_equal from pandas.testing import assert_frame_equal -from mhkit import utils from mhkit.wave import resource import mhkit.loads as loads import pandas as pd @@ -13,123 +12,351 @@ import os testdir = dirname(abspath(__file__)) -datadir = normpath(join(testdir,relpath('../../../examples/data/loads'))) +datadir = normpath(join(testdir, relpath("../../../examples/data/loads"))) -class TestLoads(unittest.TestCase): +class TestLoads(unittest.TestCase): @classmethod def setUpClass(self): - loads_data_file = join(datadir, "loads_data_dict.json") - with open(loads_data_file, 'r') as fp: + with open(loads_data_file, "r") as fp: data_dict = json.load(fp) # convert dictionaries into dataframes - data = { - key: pd.DataFrame(data_dict[key]) - for key in data_dict - } + data = {key: pd.DataFrame(data_dict[key]) for key in data_dict} self.data = data self.fatigue_tower = 3804 self.fatigue_blade = 1388 # import blade cal data - blade_data = pd.read_csv(join(datadir,'blade_cal.csv'),header=None) - blade_data.columns = ['flap_raw','edge_raw','flap_scaled','edge_scaled'] + blade_data = pd.read_csv(join(datadir, "blade_cal.csv"), header=None) + blade_data.columns = ["flap_raw", "edge_raw", "flap_scaled", "edge_scaled"] self.blade_data = blade_data - self.flap_offset = 9.19906E-05 + self.flap_offset = 9.19906e-05 self.edge_offset = -0.000310854 - self.blade_matrix = [1034671.4,-126487.28,82507.959,1154090.7] + self.blade_matrix = [1034671.4, -126487.28, 82507.959, 1154090.7] def test_bin_statistics(self): # create array containg wind speeds to use as bin edges - bin_edges = np.arange(3,26,1) + bin_edges = np.arange(3, 26, 1) # Apply function to calculate means - load_means =self.data['means'] - bin_against = load_means['uWind_80m'] - [b_means, b_means_std] = loads.general.bin_statistics(load_means, bin_against, bin_edges) + load_means = self.data["means"] + bin_against = load_means["uWind_80m"] + [b_means, b_means_std] = loads.general.bin_statistics( + load_means, bin_against, bin_edges + ) + + # Ensure the data type of the index matches + b_means.index = b_means.index.astype(self.data["bin_means"].index.dtype) + b_means_std.index = b_means_std.index.astype( + self.data["bin_means_std"].index.dtype + ) + + b_means.index.name = None # compatibility with old test data + b_means_std.index.name = None # compatibility with old test data + + assert_frame_equal(self.data["bin_means"], b_means) + assert_frame_equal(self.data["bin_means_std"], b_means_std) - assert_frame_equal(self.data['bin_means'],b_means) - assert_frame_equal(self.data['bin_means_std'],b_means_std) + def test_bin_statistics_xarray(self): + # create array containing wind speeds to use as bin edges + bin_edges = np.arange(3, 26, 1) + + # Apply function to calculate means + load_means = self.data["means"] + load_means = load_means.to_xarray() + bin_against = load_means["uWind_80m"] + [b_means, b_means_std] = loads.general.bin_statistics( + load_means, bin_against, bin_edges + ) + + # Ensure the data type of the index matches + b_means.index = b_means.index.astype(self.data["bin_means"].index.dtype) + b_means_std.index = b_means_std.index.astype( + self.data["bin_means_std"].index.dtype + ) + + b_means.index.name = None # compatibility with old test data + b_means_std.index.name = None # compatibility with old test data + + assert_frame_equal(self.data["bin_means"], b_means) + assert_frame_equal(self.data["bin_means_std"], b_means_std) + + def test_bin_statistics_data_type_error(self): + bin_against = np.array([10, 20, 30]) + bin_edges = np.array([0, 15, 25, 35]) + data_signal = ["signal_1"] + to_pandas = True + with self.assertRaises(TypeError): + loads.general.bin_statistics( + "invalid_data_type", bin_against, bin_edges, data_signal, to_pandas + ) + + def test_bin_statistics_bin_against_type_error(self): + data = pd.DataFrame({"signal_1": [1, 2, 3]}) + bin_edges = np.array([0, 15, 25, 35]) + data_signal = ["signal_1"] + to_pandas = True + invalid_bin_against = "invalid_bin_against_type" + with self.assertRaises(TypeError): + loads.general.bin_statistics( + data, invalid_bin_against, bin_edges, data_signal, to_pandas + ) + + def test_bin_statistics_bin_edges_type_error(self): + data = pd.DataFrame({"signal_1": [1, 2, 3]}) + bin_against = np.array([10, 20, 30]) + data_signal = ["signal_1"] + to_pandas = True + with self.assertRaises(TypeError): + loads.general.bin_statistics( + data, bin_against, "invalid_bin_edges_type", data_signal, to_pandas + ) + + def test_bin_statistics_data_signal_type_error(self): + data = pd.DataFrame({"signal_1": [1, 2, 3]}) + bin_against = np.array([10, 20, 30]) + bin_edges = np.array([0, 15, 25, 35]) + data_signal = "invalid_data_signal_type" + to_pandas = True + with self.assertRaises(TypeError): + loads.general.bin_statistics( + data, bin_against, bin_edges, data_signal, to_pandas + ) + + def test_bin_statistics_to_pandas_type_error(self): + data = pd.DataFrame({"signal_1": [1, 2, 3]}) + bin_against = np.array([10, 20, 30]) + bin_edges = np.array([0, 15, 25, 35]) + data_signal = ["signal_1"] + to_pandas = "invalid_to_pandas_type" + with self.assertRaises(TypeError): + loads.general.bin_statistics( + data, bin_against, bin_edges, data_signal, to_pandas + ) def test_blade_moments(self): - flap_raw = self.blade_data['flap_raw'] + flap_raw = self.blade_data["flap_raw"] flap_offset = self.flap_offset - edge_raw = self.blade_data['edge_raw'] + edge_raw = self.blade_data["edge_raw"] edge_offset = self.edge_offset - M_flap, M_edge = loads.general.blade_moments(self.blade_matrix,flap_offset,flap_raw,edge_offset,edge_raw) - - for i,j in zip(M_flap,self.blade_data['flap_scaled']): - self.assertAlmostEqual(i,j,places=1) - for i,j in zip(M_edge,self.blade_data['edge_scaled']): - self.assertAlmostEqual(i,j,places=1) + M_flap, M_edge = loads.general.blade_moments( + self.blade_matrix, flap_offset, flap_raw, edge_offset, edge_raw + ) + for i, j in zip(M_flap, self.blade_data["flap_scaled"]): + self.assertAlmostEqual(i, j, places=1) + for i, j in zip(M_edge, self.blade_data["edge_scaled"]): + self.assertAlmostEqual(i, j, places=1) - def test_damage_equivalent_loads(self): - loads_data = self.data['loads'] - tower_load = loads_data['TB_ForeAft'] - blade_load = loads_data['BL1_FlapMom'] - DEL_tower = loads.general.damage_equivalent_load(tower_load, 4,bin_num=100,data_length=600) - DEL_blade = loads.general.damage_equivalent_load(blade_load,10,bin_num=100,data_length=600) + def test_blade_moments_wrong_types(self): + # Test with incorrect types + blade_coefficients = [1.0, 2.0, 3.0, 4.0] # Should be np.ndarray + flap_offset = "invalid" # Should be float + flap_raw = "invalid" # Should be np.ndarray + edge_offset = "invalid" # Should be float + edge_raw = "invalid" # Should be np.ndarray - self.assertAlmostEqual(DEL_tower,self.fatigue_tower,delta=self.fatigue_tower*0.04) - self.assertAlmostEqual(DEL_blade,self.fatigue_blade,delta=self.fatigue_blade*0.04) + with self.assertRaises(TypeError): + loads.general.blade_moments( + blade_coefficients, flap_offset, flap_raw, edge_offset, edge_raw + ) + def test_damage_equivalent_loads(self): + loads_data = self.data["loads"] + tower_load = loads_data["TB_ForeAft"] + blade_load = loads_data["BL1_FlapMom"] + DEL_tower = loads.general.damage_equivalent_load( + tower_load, 4, bin_num=100, data_length=600 + ) + DEL_blade = loads.general.damage_equivalent_load( + blade_load, 10, bin_num=100, data_length=600 + ) + + self.assertAlmostEqual( + DEL_tower, self.fatigue_tower, delta=self.fatigue_tower * 0.04 + ) + self.assertAlmostEqual( + DEL_blade, self.fatigue_blade, delta=self.fatigue_blade * 0.04 + ) + + def test_damage_equivalent_load_wrong_types(self): + # Test with incorrect types + data_signal = "invalid" # Should be np.ndarray + m = "invalid" # Should be float or int + bin_num = "invalid" # Should be int + data_length = "invalid" # Should be float or int + + with self.assertRaises(TypeError): + loads.general.damage_equivalent_load(data_signal, m, bin_num, data_length) def test_plot_statistics(self): # Define path - savepath = abspath(join(testdir, 'test_scatplotter.png')) + savepath = abspath(join(testdir, "test_scatplotter.png")) # Generate plot - loads.graphics.plot_statistics( self.data['means']['uWind_80m'], - self.data['means']['TB_ForeAft'], - self.data['maxs']['TB_ForeAft'], - self.data['mins']['TB_ForeAft'], - y_stdev=self.data['std']['TB_ForeAft'], - x_label='Wind Speed [m/s]', - y_label='Tower Base Mom [kNm]', - save_path=savepath) + loads.graphics.plot_statistics( + self.data["means"]["uWind_80m"], + self.data["means"]["TB_ForeAft"], + self.data["maxs"]["TB_ForeAft"], + self.data["mins"]["TB_ForeAft"], + y_stdev=self.data["std"]["TB_ForeAft"], + x_label="Wind Speed [m/s]", + y_label="Tower Base Mom [kNm]", + save_path=savepath, + ) self.assertTrue(isfile(savepath)) + def test_plot_statistics_wrong_types(self): + # Test with incorrect types for some arguments + x = "invalid" # Should be np.ndarray + y_mean = "invalid" # Should be np.ndarray + y_max = "invalid" # Should be np.ndarray + y_min = "invalid" # Should be np.ndarray + y_stdev = "invalid" # Should be np.ndarray + + kwargs = { + "x_label": "X Axis", + "y_label": "Y Axis", + "title": "Test Plot", + "save_path": "test_plot.png", + } + + with self.assertRaises(TypeError): + loads.graphics.plot_statistics(x, y_mean, y_max, y_min, y_stdev, **kwargs) def test_plot_bin_statistics(self): # Define signal name, path, and bin centers - savepath = abspath(join(testdir, 'test_binplotter.png')) - bin_centers = np.arange(3.5,25.5,step=1) - signal_name = 'TB_ForeAft' + savepath = abspath(join(testdir, "test_binplotter.png")) + bin_centers = np.arange(3.5, 25.5, step=1) + signal_name = "TB_ForeAft" # Specify inputs to be used in plotting - bin_mean = self.data['bin_means'][signal_name] - bin_max = self.data['bin_maxs'][signal_name] - bin_min = self.data['bin_mins'][signal_name] - bin_mean_std = self.data['bin_means_std'][signal_name] - bin_max_std = self.data['bin_maxs_std'][signal_name] - bin_min_std = self.data['bin_mins_std'][signal_name] + bin_mean = self.data["bin_means"][signal_name] + bin_max = self.data["bin_maxs"][signal_name] + bin_min = self.data["bin_mins"][signal_name] + bin_mean_std = self.data["bin_means_std"][signal_name] + bin_max_std = self.data["bin_maxs_std"][signal_name] + bin_min_std = self.data["bin_mins_std"][signal_name] # Generate plot - loads.graphics.plot_bin_statistics(bin_centers, - bin_mean, bin_max, bin_min, - bin_mean_std, bin_max_std, bin_min_std, - x_label='Wind Speed [m/s]', - y_label=signal_name, - title='Binned Stats', - save_path=savepath) + loads.graphics.plot_bin_statistics( + bin_centers, + bin_mean, + bin_max, + bin_min, + bin_mean_std, + bin_max_std, + bin_min_std, + x_label="Wind Speed [m/s]", + y_label=signal_name, + title="Binned Stats", + save_path=savepath, + ) self.assertTrue(isfile(savepath)) -class TestWDRT(unittest.TestCase): + def test_plot_bin_statistics_type_errors(self): + # Specify inputs to be used in plotting + bin_centers = np.arange(3.5, 25.5, step=1) + signal_name = "TB_ForeAft" + bin_mean = self.data["bin_means"][signal_name] + bin_max = self.data["bin_maxs"][signal_name] + bin_min = self.data["bin_mins"][signal_name] + bin_mean_std = self.data["bin_means_std"][signal_name] + bin_max_std = self.data["bin_maxs_std"][signal_name] + bin_min_std = self.data["bin_mins_std"][signal_name] + # Test invalid data types one at a time + with self.assertRaises(TypeError): + loads.graphics.plot_bin_statistics( + ["a", 2, 3], # Invalid bin_centers + bin_mean, + bin_max, + bin_min, + bin_mean_std, + bin_max_std, + bin_min_std, + ) + + with self.assertRaises(TypeError): + loads.graphics.plot_bin_statistics( + bin_centers, + ["a", 20, 30], # Invalid bin_mean + bin_max, + bin_min, + bin_mean_std, + bin_max_std, + bin_min_std, + ) + + with self.assertRaises(TypeError): + loads.graphics.plot_bin_statistics( + bin_centers, + bin_mean, + ["a", 25, 35], # Invalid bin_max + bin_min, + bin_mean_std, + bin_max_std, + bin_min_std, + ) + + with self.assertRaises(TypeError): + loads.graphics.plot_bin_statistics( + bin_centers, + bin_mean, + bin_max, + ["a", 15, 25], # Invalid bin_min + bin_mean_std, + bin_max_std, + bin_min_std, + ) + + with self.assertRaises(TypeError): + loads.graphics.plot_bin_statistics( + bin_centers, + bin_mean, + bin_max, + bin_min, + ["a", 2, 3], # Invalid bin_mean_std + bin_max_std, + bin_min_std, + ) + + with self.assertRaises(TypeError): + loads.graphics.plot_bin_statistics( + bin_centers, + bin_mean, + bin_max, + bin_min, + bin_mean_std, + ["a", 1.5, 2.5], # Invalid bin_max_std + bin_min_std, + ) + + with self.assertRaises(TypeError): + loads.graphics.plot_bin_statistics( + bin_centers, + bin_mean, + bin_max, + bin_min, + bin_mean_std, + bin_max_std, + ["a", 1.8, 2.8], # Invalid bin_min_std + ) + +class TestWDRT(unittest.TestCase): @classmethod def setUpClass(self): mler_file = join(datadir, "mler.csv") - mler_data = pd.read_csv(mler_file,index_col=None) - mler_tsfile = join(datadir,"mler_ts.csv") - mler_ts = pd.read_csv(mler_tsfile,index_col=0) + mler_data = pd.read_csv(mler_file, index_col=None) + mler_tsfile = join(datadir, "mler_ts.csv") + mler_ts = pd.read_csv(mler_tsfile, index_col=0) self.mler_ts = mler_ts - self.wave_freq = np.linspace( 0.,1,500) + self.wave_freq = np.linspace(0.0, 1, 500) self.mler = mler_data self.sim = loads.extreme.mler_simulation() @@ -138,45 +365,89 @@ def test_mler_coefficients(self): Tp = 15.1 # time period of waves pm = resource.pierson_moskowitz_spectrum(self.wave_freq, Tp, Hs) mler_data = loads.extreme.mler_coefficients( - self.mler['RAO'].astype(complex), pm, 1) + self.mler["RAO"].astype(complex), pm, 1 + ) + mler_data.reset_index(drop=True, inplace=True) + + assert_series_equal( + mler_data["WaveSpectrum"], + self.mler["Res_Spec"], + check_exact=False, + check_names=False, + atol=0.001, + ) + assert_series_equal( + mler_data["Phase"], + self.mler["phase"], + check_exact=False, + check_names=False, + rtol=0.001, + ) + + def test_mler_coefficients_xarray(self): + Hs = 9.0 # significant wave height + Tp = 15.1 # time period of waves + pm = resource.pierson_moskowitz_spectrum(self.wave_freq, Tp, Hs) + mler_data = loads.extreme.mler_coefficients( + self.mler["RAO"].astype(complex).to_xarray(), pm, 1 + ) mler_data.reset_index(drop=True, inplace=True) - assert_series_equal(mler_data['WaveSpectrum'], self.mler['Res_Spec'], - check_exact=False, check_names=False, atol=0.001) - assert_series_equal(mler_data['Phase'], self.mler['phase'], - check_exact=False, check_names=False, rtol=0.001) + assert_series_equal( + mler_data["WaveSpectrum"], + self.mler["Res_Spec"], + check_exact=False, + check_names=False, + atol=0.001, + ) + assert_series_equal( + mler_data["Phase"], + self.mler["phase"], + check_exact=False, + check_names=False, + rtol=0.001, + ) def test_mler_simulation(self): T = np.linspace(-150, 150, 301) X = np.linspace(-300, 300, 601) sim = loads.extreme.mler_simulation() - assert_array_almost_equal(sim['X'], X) - assert_array_almost_equal(sim['T'], T) + assert_array_almost_equal(sim["X"], X) + assert_array_almost_equal(sim["T"], T) def test_mler_wave_amp_normalize(self): - wave_freq = np.linspace(0., 1, 500) + wave_freq = np.linspace(0.0, 1, 500) mler = pd.DataFrame(index=wave_freq) - mler['WaveSpectrum'] = self.mler['Res_Spec'].values - mler['Phase'] = self.mler['phase'].values + mler["WaveSpectrum"] = self.mler["Res_Spec"].values + mler["Phase"] = self.mler["phase"].values k = resource.wave_number(wave_freq, 70) k = k.fillna(0) mler_norm = loads.extreme.mler_wave_amp_normalize( - 4.5*1.9, mler, self.sim, k.k.values) + 4.5 * 1.9, mler, self.sim, k.k.values + ) mler_norm.reset_index(drop=True, inplace=True) - assert_series_equal(mler_norm['WaveSpectrum'], self.mler['Norm_Spec'],check_exact=False,atol=0.001,check_names=False) + assert_series_equal( + mler_norm["WaveSpectrum"], + self.mler["Norm_Spec"], + check_exact=False, + atol=0.001, + check_names=False, + ) def test_mler_export_time_series(self): - wave_freq = np.linspace(0., 1, 500) + wave_freq = np.linspace(0.0, 1, 500) mler = pd.DataFrame(index=wave_freq) - mler['WaveSpectrum'] = self.mler['Norm_Spec'].values - mler['Phase'] = self.mler['phase'].values + mler["WaveSpectrum"] = self.mler["Norm_Spec"].values + mler["Phase"] = self.mler["phase"].values k = resource.wave_number(wave_freq, 70) k = k.fillna(0) - RAO = self.mler['RAO'].astype(complex) + RAO = self.mler["RAO"].astype(complex) mler_ts = loads.extreme.mler_export_time_series( - RAO.values, mler, self.sim, k.k.values) + RAO.values, mler, self.sim, k.k.values + ) + mler_ts.index.name = None # compatibility with old data assert_frame_equal(self.mler_ts, mler_ts, atol=0.0001) @@ -188,8 +459,7 @@ def test_return_year_value(self): for y in return_years: for stp in short_term_periods: with self.subTest(year=y, short_term=stp): - val = loads.extreme.return_year_value( - dist.ppf, y, stp) + val = loads.extreme.return_year_value(dist.ppf, y, stp) want = 4.5839339 self.assertAlmostEqual(want, val, 5) @@ -200,24 +470,41 @@ def test_longterm_extreme(self): w = [0.5, 0.5] lte = loads.extreme.full_seastate_long_term_extreme(ste, w) x = np.random.rand() - assert_allclose(lte.cdf(x), w[0]*ste[0].cdf(x) + w[1]*ste[1].cdf(x)) + assert_allclose(lte.cdf(x), w[0] * ste[0].cdf(x) + w[1] * ste[1].cdf(x)) def test_shortterm_extreme(self): - methods = ['peaks_weibull', 'peaks_weibull_tail_fit', - 'peaks_over_threshold', 'block_maxima_gev', - 'block_maxima_gumbel'] + methods = [ + "peaks_weibull", + "peaks_weibull_tail_fit", + "peaks_over_threshold", + "block_maxima_gev", + "block_maxima_gumbel", + ] filename = "time_series_for_extremes.txt" data = np.loadtxt(os.path.join(datadir, filename)) t = data[:, 0] data = data[:, 1] t_st = 1.0 * 60 * 60 x = 1.6 - cdfs_1 = [0.006750456316537166, 0.5921659393757381, 0.6156789503874247, - 0.6075807789811315, 0.9033574618279865] + cdfs_1 = [ + 0.006750456316537166, + 0.5921659393757381, + 0.6156789503874247, + 0.6075807789811315, + 0.9033574618279865, + ] for method, cdf_1 in zip(methods, cdfs_1): ste = loads.extreme.ste(t, data, t_st, method) assert_allclose(ste.cdf(x), cdf_1) + def test_automatic_threshold(self): + filename = "data_loads_hs.csv" + data = np.loadtxt(os.path.join(datadir, filename), delimiter=",") + years = 2.97 + pct, threshold = loads.extreme.automatic_hs_threshold(data, years) + assert np.isclose(pct, 0.9913) + assert np.isclose(threshold, 1.032092) + -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/mooring/test_mooring.py b/mhkit/tests/mooring/test_mooring.py index 1ba09f42d..da11f614c 100644 --- a/mhkit/tests/mooring/test_mooring.py +++ b/mhkit/tests/mooring/test_mooring.py @@ -3,43 +3,237 @@ from matplotlib.animation import FuncAnimation import xarray as xr import mhkit.mooring as mooring +import pytest +import numpy as np testdir = dirname(abspath(__file__)) -datadir = normpath(join(testdir, '..', '..', '..', - 'examples', 'data', 'mooring')) +datadir = normpath(join(testdir, "..", "..", "..", "examples", "data", "mooring")) class TestMooring(unittest.TestCase): + @classmethod + def setUpClass(self): + fpath = join(datadir, "line1_test.nc") + self.ds = xr.open_dataset(fpath) + self.dsani = self.ds.sel(Time=slice(0, 10)) def test_moordyn_out(self): - fpath = join(datadir, 'Test.MD.out') + fpath = join(datadir, "Test.MD.out") inputpath = join(datadir, "TestInput.MD.dat") ds = mooring.io.read_moordyn(fpath, input_file=inputpath) - isinstance(ds, xr.Dataset) + self.assertIsInstance(ds, xr.Dataset) def test_lay_length(self): - fpath = join(datadir, 'line1_test.nc') + fpath = join(datadir, "line1_test.nc") ds = xr.open_dataset(fpath) laylengths = mooring.lay_length(ds, depth=-56, tolerance=0.25) laylength = laylengths.mean().values self.assertAlmostEqual(laylength, 45.0, 1) def test_animate_3d(self): - fpath = join(datadir, 'line1_test.nc') - ds = xr.open_dataset(fpath) - dsani = ds.sel(Time=slice(0, 10)) - ani = mooring.graphics.animate(dsani, dimension='3d', interval=10, repeat=True, - xlabel='X-axis', ylabel='Y-axis', zlabel='Depth [m]', title='Mooring Line Example') - isinstance(ani, FuncAnimation) + dsani = self.ds.sel(Time=slice(0, 10)) + ani = mooring.graphics.animate( + dsani, + dimension="3d", + interval=10, + repeat=True, + xlabel="X-axis", + ylabel="Y-axis", + zlabel="Depth [m]", + title="Mooring Line Example", + ) + self.assertIsInstance(ani, FuncAnimation) def test_animate_2d(self): - fpath = join(datadir, 'line1_test.nc') - ds = xr.open_dataset(fpath) - dsani = ds.sel(Time=slice(0, 10)) - ani2d = mooring.graphics.animate(dsani, dimension='2d', xaxis='x', yaxis='z', repeat=True, - xlabel='X-axis', ylabel='Depth [m]', title='Mooring Line Example') - isinstance(ani2d, FuncAnimation) + dsani = self.ds.sel(Time=slice(0, 10)) + ani2d = mooring.graphics.animate( + dsani, + dimension="2d", + xaxis="x", + yaxis="z", + repeat=True, + xlabel="X-axis", + ylabel="Depth [m]", + title="Mooring Line Example", + ) + self.assertIsInstance(ani2d, FuncAnimation) + + def test_animate_2d_update(self): + ani2d = mooring.graphics.animate( + self.ds, + dimension="2d", + xaxis="x", + yaxis="z", + repeat=True, + xlabel="X-axis", + ylabel="Depth [m]", + title="Mooring Line Example", + ) + + # Extract the figure and axes + fig = ani2d._fig + ax = fig.axes[0] + (line,) = ax.lines + + # Simulate the update for a specific frame + frame = 5 + + # Extracting data from the list of nodes + nodes_x, nodes_y, _ = mooring.graphics._get_axis_nodes( + self.dsani, "x", "z", "y" + ) + x_data = self.dsani[nodes_x[0]].isel(Time=frame).values + y_data = self.dsani[nodes_y[0]].isel(Time=frame).values + + # Manually set the data for the line object + line.set_data(x_data, y_data) + + # Extract updated data from the line object + updated_x, updated_y = line.get_data() + + # Assert that the updated data matches the dataset + np.testing.assert_array_equal(updated_x, x_data) + np.testing.assert_array_equal(updated_y, y_data) + + def test_animate_3d_update(self): + ani3d = mooring.graphics.animate( + self.ds, + dimension="3d", + xaxis="x", + yaxis="z", + zaxis="y", + repeat=True, + xlabel="X-axis", + ylabel="Depth [m]", + zlabel="Y-axis", + title="Mooring Line Example", + ) + + # Extract the figure and axes + fig = ani3d._fig + ax = fig.axes[0] + (line,) = ax.lines + + # Simulate the update for a specific frame + frame = 5 + + # Extracting data for the specified frame + nodes_x, nodes_y, nodes_z = mooring.graphics._get_axis_nodes( + self.dsani, "x", "z", "y" + ) + x_data = self.dsani[nodes_x[0]].isel(Time=frame).values + y_data = self.dsani[nodes_y[0]].isel(Time=frame).values + z_data = self.dsani[nodes_z[0]].isel(Time=frame).values + + # Manually set the data for the line object + line.set_data(x_data, y_data) + line.set_3d_properties(z_data) + + # Extract updated data from the line object + updated_x, updated_y, updated_z = line._verts3d + + # Assert that the updated data matches the dataset + np.testing.assert_array_equal(updated_x, x_data) + np.testing.assert_array_equal(updated_y, y_data) + np.testing.assert_array_equal(updated_z, z_data) + + # Test for xaxis, yaxis, zaxis type handling + def test_animate_xaxis_type_handling(self): + with pytest.raises(TypeError): + mooring.graphics.animate(self.dsani, xaxis=123) + + def test_animate_yaxis_type_handling(self): + with pytest.raises(TypeError): + mooring.graphics.animate(self.dsani, yaxis=123) + + def test_animate_zaxis_type_handling(self): + with pytest.raises(TypeError): + mooring.graphics.animate(self.dsani, zaxis=123) + + # Test for zlim and zlabel in 3D mode + def test_animate_zlim_type_handling_3d(self): + with pytest.raises(TypeError): + mooring.graphics.animate(self.dsani, dimension="3d", zlim="invalid") + + def test_animate_zlabel_type_handling_3d(self): + with pytest.raises(TypeError): + mooring.graphics.animate(self.dsani, dimension="3d", zlabel=123) + + # Test for xlim, ylim, interval, repeat, xlabel, ylabel, title + def test_animate_xlim_type_handling(self): + with pytest.raises(TypeError): + mooring.graphics.animate(self.dsani, xlim="invalid") + + def test_animate_ylim_type_handling(self): + with pytest.raises(TypeError): + mooring.graphics.animate(self.dsani, ylim="invalid") + + def test_animate_interval_type_handling(self): + with pytest.raises(TypeError): + mooring.graphics.animate(self.dsani, interval="invalid") + + def test_animate_repeat_type_handling(self): + with pytest.raises(TypeError): + mooring.graphics.animate(self.dsani, repeat="invalid") + + def test_animate_xlabel_type_handling(self): + with pytest.raises(TypeError): + mooring.graphics.animate(self.dsani, xlabel=123) + + def test_animate_ylabel_type_handling(self): + with pytest.raises(TypeError): + mooring.graphics.animate(self.dsani, ylabel=123) + + def test_animate_title_type_handling(self): + with pytest.raises(TypeError): + mooring.graphics.animate(self.dsani, title=123) + + def test_animate_dsani_type_handling(self): + with pytest.raises(TypeError): + mooring.graphics.animate("not_a_dataset") + + def test_animate_xlim_type_handling_none(self): + try: + mooring.graphics.animate(self.dsani, xlim=None) + except TypeError: + pytest.fail("Unexpected TypeError with xlim=None") + + def test_animate_ylim_type_handling_none(self): + try: + mooring.graphics.animate(self.dsani, ylim=None) + except TypeError: + pytest.fail("Unexpected TypeError with ylim=None") + + def test_animate_interval_type_handling(self): + with pytest.raises(TypeError): + mooring.graphics.animate(self.dsani, interval="not_an_int") + + def test_animate_repeat_type_handling(self): + with pytest.raises(TypeError): + mooring.graphics.animate(self.dsani, repeat="not_a_bool") + + def test_animate_xlabel_type_handling_none(self): + try: + mooring.graphics.animate(self.dsani, xlabel=None) + except TypeError: + pytest.fail("Unexpected TypeError with xlabel=None") + + def test_animate_ylabel_type_handling_none(self): + try: + mooring.graphics.animate(self.dsani, ylabel=None) + except TypeError: + pytest.fail("Unexpected TypeError with ylabel=None") + + def test_animate_title_type_handling_none(self): + try: + mooring.graphics.animate(self.dsani, title=None) + except TypeError: + pytest.fail("Unexpected TypeError with title=None") + + def test_animate_dimension_type_handling(self): + with pytest.raises(ValueError): + mooring.graphics.animate(self.dsani, dimension="not_2d_or_3d") -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/power/test_power.py b/mhkit/tests/power/test_power.py index eb2807932..e218d149f 100644 --- a/mhkit/tests/power/test_power.py +++ b/mhkit/tests/power/test_power.py @@ -1,112 +1,186 @@ - -from os.path import abspath, dirname, join, isfile, normpath, relpath +from os.path import abspath, dirname, join, normpath, relpath import mhkit.power as power import pandas as pd +import xarray as xr import numpy as np import unittest -import os testdir = dirname(abspath(__file__)) -datadir = normpath(join(testdir,relpath('../../../examples/data/power'))) +datadir = normpath(join(testdir, relpath("../../../examples/data/power"))) -class TestDevice(unittest.TestCase): +class TestDevice(unittest.TestCase): @classmethod def setUpClass(self): self.t = 600 fs = 1000 - sample_frequency = 1000 # = fs - self.samples = np.linspace(0, self.t, int(fs*self.t), endpoint=False) + self.samples = np.linspace(0, self.t, int(fs * self.t), endpoint=False) self.frequency = 60 - self.freq_array = np.ones(len(self.samples))*60 - harmonics_int = np.arange(0,60*60,5) + self.freq_array = np.ones(len(self.samples)) * 60 + harmonics_int = np.arange(0, 60 * 60, 5) self.harmonics_int = harmonics_int - self.interharmonic = np.zeros(len(harmonics_int)) #since this is an idealized sin wave, the interharmonics should be zero + # since this is an idealized sin wave, the interharmonics should be zero + self.interharmonic = np.zeros(len(harmonics_int)) self.harmonics_vals = np.zeros(len(harmonics_int)) - self.harmonics_vals[12]= 1.0 #setting 60th harmonic to amplitude of the signal + # setting 60th harmonic to amplitude of the signal + self.harmonics_vals[12] = 1.0 + + # harmonic groups should be equal to every 12th harmonic in this idealized example + self.harmonic_groups = self.harmonics_vals[0::12] + self.thcd = ( + 0.0 # Since this is an idealized sin wave, there should be no distortion + ) - self.harmonic_groups = self.harmonics_vals[0::12] #harmonic groups should be equal to every 12th harmonic in this idealized example - self.thcd = 0.0 #Since this is an idealized sin wave, there should be no distortion - self.signal = np.sin(2 * np.pi * self.frequency * self.samples) - - self.current_data = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]] - self.voltage_data = [[1,5,9],[2,6,10],[3,7,11],[4,8,12]] + + self.current_data = np.asarray([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]) + self.voltage_data = np.asarray([[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]) @classmethod def tearDownClass(self): pass - def test_harmonics_sine_wave(self): - + def test_harmonics_sine_wave_pandas(self): current = pd.Series(self.signal, index=self.samples) harmonics = power.quality.harmonics(current, 1000, self.frequency) - for i,j in zip(harmonics.values, self.harmonics_vals): - self.assertAlmostEqual(i[0], j,1) + for i, j in zip(harmonics["data"].values, self.harmonics_vals): + self.assertAlmostEqual(i, j, 1) - def test_harmonic_subgroup_sine_wave(self): - current = pd.Series(self.signal, index=self.samples) - harmonics = pd.DataFrame(self.harmonics_vals, - index= self.harmonics_int) - hsg = power.quality.harmonic_subgroups(harmonics,self.frequency) - for i,j in zip(hsg.values,self.harmonic_groups): - self.assertAlmostEqual(i[0], j,1) + def test_harmonics_sine_wave_xarray(self): + current = xr.DataArray( + data=self.signal, dims="index", coords={"index": self.samples} + ) + harmonics = power.quality.harmonics(current, 1000, self.frequency) - def test_TCHD_sine_wave(self): - current = pd.Series(self.signal, index=self.samples) - harmonics = pd.DataFrame(self.harmonics_vals, - index= self.harmonics_int) - hsg = power.quality.harmonic_subgroups(harmonics,self.frequency) + for i, j in zip(harmonics["data"].values, self.harmonics_vals): + self.assertAlmostEqual(i, j, 1) - TCHD = power.quality.total_harmonic_current_distortion(hsg,18.8) # had to just put a random rated current in here - self.assertAlmostEqual(TCHD.values[0],self.thcd) + def test_harmonic_subgroup_sine_wave_pandas(self): + harmonics = pd.DataFrame(self.harmonics_vals, index=self.harmonics_int) + hsg = power.quality.harmonic_subgroups(harmonics, self.frequency) - def test_interharmonics_sine_wave(self): - current = pd.Series(self.signal, index=self.samples) - harmonics = pd.DataFrame(self.harmonics_vals, - index= self.harmonics_int) + for i, j in zip(hsg.values, self.harmonic_groups): + self.assertAlmostEqual(i[0], j, 1) + + def test_harmonic_subgroup_sine_wave_xarray(self): + harmonics = xr.Dataset( + data_vars={"harmonics": (["index"], self.harmonics_vals)}, + coords={"index": self.harmonics_int}, + ) + hsg = power.quality.harmonic_subgroups(harmonics, self.frequency) + + for i, j in zip(hsg.values, self.harmonic_groups): + self.assertAlmostEqual(i[0], j, 1) + + def test_TCHD_sine_wave_pandas(self): + harmonics = pd.DataFrame(self.harmonics_vals, index=self.harmonics_int) + hsg = power.quality.harmonic_subgroups(harmonics, self.frequency) + TCHD = power.quality.total_harmonic_current_distortion(hsg) + + self.assertAlmostEqual(TCHD.values[0], self.thcd) + + def test_TCHD_sine_wave_xarray(self): + harmonics = xr.Dataset( + data_vars={"harmonics": (["index"], self.harmonics_vals)}, + coords={"index": self.harmonics_int}, + ) + hsg = power.quality.harmonic_subgroups(harmonics, self.frequency) + TCHD = power.quality.total_harmonic_current_distortion(hsg) + + self.assertAlmostEqual(TCHD.values[0], self.thcd) + + def test_interharmonics_sine_wave_pandas(self): + harmonics = pd.DataFrame(self.harmonics_vals, index=self.harmonics_int) + inter_harmonics = power.quality.interharmonics(harmonics, self.frequency) + + for i, j in zip(inter_harmonics.values, self.interharmonic): + self.assertAlmostEqual(i[0], j, 1) + + def test_interharmonics_sine_wave_xarray(self): + harmonics = xr.Dataset( + data_vars={"harmonics": (["index"], self.harmonics_vals)}, + coords={"index": self.harmonics_int}, + ) + inter_harmonics = power.quality.interharmonics(harmonics, self.frequency) - inter_harmonics = power.quality.interharmonics(harmonics,self.frequency) + for i, j in zip(inter_harmonics.values, self.interharmonic): + self.assertAlmostEqual(i[0], j, 1) - for i,j in zip(inter_harmonics.values, self.interharmonic): - self.assertAlmostEqual(i[0], j,1) + def test_instfreq_pandas(self): + um = pd.Series(self.signal, index=self.samples) + freq = power.characteristics.instantaneous_frequency(um) + for i in freq.values: + self.assertAlmostEqual(i[0], self.frequency, 1) + + def test_instfreq_xarray(self): + um = pd.Series(self.signal, index=self.samples) + um = um.to_xarray() - def test_instfreq(self): - um = pd.Series(self.signal,index = self.samples) - freq = power.characteristics.instantaneous_frequency(um) for i in freq.values: - self.assertAlmostEqual(i[0], self.frequency,1) + self.assertAlmostEqual(i[0], self.frequency, 1) + + def test_dc_power_pandas(self): + current = pd.DataFrame(self.current_data, columns=["A1", "A2", "A3"]) + voltage = pd.DataFrame(self.voltage_data, columns=["V1", "V2", "V3"]) + + P = power.characteristics.dc_power(voltage, current) + P_test = (self.current_data * self.voltage_data).sum() + self.assertEqual(P.sum()["Gross"], P_test) + + P = power.characteristics.dc_power(voltage["V1"], current["A1"]) + P_test = (self.current_data[:, 0] * self.voltage_data[:, 0]).sum() + self.assertEqual(P.sum()["Gross"], P_test) + + def test_dc_power_xarray(self): + current = pd.DataFrame(self.current_data, columns=["A1", "A2", "A3"]) + voltage = pd.DataFrame(self.voltage_data, columns=["V1", "V2", "V3"]) + current = current.to_xarray() + voltage = voltage.to_xarray() - def test_dc_power_DataFrame(self): - current = pd.DataFrame(self.current_data, columns=['A1', 'A2', 'A3']) - voltage = pd.DataFrame(self.voltage_data, columns=['V1', 'V2', 'V3']) P = power.characteristics.dc_power(voltage, current) - self.assertEqual(P.sum()['Gross'], (voltage.values * current.values).sum()) - - def test_dc_power_Series(self): - current = pd.DataFrame(self.current_data, columns=['A1', 'A2', 'A3']) - voltage = pd.DataFrame(self.voltage_data, columns=['V1', 'V2', 'V3']) - P = power.characteristics.dc_power(voltage['V1'], current['A1']) - self.assertEqual(P.sum()['Gross'], sum( voltage['V1'] * current['A1'])) - - def test_ac_power_three_phase(self): - current = pd.DataFrame(self.current_data, columns=['A1', 'A2', 'A3']) - voltage = pd.DataFrame(self.voltage_data, columns=['V1', 'V2', 'V3']) - - P1 = power.characteristics.ac_power_three_phase( voltage, current, 1, False) + P_test = (self.current_data * self.voltage_data).sum() + self.assertEqual(P.sum()["Gross"], P_test) + + P = power.characteristics.dc_power(voltage["V1"], current["A1"]) + P_test = (self.current_data[:, 0] * self.voltage_data[:, 0]).sum() + self.assertEqual(P.sum()["Gross"], P_test) + + def test_ac_power_three_phase_pandas(self): + current = pd.DataFrame(self.current_data, columns=["A1", "A2", "A3"]) + voltage = pd.DataFrame(self.voltage_data, columns=["V1", "V2", "V3"]) + + P1 = power.characteristics.ac_power_three_phase(voltage, current, 1, False) P1b = power.characteristics.ac_power_three_phase(voltage, current, 0.5, False) - P2 = power.characteristics.ac_power_three_phase( voltage, current,1, True) + P2 = power.characteristics.ac_power_three_phase(voltage, current, 1, True) P2b = power.characteristics.ac_power_three_phase(voltage, current, 0.5, True) - - self.assertEqual(P1.sum()[0], 584) - self.assertEqual(P1b.sum()[0], 584/2) - self.assertAlmostEqual(P2.sum()[0], 1011.518, 2) - self.assertAlmostEqual(P2b.sum()[0], 1011.518/2, 2) - -if __name__ == '__main__': - unittest.main() - + + P_test = (self.current_data * self.voltage_data).sum() + self.assertEqual(P1.sum().iloc[0], P_test) + self.assertEqual(P1b.sum().iloc[0], P_test / 2) + self.assertAlmostEqual(P2.sum().iloc[0], P_test * np.sqrt(3), 2) + self.assertAlmostEqual(P2b.sum().iloc[0], P_test * np.sqrt(3) / 2, 2) + + def test_ac_power_three_phase_xarray(self): + current = pd.DataFrame(self.current_data, columns=["A1", "A2", "A3"]) + voltage = pd.DataFrame(self.voltage_data, columns=["V1", "V2", "V3"]) + current = current.to_xarray() + voltage = voltage.to_xarray() + + P1 = power.characteristics.ac_power_three_phase(voltage, current, 1, False) + P1b = power.characteristics.ac_power_three_phase(voltage, current, 0.5, False) + P2 = power.characteristics.ac_power_three_phase(voltage, current, 1, True) + P2b = power.characteristics.ac_power_three_phase(voltage, current, 0.5, True) + + P_test = (self.current_data * self.voltage_data).sum() + self.assertEqual(P1.sum().iloc[0], P_test) + self.assertEqual(P1b.sum().iloc[0], P_test / 2) + self.assertAlmostEqual(P2.sum().iloc[0], P_test * np.sqrt(3), 2) + self.assertAlmostEqual(P2b.sum().iloc[0], P_test * np.sqrt(3) / 2, 2) + + +if __name__ == "__main__": + unittest.main() diff --git a/mhkit/tests/river/test_io.py b/mhkit/tests/river/test_io.py deleted file mode 100644 index 714711ff1..000000000 --- a/mhkit/tests/river/test_io.py +++ /dev/null @@ -1,227 +0,0 @@ -from os.path import abspath, dirname, join, isfile, normpath, relpath -from numpy.testing import assert_array_almost_equal -from pandas.testing import assert_frame_equal -import scipy.interpolate as interp -import matplotlib.pylab as plt -import mhkit.river as river -import pandas as pd -import numpy as np -import unittest -import netCDF4 -import os - - -testdir = dirname(abspath(__file__)) -plotdir = join(testdir, 'plots') -isdir = os.path.isdir(plotdir) -if not isdir: os.mkdir(plotdir) -datadir = normpath(join(testdir,'..','..','..','examples','data','river')) - - -class TestIO(unittest.TestCase): - - @classmethod - def setUpClass(self): - d3ddatadir = normpath(join(datadir,'d3d')) - - filename= 'turbineTest_map.nc' - self.d3d_flume_data = netCDF4.Dataset(join(d3ddatadir,filename)) - - @classmethod - def tearDownClass(self): - pass - - def test_load_usgs_data_instantaneous(self): - file_name = join(datadir, 'USGS_08313000_Jan2019_instantaneous.json') - data = river.io.usgs.read_usgs_file(file_name) - - self.assertEqual(data.columns, ['Discharge, cubic feet per second']) - self.assertEqual(data.shape, (2972, 1)) # 4 data points are missing - - def test_load_usgs_data_daily(self): - file_name = join(datadir, 'USGS_08313000_Jan2019_daily.json') - data = river.io.usgs.read_usgs_file(file_name) - - expected_index = pd.date_range('2019-01-01', '2019-01-31', freq='D') - self.assertEqual(data.columns, ['Discharge, cubic feet per second']) - self.assertEqual((data.index == expected_index.tz_localize('UTC')).all(), True) - self.assertEqual(data.shape, (31, 1)) - - - def test_request_usgs_data_daily(self): - data=river.io.usgs.request_usgs_data(station="15515500", - parameter='00060', - start_date='2009-08-01', - end_date='2009-08-10', - data_type='Daily') - self.assertEqual(data.columns, ['Discharge, cubic feet per second']) - self.assertEqual(data.shape, (10, 1)) - - - def test_request_usgs_data_instant(self): - data=river.io.usgs.request_usgs_data(station="15515500", - parameter='00060', - start_date='2009-08-01', - end_date='2009-08-10', - data_type='Instantaneous') - self.assertEqual(data.columns, ['Discharge, cubic feet per second']) - # Every 15 minutes or 4 times per hour - self.assertEqual(data.shape, (10*24*4, 1)) - - def test_get_all_time(self): - data= self.d3d_flume_data - seconds_run = river.io.d3d.get_all_time(data) - seconds_run_expected= np.ndarray(shape=(5,), buffer= np.array([0, 60, 120, 180, 240]), dtype=int) - np.testing.assert_array_equal(seconds_run, seconds_run_expected) - - def test_convert_time(self): - data= self.d3d_flume_data - time_index = 2 - seconds_run = river.io.d3d.index_to_seconds(data, time_index = time_index) - seconds_run_expected = 120 - self.assertEqual(seconds_run, seconds_run_expected) - seconds_run = 60 - time_index= river.io.d3d.seconds_to_index(data, seconds_run = seconds_run) - time_index_expected = 1 - self.assertEqual(time_index, time_index_expected) - seconds_run = 62 - time_index= river.io.d3d.seconds_to_index(data, seconds_run = seconds_run) - time_index_expected = 1 - output_expected= f'ERROR: invalid seconds_run. Closest seconds_run found {time_index_expected}' - self.assertWarns(UserWarning) - - def test_layer_data(self): - data=self.d3d_flume_data - variable = ['ucx', 's1'] - for var in variable: - layer=2 - time_index= 3 - layer_data= river.io.d3d.get_layer_data(data, var, layer, time_index) - layer_compare = 2 - time_index_compare= 4 - layer_data_expected= river.io.d3d.get_layer_data(data, - var, layer_compare, - time_index_compare) - - assert_array_almost_equal(layer_data.x,layer_data_expected.x, decimal = 2) - assert_array_almost_equal(layer_data.y,layer_data_expected.y, decimal = 2) - assert_array_almost_equal(layer_data.v,layer_data_expected.v, decimal= 2) - - - - def test_create_points(self): - x=np.linspace(1, 3, num= 3) - y=np.linspace(1, 3, num= 3) - z=1 - points= river.io.d3d.create_points(x,y,z) - x=[1,2,3,1,2,3,1,2,3] - y=[1,1,1,2,2,2,3,3,3] - z=[1,1,1,1,1,1,1,1,1] - points_array= np.array([ [x_i, y_i, z_i] for x_i, y_i, z_i in zip(x, y, z)]) - points_expected= pd.DataFrame(points_array, columns=('x','y','z')) - assert_array_almost_equal(points, points_expected,decimal = 2) - - x=np.linspace(1, 3, num= 3) - y=2 - z=1 - points= river.io.d3d.create_points(x,y,z) - x=[1,2,3] - y=[2,2,2] - z=[1,1,1] - points_array= np.array([ [x_i, y_i, z_i] for x_i, y_i, z_i in zip(x, y, z)]) - points_expected= pd.DataFrame(points_array, columns=('x','y','z')) - assert_array_almost_equal(points, points_expected,decimal = 2) - - x=3 - y=2 - z=1 - points= river.io.d3d.create_points(x,y,z) - output_expected='Can provide at most two arrays' - self.assertWarns(UserWarning) - - def test_variable_interpolation(self): - data=self.d3d_flume_data - variables= ['ucx','turkin1'] - transformes_data= river.io.d3d.variable_interpolation(data, variables, points= 'faces', edges='nearest') - self.assertEqual(np.size(transformes_data['ucx']), np.size(transformes_data['turkin1'])) - transformes_data= river.io.d3d.variable_interpolation(data, variables, points= 'cells', edges='nearest') - self.assertEqual(np.size(transformes_data['ucx']), np.size(transformes_data['turkin1'])) - x=np.linspace(1, 3, num= 3) - y=np.linspace(1, 3, num= 3) - waterdepth=1 - points= river.io.d3d.create_points(x,y,waterdepth) - transformes_data= river.io.d3d.variable_interpolation(data, variables, points= points) - self.assertEqual(np.size(transformes_data['ucx']), np.size(transformes_data['turkin1'])) - - def test_get_all_data_points(self): - data=self.d3d_flume_data - variable= 'ucx' - time_step= 3 - output = river.io.d3d.get_all_data_points(data, variable, time_step) - size_output = np.size(output) - time_step_compair=4 - output_expected= river.io.d3d.get_all_data_points(data, variable, time_step_compair) - size_output_expected= np.size(output_expected) - self.assertEqual(size_output, size_output_expected) - - - def test_unorm(self): - x=np.linspace(1, 3, num= 3) - y=np.linspace(1, 3, num= 3) - z=np.linspace(1, 3, num= 3) - unorm = river.io.d3d.unorm(x,y,z) - unorm_expected= [np.sqrt(1**2+1**2+1**2),np.sqrt(2**2+2**2+2**2), np.sqrt(3**2+3**2+3**2)] - assert_array_almost_equal(unorm, unorm_expected, decimal = 2) - - def test_turbulent_intensity(self): - data=self.d3d_flume_data - time_index= -1 - x_test=np.linspace(1, 17, num= 10) - y_test=np.linspace(3, 3, num= 10) - waterdepth_test=np.linspace(1, 1, num= 10) - - test_points = np.array([ [x, y, waterdepth] for x, y, waterdepth in zip(x_test, y_test, waterdepth_test)]) - points= pd.DataFrame(test_points, columns=['x','y','waterdepth']) - - TI= river.io.d3d.turbulent_intensity(data, points, time_index) - - TI_vars= ['turkin1', 'ucx', 'ucy', 'ucz'] - TI_data_raw = {} - for var in TI_vars: - #get all data - var_data_df = river.io.d3d.get_all_data_points(data, var,time_index) - TI_data_raw[var] = var_data_df - TI_data= points.copy(deep=True) - - for var in TI_vars: - TI_data[var] = interp.griddata(TI_data_raw[var][['x','y','waterdepth']], - TI_data_raw[var][var], points[['x','y','waterdepth']]) - idx= np.where(np.isnan(TI_data[var])) - - if len(idx[0]): - for i in idx[0]: - TI_data[var][i]= interp.griddata(TI_data_raw[var][['x','y','waterdepth']], - TI_data_raw[var][var], - [points['x'][i],points['y'][i], points['waterdepth'][i]], - method='nearest') - - u_mag=river.io.d3d.unorm(TI_data['ucx'],TI_data['ucy'], TI_data['ucz']) - turbulent_intensity_expected= (np.sqrt(2/3*TI_data['turkin1'])/u_mag)*100 - - - assert_array_almost_equal(TI.turbulent_intensity, turbulent_intensity_expected, decimal = 2) - - TI = river.io.d3d.turbulent_intensity(data, points='faces') - TI_size = np.size(TI['turbulent_intensity']) - turkin1= river.io.d3d.get_all_data_points(data, 'turkin1',time_index) - turkin1_size= np.size(turkin1['turkin1']) - self.assertEqual(TI_size, turkin1_size) - - TI = river.io.d3d.turbulent_intensity(data, points='cells') - TI_size = np.size(TI['turbulent_intensity']) - ucx= river.io.d3d.get_all_data_points(data, 'ucx',time_index) - ucx_size= np.size(ucx['ucx']) - self.assertEqual(TI_size, ucx_size) -if __name__ == '__main__': - unittest.main() - diff --git a/mhkit/tests/river/test_io_d3d.py b/mhkit/tests/river/test_io_d3d.py new file mode 100644 index 000000000..f41ba4962 --- /dev/null +++ b/mhkit/tests/river/test_io_d3d.py @@ -0,0 +1,302 @@ +from os.path import abspath, dirname, join, normpath +from numpy.testing import assert_array_almost_equal +import scipy.interpolate as interp +import mhkit.river as river +import mhkit.tidal as tidal +import pandas as pd +import xarray as xr +import numpy as np +import unittest +import netCDF4 +import os + + +testdir = dirname(abspath(__file__)) +plotdir = join(testdir, "plots") +isdir = os.path.isdir(plotdir) +if not isdir: + os.mkdir(plotdir) +datadir = normpath(join(testdir, "..", "..", "..", "examples", "data", "river")) + + +class TestIO(unittest.TestCase): + @classmethod + def setUpClass(self): + d3ddatadir = normpath(join(datadir, "d3d")) + + filename = "turbineTest_map.nc" + self.d3d_flume_data = netCDF4.Dataset(join(d3ddatadir, filename)) + + @classmethod + def tearDownClass(self): + pass + + def test_get_all_time(self): + data = self.d3d_flume_data + seconds_run = river.io.d3d.get_all_time(data) + seconds_run_expected = np.ndarray( + shape=(5,), buffer=np.array([0, 60, 120, 180, 240]), dtype=int + ) + np.testing.assert_array_equal(seconds_run, seconds_run_expected) + + def test_convert_time(self): + data = self.d3d_flume_data + time_index = 2 + seconds_run = river.io.d3d.index_to_seconds(data, time_index=time_index) + seconds_run_expected = 120 + self.assertEqual(seconds_run, seconds_run_expected) + seconds_run = 60 + time_index = river.io.d3d.seconds_to_index(data, seconds_run=seconds_run) + time_index_expected = 1 + self.assertEqual(time_index, time_index_expected) + seconds_run = 62 + time_index = river.io.d3d.seconds_to_index(data, seconds_run=seconds_run) + time_index_expected = 1 + output_expected = f"ERROR: invalid seconds_run. Closest seconds_run found {time_index_expected}" + self.assertWarns(UserWarning) + + def test_convert_time_from_tidal(self): + """ + Test the conversion of time from using tidal import of d3d + """ + data = self.d3d_flume_data + time_index = 2 + seconds_run = tidal.io.d3d.index_to_seconds(data, time_index=time_index) + seconds_run_expected = 120 + self.assertEqual(seconds_run, seconds_run_expected) + + def test_layer_data(self): + data = self.d3d_flume_data + variable = ["ucx", "s1"] + for var in variable: + layer = 2 + time_index = 3 + layer_data = river.io.d3d.get_layer_data(data, var, layer, time_index) + layer_compare = 2 + time_index_compare = 4 + layer_data_expected = river.io.d3d.get_layer_data( + data, var, layer_compare, time_index_compare + ) + + assert_array_almost_equal(layer_data.x, layer_data_expected.x, decimal=2) + assert_array_almost_equal(layer_data.y, layer_data_expected.y, decimal=2) + assert_array_almost_equal(layer_data.v, layer_data_expected.v, decimal=2) + + def test_create_points_three_points(self): + """ + Test the scenario where all three inputs (x, y, z) are points. + """ + x, y, z = 1, 2, 3 + + expected = pd.DataFrame([[x, y, z]], columns=["x", "y", "waterdepth"]) + + points = river.io.d3d.create_points(x, y, z) + assert_array_almost_equal(points.values, expected.values, decimal=2) + + def test_create_points_invalid_input(self): + """ + Test scenarios where invalid inputs are provided to the function. + """ + with self.assertRaises(TypeError): + river.io.d3d.create_points("invalid", 2, 3) + + def test_create_points_two_arrays_one_point(self): + """ + Test with two arrays and one point. + """ + result = river.io.d3d.create_points(np.array([1, 2]), np.array([3]), 4) + expected = pd.DataFrame({"x": [1, 2], "y": [3, 3], "waterdepth": [4, 4]}) + pd.testing.assert_frame_equal( + result, + expected, + check_dtype=False, + check_names=False, + check_index_type=False, + ) + + def test_create_points_user_made_two_arrays_one_point(self): + """ + Test the scenario where all three inputs (x, y, z) are created from + points. + """ + x, y, z = np.linspace(1, 3, num=3), np.linspace(1, 3, num=3), 1 + + # Adjust the order of the expected values + expected_data = [ + [i, j, 1] for j in y for i in x + ] # Notice the swapped loop order + expected = pd.DataFrame(expected_data, columns=["x", "y", "waterdepth"]) + + points = river.io.d3d.create_points(x, y, z) + assert_array_almost_equal(points.values, expected.values, decimal=2) + + def test_create_points_mismatched_array_lengths(self): + """ + Test the scenario where x and y are arrays of different lengths. + """ + with self.assertRaises(ValueError): + river.io.d3d.create_points( + np.array([1, 2, 3]), np.array([1, 2]), np.array([3, 4]) + ) + + def test_create_pointsempty_arrays(self): + """ + Test the scenario where provided arrays are empty. + """ + with self.assertRaises(ValueError): + river.io.d3d.create_points([], [], []) + + def test_create_points_mixed_data_types(self): + """ + Test a combination of np.ndarray, pd.Series, and xr.DataArray. + """ + x = np.array([1, 2]) + y = pd.Series([3, 4]) + z = xr.DataArray([5, 6]) + result = river.io.d3d.create_points(x, y, z) + expected = pd.DataFrame( + {"x": [1, 2, 1, 2], "y": [3, 4, 3, 4], "waterdepth": [5, 5, 6, 6]} + ) + + pd.testing.assert_frame_equal( + result, + expected, + check_dtype=False, + check_names=False, + check_index_type=False, + ) + + def test_create_points_array_like_inputs(self): + """ + Test array-like inputs such as lists. + """ + result = river.io.d3d.create_points([1, 2], [3, 4], [5, 6]) + expected = pd.DataFrame( + {"x": [1, 2, 1, 2], "y": [3, 4, 3, 4], "waterdepth": [5, 5, 6, 6]} + ) + + pd.testing.assert_frame_equal( + result, + expected, + check_dtype=False, + check_names=False, + check_index_type=False, + ) + + def test_variable_interpolation(self): + data = self.d3d_flume_data + variables = ["ucx", "turkin1"] + transformes_data = river.io.d3d.variable_interpolation( + data, variables, points="faces", edges="nearest" + ) + self.assertEqual( + np.size(transformes_data["ucx"]), np.size(transformes_data["turkin1"]) + ) + transformes_data = river.io.d3d.variable_interpolation( + data, variables, points="cells", edges="nearest" + ) + self.assertEqual( + np.size(transformes_data["ucx"]), np.size(transformes_data["turkin1"]) + ) + x = np.linspace(1, 3, num=3) + y = np.linspace(1, 3, num=3) + waterdepth = 1 + points = river.io.d3d.create_points(x, y, waterdepth) + transformes_data = river.io.d3d.variable_interpolation( + data, variables, points=points + ) + self.assertEqual( + np.size(transformes_data["ucx"]), np.size(transformes_data["turkin1"]) + ) + + def test_get_all_data_points(self): + data = self.d3d_flume_data + variable = "ucx" + time_step = 3 + output = river.io.d3d.get_all_data_points(data, variable, time_step) + size_output = np.size(output) + time_step_compair = 4 + output_expected = river.io.d3d.get_all_data_points( + data, variable, time_step_compair + ) + size_output_expected = np.size(output_expected) + self.assertEqual(size_output, size_output_expected) + + def test_unorm(self): + x = np.linspace(1, 3, num=3) + y = np.linspace(1, 3, num=3) + z = np.linspace(1, 3, num=3) + unorm = river.io.d3d.unorm(x, y, z) + unorm_expected = [ + np.sqrt(1**2 + 1**2 + 1**2), + np.sqrt(2**2 + 2**2 + 2**2), + np.sqrt(3**2 + 3**2 + 3**2), + ] + assert_array_almost_equal(unorm, unorm_expected, decimal=2) + + def test_turbulent_intensity(self): + data = self.d3d_flume_data + time_index = -1 + x_test = np.linspace(1, 17, num=10) + y_test = np.linspace(3, 3, num=10) + waterdepth_test = np.linspace(1, 1, num=10) + + test_points = np.array( + [ + [x, y, waterdepth] + for x, y, waterdepth in zip(x_test, y_test, waterdepth_test) + ] + ) + points = pd.DataFrame(test_points, columns=["x", "y", "waterdepth"]) + + TI = river.io.d3d.turbulent_intensity(data, points, time_index) + + TI_vars = ["turkin1", "ucx", "ucy", "ucz"] + TI_data_raw = {} + for var in TI_vars: + # get all data + var_data_df = river.io.d3d.get_all_data_points(data, var, time_index) + TI_data_raw[var] = var_data_df + TI_data = points.copy(deep=True) + + for var in TI_vars: + TI_data[var] = interp.griddata( + TI_data_raw[var][["x", "y", "waterdepth"]], + TI_data_raw[var][var], + points[["x", "y", "waterdepth"]], + ) + idx = np.where(np.isnan(TI_data[var])) + + if len(idx[0]): + for i in idx[0]: + TI_data[var][i] = interp.griddata( + TI_data_raw[var][["x", "y", "waterdepth"]], + TI_data_raw[var][var], + [points["x"][i], points["y"][i], points["waterdepth"][i]], + method="nearest", + ) + + u_mag = river.io.d3d.unorm(TI_data["ucx"], TI_data["ucy"], TI_data["ucz"]) + turbulent_intensity_expected = ( + np.sqrt(2 / 3 * TI_data["turkin1"]) / u_mag + ) * 100 + + assert_array_almost_equal( + TI.turbulent_intensity, turbulent_intensity_expected, decimal=2 + ) + + TI = river.io.d3d.turbulent_intensity(data, points="faces") + TI_size = np.size(TI["turbulent_intensity"]) + turkin1 = river.io.d3d.get_all_data_points(data, "turkin1", time_index) + turkin1_size = np.size(turkin1["turkin1"]) + self.assertEqual(TI_size, turkin1_size) + + TI = river.io.d3d.turbulent_intensity(data, points="cells") + TI_size = np.size(TI["turbulent_intensity"]) + ucx = river.io.d3d.get_all_data_points(data, "ucx", time_index) + ucx_size = np.size(ucx["ucx"]) + self.assertEqual(TI_size, ucx_size) + + +if __name__ == "__main__": + unittest.main() diff --git a/mhkit/tests/river/test_io_usgs.py b/mhkit/tests/river/test_io_usgs.py new file mode 100644 index 000000000..b422bee2c --- /dev/null +++ b/mhkit/tests/river/test_io_usgs.py @@ -0,0 +1,66 @@ +from os.path import abspath, dirname, join, isfile, normpath, relpath +import mhkit.river as river +import pandas as pd +import unittest +import os + + +testdir = dirname(abspath(__file__)) +plotdir = join(testdir, "plots") +isdir = os.path.isdir(plotdir) +if not isdir: + os.mkdir(plotdir) +datadir = normpath(join(testdir, "..", "..", "..", "examples", "data", "river")) + + +class TestIO(unittest.TestCase): + @classmethod + def setUpClass(self): + pass + + @classmethod + def tearDownClass(self): + pass + + def test_load_usgs_data_instantaneous(self): + file_name = join(datadir, "USGS_08313000_Jan2019_instantaneous.json") + data = river.io.usgs.read_usgs_file(file_name) + + self.assertEqual(data.columns, ["Discharge, cubic feet per second"]) + self.assertEqual(data.shape, (2972, 1)) # 4 data points are missing + + def test_load_usgs_data_daily(self): + file_name = join(datadir, "USGS_08313000_Jan2019_daily.json") + data = river.io.usgs.read_usgs_file(file_name) + + expected_index = pd.date_range("2019-01-01", "2019-01-31", freq="D") + self.assertEqual(data.columns, ["Discharge, cubic feet per second"]) + self.assertEqual((data.index == expected_index.tz_localize("UTC")).all(), True) + self.assertEqual(data.shape, (31, 1)) + + def test_request_usgs_data_daily(self): + data = river.io.usgs.request_usgs_data( + station="15515500", + parameter="00060", + start_date="2009-08-01", + end_date="2009-08-10", + data_type="Daily", + ) + self.assertEqual(data.columns, ["Discharge, cubic feet per second"]) + self.assertEqual(data.shape, (10, 1)) + + def test_request_usgs_data_instant(self): + data = river.io.usgs.request_usgs_data( + station="15515500", + parameter="00060", + start_date="2009-08-01", + end_date="2009-08-10", + data_type="Instantaneous", + ) + self.assertEqual(data.columns, ["Discharge, cubic feet per second"]) + # Every 15 minutes or 4 times per hour + self.assertEqual(data.shape, (10 * 24 * 4, 1)) + + +if __name__ == "__main__": + unittest.main() diff --git a/mhkit/tests/river/test_performance.py b/mhkit/tests/river/test_performance.py index d1ef596a0..34c1d6147 100644 --- a/mhkit/tests/river/test_performance.py +++ b/mhkit/tests/river/test_performance.py @@ -12,10 +12,11 @@ testdir = dirname(abspath(__file__)) -plotdir = join(testdir, 'plots') +plotdir = join(testdir, "plots") isdir = os.path.isdir(plotdir) -if not isdir: os.mkdir(plotdir) -datadir = normpath(join(testdir,'..','..','..','examples','data','river')) +if not isdir: + os.mkdir(plotdir) +datadir = normpath(join(testdir, "..", "..", "..", "examples", "data", "river")) class TestPerformance(unittest.TestCase): @@ -24,26 +25,26 @@ def setUpClass(self): self.diameter = 1 self.height = 2 self.width = 3 - self.diameters = [1,2,3,4] + self.diameters = [1, 2, 3, 4] @classmethod def tearDownClass(self): pass - + def test_circular(self): - eq, ca = river.performance.circular(self.diameter) + eq, ca = river.performance.circular(self.diameter) self.assertEqual(eq, self.diameter) - self.assertEqual(ca, 0.25*np.pi*self.diameter**2.) + self.assertEqual(ca, 0.25 * np.pi * self.diameter**2.0) def test_ducted(self): - eq, ca =river.performance.ducted(self.diameter) + eq, ca = river.performance.ducted(self.diameter) self.assertEqual(eq, self.diameter) - self.assertEqual(ca, 0.25*np.pi*self.diameter**2.) - + self.assertEqual(ca, 0.25 * np.pi * self.diameter**2.0) + def test_rectangular(self): eq, ca = river.performance.rectangular(self.height, self.width) self.assertAlmostEqual(eq, 2.76, places=2) - self.assertAlmostEqual(ca, self.height*self.width, places=2) + self.assertAlmostEqual(ca, self.height * self.width, places=2) def test_multiple_circular(self): eq, ca = river.performance.multiple_circular(self.diameters) @@ -51,30 +52,33 @@ def test_multiple_circular(self): self.assertAlmostEqual(ca, 23.56, places=2) def test_tip_speed_ratio(self): - rotor_speed = [15,16,17,18] # create array of rotor speeds - rotor_diameter = 77 # diameter of rotor for GE 1.5 - inflow_speed = [13,13,13,13] # array of wind speeds - TSR_answer = [4.7,5.0,5.3,5.6] - - TSR = river.performance.tip_speed_ratio(np.asarray(rotor_speed)/60,rotor_diameter,inflow_speed) + rotor_speed = [15, 16, 17, 18] # create array of rotor speeds + rotor_diameter = 77 # diameter of rotor for GE 1.5 + inflow_speed = [13, 13, 13, 13] # array of wind speeds + TSR_answer = [4.7, 5.0, 5.3, 5.6] - for i,j in zip(TSR,TSR_answer): - self.assertAlmostEqual(i,j,delta=0.05) + TSR = river.performance.tip_speed_ratio( + np.asarray(rotor_speed) / 60, rotor_diameter, inflow_speed + ) + + for i, j in zip(TSR, TSR_answer): + self.assertAlmostEqual(i, j, delta=0.05) def test_power_coefficient(self): # data obtained from power performance report of wind turbine - inflow_speed = [4,6,8,10,12,14,16,18,20] - power_out = np.asarray([59,304,742,1200,1400,1482,1497,1497,1511]) + inflow_speed = [4, 6, 8, 10, 12, 14, 16, 18, 20] + power_out = np.asarray([59, 304, 742, 1200, 1400, 1482, 1497, 1497, 1511]) capture_area = 4656.63 rho = 1.225 - Cp_answer = [0.320,0.493,0.508,0.421,0.284,0.189,0.128,0.090,0.066] - - Cp = river.performance.power_coefficient(power_out*1000,inflow_speed,capture_area,rho) + Cp_answer = [0.320, 0.493, 0.508, 0.421, 0.284, 0.189, 0.128, 0.090, 0.066] + + Cp = river.performance.power_coefficient( + power_out * 1000, inflow_speed, capture_area, rho + ) - for i,j in zip(Cp,Cp_answer): - self.assertAlmostEqual(i,j,places=2) + for i, j in zip(Cp, Cp_answer): + self.assertAlmostEqual(i, j, places=2) - -if __name__ == '__main__': - unittest.main() +if __name__ == "__main__": + unittest.main() diff --git a/mhkit/tests/river/test_resource.py b/mhkit/tests/river/test_resource.py index 5ef4a402a..8b3a73023 100644 --- a/mhkit/tests/river/test_resource.py +++ b/mhkit/tests/river/test_resource.py @@ -1,195 +1,355 @@ -from os.path import abspath, dirname, join, isfile, normpath, relpath -from numpy.testing import assert_array_almost_equal -from pandas.testing import assert_frame_equal -import scipy.interpolate as interp +from os.path import abspath, dirname, join, isfile, normpath import matplotlib.pylab as plt import mhkit.river as river import pandas as pd +import xarray as xr import numpy as np import unittest -import netCDF4 import os testdir = dirname(abspath(__file__)) -plotdir = join(testdir, 'plots') +plotdir = join(testdir, "plots") isdir = os.path.isdir(plotdir) -if not isdir: os.mkdir(plotdir) -datadir = normpath(join(testdir,'..','..','..','examples','data','river')) +if not isdir: + os.mkdir(plotdir) +datadir = normpath(join(testdir, "..", "..", "..", "examples", "data", "river")) class TestResource(unittest.TestCase): - @classmethod def setUpClass(self): - self.data = pd.read_csv(join(datadir, 'tanana_discharge_data.csv'), index_col=0, - parse_dates=True) - self.data.columns = ['Q'] - - self.results = pd.read_csv(join(datadir, 'tanana_test_results.csv'), index_col=0, - parse_dates=True) + self.data = pd.read_csv( + join(datadir, "tanana_discharge_data.csv"), index_col=0, parse_dates=True + ) + self.data.columns = ["Q"] + + self.results = pd.read_csv( + join(datadir, "tanana_test_results.csv"), index_col=0, parse_dates=True + ) @classmethod def tearDownClass(self): pass - def test_Froude_number(self): v = 2 h = 5 Fr = river.resource.Froude_number(v, h) self.assertAlmostEqual(Fr, 0.286, places=3) - + + def test_froude_number_v_type_error(self): + v = "invalid_type" # String instead of int/float + h = 5 + with self.assertRaises(TypeError): + river.resource.Froude_number(v, h) + + def test_froude_number_h_type_error(self): + v = 2 + h = "invalid_type" # String instead of int/float + with self.assertRaises(TypeError): + river.resource.Froude_number(v, h) + + def test_froude_number_g_type_error(self): + v = 2 + h = 5 + g = "invalid_type" # String instead of int/float + with self.assertRaises(TypeError): + river.resource.Froude_number(v, h, g) def test_exceedance_probability(self): # Create arbitrary discharge between 0 and 8(N=9) Q = pd.Series(np.arange(9)) # Rank order for non-repeating elements simply adds 1 to each element - #if N=9, max F = 100((max(Q)+1)/10) = 90% - #if N=9, min F = 100((min(Q)+1)/10) = 10% + # if N=9, max F = 100((max(Q)+1)/10) = 90% + # if N=9, min F = 100((min(Q)+1)/10) = 10% + f = river.resource.exceedance_probability(Q) + self.assertEqual(f.min().values, 10.0) + self.assertEqual(f.max().values, 90.0) + + def test_exceedance_probability_xarray(self): + # Create arbitrary discharge between 0 and 8(N=9) + Q = xr.DataArray( + data=np.arange(9), dims="index", coords={"index": np.arange(9)} + ) + # if N=9, max F = 100((max(Q)+1)/10) = 90% + # if N=9, min F = 100((min(Q)+1)/10) = 10% f = river.resource.exceedance_probability(Q) - self.assertEqual(f.min().values , 10. ) - self.assertEqual(f.max().values , 90. ) + self.assertEqual(f.min().values, 10.0) + self.assertEqual(f.max().values, 90.0) + def test_exceedance_probability_type_error(self): + D = "invalid_type" # String instead of pd.Series or pd.DataFrame + with self.assertRaises(TypeError): + river.resource.exceedance_probability(D) def test_polynomial_fit(self): # Calculate a first order polynomial on an x=y line - p, r2 = river.resource.polynomial_fit(np.arange(8), np.arange(8),1) + p, r2 = river.resource.polynomial_fit(np.arange(8), np.arange(8), 1) # intercept should be 0 - self.assertAlmostEqual(p[0], 0.0, places=2 ) + self.assertAlmostEqual(p[0], 0.0, places=2) # slope should be 1 - self.assertAlmostEqual(p[1], 1.0, places=2 ) + self.assertAlmostEqual(p[1], 1.0, places=2) # r-squared should be perfect - self.assertAlmostEqual(r2, 1.0, places=2 ) + self.assertAlmostEqual(r2, 1.0, places=2) + def test_polynomial_fit_x_type_error(self): + x = "invalid_type" # String instead of numpy array + y = np.array([1, 2, 3]) + n = 1 + with self.assertRaises(TypeError): + river.resource.polynomial_fit(x, y, n) + + def test_polynomial_fit_y_type_error(self): + x = np.array([1, 2, 3]) + y = "invalid_type" # String instead of numpy array + n = 1 + with self.assertRaises(TypeError): + river.resource.polynomial_fit(x, y, n) + + def test_polynomial_fit_n_type_error(self): + x = np.array([1, 2, 3]) + y = np.array([1, 2, 3]) + n = "invalid_type" # String instead of int + with self.assertRaises(TypeError): + river.resource.polynomial_fit(x, y, n) def test_discharge_to_velocity(self): # Create arbitrary discharge between 0 and 8(N=9) Q = pd.Series(np.arange(9)) # Calculate a first order polynomial on an DV_Curve x=y line 10 times greater than the Q values - p, r2 = river.resource.polynomial_fit(np.arange(9), 10*np.arange(9),1) - # Becuase the polynomial line fits perfect we should expect the V to equal 10*Q + p, r2 = river.resource.polynomial_fit(np.arange(9), 10 * np.arange(9), 1) + # Because the polynomial line fits perfect we should expect the V to equal 10*Q V = river.resource.discharge_to_velocity(Q, p) - self.assertAlmostEqual(np.sum(10*Q - V['V']), 0.00, places=2 ) - + self.assertAlmostEqual(np.sum(10 * Q - V["V"]), 0.00, places=2) + + def test_discharge_to_velocity_xarray(self): + # Create arbitrary discharge between 0 and 8(N=9) + Q = xr.DataArray( + data=np.arange(9), dims="index", coords={"index": np.arange(9)} + ) + # Calculate a first order polynomial on an DV_Curve x=y line 10 times greater than the Q values + p, r2 = river.resource.polynomial_fit(np.arange(9), 10 * np.arange(9), 1) + # Because the polynomial line fits perfect we should expect the V to equal 10*Q + V = river.resource.discharge_to_velocity(Q, p, to_pandas=False) + self.assertAlmostEqual(np.sum(10 * Q - V["V"]).values, 0.00, places=2) + + def test_discharge_to_velocity_D_type_error(self): + D = "invalid_type" # String instead of pd.Series or pd.DataFrame + polynomial_coefficients = np.poly1d([1, 2]) + with self.assertRaises(TypeError): + river.resource.discharge_to_velocity(D, polynomial_coefficients) + + def test_discharge_to_velocity_polynomial_coefficients_type_error(self): + D = pd.Series([1, 2, 3]) + polynomial_coefficients = "invalid_type" # String instead of np.poly1d + with self.assertRaises(TypeError): + river.resource.discharge_to_velocity(D, polynomial_coefficients) def test_velocity_to_power(self): # Calculate a first order polynomial on an DV_Curve x=y line 10 times greater than the Q values - p, r2 = river.resource.polynomial_fit(np.arange(9), 10*np.arange(9),1) - # Becuase the polynomial line fits perfect we should expect the V to equal 10*Q + p, r2 = river.resource.polynomial_fit(np.arange(9), 10 * np.arange(9), 1) + # Because the polynomial line fits perfect we should expect the V to equal 10*Q V = river.resource.discharge_to_velocity(pd.Series(np.arange(9)), p) # Calculate a first order polynomial on an VP_Curve x=y line 10 times greater than the V values - p2, r22 = river.resource.polynomial_fit(np.arange(9), 10*np.arange(9),1) + p2, r22 = river.resource.polynomial_fit(np.arange(9), 10 * np.arange(9), 1) + # Set cut in/out to exclude 1 bin on either end of V range + cut_in = V["V"][1] + cut_out = V["V"].iloc[-2] + # Power should be 10x greater and exclude the ends of V + P = river.resource.velocity_to_power(V["V"], p2, cut_in, cut_out) + # Cut in power zero + self.assertAlmostEqual(P["P"][0], 0.00, places=2) + # Cut out power zero + self.assertAlmostEqual(P["P"].iloc[-1], 0.00, places=2) + # Middle 10x greater than velocity + self.assertAlmostEqual((P["P"][1:-1] - 10 * V["V"][1:-1]).sum(), 0.00, places=2) + + def test_velocity_to_power_xarray(self): + # Calculate a first order polynomial on an DV_Curve x=y line 10 times greater than the Q values + p, r2 = river.resource.polynomial_fit(np.arange(9), 10 * np.arange(9), 1) + # Because the polynomial line fits perfect we should expect the V to equal 10*Q + V = river.resource.discharge_to_velocity( + pd.Series(np.arange(9)), p, dimension="", to_pandas=False + ) + # Calculate a first order polynomial on an VP_Curve x=y line 10 times greater than the V values + p2, r22 = river.resource.polynomial_fit(np.arange(9), 10 * np.arange(9), 1) # Set cut in/out to exclude 1 bin on either end of V range - cut_in = V['V'][1] - cut_out = V['V'].iloc[-2] + cut_in = V["V"].values[1] + cut_out = V["V"].values[-2] # Power should be 10x greater and exclude the ends of V - P = river.resource.velocity_to_power(V['V'], p2, cut_in, cut_out) - #Cut in power zero - self.assertAlmostEqual(P['P'][0], 0.00, places=2 ) - #Cut out power zero - self.assertAlmostEqual(P['P'].iloc[-1], 0.00, places=2 ) + P = river.resource.velocity_to_power( + V["V"], p2, cut_in, cut_out, to_pandas=False + ) + # Cut in power zero + self.assertAlmostEqual(P["P"][0], 0.00, places=2) + # Cut out power zero + self.assertAlmostEqual(P["P"][-1], 0.00, places=2) # Middle 10x greater than velocity - self.assertAlmostEqual((P['P'][1:-1] - 10*V['V'][1:-1] ).sum(), 0.00, places=2 ) + self.assertAlmostEqual( + (P["P"][1:-1] - 10 * V["V"][1:-1]).sum().values, 0.00, places=2 + ) + + def test_velocity_to_power_V_type_error(self): + V = "invalid_type" # String instead of pd.Series or pd.DataFrame + polynomial_coefficients = np.poly1d([1, 2]) + cut_in = 1 + cut_out = 5 + with self.assertRaises(TypeError): + river.resource.velocity_to_power( + V, polynomial_coefficients, cut_in, cut_out + ) + + def test_velocity_to_power_polynomial_coefficients_type_error(self): + V = pd.Series([1, 2, 3]) + polynomial_coefficients = "invalid_type" # String instead of np.poly1d + cut_in = 1 + cut_out = 5 + with self.assertRaises(TypeError): + river.resource.velocity_to_power( + V, polynomial_coefficients, cut_in, cut_out + ) + def test_velocity_to_power_cut_in_type_error(self): + V = pd.Series([1, 2, 3]) + polynomial_coefficients = np.poly1d([1, 2]) + cut_in = "invalid_type" # String instead of int/float + cut_out = 5 + with self.assertRaises(TypeError): + river.resource.velocity_to_power( + V, polynomial_coefficients, cut_in, cut_out + ) + + def test_velocity_to_power_cut_out_type_error(self): + V = pd.Series([1, 2, 3]) + polynomial_coefficients = np.poly1d([1, 2]) + cut_in = 1 + cut_out = "invalid_type" # String instead of int/float + with self.assertRaises(TypeError): + river.resource.velocity_to_power( + V, polynomial_coefficients, cut_in, cut_out + ) def test_energy_produced(self): - # If power is always X then energy produced with be x*seconds - X=1 - seconds=1 - P = pd.Series(X*np.ones(10) ) + # If power is always X then energy produced with be x*seconds + X = 1 + seconds = 1 + P = pd.Series(X * np.ones(10)) EP = river.resource.energy_produced(P, seconds) - self.assertAlmostEqual(EP, X*seconds, places=1 ) + self.assertAlmostEqual(EP, X * seconds, places=1) # for a normal distribution of Power EP = mean *seconds - mu=5 - sigma=1 + mu = 5 + sigma = 1 power_dist = pd.Series(np.random.normal(mu, sigma, 10000)) EP2 = river.resource.energy_produced(power_dist, seconds) -# import ipdb; ipdb.set_trace() - self.assertAlmostEqual(EP2, mu*seconds, places=1 ) + self.assertAlmostEqual(EP2, mu * seconds, places=1) + + def test_energy_produced_xarray(self): + # If power is always X then energy produced with be x*seconds + X = 1 + seconds = 1 + P = xr.DataArray(data=X * np.ones(10)) + EP = river.resource.energy_produced(P, seconds) + self.assertAlmostEqual(EP, X * seconds, places=1) + + # for a normal distribution of Power EP = mean *seconds + mu = 5 + sigma = 1 + power_dist = xr.DataArray(data=np.random.normal(mu, sigma, 10000)) + EP2 = river.resource.energy_produced(power_dist, seconds) + self.assertAlmostEqual(EP2, mu * seconds, places=1) + def test_energy_produced_P_type_error(self): + P = "invalid_type" # String instead of pd.Series or pd.DataFrame + seconds = 3600 + with self.assertRaises(TypeError): + river.resource.energy_produced(P, seconds) + + def test_energy_produced_seconds_type_error(self): + P = pd.Series([100, 200, 300]) + seconds = "invalid_type" # String instead of int/float + with self.assertRaises(TypeError): + river.resource.energy_produced(P, seconds) def test_plot_flow_duration_curve(self): - filename = abspath(join(plotdir, 'river_plot_flow_duration_curve.png')) + filename = abspath(join(plotdir, "river_plot_flow_duration_curve.png")) if isfile(filename): os.remove(filename) - + f = river.resource.exceedance_probability(self.data.Q) plt.figure() - river.graphics.plot_flow_duration_curve(self.data['Q'], f['F']) - plt.savefig(filename, format='png') + river.graphics.plot_flow_duration_curve(self.data["Q"], f["F"]) + plt.savefig(filename, format="png") plt.close() - + self.assertTrue(isfile(filename)) - def test_plot_power_duration_curve(self): - filename = abspath(join(plotdir, 'river_plot_power_duration_curve.png')) + filename = abspath(join(plotdir, "river_plot_power_duration_curve.png")) if isfile(filename): os.remove(filename) - + f = river.resource.exceedance_probability(self.data.Q) plt.figure() - river.graphics.plot_flow_duration_curve(self.results['P_control'], f['F']) - plt.savefig(filename, format='png') + river.graphics.plot_flow_duration_curve(self.results["P_control"], f["F"]) + plt.savefig(filename, format="png") plt.close() - + self.assertTrue(isfile(filename)) - def test_plot_velocity_duration_curve(self): - filename = abspath(join(plotdir, 'river_plot_velocity_duration_curve.png')) + filename = abspath(join(plotdir, "river_plot_velocity_duration_curve.png")) if isfile(filename): os.remove(filename) - + f = river.resource.exceedance_probability(self.data.Q) plt.figure() - river.graphics.plot_velocity_duration_curve(self.results['V_control'], f['F']) - plt.savefig(filename, format='png') + river.graphics.plot_velocity_duration_curve(self.results["V_control"], f["F"]) + plt.savefig(filename, format="png") plt.close() - + self.assertTrue(isfile(filename)) - def test_plot_discharge_timeseries(self): - filename = abspath(join(plotdir, 'river_plot_discharge_timeseries.png')) - if isfile(filename): os.remove(filename) - + filename = abspath(join(plotdir, "river_plot_discharge_timeseries.png")) + if isfile(filename): + os.remove(filename) + plt.figure() - river.graphics.plot_discharge_timeseries(self.data['Q']) - plt.savefig(filename, format='png') + river.graphics.plot_discharge_timeseries(self.data["Q"]) + plt.savefig(filename, format="png") plt.close() - + self.assertTrue(isfile(filename)) - def test_plot_discharge_vs_velocity(self): - filename = abspath(join(plotdir, 'river_plot_discharge_vs_velocity.png')) + filename = abspath(join(plotdir, "river_plot_discharge_vs_velocity.png")) if isfile(filename): os.remove(filename) - + plt.figure() - river.graphics.plot_discharge_vs_velocity(self.data['Q'], self.results['V_control']) - plt.savefig(filename, format='png') + river.graphics.plot_discharge_vs_velocity( + self.data["Q"], self.results["V_control"] + ) + plt.savefig(filename, format="png") plt.close() - + self.assertTrue(isfile(filename)) - def test_plot_velocity_vs_power(self): - filename = abspath(join(plotdir, 'river_plot_velocity_vs_power.png')) + filename = abspath(join(plotdir, "river_plot_velocity_vs_power.png")) if isfile(filename): os.remove(filename) - + plt.figure() - river.graphics.plot_velocity_vs_power(self.results['V_control'], self.results['P_control']) - plt.savefig(filename, format='png') + river.graphics.plot_velocity_vs_power( + self.results["V_control"], self.results["P_control"] + ) + plt.savefig(filename, format="png") plt.close() - + self.assertTrue(isfile(filename)) - - -if __name__ == '__main__': - unittest.main() +if __name__ == "__main__": + unittest.main() diff --git a/mhkit/tests/tidal/test_io.py b/mhkit/tests/tidal/test_io.py index fa09db656..6993be815 100644 --- a/mhkit/tests/tidal/test_io.py +++ b/mhkit/tests/tidal/test_io.py @@ -12,6 +12,7 @@ - Requesting NOAA data with invalid date format - Requesting NOAA data with the end date before the start date """ + from os.path import abspath, dirname, join, normpath, relpath import unittest import os @@ -22,15 +23,14 @@ testdir = dirname(abspath(__file__)) -plotdir = join(testdir, 'plots') +plotdir = join(testdir, "plots") isdir = os.path.isdir(plotdir) if not isdir: os.mkdir(plotdir) -datadir = normpath(join(testdir, relpath('../../../examples/data/tidal'))) +datadir = normpath(join(testdir, relpath("../../../examples/data/tidal"))) class TestIO(unittest.TestCase): - @classmethod def setUpClass(self): pass @@ -41,46 +41,79 @@ def tearDownClass(self): def test_load_noaa_data(self): """ - Test that the read_noaa_json function reads data from a + Test that the read_noaa_json function reads data from a JSON file and returns a DataFrame and metadata with the correct shape and columns. """ - file_name = join(datadir, 's08010.json') + file_name = join(datadir, "s08010.json") data, metadata = tidal.io.noaa.read_noaa_json(file_name) - self.assertTrue(np.all(data.columns == ['s', 'd', 'b'])) + self.assertTrue(np.all(data.columns == ["s", "d", "b"])) self.assertEqual(data.shape, (18890, 3)) + self.assertEqual(metadata["id"], "s08010") + + def test_load_noaa_data_xarray(self): + """ + Test that the read_noaa_json function reads data from a + JSON file and returns a DataFrame and metadata with the + correct shape and columns. + """ + file_name = join(datadir, "s08010.json") + data = tidal.io.noaa.read_noaa_json(file_name, to_pandas=False) + self.assertTrue(np.all(list(data.variables) == ["index", "s", "d", "b"])) + self.assertEqual(len(data["index"]), 18890) + self.assertEqual(data.attrs["id"], "s08010") def test_request_noaa_data_basic(self): """ Test the request_noaa_data function with basic input parameters - and verify that the returned DataFrame and metadata have the + and verify that the returned DataFrame and metadata have the correct shape and columns. """ data, metadata = tidal.io.noaa.request_noaa_data( - station='s08010', - parameter='currents', - start_date='20180101', - end_date='20180102', + station="s08010", + parameter="currents", + start_date="20180101", + end_date="20180102", proxy=None, - write_json=None + write_json=None, ) - self.assertTrue(np.all(data.columns == ['s', 'd', 'b'])) + self.assertTrue(np.all(data.columns == ["s", "d", "b"])) self.assertEqual(data.shape, (183, 3)) + self.assertEqual(metadata["id"], "s08010") + + def test_request_noaa_data_basic_xarray(self): + """ + Test the request_noaa_data function with basic input parameters + and verify that the returned DataFrame and metadata have the + correct shape and columns. + """ + data = tidal.io.noaa.request_noaa_data( + station="s08010", + parameter="currents", + start_date="20180101", + end_date="20180102", + proxy=None, + write_json=None, + to_pandas=False, + ) + self.assertTrue(np.all(list(data.variables) == ["index", "s", "d", "b"])) + self.assertEqual(len(data["index"]), 183) + self.assertEqual(data.attrs["id"], "s08010") def test_request_noaa_data_write_json(self): """ Test the request_noaa_data function with the write_json parameter - and verify that the returned JSON file has the correct structure + and verify that the returned JSON file has the correct structure and can be loaded back into a dictionary. """ - test_json_file = 'test_noaa_data.json' - data, metadata = tidal.io.noaa.request_noaa_data( - station='s08010', - parameter='currents', - start_date='20180101', - end_date='20180102', + test_json_file = "test_noaa_data.json" + _, _ = tidal.io.noaa.request_noaa_data( + station="s08010", + parameter="currents", + start_date="20180101", + end_date="20180102", proxy=None, - write_json=test_json_file + write_json=test_json_file, ) self.assertTrue(os.path.isfile(test_json_file)) @@ -89,10 +122,10 @@ def test_request_noaa_data_write_json(self): os.remove(test_json_file) # Clean up the test JSON file - self.assertIn('metadata', loaded_data) - self.assertIn('s', loaded_data) - self.assertIn('d', loaded_data) - self.assertIn('b', loaded_data) + self.assertIn("metadata", loaded_data) + self.assertIn("s", loaded_data["columns"]) + self.assertIn("d", loaded_data["columns"]) + self.assertIn("b", loaded_data["columns"]) def test_request_noaa_data_invalid_dates(self): """ @@ -101,29 +134,29 @@ def test_request_noaa_data_invalid_dates(self): """ with self.assertRaises(ValueError): tidal.io.noaa.request_noaa_data( - station='s08010', - parameter='currents', - start_date='2018-01-01', # Invalid date format - end_date='20180102', + station="s08010", + parameter="currents", + start_date="2018-01-01", # Invalid date format + end_date="20180102", proxy=None, - write_json=None + write_json=None, ) def test_request_noaa_data_end_before_start(self): """ - Test the request_noaa_data function with the end date before + Test the request_noaa_data function with the end date before the start date and verify that it raises a ValueError. """ with self.assertRaises(ValueError): tidal.io.noaa.request_noaa_data( - station='s08010', - parameter='currents', - start_date='20180102', - end_date='20180101', # End date before start date + station="s08010", + parameter="currents", + start_date="20180102", + end_date="20180101", # End date before start date proxy=None, - write_json=None + write_json=None, ) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/tidal/test_performance.py b/mhkit/tests/tidal/test_performance.py index b06984e59..43c13b473 100644 --- a/mhkit/tests/tidal/test_performance.py +++ b/mhkit/tests/tidal/test_performance.py @@ -8,110 +8,205 @@ from mhkit.dolfyn import load testdir = dirname(abspath(__file__)) -plotdir = join(testdir, 'plots') +plotdir = join(testdir, "plots") isdir = os.path.isdir(plotdir) -if not isdir: os.mkdir(plotdir) -datadir = normpath(join(testdir,relpath('../../../examples/data/tidal'))) +if not isdir: + os.mkdir(plotdir) +datadir = normpath(join(testdir, relpath("../../../examples/data/tidal"))) class TestResource(unittest.TestCase): - @classmethod def setUpClass(self): - filename = join(datadir, 'adcp.principal.a1.20200815.nc') + filename = join(datadir, "adcp.principal.a1.20200815.nc") self.ds = load(filename) # Emulate power data - self.power = abs(self.ds['vel'][0,10]**3 * 1e5) + self.power = abs(self.ds["vel"][0, 10] ** 3 * 1e5) @classmethod def tearDownClass(self): pass - def test_power_curve(self,): + def test_power_curve(self): df93_circ = performance.power_curve( power=self.power, - velocity=self.ds['vel'].sel(dir='streamwise'), + velocity=self.ds["vel"].sel(dir="streamwise"), hub_height=4.2, - doppler_cell_size=0.5, - sampling_frequency=1, + doppler_cell_size=0.5, + sampling_frequency=1, window_avg_time=600, - turbine_profile='circular', + turbine_profile="circular", diameter=3, height=None, - width=None) - test_circ = np.array([1.26250990e+00, - 1.09230978e+00, - 1.89122103e+05, - 1.03223668e+04, - 2.04261423e+05, - 1.72095731e+05]) + width=None, + ) + test_circ = np.array( + [ + 1.26250990e00, + 1.09230978e00, + 1.89122103e05, + 1.03223668e04, + 2.04261423e05, + 1.72095731e05, + ] + ) df93_rect = performance.power_curve( power=self.power, - velocity=self.ds['vel'].sel(dir='streamwise'), + velocity=self.ds["vel"].sel(dir="streamwise"), hub_height=4.2, - doppler_cell_size=0.5, - sampling_frequency=1, + doppler_cell_size=0.5, + sampling_frequency=1, window_avg_time=600, - turbine_profile='rectangular', + turbine_profile="rectangular", diameter=None, height=1, - width=3) - test_rect = np.array([1.15032239e+00, - 3.75747621e-01, - 1.73098627e+05, - 3.04090212e+04, - 2.09073742e+05, - 1.27430552e+05]) - + width=3, + ) + test_rect = np.array( + [ + 1.15032239e00, + 3.75747621e-01, + 1.73098627e05, + 3.04090212e04, + 2.09073742e05, + 1.27430552e05, + ] + ) + assert_allclose(df93_circ.values[-2], test_circ, atol=1e-5) assert_allclose(df93_rect.values[-3], test_rect, atol=1e-5) + def test_power_curve_xarray(self): + df93_circ = performance.power_curve( + power=self.power, + velocity=self.ds["vel"].sel(dir="streamwise"), + hub_height=4.2, + doppler_cell_size=0.5, + sampling_frequency=1, + window_avg_time=600, + turbine_profile="circular", + diameter=3, + height=None, + width=None, + to_pandas=False, + ) + test_circ = np.array( + [ + 1.26250990e00, + 1.09230978e00, + 1.89122103e05, + 1.03223668e04, + 2.04261423e05, + 1.72095731e05, + ] + ) + + df93_rect = performance.power_curve( + power=self.power, + velocity=self.ds["vel"].sel(dir="streamwise"), + hub_height=4.2, + doppler_cell_size=0.5, + sampling_frequency=1, + window_avg_time=600, + turbine_profile="rectangular", + diameter=None, + height=1, + width=3, + to_pandas=False, + ) + test_rect = np.array( + [ + 1.15032239e00, + 3.75747621e-01, + 1.73098627e05, + 3.04090212e04, + 2.09073742e05, + 1.27430552e05, + ] + ) + + assert_allclose(df93_circ.isel(U_bins=-2).to_array(), test_circ, atol=1e-5) + assert_allclose(df93_rect.isel(U_bins=-3).to_array(), test_rect, atol=1e-5) + def test_velocity_profiles(self): df94 = performance.velocity_profiles( - velocity=self.ds['vel'].sel(dir='streamwise'), + velocity=self.ds["vel"].sel(dir="streamwise"), hub_height=4.2, water_depth=10, - sampling_frequency=1, + sampling_frequency=1, window_avg_time=600, - function='mean') + function="mean", + ) df95a = performance.velocity_profiles( - velocity=self.ds['vel'].sel(dir='streamwise'), + velocity=self.ds["vel"].sel(dir="streamwise"), hub_height=4.2, water_depth=10, sampling_frequency=1, window_avg_time=600, - function='rms') + function="rms", + ) df95b = performance.velocity_profiles( - velocity=self.ds['vel'].sel(dir='streamwise'), - hub_height=4.2, + velocity=self.ds["vel"].sel(dir="streamwise"), + hub_height=4.2, water_depth=10, - sampling_frequency=1, + sampling_frequency=1, window_avg_time=600, - function='std') - + function="std", + ) + test_df94 = np.array([0.32782955, 0.69326691, 1.00948623]) - test_df95a = np.array([0.3329345 , 0.69936798, 1.01762123]) + test_df95a = np.array([0.3329345, 0.69936798, 1.01762123]) test_df95b = np.array([0.05635571, 0.08671777, 0.12735139]) assert_allclose(df94.values[1], test_df94, atol=1e-5) assert_allclose(df95a.values[1], test_df95a, atol=1e-5) assert_allclose(df95b.values[1], test_df95b, atol=1e-5) - + + def test_velocity_profiles_xarray(self): + df94 = performance.velocity_profiles( + velocity=self.ds["vel"].sel(dir="streamwise"), + hub_height=4.2, + water_depth=10, + sampling_frequency=1, + window_avg_time=600, + function="mean", + to_pandas=False, + ) + + test_df94 = np.array([0.32782955, 0.69326691, 1.00948623]) + + assert_allclose(df94[1], test_df94, atol=1e-5) def test_power_efficiency(self): df97 = performance.device_efficiency( self.power, - velocity=self.ds['vel'].sel(dir='streamwise'), - water_density=self.ds['water_density'], - capture_area=np.pi*1.5**2, + velocity=self.ds["vel"].sel(dir="streamwise"), + water_density=self.ds["water_density"], + capture_area=np.pi * 1.5**2, hub_height=4.2, sampling_frequency=1, - window_avg_time=600) - + window_avg_time=600, + ) + + test_df97 = np.array(24.79197) + assert_allclose(df97.values[-1, -1], test_df97, atol=1e-5) + + def test_power_efficiency_xarray(self): + df97 = performance.device_efficiency( + self.power, + velocity=self.ds["vel"].sel(dir="streamwise"), + water_density=self.ds["water_density"], + capture_area=np.pi * 1.5**2, + hub_height=4.2, + sampling_frequency=1, + window_avg_time=600, + to_pandas=False, + ) + test_df97 = np.array(24.79197) - assert_allclose(df97.values[-1,-1], test_df97, atol=1e-5) + assert_allclose(df97["Efficiency"][-1], test_df97, atol=1e-5) -if __name__ == '__main__': - unittest.main() +if __name__ == "__main__": + unittest.main() diff --git a/mhkit/tests/tidal/test_resource.py b/mhkit/tests/tidal/test_resource.py index a7adc996c..7b5b6ad11 100644 --- a/mhkit/tests/tidal/test_resource.py +++ b/mhkit/tests/tidal/test_resource.py @@ -7,103 +7,108 @@ import mhkit.tidal as tidal testdir = dirname(abspath(__file__)) -plotdir = join(testdir, 'plots') +plotdir = join(testdir, "plots") isdir = os.path.isdir(plotdir) -if not isdir: os.mkdir(plotdir) -datadir = normpath(join(testdir,relpath('../../../examples/data/tidal'))) +if not isdir: + os.mkdir(plotdir) +datadir = normpath(join(testdir, relpath("../../../examples/data/tidal"))) class TestResource(unittest.TestCase): - @classmethod def setUpClass(self): - file_name = join(datadir, 's08010.json') + file_name = join(datadir, "s08010.json") self.data, self.metadata = tidal.io.noaa.read_noaa_json(file_name) - self.data.s = self.data.s / 100. # convert to m/s + self.data.s = self.data.s / 100.0 # convert to m/s self.flood = 171.5 self.ebb = 354.5 - @classmethod def tearDownClass(self): pass - + def test_exceedance_probability(self): - df = pd.DataFrame.from_records( {'vals': np.array([ 1, 2, 3, 4, 5, 6, 7, 8, 9])} ) - df['F'] = tidal.resource.exceedance_probability(df.vals) - self.assertEqual(df['F'].min(), 10) - self.assertEqual(df['F'].max(), 90) - - - def test_principal_flow_directions(self): - width_direction=10 - direction1, direction2 = tidal.resource.principal_flow_directions(self.data.d, width_direction) - self.assertEqual(direction1,172.0) - self.assertEqual(round(direction2,1),round(352.3,1)) - + df = pd.DataFrame.from_records({"vals": np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])}) + df["F"] = tidal.resource.exceedance_probability(df.vals) + self.assertEqual(df["F"].min(), 10) + self.assertEqual(df["F"].max(), 90) + + def test_principal_flow_directions(self): + width_direction = 10 + direction1, direction2 = tidal.resource.principal_flow_directions( + self.data.d, width_direction + ) + self.assertEqual(direction1, 172.0) + self.assertEqual(round(direction2, 1), round(352.3, 1)) + def test_plot_current_timeseries(self): - filename = abspath(join(plotdir, 'tidal_plot_current_timeseries.png')) + filename = abspath(join(plotdir, "tidal_plot_current_timeseries.png")) if isfile(filename): os.remove(filename) - + plt.figure() tidal.graphics.plot_current_timeseries(self.data.d, self.data.s, 172) - plt.savefig(filename, format='png') + plt.savefig(filename, format="png") plt.close() - + self.assertTrue(isfile(filename)) - + def test_plot_joint_probability_distribution(self): - filename = abspath(join(plotdir, 'tidal_plot_joint_probability_distribution.png')) + filename = abspath( + join(plotdir, "tidal_plot_joint_probability_distribution.png") + ) if isfile(filename): os.remove(filename) - + plt.figure() - tidal.graphics.plot_joint_probability_distribution(self.data.d, self.data.s, 1, 0.1) - plt.savefig(f'{filename}') + tidal.graphics.plot_joint_probability_distribution( + self.data.d, self.data.s, 1, 0.1 + ) + plt.savefig(f"{filename}") plt.close() - + self.assertTrue(isfile(filename)) - + def test_plot_rose(self): - filename = abspath(join(plotdir, 'tidal_plot_rose.png')) + filename = abspath(join(plotdir, "tidal_plot_rose.png")) if isfile(filename): os.remove(filename) - + plt.figure() tidal.graphics.plot_rose(self.data.d, self.data.s, 1, 0.1) - plt.savefig(f'{filename}') + plt.savefig(f"{filename}") plt.close() - + self.assertTrue(isfile(filename)) def test_tidal_phase_probability(self): - filename = abspath(join(plotdir, 'tidal_plot_tidal_phase_probability.png')) + filename = abspath(join(plotdir, "tidal_plot_tidal_phase_probability.png")) if isfile(filename): os.remove(filename) - + plt.figure() - tidal.graphics.tidal_phase_probability(self.data.d, self.data.s, - self.flood, self.ebb) - plt.savefig(f'{filename}') + tidal.graphics.tidal_phase_probability( + self.data.d, self.data.s, self.flood, self.ebb + ) + plt.savefig(f"{filename}") plt.close() - + self.assertTrue(isfile(filename)) - + def test_tidal_phase_exceedance(self): - filename = abspath(join(plotdir, 'tidal_plot_tidal_phase_exceedance.png')) + filename = abspath(join(plotdir, "tidal_plot_tidal_phase_exceedance.png")) if isfile(filename): os.remove(filename) - + plt.figure() - tidal.graphics.tidal_phase_exceedance(self.data.d, self.data.s, - self.flood, self.ebb) - plt.savefig(f'{filename}') + tidal.graphics.tidal_phase_exceedance( + self.data.d, self.data.s, self.flood, self.ebb + ) + plt.savefig(f"{filename}") plt.close() - - self.assertTrue(isfile(filename)) + self.assertTrue(isfile(filename)) -if __name__ == '__main__': - unittest.main() +if __name__ == "__main__": + unittest.main() diff --git a/mhkit/tests/utils/test_cache.py b/mhkit/tests/utils/test_cache.py new file mode 100644 index 000000000..14aae0802 --- /dev/null +++ b/mhkit/tests/utils/test_cache.py @@ -0,0 +1,177 @@ +""" +Unit Testing for MHKiT Cache Utilities + +This module provides unit tests for the caching utilities present in the MHKiT library. +These utilities help in caching and retrieving data, ensuring efficient and repeatable +data access without redundant computations or network requests. + +The tests cover: +1. Creation of cache files with the correct file naming based on provided parameters. +2. Proper retrieval of data from the cache, ensuring data integrity. +3. Usage of appropriate file extensions based on the type of data being cached. +4. Clearing of cache directories as specified. + +By running these tests, one can validate that the caching utilities of MHKiT are functioning +as expected, ensuring that users can rely on cached data and metadata when using the MHKiT library. + +Usage: + python -m unittest test_cache.py + +Requirements: + - pandas + - hashlib + - tempfile + - shutil + - os + - unittest + - MHKiT library functions (from mhkit.utils.cache) + +Author: ssolson +Date: 2023-08-18 +""" + +import unittest +import hashlib +import tempfile +import shutil +import os +import pandas as pd +from mhkit.utils.cache import handle_caching, clear_cache + + +class TestCacheUtils(unittest.TestCase): + """ + Unit tests for cache utility functions. + + This test class provides a suite of tests to validate the functionality of caching utilities, + ensuring data is correctly cached, retrieved, and cleared. It specifically tests: + + 1. The creation of cache files by the `handle_caching` function. + 2. The correct retrieval of data from the cache. + 3. The appropriate file extension used when caching CDIP data. + 4. The effective clearing of specified cache directories. + + During the setup phase, a test cache directory is created, and sample data is prepared. + Upon completion of tests, the teardown phase ensures the test cache directory is removed, + leaving the environment clean. + + Attributes: + ----------- + cache_dir : str + Directory path where the test cache files will be stored. + hash_params : str + Sample parameters to be hashed for cache file naming. + data : pandas DataFrame + Sample data to be used for caching in tests. + """ + + @classmethod + def setUpClass(cls): + cls.cache_dir = os.path.join( + os.path.expanduser("~"), ".cache", "mhkit", "test_cache" + ) + cls.hash_params = "test_params" + cls.data = pd.DataFrame( + {"A": [1, 2, 3], "B": [4, 5, 6]}, index=pd.date_range("20220101", periods=3) + ) + + @classmethod + def tearDownClass(cls): + # Remove the test_cache directory + if os.path.exists(cls.cache_dir): + shutil.rmtree(cls.cache_dir) + + def test_handle_caching_creates_cache(self): + """ + Test if the `handle_caching` function correctly creates a cache file. + + The method tests the following scenario: + 1. Invokes the `handle_caching` function to cache a sample DataFrame. + 2. Constructs the expected cache file path based on provided `hash_params`. + 3. Checks if the cache file exists at the expected location. + + Asserts: + - The cache file is successfully created at the expected file path. + """ + handle_caching(self.hash_params, self.cache_dir, data=self.data) + + cache_filename = ( + hashlib.md5(self.hash_params.encode("utf-8")).hexdigest() + ".json" + ) + cache_filepath = os.path.join(self.cache_dir, cache_filename) + + assert os.path.isfile(cache_filepath) + + def test_handle_caching_retrieves_data(self): + """ + Test if the `handle_caching` function retrieves the correct data from cache. + + The method tests the following scenario: + 1. Invokes the `handle_caching` function to cache a sample DataFrame. + 2. Retrieves the data from the cache using the `handle_caching` function. + 3. Compares the retrieved data to the original sample DataFrame. + + Asserts: + - The retrieved data matches the original sample DataFrame. + """ + handle_caching(self.hash_params, self.cache_dir, data=self.data) + retrieved_data, _, _ = handle_caching(self.hash_params, self.cache_dir) + pd.testing.assert_frame_equal(self.data, retrieved_data, check_freq=False) + + def test_handle_caching_cdip_file_extension(self): + """ + Test if the `handle_caching` function uses the correct file extension for CDIP caching. + + The method tests the following scenario: + 1. Specifies the cache directory to include "cdip", signaling CDIP-related caching. + 2. Invokes the `handle_caching` function to cache a sample DataFrame in the CDIP directory. + 3. Constructs the expected cache file path using a ".pkl" extension based on provided `hash_params`. + 4. Checks if the cache file with the ".pkl" extension exists at the expected location. + + Asserts: + - The cache file with a ".pkl" extension is successfully created at the expected file path. + """ + cache_dir = os.path.join(self.cache_dir, "cdip") + handle_caching(self.hash_params, cache_dir, data=self.data) + + cache_filename = ( + hashlib.md5(self.hash_params.encode("utf-8")).hexdigest() + ".pkl" + ) + cache_filepath = os.path.join(cache_dir, cache_filename) + + assert os.path.isfile(cache_filepath) + + def test_clear_cache(self): + """ + Test if the `clear_cache` function correctly clears the specified cache directory. + + The method tests the following scenario: + 1. Moves the contents of the directory to be cleared to a temporary location. + 2. Invokes the `clear_cache` function to clear the specified directory. + 3. Checks if the directory has been cleared. + 4. Restores the original contents of the directory from the temporary location. + + Asserts: + - The specified directory is successfully cleared by the `clear_cache` function. + """ + specific_dir = "wave" + cache_dir = os.path.join(os.path.expanduser("~"), ".cache", "mhkit") + path_to_clear = os.path.join(cache_dir, specific_dir) + + # Step 1: Move contents to temporary directory + temp_dir = tempfile.mkdtemp() + if os.path.exists(path_to_clear): + shutil.move(path_to_clear, temp_dir) + + # Step 2: Run clear_cache and test + clear_cache(specific_dir) + assert not os.path.exists(path_to_clear) + + # Step 3: Move contents back to original location, if they exist in the temporary directory + if os.path.exists(os.path.join(temp_dir, specific_dir)): + shutil.move(os.path.join(temp_dir, specific_dir), cache_dir) + shutil.rmtree(temp_dir) # Clean up temporary directory + + +if __name__ == "__main__": + unittest.main() diff --git a/mhkit/tests/utils/test_upcrossing.py b/mhkit/tests/utils/test_upcrossing.py new file mode 100644 index 000000000..e389fc39a --- /dev/null +++ b/mhkit/tests/utils/test_upcrossing.py @@ -0,0 +1,144 @@ +from mhkit.utils import upcrossing, peaks, troughs, heights, periods, custom +import unittest +from numpy.testing import assert_allclose +import numpy as np +from scipy.optimize import fsolve + + +class TestUpcrossing(unittest.TestCase): + @classmethod + def setUpClass(self): + self.t = np.linspace(0, 4, 1000) + + self.signal = self._example_waveform(self, self.t) + + # Approximiate points for the zero crossing, + # used as starting points in numerical + # solution. + self.zero_cross_approx = [0, 2.1, 3, 3.8] + + def _example_waveform(self, t): + # Create simple wave form to analyse. + # This has been created to perform + # a simple independent calcuation that + # the mhkit functions can be tested against. + + A = np.array([0.5, 0.6, 0.3]) + T = np.array([3, 2, 1]) + w = 2 * np.pi / T + + signal = np.zeros(t.size) + for i in range(A.size): + signal += A[i] * np.sin(w[i] * t) + + return signal + + def _example_analysis(self, t, signal): + # NB: This only works due to the construction + # of our test signal. It is not suitable as + # a general approach. + grad = np.diff(signal) + + # +1 to get the index at turning point + turning_points = np.flatnonzero(grad[1:] * grad[:-1] < 0) + 1 + + crest_inds = turning_points[signal[turning_points] > 0] + trough_inds = turning_points[signal[turning_points] < 0] + + crests = signal[crest_inds] + troughs = signal[trough_inds] + + heights = crests - troughs + + zero_cross = fsolve(self._example_waveform, self.zero_cross_approx) + periods = np.diff(zero_cross) + + return crests, troughs, heights, periods + + def test_peaks(self): + want, _, _, _ = self._example_analysis(self.t, self.signal) + + got = peaks(self.t, self.signal) + + assert_allclose(got, want) + + def test_troughs(self): + _, want, _, _ = self._example_analysis(self.t, self.signal) + + got = troughs(self.t, self.signal) + + assert_allclose(got, want) + + def test_heights(self): + _, _, want, _ = self._example_analysis(self.t, self.signal) + + got = heights(self.t, self.signal) + + assert_allclose(got, want) + + def test_periods(self): + _, _, _, want = self._example_analysis(self.t, self.signal) + + got = periods(self.t, self.signal) + + assert_allclose(got, want, rtol=1e-3, atol=1e-3) + + def test_custom(self): + want, _, _, _ = self._example_analysis(self.t, self.signal) + + # create a similar function to finding the peaks + def f(ind1, ind2): + return np.max(self.signal[ind1:ind2]) + + got = custom(self.t, self.signal, f) + + assert_allclose(got, want) + + def test_peaks_with_inds(self): + want, _, _, _ = self._example_analysis(self.t, self.signal) + + inds = upcrossing(self.t, self.signal) + + got = peaks(self.t, self.signal, inds) + + assert_allclose(got, want) + + def test_trough_with_inds(self): + _, want, _, _ = self._example_analysis(self.t, self.signal) + + inds = upcrossing(self.t, self.signal) + + got = troughs(self.t, self.signal, inds) + + assert_allclose(got, want) + + def test_heights_with_inds(self): + _, _, want, _ = self._example_analysis(self.t, self.signal) + + inds = upcrossing(self.t, self.signal) + + got = heights(self.t, self.signal, inds) + + assert_allclose(got, want) + + def test_periods_with_inds(self): + _, _, _, want = self._example_analysis(self.t, self.signal) + + inds = upcrossing(self.t, self.signal) + + got = periods(self.t, self.signal, inds) + + assert_allclose(got, want, rtol=1e-3, atol=1e-3) + + def test_custom_with_inds(self): + want, _, _, _ = self._example_analysis(self.t, self.signal) + + inds = upcrossing(self.t, self.signal) + + # create a similar function to finding the peaks + def f(ind1, ind2): + return np.max(self.signal[ind1:ind2]) + + got = custom(self.t, self.signal, f, inds) + + assert_allclose(got, want) diff --git a/mhkit/tests/utils/test_utils.py b/mhkit/tests/utils/test_utils.py index 07e1ed029..315d0de19 100644 --- a/mhkit/tests/utils/test_utils.py +++ b/mhkit/tests/utils/test_utils.py @@ -5,149 +5,287 @@ import numpy as np import unittest import json +import xarray as xr testdir = dirname(abspath(__file__)) -loads_datadir = normpath(join(testdir,relpath('../../../examples/data/loads'))) +loads_datadir = normpath(join(testdir, relpath("../../../examples/data/loads"))) -class TestGenUtils(unittest.TestCase): +class TestGenUtils(unittest.TestCase): @classmethod def setUpClass(self): loads_data_file = join(loads_datadir, "loads_data_dict.json") - with open(loads_data_file, 'r') as fp: + with open(loads_data_file, "r") as fp: data_dict = json.load(fp) # convert dictionaries into dataframes - data = { - key: pd.DataFrame(data_dict[key]) - for key in data_dict - } + data = {key: pd.DataFrame(data_dict[key]) for key in data_dict} self.data = data - self.freq = 50 # Hz - self.period = 600 # seconds - + self.freq = 50 # Hz + self.period = 600 # seconds def test_get_statistics(self): # load in file - df = self.data['loads'] + df = self.data["loads"] df.Timestamp = pd.to_datetime(df.Timestamp) - df.set_index('Timestamp',inplace=True) + df.set_index("Timestamp", inplace=True) # run function - means,maxs,mins,stdevs = utils.get_statistics(df,self.freq,period=self.period,vector_channels=['WD_Nacelle','WD_NacelleMod']) + means, maxs, mins, stdevs = utils.get_statistics( + df, + self.freq, + period=self.period, + vector_channels=["WD_Nacelle", "WD_NacelleMod"], + ) # check statistics - self.assertAlmostEqual(means.reset_index().loc[0,'uWind_80m'],7.773,2) # mean - self.assertAlmostEqual(maxs.reset_index().loc[0,'uWind_80m'],13.271,2) # max - self.assertAlmostEqual(mins.reset_index().loc[0,'uWind_80m'],3.221,2) # min - self.assertAlmostEqual(stdevs.reset_index().loc[0,'uWind_80m'],1.551,2) # standard deviation - self.assertAlmostEqual(means.reset_index().loc[0,'WD_Nacelle'],178.1796,2) # mean - vector - self.assertAlmostEqual(stdevs.reset_index().loc[0,'WD_Nacelle'],36.093,2) # standard devaition - vector + self.assertAlmostEqual( + means.reset_index().loc[0, "uWind_80m"], 7.773, 2 + ) # mean + self.assertAlmostEqual(maxs.reset_index().loc[0, "uWind_80m"], 13.271, 2) # max + self.assertAlmostEqual(mins.reset_index().loc[0, "uWind_80m"], 3.221, 2) # min + self.assertAlmostEqual( + stdevs.reset_index().loc[0, "uWind_80m"], 1.551, 2 + ) # standard deviation + self.assertAlmostEqual( + means.reset_index().loc[0, "WD_Nacelle"], 178.1796, 2 + ) # mean - vector + self.assertAlmostEqual( + stdevs.reset_index().loc[0, "WD_Nacelle"], 36.093, 2 + ) # standard devaition - vector # check timestamp - string_time = '2017-03-01 01:28:41' + string_time = "2017-03-01 01:28:41" time = pd.to_datetime(string_time) - self.assertTrue(means.index[0]==time) - + self.assertTrue(means.index[0] == time) + def test_vector_statistics(self): # load in vector variable - df = self.data['loads'] - vector_data = df['WD_Nacelle'] + df = self.data["loads"] + vector_data = df["WD_Nacelle"] vector_avg, vector_std = utils.vector_statistics(vector_data) # check answers - self.assertAlmostEqual(vector_avg,178.1796,2) # mean - vector - self.assertAlmostEqual(vector_std,36.093,2) # standard devaition - vector + self.assertAlmostEqual(vector_avg, 178.1796, 2) # mean - vector + self.assertAlmostEqual(vector_std, 36.093, 2) # standard devaition - vector def test_unwrap_vector(self): # create array of test values and corresponding expected answers - test = [-740,-400,-50,0,50,400,740] - correct = [340,320,310,0,50,40,20] + test = [-740, -400, -50, 0, 50, 400, 740] + correct = [340, 320, 310, 0, 50, 40, 20] # get answers from function answer = utils.unwrap_vector(test) - + # check if answer is correct - assert_frame_equal(pd.DataFrame(answer,dtype='int32'),pd.DataFrame(correct,dtype='int32')) + assert_frame_equal( + pd.DataFrame(answer, dtype="int32"), pd.DataFrame(correct, dtype="int32") + ) def test_matlab_to_datetime(self): # store matlab timestamp - mat_time = 7.367554921296296e+05 + mat_time = 7.367554921296296e05 # corresponding datetime - string_time = '2017-03-01 11:48:40' + string_time = "2017-03-01 11:48:40" time = pd.to_datetime(string_time) # test function answer = utils.matlab_to_datetime(mat_time) - answer2 = answer.round('s') # round to nearest second for comparison - + answer2 = answer.round("s") # round to nearest second for comparison + # check if answer is correct self.assertTrue(answer2 == time) def test_excel_to_datetime(self): # store excel timestamp - excel_time = 4.279549212962963e+04 + excel_time = 4.279549212962963e04 # corresponding datetime - string_time = '2017-03-01 11:48:40' + string_time = "2017-03-01 11:48:40" time = pd.to_datetime(string_time) # test function answer = utils.excel_to_datetime(excel_time) - answer2 = answer.round('s') # round to nearest second for comparison - + answer2 = answer.round("s") # round to nearest second for comparison + # check if answer is correct - self.assertTrue(answer2 == time) + self.assertTrue(answer2 == time) def test_magnitude_phase_2D(self): # float - magnitude=9 - x=y = np.sqrt(1/2*magnitude**2) + magnitude = 9 + x = y = np.sqrt(1 / 2 * magnitude**2) phase = np.arctan2(y, x) - mag, theta = utils.magnitude_phase(x,y) - + mag, theta = utils.magnitude_phase(x, y) + self.assertAlmostEqual(magnitude, mag) self.assertAlmostEqual(phase, theta) - - #list - xx = [x,x] - yy = [y,y] - mag, theta = utils.magnitude_phase(xx,yy) - self.assertTrue(all(mag==magnitude)) - self.assertTrue(all(theta==phase)) - - #series - xs = pd.Series(xx,index=range(len(xx))) - ys = pd.Series(yy,index=range(len(yy))) - - mag, theta = utils.magnitude_phase(xs,ys) - self.assertTrue(all(mag==magnitude)) - self.assertTrue(all(theta==phase)) - + + # list + xx = [x, x] + yy = [y, y] + mag, theta = utils.magnitude_phase(xx, yy) + self.assertTrue(all(mag == magnitude)) + self.assertTrue(all(theta == phase)) + + # series + xs = pd.Series(xx, index=range(len(xx))) + ys = pd.Series(yy, index=range(len(yy))) + + mag, theta = utils.magnitude_phase(xs, ys) + self.assertTrue(all(mag == magnitude)) + self.assertTrue(all(theta == phase)) + def test_magnitude_phase_3D(self): # float - magnitude=9 - x=y=z = np.sqrt(1/3*magnitude**2) + magnitude = 9 + x = y = z = np.sqrt(1 / 3 * magnitude**2) phase1 = np.arctan2(y, x) - phase2 = np.arctan2(np.sqrt(x**2+y**2),z) - mag, theta, phi = utils.magnitude_phase(x,y,z) - + phase2 = np.arctan2(np.sqrt(x**2 + y**2), z) + mag, theta, phi = utils.magnitude_phase(x, y, z) + self.assertAlmostEqual(magnitude, mag) self.assertAlmostEqual(phase1, theta) self.assertAlmostEqual(phase2, phi) - - #list - xx = [x,x] - yy = [y,y] - zz = [z,z] - mag, theta, phi = utils.magnitude_phase(xx,yy,zz) - self.assertTrue(all(mag==magnitude)) - self.assertTrue(all(theta==phase1)) - self.assertTrue(all(phi==phase2)) - - #series - xs = pd.Series(xx,index=range(len(xx))) - ys = pd.Series(yy,index=range(len(yy))) - zs = pd.Series(zz,index=range(len(zz))) - - mag, theta, phi = utils.magnitude_phase(xs,ys,zs) - self.assertTrue(all(mag==magnitude)) - self.assertTrue(all(theta==phase1)) - self.assertTrue(all(phi==phase2)) - - -if __name__ == '__main__': + + # list + xx = [x, x] + yy = [y, y] + zz = [z, z] + mag, theta, phi = utils.magnitude_phase(xx, yy, zz) + self.assertTrue(all(mag == magnitude)) + self.assertTrue(all(theta == phase1)) + self.assertTrue(all(phi == phase2)) + + # series + xs = pd.Series(xx, index=range(len(xx))) + ys = pd.Series(yy, index=range(len(yy))) + zs = pd.Series(zz, index=range(len(zz))) + + mag, theta, phi = utils.magnitude_phase(xs, ys, zs) + self.assertTrue(all(mag == magnitude)) + self.assertTrue(all(theta == phase1)) + self.assertTrue(all(phi == phase2)) + + def test_convert_to_dataarray(self): + # test data + a = 5 + t = np.arange(0.0, 5.0, 0.5) + i = np.arange(0.0, 10.0, 1) + d1 = i**2 / 5.0 + d2 = -d1 + + # test data formats + test_n = d1 + test_s = pd.Series(d1, t) + test_df = pd.DataFrame({"d1": d1}, index=t) + test_df2 = pd.DataFrame({"d1": d1, "d1_duplicate": d1}, index=t) + test_da = xr.DataArray( + data=d1, + dims="time", + coords=dict(time=t), + ) + test_ds = xr.Dataset( + data_vars={"d1": (["time"], d1)}, coords={"time": t, "index": i} + ) + test_ds2 = xr.Dataset( + data_vars={ + "d1": (["time"], d1), + "d2": (["ind"], d2), + }, + coords={"time": t, "index": i}, + ) + + # numpy + n = utils.convert_to_dataarray(test_n, "test_data") + self.assertIsInstance(n, xr.DataArray) + self.assertTrue(all(n.data == d1)) + self.assertEqual(n.name, "test_data") + + # Series + s = utils.convert_to_dataarray(test_s) + self.assertIsInstance(s, xr.DataArray) + self.assertTrue(all(s.data == d1)) + + # DataArray + da = utils.convert_to_dataarray(test_da) + self.assertIsInstance(da, xr.DataArray) + self.assertTrue(all(da.data == d1)) + + # Dataframe + df = utils.convert_to_dataarray(test_df) + self.assertIsInstance(df, xr.DataArray) + self.assertTrue(all(df.data == d1)) + + # Dataset + ds = utils.convert_to_dataarray(test_ds) + self.assertIsInstance(ds, xr.DataArray) + self.assertTrue(all(ds.data == d1)) + + # int (error) + with self.assertRaises(TypeError): + utils.convert_to_dataarray(a) + + # non-string name (error) + with self.assertRaises(TypeError): + utils.convert_to_dataarray(test_n, 5) + + # Multivariate Dataframe (error) + with self.assertRaises(ValueError): + utils.convert_to_dataarray(test_df2) + + # Multivariate Dataset (error) + with self.assertRaises(ValueError): + utils.convert_to_dataarray(test_ds2) + + def test_convert_to_dataset(self): + # test data + a = 5 + t = np.arange(0, 5, 0.5) + i = np.arange(0, 10, 1) + d1 = i**2 / 5.0 + d2 = -d1 + + # test data formats + test_n = d1 + test_s = pd.Series(d1, t) + test_df2 = pd.DataFrame({"d1": d1, "d2": d2}, index=t) + test_da = xr.DataArray( + data=d1, + dims="time", + coords=dict(time=t), + ) + test_ds2 = xr.Dataset( + data_vars={ + "d1": (["time"], d1), + "d2": (["ind"], d2), + }, + coords={"time": t, "index": i}, + ) + + # Series + s = utils.convert_to_dataset(test_s) + self.assertIsInstance(s, xr.Dataset) + self.assertTrue(all(s["data"].data == d1)) + + # DataArray with custom name + da = utils.convert_to_dataset(test_da, "test_name") + self.assertIsInstance(da, xr.Dataset) + self.assertTrue(all(da["test_name"].data == d1)) + + # Dataframe + df = utils.convert_to_dataset(test_df2) + self.assertIsInstance(df, xr.Dataset) + self.assertTrue(all(df["d1"].data == d1)) + self.assertTrue(all(df["d2"].data == d2)) + + # Dataset + ds = utils.convert_to_dataset(test_ds2) + self.assertIsInstance(ds, xr.Dataset) + self.assertTrue(all(ds["d1"].data == d1)) + self.assertTrue(all(ds["d2"].data == d2)) + + # int (error) + with self.assertRaises(TypeError): + utils.convert_to_dataset(a) + + # non-string name (error) + with self.assertRaises(TypeError): + utils.convert_to_dataset(test_n, 5) + + +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/wave/io/hindcast/test_hindcast.py b/mhkit/tests/wave/io/hindcast/test_hindcast.py index 08333e6c9..379eeeee4 100644 --- a/mhkit/tests/wave/io/hindcast/test_hindcast.py +++ b/mhkit/tests/wave/io/hindcast/test_hindcast.py @@ -22,6 +22,7 @@ Run the script directly as a standalone program, or import the TestWPTOhindcast class in another test suite. """ + import unittest from os.path import abspath, dirname, join, normpath from pandas.testing import assert_frame_equal @@ -31,220 +32,207 @@ import xarray as xr testdir = dirname(abspath(__file__)) -datadir = normpath(join(testdir,'..','..','..','..','..','examples','data','wave')) +datadir = normpath( + join(testdir, "..", "..", "..", "..", "..", "examples", "data", "wave") +) class TestWPTOhindcast(unittest.TestCase): - ''' + """ A test call designed to check the WPTO hindcast retrival - ''' + """ @classmethod def setUpClass(cls): - ''' + """ Intitialize the WPTO hindcast test with expected data - ''' + """ cls.my_swh = pd.read_csv( - join(datadir,'hindcast/multi_year_hindcast.csv'), - index_col = 'time_index', - names = ['time_index','significant_wave_height_0'], - header = 0, - dtype = {'significant_wave_height_0':'float32'} + join(datadir, "hindcast/multi_year_hindcast.csv"), + index_col="time_index", + names=["time_index", "significant_wave_height_0"], + header=0, + dtype={"significant_wave_height_0": "float32"}, ) cls.my_swh.index = pd.to_datetime(cls.my_swh.index) cls.ml = pd.read_csv( - join(datadir,'hindcast/single_year_hindcast_multiloc.csv'), - index_col = 'time_index', - names = [ - 'time_index', - 'mean_absolute_period_0', - 'mean_absolute_period_1' - ], - header = 0, - dtype = { - 'mean_absolute_period_0':'float32', - 'mean_absolute_period_1':'float32' - } + join(datadir, "hindcast/single_year_hindcast_multiloc.csv"), + index_col="time_index", + names=["time_index", "mean_absolute_period_0", "mean_absolute_period_1"], + header=0, + dtype={ + "mean_absolute_period_0": "float32", + "mean_absolute_period_1": "float32", + }, ) cls.ml.index = pd.to_datetime(cls.ml.index) cls.mp = pd.read_csv( - join(datadir,'hindcast/multiparm.csv'), - index_col = 'time_index', - names = [ - 'time_index', - 'energy_period_87', - 'mean_zero-crossing_period_87' - ], - header = 0, - dtype = { - 'energy_period_87':'float32', - 'mean_zero-crossing_period_87':'float32' - } + join(datadir, "hindcast/multiparm.csv"), + index_col="time_index", + names=["time_index", "energy_period_87", "mean_zero-crossing_period_87"], + header=0, + dtype={ + "energy_period_87": "float32", + "mean_zero-crossing_period_87": "float32", + }, ) cls.mp.index = pd.to_datetime(cls.mp.index) cls.ml_meta = pd.read_csv( - join(datadir,'hindcast/multiloc_meta.csv'), - index_col = 0, - names = [ + join(datadir, "hindcast/multiloc_meta.csv"), + index_col=0, + names=[ None, - 'water_depth', - 'latitude', - 'longitude', - 'distance_to_shore', - 'timezone', - 'jurisdiction', - 'gid', + "water_depth", + "latitude", + "longitude", + "distance_to_shore", + "timezone", + "jurisdiction", + "gid", ], - header = 0, - dtype = { - 'water_depth':'float32', - 'latitude':'float32', - 'longitude':'float32', - 'distance_to_shore':'float32', - 'timezone':'int16', - 'gid': 'int64', - } + header=0, + dtype={ + "water_depth": "float32", + "latitude": "float32", + "longitude": "float32", + "distance_to_shore": "float32", + "timezone": "int16", + "gid": "int64", + }, ) cls.my_meta = pd.read_csv( - join(datadir,'hindcast/multi_year_meta.csv'), - names = [ - 'water_depth', - 'latitude', - 'longitude', - 'distance_to_shore', - 'timezone', - 'jurisdiction', - 'gid' + join(datadir, "hindcast/multi_year_meta.csv"), + names=[ + "water_depth", + "latitude", + "longitude", + "distance_to_shore", + "timezone", + "jurisdiction", + "gid", ], - header = 0, - dtype = { - 'water_depth':'float32', - 'latitude':'float32', - 'longitude':'float32', - 'distance_to_shore':'float32', - 'timezone':'int16', - 'gid':'int64' - } + header=0, + dtype={ + "water_depth": "float32", + "latitude": "float32", + "longitude": "float32", + "distance_to_shore": "float32", + "timezone": "int16", + "gid": "int64", + }, ) cls.mp_meta = pd.read_csv( - join(datadir,'hindcast/multiparm_meta.csv'), - index_col = 0, - names = [ + join(datadir, "hindcast/multiparm_meta.csv"), + index_col=0, + names=[ None, - 'water_depth', - 'latitude', - 'longitude', - 'distance_to_shore', - 'timezone', - 'jurisdiction', - 'gid', + "water_depth", + "latitude", + "longitude", + "distance_to_shore", + "timezone", + "jurisdiction", + "gid", ], - header = 0, - dtype = { - 'water_depth':'float32', - 'latitude':'float32', - 'longitude':'float32', - 'distance_to_shore':'float32', - 'timezone':'int16', - 'gid':'int64', - } + header=0, + dtype={ + "water_depth": "float32", + "latitude": "float32", + "longitude": "float32", + "distance_to_shore": "float32", + "timezone": "int16", + "gid": "int64", + }, ) - cls.multi_year_dir_spectra = xr.open_dataset(join(datadir, 'hindcast/multi_year_dir_spectra.nc')) + cls.multi_year_dir_spectra = xr.open_dataset( + join(datadir, "hindcast/multi_year_dir_spectra.nc") + ) cls.multi_year_dir_spectra_meta = pd.read_csv( - join(datadir, 'hindcast/multi_year_dir_spectra_meta.csv'), - dtype = { - 'water_depth':'float32', - 'latitude':'float32', - 'longitude':'float32', - 'distance_to_shore':'float32', - 'timezone':'int16', - 'gid':'int64' - }) + join(datadir, "hindcast/multi_year_dir_spectra_meta.csv"), + dtype={ + "water_depth": "float32", + "latitude": "float32", + "longitude": "float32", + "distance_to_shore": "float32", + "timezone": "int16", + "gid": "int64", + }, + ) def test_multi_year(self): - ''' + """ Test multiple years on a single data_type, lat_lon, and parameter - ''' - data_type = '3-hour' - years = [1990,1992] - lat_lon = (44.624076,-124.280097) - parameters = 'significant_wave_height' - - wave_multiyear, meta = (wave.io.hindcast.hindcast - .request_wpto_point_data( - data_type, - parameters, - lat_lon, - years, - as_xarray=True - ) + """ + data_type = "3-hour" + years = [1990, 1992] + lat_lon = (44.624076, -124.280097) + parameters = "significant_wave_height" + + wave_multiyear, meta = wave.io.hindcast.hindcast.request_wpto_point_data( + data_type, parameters, lat_lon, years, to_pandas=False ) wave_multiyear_df = ( - wave_multiyear['significant_wave_height_0'] + wave_multiyear["significant_wave_height_0"] .to_dataframe() - .tz_localize('UTC') - ) + .tz_localize("UTC") + ) assert_frame_equal(self.my_swh, wave_multiyear_df) assert_frame_equal(self.my_meta, meta) - def test_multi_parm(self): - ''' + """ Test multiple parameters on a single data_type, year, and lat_lon - ''' - data_type = '1-hour' + """ + data_type = "1-hour" years = [1996] - lat_lon = (44.624076,-124.280097) - parameters = ['energy_period','mean_zero-crossing_period'] - wave_multiparm, meta= (wave.io.hindcast.hindcast - .request_wpto_point_data( - data_type, - parameters, - lat_lon, - years - ) + lat_lon = (44.624076, -124.280097) + parameters = ["energy_period", "mean_zero-crossing_period"] + wave_multiparm, meta = wave.io.hindcast.hindcast.request_wpto_point_data( + data_type, parameters, lat_lon, years ) - assert_frame_equal(self.mp,wave_multiparm) - assert_frame_equal(self.mp_meta,meta) - + assert_frame_equal(self.mp, wave_multiparm) + assert_frame_equal(self.mp_meta, meta) def test_multi_loc(self): - ''' + """ Test mutiple locations on point data and directional spectrum at a single data_type, year, and parameter. - ''' - data_type = '3-hour' + """ + data_type = "3-hour" years = [1995] - lat_lon = ((44.624076,-124.280097),(43.489171,-125.152137)) - parameters = 'mean_absolute_period' - wave_multiloc, meta=wave.io.hindcast.hindcast.request_wpto_point_data( - data_type, - parameters, - lat_lon, - years + lat_lon = ((44.624076, -124.280097), (43.489171, -125.152137)) + parameters = "mean_absolute_period" + wave_multiloc, meta = wave.io.hindcast.hindcast.request_wpto_point_data( + data_type, parameters, lat_lon, years ) - dir_multiyear, meta_dir = (wave.io.hindcast.hindcast - .request_wpto_directional_spectrum(lat_lon,year=str(years[0])) + ( + dir_multiyear, + meta_dir, + ) = wave.io.hindcast.hindcast.request_wpto_directional_spectrum( + lat_lon, year=str(years[0]) ) + dir_multiyear = dir_multiyear.sel( - time_index=slice( - dir_multiyear.time_index[0], - dir_multiyear.time_index[99] - ) + time_index=slice(dir_multiyear.time_index[0], dir_multiyear.time_index[99]) ) - + # Convert to effcient range index + meta_dir.index = pd.RangeIndex(start=0, stop=len(meta_dir.index)) + assert_frame_equal(self.ml, wave_multiloc) assert_frame_equal(self.ml_meta, meta) xrt.assert_allclose(self.multi_year_dir_spectra, dir_multiyear) - assert_frame_equal(self.multi_year_dir_spectra_meta, meta_dir) + assert_frame_equal( + self.multi_year_dir_spectra_meta, meta_dir, check_dtype=False + ) + -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/wave/io/hindcast/test_wind_toolkit.py b/mhkit/tests/wave/io/hindcast/test_wind_toolkit.py index ad5e2ba96..6544f8b52 100644 --- a/mhkit/tests/wave/io/hindcast/test_wind_toolkit.py +++ b/mhkit/tests/wave/io/hindcast/test_wind_toolkit.py @@ -1,180 +1,364 @@ from os.path import abspath, dirname, join, isfile, normpath, relpath from pandas.testing import assert_frame_equal -from numpy.testing import assert_allclose -from scipy.interpolate import interp1d -from random import seed, randint import matplotlib.pylab as plt -from datetime import datetime -import xarray.testing as xrt import mhkit.wave.io.hindcast.wind_toolkit as wtk -from io import StringIO import pandas as pd -import numpy as np -import contextlib import unittest -import netCDF4 -import inspect -import pickle -import time -import json -import sys -import os +import pytest testdir = dirname(abspath(__file__)) -datadir = normpath(join(testdir,'..','..','..','..','..','examples','data','wave','wind_toolkit')) +datadir = normpath( + join( + testdir, + "..", + "..", + "..", + "..", + "..", + "examples", + "data", + "wave", + "wind_toolkit", + ) +) class TestWINDToolkit(unittest.TestCase): - @classmethod def setUpClass(self): - - self.my = pd.read_csv(join(datadir,'wtk_multiyear.csv'), - index_col = 'time_index', - names = ['time_index','pressure_200m_0'], - header = 0, - dtype = {'pressure_200m_0':'float32'}) + self.my = pd.read_csv( + join(datadir, "wtk_multiyear.csv"), + index_col="time_index", + names=["time_index", "pressure_200m_0"], + header=0, + dtype={"pressure_200m_0": "float32"}, + ) self.my.index = pd.to_datetime(self.my.index) - self.ml = pd.read_csv(join(datadir,'wtk_multiloc.csv'), - index_col = 'time_index', - names = ['time_index','windspeed_10m_0','windspeed_10m_1'], - header = 0, - dtype = {'windspeed_10m_0':'float32', - 'windspeed_10m_1':'float32'}) + self.ml = pd.read_csv( + join(datadir, "wtk_multiloc.csv"), + index_col="time_index", + names=["time_index", "windspeed_10m_0", "windspeed_10m_1"], + header=0, + dtype={"windspeed_10m_0": "float32", "windspeed_10m_1": "float32"}, + ) self.ml.index = pd.to_datetime(self.ml.index) - self.mp = pd.read_csv(join(datadir,'wtk_multiparm.csv'), - index_col = 'time_index', - names = ['time_index','temperature_20m_0','temperature_40m_0'], - header = 0, - dtype = {'temperature_20m_0':'float32', - 'temperature_40m_0':'float32'}) + self.mp = pd.read_csv( + join(datadir, "wtk_multiparm.csv"), + index_col="time_index", + names=["time_index", "temperature_20m_0", "temperature_40m_0"], + header=0, + dtype={"temperature_20m_0": "float32", "temperature_40m_0": "float32"}, + ) self.mp.index = pd.to_datetime(self.mp.index) - self.my_meta = pd.read_csv(join(datadir,'wtk_multiyear_meta.csv'), - index_col = 0, - names = ['latitude','longitude','country','state','county','timezone','elevation','offshore'], - header = 0, - dtype = {'latitude':'float32','longitude':'float32', - 'country':'str','state':'str','county':'str', - 'timezone':'int16','elevation':'float32','offshore':'int16'}) - - self.ml_meta = pd.read_csv(join(datadir,'wtk_multiloc_meta.csv'), - index_col = 0, - names = ['latitude','longitude','country','state','county','timezone','elevation','offshore'], - header = 0, - dtype = {'latitude':'float32','longitude':'float32', - 'country':'str','state':'str','county':'str', - 'timezone':'int16','elevation':'float32','offshore':'int16'}) - - self.mp_meta = pd.read_csv(join(datadir,'wtk_multiparm_meta.csv'), - index_col = 0, - names = ['latitude','longitude','country','state','county','timezone','elevation','offshore'], - header = 0, - dtype = {'latitude':'float32','longitude':'float32', - 'country':'str','state':'str','county':'str', - 'timezone':'int16','elevation':'float32','offshore':'int16'}) + self.my_meta = pd.read_csv( + join(datadir, "wtk_multiyear_meta.csv"), + index_col=0, + names=[ + "latitude", + "longitude", + "country", + "state", + "county", + "timezone", + "elevation", + "offshore", + ], + header=0, + dtype={ + "latitude": "float32", + "longitude": "float32", + "country": "str", + "state": "str", + "county": "str", + "timezone": "int16", + "elevation": "float32", + "offshore": "int16", + }, + ) + + # Replace NaN values in 'state' and 'county' with the string "None" + self.my_meta["state"] = self.my_meta["state"].fillna("None") + self.my_meta["county"] = self.my_meta["county"].fillna("None") + + self.ml_meta = pd.read_csv( + join(datadir, "wtk_multiloc_meta.csv"), + index_col=0, + names=[ + "latitude", + "longitude", + "country", + "state", + "county", + "timezone", + "elevation", + "offshore", + ], + header=0, + dtype={ + "latitude": "float32", + "longitude": "float32", + "country": "str", + "state": "str", + "county": "str", + "timezone": "int16", + "elevation": "float32", + "offshore": "int16", + }, + ) + # Replace NaN values in 'state' and 'county' with the string "None" + self.ml_meta["state"] = self.ml_meta["state"].fillna("None") + self.ml_meta["county"] = self.ml_meta["county"].fillna("None") + + self.mp_meta = pd.read_csv( + join(datadir, "wtk_multiparm_meta.csv"), + index_col=0, + names=[ + "latitude", + "longitude", + "country", + "state", + "county", + "timezone", + "elevation", + "offshore", + ], + header=0, + dtype={ + "latitude": "float32", + "longitude": "float32", + "country": "str", + "state": "str", + "county": "str", + "timezone": "int16", + "elevation": "float32", + "offshore": "int16", + }, + ) + # Replace NaN values in 'state' and 'county' with the string "None" + self.mp_meta["state"] = self.mp_meta["state"].fillna("None") + self.mp_meta["county"] = self.mp_meta["county"].fillna("None") @classmethod def tearDownClass(self): pass - ## WIND Toolkit data + # WIND Toolkit data def test_multi_year(self): - data_type = '1-hour' - years = [2018,2019] - lat_lon = (44.624076,-124.280097) # NW_Pacific - parameters = 'pressure_200m' + data_type = "1-hour" + years = [2018, 2019] + lat_lon = (44.624076, -124.280097) # NW_Pacific + parameters = "pressure_200m" wtk_multiyear, meta = wtk.request_wtk_point_data( - data_type, parameters, - lat_lon, years) - assert_frame_equal(self.my,wtk_multiyear) - assert_frame_equal(self.my_meta,meta) - + data_type, parameters, lat_lon, years + ) + assert_frame_equal(self.my, wtk_multiyear) + assert_frame_equal(self.my_meta, meta) def test_multi_loc(self): - data_type = '1-hour' + data_type = "1-hour" years = [2001] - lat_lon = ((39.33,-67.21),(41.3,-75.9)) # Mid-Atlantic - parameters = 'windspeed_10m' + lat_lon = ((39.33, -67.21), (41.3, -75.9)) # Mid-Atlantic + parameters = "windspeed_10m" wtk_multiloc, meta = wtk.request_wtk_point_data( - data_type, parameters, - lat_lon, years) - assert_frame_equal(self.ml,wtk_multiloc) - assert_frame_equal(self.ml_meta,meta) - + data_type, parameters, lat_lon, years + ) + assert_frame_equal(self.ml, wtk_multiloc) + assert_frame_equal(self.ml_meta, meta) def test_multi_parm(self): - data_type = '1-hour' + data_type = "1-hour" years = [2012] - lat_lon = (17.2,-156.5) # Hawaii - parameters = ['temperature_20m','temperature_40m'] + lat_lon = (17.2, -156.5) # Hawaii + + parameters = ["temperature_20m", "temperature_40m"] wtk_multiparm, meta = wtk.request_wtk_point_data( - data_type, parameters, - lat_lon, years) - assert_frame_equal(self.mp,wtk_multiparm) - assert_frame_equal(self.mp_meta,meta) - + data_type, parameters, lat_lon, years + ) + + assert_frame_equal(self.mp, wtk_multiparm) + assert_frame_equal(self.mp_meta, meta) + + def test_invalid_parameter_type(self): + with pytest.raises(TypeError): + wtk.request_wtk_point_data( + time_interval="1-hour", + parameter=123, # Invalid type, should be a string or list of strings + lat_lon=(17.2, -156.5), + years=[2012], + ) + + def test_invalid_lat_lon_type(self): + with pytest.raises(TypeError): + wtk.request_wtk_point_data( + time_interval="1-hour", + parameter="temperature_20m", + lat_lon="17.2, -156.5", # Invalid type, should be a tuple or list of tuples + years=[2012], + ) + + def test_invalid_time_interval_type(self): + with pytest.raises(TypeError): + wtk.request_wtk_point_data( + time_interval=123, # Invalid type, should be a string + parameter="temperature_20m", + lat_lon=(17.2, -156.5), + years=[2012], + ) + + def test_invalid_years_type(self): + with pytest.raises(TypeError): + wtk.request_wtk_point_data( + time_interval="1-hour", + parameter="temperature_20m", + lat_lon=(17.2, -156.5), + years="2012", # Invalid type, should be a list + ) + + def test_invalid_preferred_region_type(self): + with pytest.raises(TypeError): + wtk.request_wtk_point_data( + time_interval="1-hour", + parameter="temperature_20m", + lat_lon=(17.2, -156.5), + years=[2012], + preferred_region=123, # Invalid type, should be a string + ) + + def test_invalid_tree_type(self): + with pytest.raises(TypeError): + wtk.request_wtk_point_data( + time_interval="1-hour", + parameter="temperature_20m", + lat_lon=(17.2, -156.5), + years=[2012], + preferred_region="", + tree=123, # Invalid type, should be a string or None + ) + + def test_invalid_unscale_type(self): + with pytest.raises(TypeError): + wtk.request_wtk_point_data( + time_interval="1-hour", + parameter="temperature_20m", + lat_lon=(17.2, -156.5), + years=[2012], + preferred_region="", + tree=None, + unscale="True", # Invalid type, should be bool + ) + + def test_invalid_str_decode_type(self): + with pytest.raises(TypeError): + wtk.request_wtk_point_data( + time_interval="1-hour", + parameter="temperature_20m", + lat_lon=(17.2, -156.5), + years=[2012], + preferred_region="", + tree=None, + unscale=True, + str_decode=123, # Invalid type, should be bool + ) + + def test_invalid_hsds_type(self): + with pytest.raises(TypeError): + wtk.request_wtk_point_data( + time_interval="1-hour", + parameter="temperature_20m", + lat_lon=(17.2, -156.5), + years=[2012], + preferred_region="", + tree=None, + unscale=True, + str_decode=True, + hsds="True", # Invalid type, should be bool + ) + + def test_invalid_clear_cache_type(self): + with pytest.raises(TypeError): + wtk.request_wtk_point_data( + time_interval="1-hour", + parameter="temperature_20m", + lat_lon=(17.2, -156.5), + years=[2012], + preferred_region="", + tree=None, + unscale=True, + str_decode=True, + hsds=True, + clear_cache="False", # Invalid type, should be bool + ) + # test region_selection function and catch for the preferred region def test_region(self): - region = wtk.region_selection((41.9,-125.3), preferred_region='Offshore_CA') - assert region=='Offshore_CA' - - region = wtk.region_selection((41.9,-125.3), preferred_region='NW_Pacific') - assert region=='NW_Pacific' - + region = wtk.region_selection((41.9, -125.3), preferred_region="Offshore_CA") + assert region == "Offshore_CA" + + region = wtk.region_selection((41.9, -125.3), preferred_region="NW_Pacific") + assert region == "NW_Pacific" + try: - region = wtk.region_selection((41.9,-125.3)) + region = wtk.region_selection((41.9, -125.3)) except TypeError: pass else: - assert False, 'Check wind_toolkit.region_selection() method for catching regional overlap' - - region = wtk.region_selection((36.3,-122.3), preferred_region='') - assert region=='Offshore_CA' - - region = wtk.region_selection((16.3,-155.3), preferred_region='') - assert region=='Hawaii' - - region = wtk.region_selection((45.3,-126.3), preferred_region='') - assert region=='NW_Pacific' - - region = wtk.region_selection((39.3,-70.3), preferred_region='') - assert region=='Mid_Atlantic' - + assert ( + False + ), "Check wind_toolkit.region_selection() method for catching regional overlap" + + region = wtk.region_selection((36.3, -122.3), preferred_region="") + assert region == "Offshore_CA" + + region = wtk.region_selection((16.3, -155.3), preferred_region="") + assert region == "Hawaii" + + region = wtk.region_selection((45.3, -126.3), preferred_region="") + assert region == "NW_Pacific" + + region = wtk.region_selection((39.3, -70.3), preferred_region="") + assert region == "Mid_Atlantic" + # test the check for multiple region def test_multi_region(self): - data_type = '1-hour' + data_type = "1-hour" years = [2012] - lat_lon = ((17.2,-156.5),(45.3,-126.3)) - parameters = ['temperature_20m'] + lat_lon = ((17.2, -156.5), (45.3, -126.3)) + parameters = ["temperature_20m"] try: data, meta = wtk.request_wtk_point_data( - data_type, parameters, - lat_lon, years) + data_type, parameters, lat_lon, years + ) except TypeError: pass else: - assert False, 'Check wind_toolkit.region_selection() method for catching requests over multiple regions' + assert ( + False + ), "Check wind_toolkit.region_selection() method for catching requests over multiple regions" # test plot_region() def test_plot_region(self): fig, ax1 = plt.subplots() - ax1 = wtk.plot_region('Mid_Atlantic',ax=ax1) - - ax2 = wtk.plot_region('NW_Pacific') - + ax1 = wtk.plot_region("Mid_Atlantic", ax=ax1) + + ax2 = wtk.plot_region("NW_Pacific") + # test elevation_to_string() def test_elevation_to_string(self): - - parameter = 'windspeed' + parameter = "windspeed" elevations = [20, 40, 60, 120, 180] parameter_list = wtk.elevation_to_string(parameter, elevations) - assert parameter_list==['windspeed_20m','windspeed_40m','windspeed_60m', - 'windspeed_120m','windspeed_180m'] - + assert parameter_list == [ + "windspeed_20m", + "windspeed_40m", + "windspeed_60m", + "windspeed_120m", + "windspeed_180m", + ] + -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/wave/io/test_cdip.py b/mhkit/tests/wave/io/test_cdip.py index f42227329..b77958df6 100644 --- a/mhkit/tests/wave/io/test_cdip.py +++ b/mhkit/tests/wave/io/test_cdip.py @@ -1,66 +1,61 @@ -from os.path import abspath, dirname, join, isfile, normpath, relpath -from pandas.testing import assert_frame_equal -from numpy.testing import assert_allclose -from scipy.interpolate import interp1d -from random import seed, randint +from os.path import abspath, dirname, join, isfile, normpath import matplotlib.pylab as plt from datetime import datetime -import xarray.testing as xrt import mhkit.wave as wave -from io import StringIO -import pandas as pd -import numpy as np -import contextlib import unittest import netCDF4 -import inspect -import pickle -import time -import json -import sys +import pytz import os testdir = dirname(abspath(__file__)) -datadir = normpath(join(testdir,'..','..','..','..','examples','data','wave')) +datadir = normpath(join(testdir, "..", "..", "..", "..", "examples", "data", "wave")) class TestIOcdip(unittest.TestCase): - @classmethod def setUpClass(self): - b067_1996='http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/' + \ - 'archive/067p1/067p1_d04.nc' + b067_1996 = ( + "http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/" + + "archive/067p1/067p1_d04.nc" + ) self.test_nc = netCDF4.Dataset(b067_1996) - self.vars2D = [ 'waveEnergyDensity', 'waveMeanDirection', - 'waveA1Value', 'waveB1Value', 'waveA2Value', - 'waveB2Value', 'waveCheckFactor', 'waveSpread', - 'waveM2Value', 'waveN2Value'] + self.vars2D = [ + "waveEnergyDensity", + "waveMeanDirection", + "waveA1Value", + "waveB1Value", + "waveA2Value", + "waveB2Value", + "waveCheckFactor", + "waveSpread", + "waveM2Value", + "waveN2Value", + ] @classmethod def tearDownClass(self): pass def test_validate_date(self): - date='2013-11-12' + date = "2013-11-12" start_date = wave.io.cdip._validate_date(date) assert isinstance(start_date, datetime) - date='11-12-2012' + date = "11-12-2012" self.assertRaises(ValueError, wave.io.cdip._validate_date, date) def test_request_netCDF_historic(self): - station_number='067' - nc = wave.io.cdip.request_netCDF(station_number, 'historic') + station_number = "067" + nc = wave.io.cdip.request_netCDF(station_number, "historic") isinstance(nc, netCDF4.Dataset) def test_request_netCDF_realtime(self): - station_number='067' - nc = wave.io.cdip.request_netCDF(station_number, 'realtime') + station_number = "067" + nc = wave.io.cdip.request_netCDF(station_number, "realtime") isinstance(nc, netCDF4.Dataset) - def test_start_and_end_of_year(self): year = 2020 start_day, end_day = wave.io.cdip._start_and_end_of_year(year) @@ -68,121 +63,135 @@ def test_start_and_end_of_year(self): assert isinstance(start_day, datetime) assert isinstance(end_day, datetime) - expected_start = datetime(year,1,1) - expected_end = datetime(year,12,31) + expected_start = datetime(year, 1, 1) + expected_end = datetime(year, 12, 31) self.assertEqual(start_day, expected_start) self.assertEqual(end_day, expected_end) def test_dates_to_timestamp(self): + start_date = datetime(1996, 10, 2, tzinfo=pytz.UTC) + end_date = datetime(1996, 10, 20, tzinfo=pytz.UTC) - start_date='1996-10-02' - end_date='1996-10-20' + start_stamp, end_stamp = wave.io.cdip._dates_to_timestamp( + self.test_nc, start_date=start_date, end_date=end_date + ) - start_stamp, end_stamp = wave.io.cdip._dates_to_timestamp(self.test_nc, - start_date=start_date, end_date=end_date) + start_dt = datetime.utcfromtimestamp(start_stamp).replace(tzinfo=pytz.UTC) + end_dt = datetime.utcfromtimestamp(end_stamp).replace(tzinfo=pytz.UTC) - start_dt = datetime.utcfromtimestamp(start_stamp) - end_dt = datetime.utcfromtimestamp(end_stamp) - - self.assertTrue(start_dt.strftime('%Y-%m-%d') == start_date) - self.assertTrue(end_dt.strftime('%Y-%m-%d') == end_date) + self.assertEqual(start_dt, start_date) + self.assertEqual(end_dt, end_date) def test_get_netcdf_variables_all2Dvars(self): - data = wave.io.cdip.get_netcdf_variables(self.test_nc, - all_2D_variables=True) - returned_keys = [key for key in data['data']['wave2D'].keys()] - self.assertTrue( returned_keys == self.vars2D) + data = wave.io.cdip.get_netcdf_variables( + self.test_nc, all_2D_variables=True, to_pandas=False + ) + returned_keys = [key for key in data["data"]["wave2D"].keys()] + self.assertTrue(set(returned_keys) == set(self.vars2D)) def test_get_netcdf_variables_params(self): - parameters =['waveHs', 'waveTp','notParam', 'waveMeanDirection'] - data = wave.io.cdip.get_netcdf_variables(self.test_nc, - parameters=parameters) - - returned_keys_1D = [key for key in data['data']['wave'].keys()] - returned_keys_2D = [key for key in data['data']['wave2D'].keys()] - returned_keys_metadata = [key for key in data['metadata']['wave']] + parameters = ["waveHs", "waveTp", "notParam", "waveMeanDirection"] + data = wave.io.cdip.get_netcdf_variables(self.test_nc, parameters=parameters) - self.assertTrue( returned_keys_1D == ['waveHs', 'waveTp']) - self.assertTrue( returned_keys_2D == ['waveMeanDirection']) - self.assertTrue( returned_keys_metadata == ['waveFrequency']) + returned_keys_1D = set([key for key in data["data"]["wave"].keys()]) + returned_keys_2D = [key for key in data["data"]["wave2D"].keys()] + returned_keys_metadata = [key for key in data["metadata"]["wave"]] + self.assertTrue(returned_keys_1D == set(["waveHs", "waveTp"])) + self.assertTrue(returned_keys_2D == ["waveMeanDirection"]) + self.assertTrue(returned_keys_metadata == ["waveFrequency"]) def test_get_netcdf_variables_time_slice(self): - start_date='1996-10-01' - end_date='1996-10-31' + start_date = "1996-10-01" + end_date = "1996-10-31" - data = wave.io.cdip.get_netcdf_variables(self.test_nc, - start_date=start_date, end_date=end_date, - parameters='waveHs') + data = wave.io.cdip.get_netcdf_variables( + self.test_nc, start_date=start_date, end_date=end_date, parameters="waveHs" + ) - start_dt = datetime.strptime(start_date, '%Y-%m-%d') - end_dt = datetime.strptime(end_date, '%Y-%m-%d') - - self.assertTrue(data['data']['wave'].index[-1] < end_dt) - self.assertTrue(data['data']['wave'].index[0] > start_dt) + start_dt = datetime.strptime(start_date, "%Y-%m-%d") + end_dt = datetime.strptime(end_date, "%Y-%m-%d") + self.assertTrue(data["data"]["wave"].index[-1] < end_dt) + self.assertTrue(data["data"]["wave"].index[0] > start_dt) def test_request_parse_workflow_multiyear(self): - station_number = '067' - year1=2011 - year2=2013 + station_number = "067" + year1 = 2011 + year2 = 2013 years = [year1, year2] - parameters =['waveHs', 'waveMeanDirection', 'waveA1Value'] - data = wave.io.cdip.request_parse_workflow(station_number=station_number, - years=years, parameters =parameters ) - - expected_index0 = datetime(year1,1,1) - expected_index_final = datetime(year2,12,31) + parameters = ["waveHs", "waveMeanDirection", "waveA1Value"] + data = wave.io.cdip.request_parse_workflow( + station_number=station_number, years=years, parameters=parameters + ) - wave1D = data['data']['wave'] - self.assertEqual(wave1D.index[0].floor('d').to_pydatetime(), expected_index0) + expected_index0 = datetime(year1, 1, 1) + expected_index_final = datetime(year2, 12, 31) - self.assertEqual(wave1D.index[-1].floor('d').to_pydatetime(), expected_index_final) + wave1D = data["data"]["wave"] + self.assertEqual(wave1D.index[0].floor("d").to_pydatetime(), expected_index0) - for key,wave2D in data['data']['wave2D'].items(): - self.assertEqual(wave2D.index[0].floor('d').to_pydatetime(), expected_index0) - self.assertEqual(wave2D.index[-1].floor('d').to_pydatetime(), expected_index_final) + self.assertEqual( + wave1D.index[-1].floor("d").to_pydatetime(), expected_index_final + ) + for key, wave2D in data["data"]["wave2D"].items(): + self.assertEqual( + wave2D.index[0].floor("d").to_pydatetime(), expected_index0 + ) + self.assertEqual( + wave2D.index[-1].floor("d").to_pydatetime(), expected_index_final + ) def test_plot_boxplot(self): - filename = abspath(join(testdir, 'wave_plot_boxplot.png')) + filename = abspath(join(testdir, "wave_plot_boxplot.png")) if isfile(filename): os.remove(filename) - station_number = '067' + station_number = "067" year = 2011 - data = wave.io.cdip.request_parse_workflow(station_number=station_number,years=year, - parameters =['waveHs'], - all_2D_variables=False) + data = wave.io.cdip.request_parse_workflow( + station_number=station_number, + years=year, + parameters=["waveHs"], + all_2D_variables=False, + ) plt.figure() - wave.graphics.plot_boxplot(data['data']['wave']['waveHs']) - plt.savefig(filename, format='png') + wave.graphics.plot_boxplot(data["data"]["wave"]["waveHs"]) + plt.savefig(filename, format="png") plt.close() self.assertTrue(isfile(filename)) - + os.remove(filename) def test_plot_compendium(self): - filename = abspath(join(testdir, 'wave_plot_boxplot.png')) + filename = abspath(join(testdir, "wave_plot_boxplot.png")) if isfile(filename): os.remove(filename) - station_number = '067' + station_number = "067" year = 2011 - data = wave.io.cdip.request_parse_workflow(station_number=station_number,years=year, - parameters =['waveHs', 'waveTp', 'waveDp'], - all_2D_variables=False) + data = wave.io.cdip.request_parse_workflow( + station_number=station_number, + years=year, + parameters=["waveHs", "waveTp", "waveDp"], + all_2D_variables=False, + ) plt.figure() - wave.graphics.plot_compendium(data['data']['wave']['waveHs'], - data['data']['wave']['waveTp'], data['data']['wave']['waveDp'] ) - plt.savefig(filename, format='png') + wave.graphics.plot_compendium( + data["data"]["wave"]["waveHs"], + data["data"]["wave"]["waveTp"], + data["data"]["wave"]["waveDp"], + ) + plt.savefig(filename, format="png") plt.close() self.assertTrue(isfile(filename)) + os.remove(filename) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/wave/io/test_ndbc.py b/mhkit/tests/wave/io/test_ndbc.py index 444734824..aa5b86a96 100644 --- a/mhkit/tests/wave/io/test_ndbc.py +++ b/mhkit/tests/wave/io/test_ndbc.py @@ -5,6 +5,7 @@ import mhkit.wave as wave from io import StringIO import pandas as pd +import xarray as xr import numpy as np import contextlib import unittest @@ -12,38 +13,84 @@ testdir = dirname(abspath(__file__)) -datadir = normpath(join(testdir, '..', '..', '..', - '..', 'examples', 'data', 'wave')) +datadir = normpath(join(testdir, "..", "..", "..", "..", "examples", "data", "wave")) class TestIOndbc(unittest.TestCase): - @classmethod def setUpClass(self): - self.expected_columns_metRT = ['WDIR', 'WSPD', 'GST', 'WVHT', 'DPD', - 'APD', 'MWD', 'PRES', 'ATMP', 'WTMP', 'DEWP', 'VIS', 'PTDY', 'TIDE'] - self.expected_units_metRT = {'WDIR': 'degT', 'WSPD': 'm/s', 'GST': 'm/s', - 'WVHT': 'm', 'DPD': 'sec', 'APD': 'sec', 'MWD': 'degT', 'PRES': 'hPa', - 'ATMP': 'degC', 'WTMP': 'degC', 'DEWP': 'degC', 'VIS': 'nmi', - 'PTDY': 'hPa', 'TIDE': 'ft'} - - self.expected_columns_metH = ['WDIR', 'WSPD', 'GST', 'WVHT', 'DPD', - 'APD', 'MWD', 'PRES', 'ATMP', 'WTMP', 'DEWP', 'VIS', 'TIDE'] - self.expected_units_metH = {'WDIR': 'degT', 'WSPD': 'm/s', 'GST': 'm/s', - 'WVHT': 'm', 'DPD': 'sec', 'APD': 'sec', 'MWD': 'deg', 'PRES': 'hPa', - 'ATMP': 'degC', 'WTMP': 'degC', 'DEWP': 'degC', 'VIS': 'nmi', - 'TIDE': 'ft'} - self.filenames = ['46042w1996.txt.gz', - '46029w1997.txt.gz', - '46029w1998.txt.gz'] - self.swden = pd.read_csv(join(datadir, self.filenames[0]), sep=r'\s+', - compression='gzip') - - buoy = '42012' + self.expected_columns_metRT = [ + "WDIR", + "WSPD", + "GST", + "WVHT", + "DPD", + "APD", + "MWD", + "PRES", + "ATMP", + "WTMP", + "DEWP", + "VIS", + "PTDY", + "TIDE", + ] + self.expected_units_metRT = { + "WDIR": "degT", + "WSPD": "m/s", + "GST": "m/s", + "WVHT": "m", + "DPD": "sec", + "APD": "sec", + "MWD": "degT", + "PRES": "hPa", + "ATMP": "degC", + "WTMP": "degC", + "DEWP": "degC", + "VIS": "nmi", + "PTDY": "hPa", + "TIDE": "ft", + } + + self.expected_columns_metH = [ + "WDIR", + "WSPD", + "GST", + "WVHT", + "DPD", + "APD", + "MWD", + "PRES", + "ATMP", + "WTMP", + "DEWP", + "VIS", + "TIDE", + ] + self.expected_units_metH = { + "WDIR": "degT", + "WSPD": "m/s", + "GST": "m/s", + "WVHT": "m", + "DPD": "sec", + "APD": "sec", + "MWD": "deg", + "PRES": "hPa", + "ATMP": "degC", + "WTMP": "degC", + "DEWP": "degC", + "VIS": "nmi", + "TIDE": "ft", + } + self.filenames = ["46042w1996.txt.gz", "46029w1997.txt.gz", "46029w1998.txt.gz"] + self.swden = pd.read_csv( + join(datadir, self.filenames[0]), sep=r"\s+", compression="gzip" + ) + + buoy = "42012" year = 2021 - date = np.datetime64('2021-02-21T12:40:00') - directional_data_all = wave.io.ndbc.request_directional_data( - buoy, year) + date = np.datetime64("2021-02-21T12:40:00") + directional_data_all = wave.io.ndbc.request_directional_data(buoy, year) self.directional_data = directional_data_all.sel(date=date) @classmethod @@ -52,10 +99,9 @@ def tearDownClass(self): # Realtime data def test_ndbc_read_realtime_met(self): - data, units = wave.io.ndbc.read_file(join(datadir, '46097.txt')) + data, units = wave.io.ndbc.read_file(join(datadir, "46097.txt")) expected_index0 = datetime(2019, 4, 2, 13, 50) - self.assertSetEqual(set(data.columns), set( - self.expected_columns_metRT)) + self.assertSetEqual(set(data.columns), set(self.expected_columns_metRT)) self.assertEqual(data.index[0], expected_index0) self.assertEqual(data.shape, (6490, 14)) self.assertEqual(units, self.expected_units_metRT) @@ -63,8 +109,7 @@ def test_ndbc_read_realtime_met(self): # Historical data def test_ndbnc_read_historical_met(self): # QC'd monthly data, Aug 2019 - data, units = wave.io.ndbc.read_file( - join(datadir, '46097h201908qc.txt')) + data, units = wave.io.ndbc.read_file(join(datadir, "46097h201908qc.txt")) expected_index0 = datetime(2019, 8, 1, 0, 0) self.assertSetEqual(set(data.columns), set(self.expected_columns_metH)) self.assertEqual(data.index[0], expected_index0) @@ -73,86 +118,90 @@ def test_ndbnc_read_historical_met(self): # Spectral data def test_ndbc_read_spectral(self): - data, units = wave.io.ndbc.read_file(join(datadir, 'data.txt')) - self.assertEqual(data.shape, (743, 47)) + data, units = wave.io.ndbc.read_file(join(datadir, "data.txt"), to_pandas=False) + self.assertEqual(len(data.data_vars), 47) + self.assertEqual(len(data["dim_0"]), 743) self.assertEqual(units, None) # Continuous wind data def test_ndbc_read_cwind_no_units(self): - data, units = wave.io.ndbc.read_file(join(datadir, '42a01c2003.txt')) + data, units = wave.io.ndbc.read_file(join(datadir, "42a01c2003.txt")) self.assertEqual(data.shape, (4320, 5)) self.assertEqual(units, None) def test_ndbc_read_cwind_units(self): - data, units = wave.io.ndbc.read_file(join(datadir, '46002c2016.txt')) + data, units = wave.io.ndbc.read_file(join(datadir, "46002c2016.txt")) self.assertEqual(data.shape, (28468, 5)) - self.assertEqual(units, wave.io.ndbc.parameter_units('cwind')) + self.assertEqual(units, wave.io.ndbc.parameter_units("cwind")) def test_ndbc_available_data(self): - data = wave.io.ndbc.available_data('swden', buoy_number='46029') + data = wave.io.ndbc.available_data("swden", buoy_number="46029") cols = data.columns.tolist() - exp_cols = ['id', 'year', 'filename'] + exp_cols = ["id", "year", "filename"] self.assertEqual(cols, exp_cols) years = [int(year) for year in data.year.tolist()] - exp_years = [*range(1996, 1996+len(years))] + exp_years = [*range(1996, 1996 + len(years))] self.assertEqual(years, exp_years) self.assertEqual(data.shape, (len(data), 3)) def test__ndbc_parse_filenames(self): filenames = pd.Series(self.filenames) - buoys = wave.io.ndbc._parse_filenames('swden', filenames) + buoys = wave.io.ndbc._parse_filenames("swden", filenames) years = buoys.year.tolist() numbers = buoys.id.tolist() fnames = buoys.filename.tolist() self.assertEqual(buoys.shape, (len(filenames), 3)) - self.assertListEqual(years, ['1996', '1997', '1998']) - self.assertListEqual(numbers, ['46042', '46029', '46029']) + self.assertListEqual(years, ["1996", "1997", "1998"]) + self.assertListEqual(numbers, ["46042", "46029", "46029"]) self.assertListEqual(fnames, self.filenames) def test_ndbc_request_data(self): filenames = pd.Series(self.filenames[0]) - ndbc_data = wave.io.ndbc.request_data('swden', filenames) - self.assertTrue(self.swden.equals(ndbc_data['1996'])) + ndbc_data = wave.io.ndbc.request_data("swden", filenames, to_pandas=False) + self.assertTrue(xr.Dataset(self.swden).equals(ndbc_data["1996"])) def test_ndbc_request_data_from_dataframe(self): filenames = pd.DataFrame(pd.Series(data=self.filenames[0])) - ndbc_data = wave.io.ndbc.request_data('swden', filenames) - assert_frame_equal(self.swden, ndbc_data['1996']) + ndbc_data = wave.io.ndbc.request_data("swden", filenames) + assert_frame_equal(self.swden, ndbc_data["1996"]) def test_ndbc_request_data_filenames_length(self): - with self.assertRaises(AssertionError): - wave.io.ndbc.request_data('swden', pd.Series(dtype=float)) + with self.assertRaises(ValueError): + wave.io.ndbc.request_data("swden", pd.Series(dtype=float)) def test_ndbc_to_datetime_index(self): - dt = wave.io.ndbc.to_datetime_index('swden', self.swden) + dt = wave.io.ndbc.to_datetime_index("swden", self.swden) self.assertEqual(type(dt.index), pd.DatetimeIndex) - self.assertFalse({'YY', 'MM', 'DD', 'hh'}.issubset(dt.columns)) + self.assertFalse({"YY", "MM", "DD", "hh"}.issubset(dt.columns)) def test_ndbc_request_data_empty_file(self): temp_stdout = StringIO() # known empty file. If NDBC replaces, this test may fail. filename = "42008h1984.txt.gz" - buoy_id = '42008' - year = '1984' + buoy_id = "42008" + year = "1984" with contextlib.redirect_stdout(temp_stdout): - wave.io.ndbc.request_data('stdmet', pd.Series(filename)) + wave.io.ndbc.request_data("stdmet", pd.Series(filename)) output = temp_stdout.getvalue().strip() - msg = (f'The NDBC buoy {buoy_id} for year {year} with ' - f'filename {filename} is empty or missing ' - 'data. Please omit this file from your data ' - 'request in the future.') + msg = ( + f"The NDBC buoy {buoy_id} for year {year} with " + f"filename {filename} is empty or missing " + "data. Please omit this file from your data " + "request in the future." + ) self.assertEqual(output, msg) def test_ndbc_request_multiple_files_with_empty_file(self): temp_stdout = StringIO() # known empty file. If NDBC replaces, this test may fail. - empty_file = '42008h1984.txt.gz' - working_file = '46042h1996.txt.gz' + empty_file = "42008h1984.txt.gz" + working_file = "46042h1996.txt.gz" filenames = pd.Series([empty_file, working_file]) + with contextlib.redirect_stdout(temp_stdout): - ndbc_data = wave.io.ndbc.request_data('stdmet', filenames) + ndbc_data = wave.io.ndbc.request_data("stdmet", filenames) self.assertEqual(1, len(ndbc_data)) def test_ndbc_dates_to_datetime(self): @@ -161,19 +210,18 @@ def test_ndbc_dates_to_datetime(self): def test_ndbc_date_string_to_datetime(self): swden = self.swden.copy(deep=True) - swden['mm'] = np.zeros(len(swden)).astype(int).astype(str) - year_string = 'YY' - year_fmt = '%y' - parse_columns = [year_string, 'MM', 'DD', 'hh', 'mm'] - df = wave.io.ndbc._date_string_to_datetime(swden, parse_columns, - year_fmt) - dt = df['date'] + swden["mm"] = np.zeros(len(swden)).astype(int).astype(str) + year_string = "YY" + year_fmt = "%y" + parse_columns = [year_string, "MM", "DD", "hh", "mm"] + df = wave.io.ndbc._date_string_to_datetime(swden, parse_columns, year_fmt) + dt = df["date"] self.assertEqual(datetime(1996, 1, 1, 1, 0), dt[1]) def test_ndbc_parameter_units(self): - parameter = 'swden' + parameter = "swden" units = wave.io.ndbc.parameter_units(parameter) - self.assertEqual(units[parameter], '(m*m)/Hz') + self.assertEqual(units[parameter], "(m*m)/Hz") def test_ndbc_request_directional_data(self): data = self.directional_data @@ -189,31 +237,33 @@ def test_ndbc_request_directional_data(self): def test_ndbc_create_spread_function(self): directions = np.arange(0, 360, 2.0) - spread = wave.io.ndbc.create_spread_function( - self.directional_data, directions) + spread = wave.io.ndbc.create_spread_function(self.directional_data, directions) self.assertEqual(spread.shape, (47, 180)) - self.assertEqual(spread.units, '1/Hz/deg') + self.assertEqual(spread.units, "1/Hz/deg") def test_ndbc_create_directional_spectrum(self): directions = np.arange(0, 360, 2.0) spectrum = wave.io.ndbc.create_directional_spectrum( - self.directional_data, directions) + self.directional_data, directions + ) self.assertEqual(spectrum.shape, (47, 180)) - self.assertEqual(spectrum.units, 'm^2/Hz/deg') + self.assertEqual(spectrum.units, "m^2/Hz/deg") def test_plot_directional_spectrum(self): directions = np.arange(0, 360, 2.0) spectrum = wave.io.ndbc.create_spread_function( - self.directional_data, directions) + self.directional_data, directions + ) wave.graphics.plot_directional_spectrum( spectrum, - min=0.0, + color_level_min=0.0, fill=True, nlevels=6, name="Elevation Variance", - units="m^2") + units="m^2", + ) - filename = abspath(join(testdir, 'wave_plot_directional_spectrum.png')) + filename = abspath(join(testdir, "wave_plot_directional_spectrum.png")) if isfile(filename): os.remove(filename) plt.savefig(filename) @@ -224,27 +274,28 @@ def test_plot_directional_spectrum(self): def test_get_buoy_metadata(self): metadata = wave.io.ndbc.get_buoy_metadata("46042") expected_keys = { - 'buoy', - 'provider', - 'type', - 'SCOOP payload', - 'lat', - 'lon', - 'Site elevation', - 'Air temp height', - 'Anemometer height', - 'Barometer elevation', - 'Sea temp depth', - 'Water depth', - 'Watch circle radius' + "buoy", + "provider", + "type", + "SCOOP payload", + "lat", + "lon", + "Site elevation", + "Air temp height", + "Anemometer height", + "Barometer elevation", + "Sea temp depth", + "Water depth", + "Watch circle radius", } self.assertSetEqual(set(metadata.keys()), expected_keys) self.assertEqual( - metadata['provider'], 'Owned and maintained by National Data Buoy Center') - self.assertEqual(metadata['type'], '3-meter foam buoy w/ seal cage') - self.assertAlmostEqual(float(metadata['lat']), 36.785) - self.assertAlmostEqual(float(metadata['lon']), 122.396) - self.assertEqual(metadata['Site elevation'], 'sea level') + metadata["provider"], "Owned and maintained by National Data Buoy Center" + ) + self.assertEqual(metadata["type"], "3-meter foam buoy w/ seal cage") + self.assertAlmostEqual(float(metadata["lat"]), 36.785) + self.assertAlmostEqual(float(metadata["lon"]), 122.396) + self.assertEqual(metadata["Site elevation"], "sea level") def test_get_buoy_metadata_invalid_station(self): with self.assertRaises(ValueError): @@ -255,5 +306,5 @@ def test_get_buoy_metadata_nonexistent_station(self): wave.io.ndbc.get_buoy_metadata("99999") -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/wave/io/test_swan.py b/mhkit/tests/wave/io/test_swan.py index c3e113d81..6388bac2b 100644 --- a/mhkit/tests/wave/io/test_swan.py +++ b/mhkit/tests/wave/io/test_swan.py @@ -9,6 +9,7 @@ import mhkit.wave as wave from io import StringIO import pandas as pd +import xarray as xr import numpy as np import contextlib import unittest @@ -22,19 +23,22 @@ testdir = dirname(abspath(__file__)) -datadir = normpath(join(testdir,'..','..','..','..','examples','data','wave')) +datadir = normpath(join(testdir, "..", "..", "..", "..", "examples", "data", "wave")) class TestSWAN(unittest.TestCase): - @classmethod def setUpClass(self): - swan_datadir = join(datadir,'swan') - self.table_file = join(swan_datadir,'SWANOUT.DAT') - self.swan_block_mat_file = join(swan_datadir,'SWANOUT.MAT') - self.swan_block_txt_file = join(swan_datadir,'SWANOUTBlock.DAT') - self.expected_table = pd.read_csv(self.table_file, sep='\s+', comment='%', - names=['Xp', 'Yp', 'Hsig', 'Dir', 'RTpeak', 'TDir']) + swan_datadir = join(datadir, "swan") + self.table_file = join(swan_datadir, "SWANOUT.DAT") + self.swan_block_mat_file = join(swan_datadir, "SWANOUT.MAT") + self.swan_block_txt_file = join(swan_datadir, "SWANOUTBlock.DAT") + self.expected_table = pd.read_csv( + self.table_file, + sep="\s+", + comment="%", + names=["Xp", "Yp", "Hsig", "Dir", "RTpeak", "TDir"], + ) @classmethod def tearDownClass(self): @@ -45,39 +49,49 @@ def test_read_table(self): assert_frame_equal(self.expected_table, swan_table) def test_read_block_mat(self): - swanBlockMat, metaDataMat = wave.io.swan.read_block(self.swan_block_mat_file ) + swanBlockMat, metaDataMat = wave.io.swan.read_block(self.swan_block_mat_file) self.assertEqual(len(swanBlockMat), 4) - self.assertAlmostEqual(self.expected_table['Hsig'].sum(), - swanBlockMat['Hsig'].sum().sum(), places=1) + self.assertAlmostEqual( + self.expected_table["Hsig"].sum(), + swanBlockMat["Hsig"].sum().sum(), + places=1, + ) def test_read_block_txt(self): swanBlockTxt, metaData = wave.io.swan.read_block(self.swan_block_txt_file) self.assertEqual(len(swanBlockTxt), 4) - sumSum = swanBlockTxt['Significant wave height'].sum().sum() - self.assertAlmostEqual(self.expected_table['Hsig'].sum(), - sumSum, places=-2) + sumSum = swanBlockTxt["Significant wave height"].sum().sum() + self.assertAlmostEqual(self.expected_table["Hsig"].sum(), sumSum, places=-2) + + def test_read_block_txt_xarray(self): + swanBlockTxt, metaData = wave.io.swan.read_block( + self.swan_block_txt_file, to_pandas=False + ) + self.assertEqual(len(swanBlockTxt), 4) + sumSum = swanBlockTxt["Significant wave height"].sum().sum() + self.assertAlmostEqual(self.expected_table["Hsig"].sum(), sumSum, places=-2) def test_block_to_table(self): - x=np.arange(5) - y=np.arange(5,10) - df = pd.DataFrame(np.random.rand(5,5), columns=x, index=y) + x = np.arange(5) + y = np.arange(5, 10) + df = pd.DataFrame(np.random.rand(5, 5), columns=x, index=y) dff = wave.io.swan.block_to_table(df) - self.assertEqual(dff.shape, (len(x)*len(y), 3)) + self.assertEqual(dff.shape, (len(x) * len(y), 3)) self.assertTrue(all(dff.x.unique() == np.unique(x))) def test_dictionary_of_block_to_table(self): - x=np.arange(5) - y=np.arange(5,10) - df = pd.DataFrame(np.random.rand(5,5), columns=x, index=y) - keys = ['data1', 'data2'] + x = np.arange(5) + y = np.arange(5, 10) + df = pd.DataFrame(np.random.rand(5, 5), columns=x, index=y) + keys = ["data1", "data2"] data = [df, df] - dict_of_dfs = dict(zip(keys,data)) + dict_of_dfs = dict(zip(keys, data)) dff = wave.io.swan.dictionary_of_block_to_table(dict_of_dfs) - self.assertEqual(dff.shape, (len(x)*len(y), 2+len(keys))) + self.assertEqual(dff.shape, (len(x) * len(y), 2 + len(keys))) self.assertTrue(all(dff.x.unique() == np.unique(x))) for key in keys: self.assertTrue(key in dff.keys()) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/wave/io/test_wecsim.py b/mhkit/tests/wave/io/test_wecsim.py index 3c070458c..52df214b9 100644 --- a/mhkit/tests/wave/io/test_wecsim.py +++ b/mhkit/tests/wave/io/test_wecsim.py @@ -22,11 +22,10 @@ testdir = dirname(abspath(__file__)) -datadir = normpath(join(testdir,'..','..','..','..','examples','data','wave')) +datadir = normpath(join(testdir, "..", "..", "..", "..", "examples", "data", "wave")) class TestWECSim(unittest.TestCase): - @classmethod def setUpClass(self): pass @@ -37,52 +36,61 @@ def tearDownClass(self): ### WEC-Sim data, no mooring def test_read_wecSim_no_mooring(self): - ws_output = wave.io.wecsim.read_output(join(datadir, 'RM3_matlabWorkspace_structure.mat')) - self.assertEqual(ws_output['wave'].elevation.name,'elevation') - self.assertEqual(ws_output['bodies']['body1'].name,'float') - self.assertEqual(ws_output['ptos'].name,'PTO1') - self.assertEqual(ws_output['constraints'].name,'Constraint1') - self.assertEqual(len(ws_output['mooring']),0) - self.assertEqual(len(ws_output['moorDyn']),0) - self.assertEqual(len(ws_output['ptosim']),0) - self.assertEqual(len(ws_output['cables']),0) - + ws_output = wave.io.wecsim.read_output( + join(datadir, "RM3_matlabWorkspace_structure.mat") + ) + self.assertEqual(ws_output["wave"].elevation.name, "elevation") + self.assertEqual(ws_output["bodies"]["body1"].name, "float") + self.assertEqual(ws_output["ptos"].name, "PTO1") + self.assertEqual(ws_output["constraints"].name, "Constraint1") + self.assertEqual(len(ws_output["mooring"]), 0) + self.assertEqual(len(ws_output["moorDyn"]), 0) + self.assertEqual(len(ws_output["ptosim"]), 0) + self.assertEqual(len(ws_output["cables"]), 0) + ### WEC-Sim data, with cable def test_read_wecSim_cable(self): - ws_output = wave.io.wecsim.read_output(join(datadir, 'Cable_matlabWorkspace_structure.mat')) - self.assertEqual(ws_output['wave'].elevation.name,'elevation') - self.assertEqual(ws_output['bodies']['body1'].name,'BuoyDraft5cm') - self.assertEqual(ws_output['cables'].name,'Cable') - self.assertEqual(ws_output['constraints']['constraint1'].name,'Mooring') - self.assertEqual(len(ws_output['mooring']),0) - self.assertEqual(len(ws_output['moorDyn']),0) - self.assertEqual(len(ws_output['ptosim']),0) - self.assertEqual(len(ws_output['ptos']),0) + ws_output = wave.io.wecsim.read_output( + join(datadir, "Cable_matlabWorkspace_structure.mat"), + to_pandas=False, + ) + self.assertEqual(ws_output["wave"]["elevation"].name, "elevation") + self.assertEqual( + ws_output["bodies"]["body1"]["position_dof1"].name, "position_dof1" + ) + self.assertEqual(len(ws_output["mooring"]), 0) + self.assertEqual(len(ws_output["moorDyn"]), 0) + self.assertEqual(len(ws_output["ptosim"]), 0) + self.assertEqual(len(ws_output["ptos"]), 0) ### WEC-Sim data, with mooring def test_read_wecSim_with_mooring(self): - ws_output = wave.io.wecsim.read_output(join(datadir, 'RM3MooringMatrix_matlabWorkspace_structure.mat')) - self.assertEqual(ws_output['wave'].elevation.name,'elevation') - self.assertEqual(ws_output['bodies']['body1'].name,'float') - self.assertEqual(ws_output['ptos'].name,'PTO1') - self.assertEqual(ws_output['constraints'].name,'Constraint1') - self.assertEqual(len(ws_output['mooring']),40001) - self.assertEqual(len(ws_output['moorDyn']),0) - self.assertEqual(len(ws_output['ptosim']),0) - self.assertEqual(len(ws_output['cables']),0) + ws_output = wave.io.wecsim.read_output( + join(datadir, "RM3MooringMatrix_matlabWorkspace_structure.mat") + ) + self.assertEqual(ws_output["wave"].elevation.name, "elevation") + self.assertEqual(ws_output["bodies"]["body1"].name, "float") + self.assertEqual(ws_output["ptos"].name, "PTO1") + self.assertEqual(ws_output["constraints"].name, "Constraint1") + self.assertEqual(len(ws_output["mooring"]), 40001) + self.assertEqual(len(ws_output["moorDyn"]), 0) + self.assertEqual(len(ws_output["ptosim"]), 0) + self.assertEqual(len(ws_output["cables"]), 0) ### WEC-Sim data, with moorDyn def test_read_wecSim_with_moorDyn(self): - ws_output = wave.io.wecsim.read_output(join(datadir, 'RM3MoorDyn_matlabWorkspace_structure.mat')) - self.assertEqual(ws_output['wave'].elevation.name,'elevation') - self.assertEqual(ws_output['bodies']['body1'].name,'float') - self.assertEqual(ws_output['ptos'].name,'PTO1') - self.assertEqual(ws_output['constraints'].name,'Constraint1') - self.assertEqual(len(ws_output['mooring']),40001) - self.assertEqual(len(ws_output['moorDyn']),7) - self.assertEqual(len(ws_output['ptosim']),0) - self.assertEqual(len(ws_output['cables']),0) + ws_output = wave.io.wecsim.read_output( + join(datadir, "RM3MoorDyn_matlabWorkspace_structure.mat") + ) + self.assertEqual(ws_output["wave"].elevation.name, "elevation") + self.assertEqual(ws_output["bodies"]["body1"].name, "float") + self.assertEqual(ws_output["ptos"].name, "PTO1") + self.assertEqual(ws_output["constraints"].name, "Constraint1") + self.assertEqual(len(ws_output["mooring"]), 40001) + self.assertEqual(len(ws_output["moorDyn"]), 7) + self.assertEqual(len(ws_output["ptosim"]), 0) + self.assertEqual(len(ws_output["cables"]), 0) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/wave/test_contours.py b/mhkit/tests/wave/test_contours.py index fab2f828a..b0281665d 100644 --- a/mhkit/tests/wave/test_contours.py +++ b/mhkit/tests/wave/test_contours.py @@ -1,241 +1,545 @@ from os.path import abspath, dirname, join, isfile, normpath, relpath -from pandas.testing import assert_frame_equal from numpy.testing import assert_allclose -from scipy.interpolate import interp1d -from random import seed, randint import matplotlib.pylab as plt -from datetime import datetime -import xarray.testing as xrt import mhkit.wave as wave -from io import StringIO import pandas as pd import numpy as np -import contextlib +import warnings import unittest -import netCDF4 -import inspect import pickle -import time import json -import sys import os testdir = dirname(abspath(__file__)) -plotdir = join(testdir, 'plots') +plotdir = join(testdir, "plots") isdir = os.path.isdir(plotdir) -if not isdir: os.mkdir(plotdir) -datadir = normpath(join(testdir,relpath('../../../examples/data/wave'))) +if not isdir: + os.mkdir(plotdir) +datadir = normpath(join(testdir, relpath("../../../examples/data/wave"))) class TestContours(unittest.TestCase): - @classmethod def setUpClass(self): + f_name = "Hm0_Te_46022.json" + self.Hm0Te = pd.read_json(join(datadir, f_name)) - f_name= 'Hm0_Te_46022.json' - self.Hm0Te = pd.read_json(join(datadir,f_name)) - - file_loc=join(datadir, 'principal_component_analysis.pkl') - with open(file_loc, 'rb') as f: + file_loc = join(datadir, "principal_component_analysis.pkl") + with open(file_loc, "rb") as f: self.pca = pickle.load(f) f.close() - file_loc=join(datadir,'WDRT_caluculated_countours.json') + file_loc = join(datadir, "WDRT_caluculated_countours.json") with open(file_loc) as f: self.wdrt_copulas = json.load(f) f.close() - ndbc_46050=pd.read_csv(join(datadir,'NDBC46050.csv')) - self.wdrt_Hm0 = ndbc_46050['Hm0'] - self.wdrt_Te = ndbc_46050['Te'] + ndbc_46050 = pd.read_csv(join(datadir, "NDBC46050.csv")) + self.wdrt_Hm0 = ndbc_46050["Hm0"] + self.wdrt_Te = ndbc_46050["Te"] - self.wdrt_dt=3600 - self.wdrt_period= 50 + self.wdrt_dt = 3600 + self.wdrt_period = 50 @classmethod def tearDownClass(self): pass def test_environmental_contour(self): - Hm0Te = self.Hm0Te - df = Hm0Te[Hm0Te['Hm0'] < 20] + df = Hm0Te[Hm0Te["Hm0"] < 20] Hm0 = df.Hm0.values Te = df.Te.values - dt_ss = (Hm0Te.index[2]-Hm0Te.index[1]).seconds + dt_ss = (Hm0Te.index[2] - Hm0Te.index[1]).seconds period = 100 - copula = wave.contours.environmental_contours(Hm0, - Te, dt_ss, period, 'PCA') + copula = wave.contours.environmental_contours(Hm0, Te, dt_ss, period, "PCA") - Hm0_contour=copula['PCA_x1'] - Te_contour=copula['PCA_x2'] + Hm0_contour = copula["PCA_x1"] + Te_contour = copula["PCA_x2"] - file_loc=join(datadir,'Hm0_Te_contours_46022.csv') + file_loc = join(datadir, "Hm0_Te_contours_46022.csv") expected_contours = pd.read_csv(file_loc) - assert_allclose(expected_contours.Hm0_contour.values, - Hm0_contour, rtol=1e-3) + assert_allclose(expected_contours.Hm0_contour.values, Hm0_contour, rtol=1e-3) + + def test_environmental_contours_invalid_inputs(self): + # Invalid x1 tests + x1_non_numeric = "not an array" + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + x1_non_numeric, self.wdrt_Te, 3600, 50, "PCA" + ) + + x1_scalar = 5 + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + x1_scalar, self.wdrt_Te, 3600, 50, "PCA" + ) + + # Invalid x2 tests + x2_non_numeric = "not an array" + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + self.wdrt_Hm0, x2_non_numeric, 3600, 50, "PCA" + ) + + x2_scalar = 10 + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + self.wdrt_Hm0, x2_scalar, 3600, 50, "PCA" + ) + + # Unequal lengths of x1 and x2 + x2_unequal_length = self.wdrt_Te[:-1] + with self.assertRaises(ValueError): + wave.contours.environmental_contours( + self.wdrt_Hm0, x2_unequal_length, 3600, 50, "PCA" + ) + + # Invalid sea_state_duration tests + invalid_sea_state_duration_string = "one hour" + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + self.wdrt_Hm0, + self.wdrt_Te, + invalid_sea_state_duration_string, + 50, + "PCA", + ) + + invalid_sea_state_duration_list = [3600] + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + self.wdrt_Hm0, self.wdrt_Te, invalid_sea_state_duration_list, 50, "PCA" + ) + + # Invalid return_period tests + invalid_return_period_string = "fifty years" + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + self.wdrt_Hm0, self.wdrt_Te, 3600, invalid_return_period_string, "PCA" + ) + + invalid_return_period_list = [50] + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + self.wdrt_Hm0, self.wdrt_Te, 3600, invalid_return_period_list, "PCA" + ) + + # Invalid method tests + invalid_method = 123 + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + self.wdrt_Hm0, self.wdrt_Te, 3600, 50, invalid_method + ) + + invalid_bin_val_size = "not a number" + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + self.wdrt_Hm0, + self.wdrt_Te, + 3600, + 50, + "PCA", + bin_val_size=invalid_bin_val_size, + ) + + invalid_nb_steps = 100.5 + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + self.wdrt_Hm0, self.wdrt_Te, 3600, 50, "PCA", nb_steps=invalid_nb_steps + ) + + invalid_initial_bin_max_val = "not a number" + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + self.wdrt_Hm0, + self.wdrt_Te, + 3600, + 50, + "PCA", + initial_bin_max_val=invalid_initial_bin_max_val, + ) + + invalid_min_bin_count = 40.5 + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + self.wdrt_Hm0, + self.wdrt_Te, + 3600, + 50, + "PCA", + min_bin_count=invalid_min_bin_count, + ) + + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + self.wdrt_Hm0, self.wdrt_Te, 3600, 50, "bivariate_KDE" + ) + + invalid_PCA = "not a dict" + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + self.wdrt_Hm0, self.wdrt_Te, 3600, 50, "PCA", PCA=invalid_PCA + ) + + invalid_PCA_bin_size = "not an int" + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + self.wdrt_Hm0, + self.wdrt_Te, + 3600, + 50, + "PCA", + PCA_bin_size=invalid_PCA_bin_size, + ) + + invalid_return_fit = "not a boolean" + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + self.wdrt_Hm0, + self.wdrt_Te, + 3600, + 50, + "PCA", + return_fit=invalid_return_fit, + ) + + invalid_Ndata_bivariate_KDE = "not a number" + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + self.wdrt_Hm0, + self.wdrt_Te, + 3600, + 50, + "bivariate_KDE", + Ndata_bivariate_KDE=invalid_Ndata_bivariate_KDE, + ) + + invalid_max_x1 = "not a number" + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + self.wdrt_Hm0, self.wdrt_Te, 3600, 50, "PCA", max_x1=invalid_max_x1 + ) + + invalid_max_x2 = "not a number" + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + self.wdrt_Hm0, self.wdrt_Te, 3600, 50, "PCA", max_x2=invalid_max_x2 + ) + + invalid_bandwidth = "not a number" + with self.assertRaises(TypeError): + wave.contours.environmental_contours( + self.wdrt_Hm0, + self.wdrt_Te, + 3600, + 50, + "bivariate_KDE", + bandwidth=invalid_bandwidth, + ) + + def test_PCA_contours_invalid_inputs(self): + Hm0Te = self.Hm0Te + df = Hm0Te[Hm0Te["Hm0"] < 20] + + Hm0 = df.Hm0.values + Te = df.Te.values + + dt_ss = (Hm0Te.index[2] - Hm0Te.index[1]).seconds + period = 100 + + copula = wave.contours.environmental_contours( + Hm0, Te, dt_ss, period, "PCA", return_fit=True + ) + + PCA_args = { + "nb_steps": 1000, + "return_fit": False, + "bin_size": 250, + } + + # Invalid x1 tests + x1_non_numeric = "not an array" + with self.assertRaises(TypeError): + wave.contours.PCA_contour( + x1_non_numeric, self.wdrt_Te, copula["PCA_fit"], PCA_args + ) + + x1_scalar = 5 + with self.assertRaises(TypeError): + wave.contours.PCA_contour( + x1_scalar, self.wdrt_Te, copula["PCA_fit"], PCA_args + ) + + # Invalid x2 tests + x2_non_numeric = "not an array" + with self.assertRaises(TypeError): + wave.contours.PCA_contour( + self.wdrt_Hm0, x2_non_numeric, copula["PCA_fit"], PCA_args + ) + + x2_scalar = 10 + with self.assertRaises(TypeError): + wave.contours.PCA_contour( + self.wdrt_Hm0, x2_scalar, copula["PCA_fit"], PCA_args + ) + + # Unequal lengths of x1 and x2 + x2_unequal_length = self.wdrt_Te[:-1] + with self.assertRaises(ValueError): + wave.contours.PCA_contour( + self.wdrt_Hm0, x2_unequal_length, copula["PCA_fit"], PCA_args + ) def test__principal_component_analysis(self): Hm0Te = self.Hm0Te - df = Hm0Te[Hm0Te['Hm0'] < 20] + df = Hm0Te[Hm0Te["Hm0"] < 20] + + Hm0 = df.Hm0.values + Te = df.Te.values + PCA = wave.contours._principal_component_analysis(Hm0, Te, bin_size=250) + + assert_allclose(PCA["principal_axes"], self.pca["principal_axes"]) + self.assertAlmostEqual(PCA["shift"], self.pca["shift"]) + self.assertAlmostEqual(PCA["x1_fit"]["mu"], self.pca["x1_fit"]["mu"]) + self.assertAlmostEqual(PCA["mu_fit"].slope, self.pca["mu_fit"].slope) + self.assertAlmostEqual(PCA["mu_fit"].intercept, self.pca["mu_fit"].intercept) + assert_allclose(PCA["sigma_fit"]["x"], self.pca["sigma_fit"]["x"]) + + def test__principal_component_analysis_invalid_inputs(self): + x1_valid = np.array([1, 2, 3]) + x2_valid = np.array([1, 2, 3]) + + # Test invalid x1 (non-array input) + x1_non_array = "not an array" + with self.assertRaises(TypeError): + wave.contours._principal_component_analysis(x1_non_array, x2_valid) + + # Test invalid x2 (non-array input) + x2_non_array = "not an array" + with self.assertRaises(TypeError): + wave.contours._principal_component_analysis(x1_valid, x2_non_array) + + # Test invalid bin_size (non-integer input) + invalid_bin_size = "not an integer" + with self.assertRaises(TypeError): + wave.contours._principal_component_analysis( + x1_valid, x2_valid, bin_size=invalid_bin_size + ) + + def test_principal_component_analysis_bin_size_adjustment_warning(self): + Hm0Te = self.Hm0Te + df = Hm0Te[Hm0Te["Hm0"] < 20] Hm0 = df.Hm0.values Te = df.Te.values - PCA = (wave.contours - ._principal_component_analysis(Hm0,Te, bin_size=250)) - - assert_allclose(PCA['principal_axes'], - self.pca['principal_axes']) - self.assertAlmostEqual(PCA['shift'], self.pca['shift']) - self.assertAlmostEqual(PCA['x1_fit']['mu'], - self.pca['x1_fit']['mu']) - self.assertAlmostEqual(PCA['mu_fit'].slope, - self.pca['mu_fit'].slope) - self.assertAlmostEqual(PCA['mu_fit'].intercept, - self.pca['mu_fit'].intercept) - assert_allclose(PCA['sigma_fit']['x'], - self.pca['sigma_fit']['x']) + + large_bin_size = 1000000 + + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") # Cause all warnings to always be triggered + wave.contours._principal_component_analysis( + Hm0, Te, bin_size=large_bin_size + ) + + self.assertTrue(len(w) == 1) # Check that exactly one warning was raised + self.assertTrue( + issubclass(w[-1].category, UserWarning) + ) # Check the warning category + self.assertIn( + "To allow for a minimum of 4 bins, the bin size has been set to", + str(w[-1].message), + ) def test_plot_environmental_contour(self): - file_loc= join(plotdir, 'wave_plot_environmental_contour.png') + file_loc = join(plotdir, "wave_plot_environmental_contour.png") filename = abspath(file_loc) if isfile(filename): os.remove(filename) Hm0Te = self.Hm0Te - df = Hm0Te[Hm0Te['Hm0'] < 20] + df = Hm0Te[Hm0Te["Hm0"] < 20] Hm0 = df.Hm0.values Te = df.Te.values - dt_ss = (Hm0Te.index[2]-Hm0Te.index[1]).seconds + dt_ss = (Hm0Te.index[2] - Hm0Te.index[1]).seconds time_R = 100 - copulas = wave.contours.environmental_contours(Hm0, Te, dt_ss, - time_R, 'PCA') + copulas = wave.contours.environmental_contours(Hm0, Te, dt_ss, time_R, "PCA") - Hm0_contour=copulas['PCA_x1'] - Te_contour=copulas['PCA_x2'] + Hm0_contour = copulas["PCA_x1"] + Te_contour = copulas["PCA_x2"] - dt_ss = (Hm0Te.index[2]-Hm0Te.index[1]).seconds + dt_ss = (Hm0Te.index[2] - Hm0Te.index[1]).seconds time_R = 100 plt.figure() - (wave.graphics - .plot_environmental_contour(Te, Hm0, - Te_contour, Hm0_contour, - data_label='NDBC 46022', - contour_label='100-year Contour', - x_label = 'Te [s]', - y_label = 'Hm0 [m]') + ( + wave.graphics.plot_environmental_contour( + Te, + Hm0, + Te_contour, + Hm0_contour, + data_label="NDBC 46022", + contour_label="100-year Contour", + x_label="Te [s]", + y_label="Hm0 [m]", + ) ) - plt.savefig(filename, format='png') + plt.savefig(filename, format="png") plt.close() self.assertTrue(isfile(filename)) def test_plot_environmental_contour_multiyear(self): - filename = abspath(join(plotdir, - 'wave_plot_environmental_contour_multiyear.png')) + filename = abspath( + join(plotdir, "wave_plot_environmental_contour_multiyear.png") + ) if isfile(filename): os.remove(filename) Hm0Te = self.Hm0Te - df = Hm0Te[Hm0Te['Hm0'] < 20] + df = Hm0Te[Hm0Te["Hm0"] < 20] Hm0 = df.Hm0.values Te = df.Te.values - dt_ss = (Hm0Te.index[2]-Hm0Te.index[1]).seconds + dt_ss = (Hm0Te.index[2] - Hm0Te.index[1]).seconds time_R = [100, 105, 110, 120, 150] - Hm0s=[] - Tes=[] + Hm0s = [] + Tes = [] for period in time_R: - copulas = (wave.contours - .environmental_contours(Hm0,Te,dt_ss,period,'PCA')) + copulas = wave.contours.environmental_contours( + Hm0, Te, dt_ss, period, "PCA" + ) - Hm0s.append(copulas['PCA_x1']) - Tes.append(copulas['PCA_x2']) + Hm0s.append(copulas["PCA_x1"]) + Tes.append(copulas["PCA_x2"]) - contour_label = [f'{year}-year Contour' for year in time_R] + contour_label = [f"{year}-year Contour" for year in time_R] plt.figure() - (wave.graphics - .plot_environmental_contour(Te, Hm0, - Tes, Hm0s, - data_label='NDBC 46022', - contour_label=contour_label, - x_label = 'Te [s]', - y_label = 'Hm0 [m]') - ) - plt.savefig(filename, format='png') + ( + wave.graphics.plot_environmental_contour( + Te, + Hm0, + Tes, + Hm0s, + data_label="NDBC 46022", + contour_label=contour_label, + x_label="Te [s]", + y_label="Hm0 [m]", + ) + ) + plt.savefig(filename, format="png") plt.close() self.assertTrue(isfile(filename)) def test_standard_copulas(self): - copulas = (wave.contours - .environmental_contours(self.wdrt_Hm0, self.wdrt_Te, - self.wdrt_dt, self.wdrt_period, - method=['gaussian', 'gumbel', 'clayton']) - ) + copulas = wave.contours.environmental_contours( + self.wdrt_Hm0, + self.wdrt_Te, + self.wdrt_dt, + self.wdrt_period, + method=["gaussian", "gumbel", "clayton"], + ) # WDRT slightly vaires Rosenblatt copula parameters from # the other copula default parameters - rosen = (wave.contours - .environmental_contours(self.wdrt_Hm0, self.wdrt_Te, - self.wdrt_dt, self.wdrt_period, method=['rosenblatt'], - min_bin_count=50, initial_bin_max_val=0.5, - bin_val_size=0.25)) - copulas['rosenblatt_x1'] = rosen['rosenblatt_x1'] - copulas['rosenblatt_x2'] = rosen['rosenblatt_x2'] - - methods=['gaussian', 'gumbel', 'clayton', 'rosenblatt'] - close=[] + rosen = wave.contours.environmental_contours( + self.wdrt_Hm0, + self.wdrt_Te, + self.wdrt_dt, + self.wdrt_period, + method=["rosenblatt"], + min_bin_count=50, + initial_bin_max_val=0.5, + bin_val_size=0.25, + ) + copulas["rosenblatt_x1"] = rosen["rosenblatt_x1"] + copulas["rosenblatt_x2"] = rosen["rosenblatt_x2"] + + methods = ["gaussian", "gumbel", "clayton", "rosenblatt"] + close = [] for method in methods: - close.append(np.allclose(copulas[f'{method}_x1'], - self.wdrt_copulas[f'{method}_x1'])) - close.append(np.allclose(copulas[f'{method}_x2'], - self.wdrt_copulas[f'{method}_x2'])) + close.append( + np.allclose(copulas[f"{method}_x1"], self.wdrt_copulas[f"{method}_x1"]) + ) + close.append( + np.allclose(copulas[f"{method}_x2"], self.wdrt_copulas[f"{method}_x2"]) + ) self.assertTrue(all(close)) def test_nonparametric_copulas(self): - methods=['nonparametric_gaussian','nonparametric_clayton', - 'nonparametric_gumbel'] - - np_copulas = wave.contours.environmental_contours(self.wdrt_Hm0, - self.wdrt_Te, self.wdrt_dt, self.wdrt_period, method=methods) + methods = [ + "nonparametric_gaussian", + "nonparametric_clayton", + "nonparametric_gumbel", + ] + + np_copulas = wave.contours.environmental_contours( + self.wdrt_Hm0, self.wdrt_Te, self.wdrt_dt, self.wdrt_period, method=methods + ) - close=[] + close = [] for method in methods: - close.append(np.allclose(np_copulas[f'{method}_x1'], - self.wdrt_copulas[f'{method}_x1'], atol=0.13)) - close.append(np.allclose(np_copulas[f'{method}_x2'], - self.wdrt_copulas[f'{method}_x2'], atol=0.13)) + close.append( + np.allclose( + np_copulas[f"{method}_x1"], + self.wdrt_copulas[f"{method}_x1"], + atol=0.13, + ) + ) + close.append( + np.allclose( + np_copulas[f"{method}_x2"], + self.wdrt_copulas[f"{method}_x2"], + atol=0.13, + ) + ) self.assertTrue(all(close)) def test_kde_copulas(self): - kde_copula = wave.contours.environmental_contours(self.wdrt_Hm0, - self.wdrt_Te, self.wdrt_dt, self.wdrt_period, - method=['bivariate_KDE'], bandwidth=[0.23, 0.23]) - log_kde_copula = (wave.contours - .environmental_contours(self.wdrt_Hm0, self.wdrt_Te, - self.wdrt_dt, self.wdrt_period, method=['bivariate_KDE_log'], bandwidth=[0.02, 0.11]) - ) - - close= [ np.allclose(kde_copula['bivariate_KDE_x1'], - self.wdrt_copulas['bivariate_KDE_x1']), - np.allclose(kde_copula['bivariate_KDE_x2'], - self.wdrt_copulas['bivariate_KDE_x2']), - np.allclose(log_kde_copula['bivariate_KDE_log_x1'], - self.wdrt_copulas['bivariate_KDE_log_x1']), - np.allclose(log_kde_copula['bivariate_KDE_log_x2'], - self.wdrt_copulas['bivariate_KDE_log_x2'])] + kde_copula = wave.contours.environmental_contours( + self.wdrt_Hm0, + self.wdrt_Te, + self.wdrt_dt, + self.wdrt_period, + method=["bivariate_KDE"], + bandwidth=[0.23, 0.23], + ) + log_kde_copula = wave.contours.environmental_contours( + self.wdrt_Hm0, + self.wdrt_Te, + self.wdrt_dt, + self.wdrt_period, + method=["bivariate_KDE_log"], + bandwidth=[0.02, 0.11], + ) + + close = [ + np.allclose( + kde_copula["bivariate_KDE_x1"], self.wdrt_copulas["bivariate_KDE_x1"] + ), + np.allclose( + kde_copula["bivariate_KDE_x2"], self.wdrt_copulas["bivariate_KDE_x2"] + ), + np.allclose( + log_kde_copula["bivariate_KDE_log_x1"], + self.wdrt_copulas["bivariate_KDE_log_x1"], + ), + np.allclose( + log_kde_copula["bivariate_KDE_log_x2"], + self.wdrt_copulas["bivariate_KDE_log_x2"], + ), + ] self.assertTrue(all(close)) def test_samples_contours(self): @@ -243,30 +547,39 @@ def test_samples_contours(self): hs_samples_0 = np.array([8.56637939, 9.27612515, 8.70427774]) hs_contour = np.array(self.wdrt_copulas["gaussian_x1"]) te_contour = np.array(self.wdrt_copulas["gaussian_x2"]) - hs_samples = wave.contours.samples_contour( - te_samples, te_contour, hs_contour) + hs_samples = wave.contours.samples_contour(te_samples, te_contour, hs_contour) assert_allclose(hs_samples, hs_samples_0) def test_samples_seastate(self): - hs_0 = np.array([5.91760129, 4.55185088, 1.41144991, 12.64443154, - 7.89753791, 0.93890797]) - te_0 = np.array([14.24199604, 8.25383556, 6.03901866, 16.9836369, - 9.51967777, 3.46969355]) - w_0 = np.array([2.18127398e-01, 2.18127398e-01, 2.18127398e-01, - 2.45437862e-07, 2.45437862e-07, 2.45437862e-07]) - - df = self.Hm0Te[self.Hm0Te['Hm0'] < 20] - dt_ss = (self.Hm0Te.index[2]-self.Hm0Te.index[1]).seconds + hs_0 = np.array( + [5.91760129, 4.55185088, 1.41144991, 12.64443154, 7.89753791, 0.93890797] + ) + te_0 = np.array( + [14.24199604, 8.25383556, 6.03901866, 16.9836369, 9.51967777, 3.46969355] + ) + w_0 = np.array( + [ + 2.18127398e-01, + 2.18127398e-01, + 2.18127398e-01, + 2.45437862e-07, + 2.45437862e-07, + 2.45437862e-07, + ] + ) + + df = self.Hm0Te[self.Hm0Te["Hm0"] < 20] + dt_ss = (self.Hm0Te.index[2] - self.Hm0Te.index[1]).seconds points_per_interval = 3 return_periods = np.array([50, 100]) np.random.seed(0) hs, te, w = wave.contours.samples_full_seastate( - df.Hm0.values, df.Te.values, points_per_interval, return_periods, - dt_ss) + df.Hm0.values, df.Te.values, points_per_interval, return_periods, dt_ss + ) assert_allclose(hs, hs_0) assert_allclose(te, te_0) assert_allclose(w, w_0) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/wave/test_performance.py b/mhkit/tests/wave/test_performance.py index f4bc2a566..b8fce7cb8 100644 --- a/mhkit/tests/wave/test_performance.py +++ b/mhkit/tests/wave/test_performance.py @@ -1,130 +1,147 @@ from os.path import abspath, dirname, join, isfile, normpath, relpath -from pandas.testing import assert_frame_equal -from numpy.testing import assert_allclose -from scipy.interpolate import interp1d -from random import seed, randint import matplotlib.pylab as plt -from datetime import datetime import xarray.testing as xrt import mhkit.wave as wave -from io import StringIO import pandas as pd import numpy as np -import contextlib import unittest -import netCDF4 -import inspect -import pickle -import time -import json -import sys import os testdir = dirname(abspath(__file__)) -plotdir = join(testdir, 'plots') +plotdir = join(testdir, "plots") isdir = os.path.isdir(plotdir) -if not isdir: os.mkdir(plotdir) -datadir = normpath(join(testdir,relpath('../../../examples/data/wave'))) +if not isdir: + os.mkdir(plotdir) +datadir = normpath(join(testdir, relpath("../../../examples/data/wave"))) class TestPerformance(unittest.TestCase): - @classmethod def setUpClass(self): np.random.seed(123) Hm0 = np.random.rayleigh(4, 100000) - Te = np.random.normal(4.5, .8, 100000) + Te = np.random.normal(4.5, 0.8, 100000) P = np.random.normal(200, 40, 100000) J = np.random.normal(300, 10, 100000) - ndbc_data_file = join(datadir,'data.txt') + ndbc_data_file = join(datadir, "data.txt") [raw_ndbc_data, meta] = wave.io.ndbc.read_file(ndbc_data_file) self.S = raw_ndbc_data.T - self.data = pd.DataFrame({'Hm0': Hm0, 'Te': Te, 'P': P,'J': J}) - self.Hm0_bins = np.arange(0,19,0.5) - self.Te_bins = np.arange(0,9,1) - self.expected_stats = ["mean","std","median","count","sum","min","max","freq"] + self.data = pd.DataFrame({"Hm0": Hm0, "Te": Te, "P": P, "J": J}) + self.Hm0_bins = np.arange(0, 19, 0.5) + self.Te_bins = np.arange(0, 9, 1) + self.expected_stats = [ + "mean", + "std", + "median", + "count", + "sum", + "min", + "max", + "freq", + ] @classmethod def tearDownClass(self): pass def test_capture_length(self): - L = wave.performance.capture_length(self.data['P'], self.data['J']) + L = wave.performance.capture_length(self.data["P"], self.data["J"]) L_stats = wave.performance.statistics(L) - self.assertAlmostEqual(L_stats['mean'], 0.6676, 3) + self.assertAlmostEqual(L_stats["mean"], 0.6676, 3) def test_capture_length_matrix(self): - L = wave.performance.capture_length(self.data['P'], self.data['J']) - LM = wave.performance.capture_length_matrix(self.data['Hm0'], self.data['Te'], - L, 'std', self.Hm0_bins, self.Te_bins) + L = wave.performance.capture_length(self.data["P"], self.data["J"]) + LM = wave.performance.capture_length_matrix( + self.data["Hm0"], self.data["Te"], L, "std", self.Hm0_bins, self.Te_bins + ) - self.assertEqual(LM.shape, (38,9)) + self.assertEqual(LM.shape, (38, 9)) self.assertEqual(LM.isna().sum().sum(), 131) def test_wave_energy_flux_matrix(self): - JM = wave.performance.wave_energy_flux_matrix(self.data['Hm0'], self.data['Te'], - self.data['J'], 'mean', self.Hm0_bins, self.Te_bins) - - self.assertEqual(JM.shape, (38,9)) + JM = wave.performance.wave_energy_flux_matrix( + self.data["Hm0"], + self.data["Te"], + self.data["J"], + "mean", + self.Hm0_bins, + self.Te_bins, + ) + + self.assertEqual(JM.shape, (38, 9)) self.assertEqual(JM.isna().sum().sum(), 131) def test_power_matrix(self): - L = wave.performance.capture_length(self.data['P'], self.data['J']) - LM = wave.performance.capture_length_matrix(self.data['Hm0'], self.data['Te'], - L, 'mean', self.Hm0_bins, self.Te_bins) - JM = wave.performance.wave_energy_flux_matrix(self.data['Hm0'], self.data['Te'], - self.data['J'], 'mean', self.Hm0_bins, self.Te_bins) + L = wave.performance.capture_length(self.data["P"], self.data["J"]) + LM = wave.performance.capture_length_matrix( + self.data["Hm0"], self.data["Te"], L, "mean", self.Hm0_bins, self.Te_bins + ) + JM = wave.performance.wave_energy_flux_matrix( + self.data["Hm0"], + self.data["Te"], + self.data["J"], + "mean", + self.Hm0_bins, + self.Te_bins, + ) PM = wave.performance.power_matrix(LM, JM) - self.assertEqual(PM.shape, (38,9)) + self.assertEqual(PM.shape, (38, 9)) self.assertEqual(PM.isna().sum().sum(), 131) def test_mean_annual_energy_production(self): - L = wave.performance.capture_length(self.data['P'], self.data['J']) - maep = wave.performance.mean_annual_energy_production_timeseries(L, self.data['J']) + L = wave.performance.capture_length(self.data["P"], self.data["J"]) + maep = wave.performance.mean_annual_energy_production_timeseries( + L, self.data["J"] + ) self.assertAlmostEqual(maep, 1754020.077, 2) - def test_plot_matrix(self): - filename = abspath(join(plotdir, 'wave_plot_matrix.png')) + filename = abspath(join(plotdir, "wave_plot_matrix.png")) if isfile(filename): os.remove(filename) - M = wave.performance.wave_energy_flux_matrix(self.data['Hm0'], self.data['Te'], - self.data['J'], 'mean', self.Hm0_bins, self.Te_bins) + M = wave.performance.wave_energy_flux_matrix( + self.data["Hm0"], + self.data["Te"], + self.data["J"], + "mean", + self.Hm0_bins, + self.Te_bins, + ) plt.figure() wave.graphics.plot_matrix(M) - plt.savefig(filename, format='png') + plt.savefig(filename, format="png") plt.close() self.assertTrue(isfile(filename)) def test_powerperformance_workflow(self): - filename = abspath(join(plotdir, 'Capture Length Matrix mean.png')) + filename = abspath(join(plotdir, "Capture Length Matrix mean.png")) if isfile(filename): os.remove(filename) - P = pd.Series(np.random.normal(200, 40, 743),index = self.S.columns) - statistic = ['mean'] + P = pd.Series(np.random.normal(200, 40, 743), index=self.S.columns) + statistic = ["mean"] savepath = plotdir show_values = True h = 60 expected = 401239.4822345051 - x = self.S.T - CM,MAEP = wave.performance.power_performance_workflow(self.S, h, - P, statistic, savepath=savepath, show_values=show_values) + CM, MAEP = wave.performance.power_performance_workflow( + self.S, h, P, statistic, savepath=savepath, show_values=show_values + ) self.assertTrue(isfile(filename)) - self.assertEqual(list(CM.data_vars),self.expected_stats) + self.assertEqual(list(CM.data_vars), self.expected_stats) - error = (expected-MAEP)/expected # SSE + error = (expected - MAEP) / expected # SSE self.assertLess(error, 1e-6) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/wave/test_resource_metrics.py b/mhkit/tests/wave/test_resource_metrics.py index e927a6157..9cdf589fc 100644 --- a/mhkit/tests/wave/test_resource_metrics.py +++ b/mhkit/tests/wave/test_resource_metrics.py @@ -9,6 +9,7 @@ import mhkit.wave as wave from io import StringIO import pandas as pd +import xarray as xr import numpy as np import contextlib import unittest @@ -22,64 +23,65 @@ testdir = dirname(abspath(__file__)) -plotdir = join(testdir, 'plots') +plotdir = join(testdir, "plots") isdir = os.path.isdir(plotdir) -if not isdir: os.mkdir(plotdir) -datadir = normpath(join(testdir,relpath('../../../examples/data/wave'))) +if not isdir: + os.mkdir(plotdir) +datadir = normpath(join(testdir, relpath("../../../examples/data/wave"))) class TestResourceMetrics(unittest.TestCase): - @classmethod def setUpClass(self): - omega = np.arange(0.1,3.5,0.01) - self.f = omega/(2*np.pi) + omega = np.arange(0.1, 3.5, 0.01) + self.f = omega / (2 * np.pi) self.Hs = 2.5 self.Tp = 8 - file_name = join(datadir, 'ValData1.json') + file_name = join(datadir, "ValData1.json") with open(file_name, "r") as read_file: self.valdata1 = pd.DataFrame(json.load(read_file)) self.valdata2 = {} - file_name = join(datadir, 'ValData2_MC.json') + file_name = join(datadir, "ValData2_MC.json") with open(file_name, "r") as read_file: data = json.load(read_file) - self.valdata2['MC'] = data + self.valdata2["MC"] = data for i in data.keys(): # Calculate elevation spectra - elevation = pd.DataFrame(data[i]['elevation']) + elevation = pd.DataFrame(data[i]["elevation"]) elevation.index = elevation.index.astype(float) elevation.sort_index(inplace=True) - sample_rate = data[i]['sample_rate'] - NFFT = data[i]['NFFT'] - self.valdata2['MC'][i]['S'] = wave.resource.elevation_spectrum(elevation, - sample_rate, NFFT) + sample_rate = data[i]["sample_rate"] + NFFT = data[i]["NFFT"] + self.valdata2["MC"][i]["S"] = wave.resource.elevation_spectrum( + elevation, sample_rate, NFFT + ) - file_name = join(datadir, 'ValData2_AH.json') + file_name = join(datadir, "ValData2_AH.json") with open(file_name, "r") as read_file: data = json.load(read_file) - self.valdata2['AH'] = data + self.valdata2["AH"] = data for i in data.keys(): # Calculate elevation spectra - elevation = pd.DataFrame(data[i]['elevation']) + elevation = pd.DataFrame(data[i]["elevation"]) elevation.index = elevation.index.astype(float) elevation.sort_index(inplace=True) - sample_rate = data[i]['sample_rate'] - NFFT = data[i]['NFFT'] - self.valdata2['AH'][i]['S'] = wave.resource.elevation_spectrum(elevation, - sample_rate, NFFT) + sample_rate = data[i]["sample_rate"] + NFFT = data[i]["NFFT"] + self.valdata2["AH"][i]["S"] = wave.resource.elevation_spectrum( + elevation, sample_rate, NFFT + ) - file_name = join(datadir, 'ValData2_CDiP.json') + file_name = join(datadir, "ValData2_CDiP.json") with open(file_name, "r") as read_file: data = json.load(read_file) - self.valdata2['CDiP'] = data + self.valdata2["CDiP"] = data for i in data.keys(): - temp = pd.Series(data[i]['S']).to_frame('S') + temp = pd.Series(data[i]["S"]).to_frame("S") temp.index = temp.index.astype(float) - self.valdata2['CDiP'][i]['S'] = temp - + self.valdata2["CDiP"][i]["S"] = temp @classmethod def tearDownClass(self): @@ -87,14 +89,14 @@ def tearDownClass(self): def test_kfromw(self): for i in self.valdata1.columns: - f = np.array(self.valdata1[i]['w'])/(2*np.pi) - h = self.valdata1[i]['h'] - rho = self.valdata1[i]['rho'] + f = np.array(self.valdata1[i]["w"]) / (2 * np.pi) + h = self.valdata1[i]["h"] + rho = self.valdata1[i]["rho"] - expected = self.valdata1[i]['k'] + expected = self.valdata1[i]["k"] k = wave.resource.wave_number(f, h, rho) - calculated = k.loc[:,'k'].values - error = ((expected-calculated)**2).sum() # SSE + calculated = k.loc[:, "k"].values + error = ((expected - calculated) ** 2).sum() # SSE self.assertLess(error, 1e-6) @@ -102,105 +104,125 @@ def test_kfromw_one_freq(self): g = 9.81 f = 0.1 h = 1e9 - w = np.pi*2*f # deep water dispersion + w = np.pi * 2 * f # deep water dispersion expected = w**2 / g calculated = wave.resource.wave_number(f=f, h=h, g=g).values[0][0] - error = np.abs(expected-calculated) + error = np.abs(expected - calculated) self.assertLess(error, 1e-6) def test_wave_length(self): - k_list=[1,2,10,3] - l_expected = (2.*np.pi/np.array(k_list)).tolist() + k_array = np.asarray([1.0, 2.0, 10.0, 3.0]) - k_df = pd.DataFrame(k_list,index = [1,2,3,4]) - k_series= k_df[0] - k_array=np.array(k_list) + k_int = int(k_array[0]) + k_float = k_array[0] + k_df = pd.DataFrame(k_array, index=[1, 2, 3, 4]) + k_series = k_df[0] - for l in [k_list, k_df, k_series, k_array]: + for l in [k_array, k_int, k_float, k_df, k_series]: l_calculated = wave.resource.wave_length(l) - self.assertListEqual(l_expected,l_calculated.tolist()) - - idx=0 - k_int = k_list[idx] - l_calculated = wave.resource.wave_length(k_int) - self.assertEqual(l_expected[idx],l_calculated) + self.assertTrue(np.all(2.0 * np.pi / l == l_calculated)) def test_depth_regime(self): - expected = [True,True,False,True] - l_list=[1,2,10,3] - l_df = pd.DataFrame(l_list,index = [1,2,3,4]) - l_series= l_df[0] - l_array=np.array(l_list) h = 10 - for l in [l_list, l_df, l_series, l_array]: - calculated = wave.resource.depth_regime(l,h) - self.assertListEqual(expected,calculated.tolist()) - - idx=0 - l_int = l_list[idx] - calculated = wave.resource.depth_regime(l_int,h) - self.assertEqual(expected[idx],calculated) + # non-array like formats + l_int = 1 + l_float = 1.0 + expected = True + for l in [l_int, l_float]: + calculated = wave.resource.depth_regime(l, h) + self.assertTrue(np.all(expected == calculated)) + + # array-like formats + l_array = np.array([1, 2, 10, 3]) + l_df = pd.DataFrame(l_array, index=[1, 2, 3, 4]) + l_series = l_df[0] + l_da = xr.DataArray(l_series) + l_da.name = "data" + l_ds = l_da.to_dataset() + expected = [True, True, False, True] + for l in [l_array, l_series, l_da, l_ds]: + calculated = wave.resource.depth_regime(l, h) + self.assertTrue(np.all(expected == calculated)) + + # special formatting for pd.DataFrame + for l in [l_df]: + calculated = wave.resource.depth_regime(l, h) + self.assertTrue(np.all(expected == calculated[0])) def test_wave_celerity(self): # Depth regime ratio - dr_ratio=2 + dr_ratio = 2 # small change in f will give similar value cg - f=np.linspace(20.0001,20.0005,5) + f = np.linspace(20.0001, 20.0005, 5) # Choose index to spike at. cg spike is inversly proportional to k - k_idx=2 - k_tmp=[1, 1, 0.5, 1, 1] + k_idx = 2 + k_tmp = [1, 1, 0.5, 1, 1] k = pd.DataFrame(k_tmp, index=f) # all shallow - cg_shallow1 = wave.resource.wave_celerity(k, h=0.0001,depth_check=True) - cg_shallow2 = wave.resource.wave_celerity(k, h=0.0001,depth_check=False) - self.assertTrue(all(cg_shallow1.squeeze().values == - cg_shallow2.squeeze().values)) - + cg_shallow1 = wave.resource.wave_celerity(k, h=0.0001, depth_check=True) + cg_shallow2 = wave.resource.wave_celerity(k, h=0.0001, depth_check=False) + self.assertTrue( + all(cg_shallow1.squeeze().values == cg_shallow2.squeeze().values) + ) # all deep - cg = wave.resource.wave_celerity(k, h=1000,depth_check=True) - self.assertTrue(all(np.pi*f/k.squeeze().values == cg.squeeze().values)) + cg = wave.resource.wave_celerity(k, h=1000, depth_check=True) + self.assertTrue(all(np.pi * f / k.squeeze().values == cg.squeeze().values)) def test_energy_flux_deep(self): - # Dependent on mhkit.resource.BS spectrum - S = wave.resource.jonswap_spectrum(self.f,self.Tp,self.Hs) + S = wave.resource.jonswap_spectrum(self.f, self.Tp, self.Hs) Te = wave.resource.energy_period(S) Hm0 = wave.resource.significant_wave_height(S) - rho=1025 - g=9.80665 - coeff = rho*(g**2)/(64*np.pi) - J = coeff*(Hm0.squeeze()**2)*Te.squeeze() - h=-1 # not used when deep=True + rho = 1025 + g = 9.80665 + coeff = rho * (g**2) / (64 * np.pi) + J = coeff * (Hm0.squeeze() ** 2) * Te.squeeze() + + h = -1 # not used when deep=True J_calc = wave.resource.energy_flux(S, h, deep=True) self.assertTrue(J_calc.squeeze() == J) + def test_energy_flux_shallow(self): + S = wave.resource.jonswap_spectrum(self.f, self.Tp, self.Hs) + Te = wave.resource.energy_period(S) + Hm0 = wave.resource.significant_wave_height(S) + + rho = 1025 + g = 9.80665 + coeff = rho * (g**2) / (64 * np.pi) + J = coeff * (Hm0.squeeze() ** 2) * Te.squeeze() + + h = 1000 # effectively deep but without assumptions + J_calc = wave.resource.energy_flux(S, h, deep=False) + err = np.abs(J_calc.squeeze() - J) + self.assertLess(err, 1e-6) def test_moments(self): - for file_i in self.valdata2.keys(): # for each file MC, AH, CDiP + for file_i in self.valdata2.keys(): # for each file MC, AH, CDiP datasets = self.valdata2[file_i] - for s in datasets.keys(): # for each set + for s in datasets.keys(): # for each set data = datasets[s] - for m in data['m'].keys(): - expected = data['m'][m] - S = data['S'] - if s == 'CDiP1' or s == 'CDiP6': - f_bins=pd.Series(data['freqBinWidth']) + for m in data["m"].keys(): + expected = data["m"][m] + S = data["S"] + if s == "CDiP1" or s == "CDiP6": + f_bins = pd.Series(data["freqBinWidth"]) else: f_bins = None - calculated = wave.resource.frequency_moment(S, int(m) - ,frequency_bins=f_bins).iloc[0,0] - error = np.abs(expected-calculated)/expected + calculated = wave.resource.frequency_moment( + S, int(m), frequency_bins=f_bins + ).iloc[0, 0] + error = np.abs(expected - calculated) / expected self.assertLess(error, 0.01) - def test_energy_period_to_peak_period(self): # This test checks that if we perform the # Te to Tp conversion, we create a spectrum @@ -218,164 +240,172 @@ def test_energy_period_to_peak_period(self): Te_calc = wave.resource.energy_period(S).values[0][0] - error = np.abs(T - Te_calc)/Te_calc + error = np.abs(T - Te_calc) / Te_calc self.assertLess(error, 0.01) - def test_metrics(self): - for file_i in self.valdata2.keys(): # for each file MC, AH, CDiP + for file_i in self.valdata2.keys(): # for each file MC, AH, CDiP datasets = self.valdata2[file_i] - for s in datasets.keys(): # for each set - - + for s in datasets.keys(): # for each set data = datasets[s] - S = data['S'] - if file_i == 'CDiP': - f_bins=pd.Series(data['freqBinWidth']) + S = data["S"] + if file_i == "CDiP": + f_bins = pd.Series(data["freqBinWidth"]) else: f_bins = None # Hm0 - expected = data['metrics']['Hm0'] - calculated = wave.resource.significant_wave_height(S, - frequency_bins=f_bins).iloc[0,0] - error = np.abs(expected-calculated)/expected - #print('Hm0', expected, calculated, error) + expected = data["metrics"]["Hm0"] + calculated = wave.resource.significant_wave_height( + S, frequency_bins=f_bins + ).iloc[0, 0] + error = np.abs(expected - calculated) / expected + # print('Hm0', expected, calculated, error) self.assertLess(error, 0.01) # Te - expected = data['metrics']['Te'] - calculated = wave.resource.energy_period(S, - frequency_bins=f_bins).iloc[0,0] - error = np.abs(expected-calculated)/expected - #print('Te', expected, calculated, error) + expected = data["metrics"]["Te"] + calculated = wave.resource.energy_period(S, frequency_bins=f_bins).iloc[ + 0, 0 + ] + error = np.abs(expected - calculated) / expected + # print('Te', expected, calculated, error) self.assertLess(error, 0.01) # T0 - expected = data['metrics']['T0'] - calculated = wave.resource.average_zero_crossing_period(S, - frequency_bins=f_bins).iloc[0,0] - error = np.abs(expected-calculated)/expected - #print('T0', expected, calculated, error) + expected = data["metrics"]["T0"] + calculated = wave.resource.average_zero_crossing_period( + S, frequency_bins=f_bins + ).iloc[0, 0] + error = np.abs(expected - calculated) / expected + # print('T0', expected, calculated, error) self.assertLess(error, 0.01) # Tc - expected = data['metrics']['Tc'] - calculated = wave.resource.average_crest_period(S, - # Tc = Tavg**2 - frequency_bins=f_bins).iloc[0,0]**2 - error = np.abs(expected-calculated)/expected - #print('Tc', expected, calculated, error) + expected = data["metrics"]["Tc"] + calculated = ( + wave.resource.average_crest_period( + S, + # Tc = Tavg**2 + frequency_bins=f_bins, + ).iloc[0, 0] + ** 2 + ) + error = np.abs(expected - calculated) / expected + # print('Tc', expected, calculated, error) self.assertLess(error, 0.01) # Tm - expected = np.sqrt(data['metrics']['Tm']) - calculated = wave.resource.average_wave_period(S, - frequency_bins=f_bins).iloc[0,0] - error = np.abs(expected-calculated)/expected - #print('Tm', expected, calculated, error) + expected = np.sqrt(data["metrics"]["Tm"]) + calculated = wave.resource.average_wave_period( + S, frequency_bins=f_bins + ).iloc[0, 0] + error = np.abs(expected - calculated) / expected + # print('Tm', expected, calculated, error) self.assertLess(error, 0.01) # Tp - expected = data['metrics']['Tp'] - calculated = wave.resource.peak_period(S).iloc[0,0] - error = np.abs(expected-calculated)/expected - #print('Tp', expected, calculated, error) + expected = data["metrics"]["Tp"] + calculated = wave.resource.peak_period(S).iloc[0, 0] + error = np.abs(expected - calculated) / expected + # print('Tp', expected, calculated, error) self.assertLess(error, 0.001) # e - expected = data['metrics']['e'] - calculated = wave.resource.spectral_bandwidth(S, - frequency_bins=f_bins).iloc[0,0] - error = np.abs(expected-calculated)/expected - #print('e', expected, calculated, error) + expected = data["metrics"]["e"] + calculated = wave.resource.spectral_bandwidth( + S, frequency_bins=f_bins + ).iloc[0, 0] + error = np.abs(expected - calculated) / expected + # print('e', expected, calculated, error) self.assertLess(error, 0.001) # J - if file_i != 'CDiP': - for i,j in zip(data['h'],data['J']): - expected = data['J'][j] - calculated = wave.resource.energy_flux(S,i) - error = np.abs(expected-calculated.values)/expected + if file_i != "CDiP": + for i, j in zip(data["h"], data["J"]): + expected = data["J"][j] + calculated = wave.resource.energy_flux(S, i) + error = np.abs(expected - calculated.values) / expected self.assertLess(error, 0.1) # v - if file_i == 'CDiP': + if file_i == "CDiP": # this should be updated to run on other datasets - expected = data['metrics']['v'] - calculated = wave.resource.spectral_width(S, - frequency_bins=f_bins).iloc[0,0] - error = np.abs(expected-calculated)/expected + expected = data["metrics"]["v"] + calculated = wave.resource.spectral_width( + S, frequency_bins=f_bins + ).iloc[0, 0] + error = np.abs(expected - calculated) / expected self.assertLess(error, 0.01) - if file_i == 'MC': - expected = data['metrics']['v'] + if file_i == "MC": + expected = data["metrics"]["v"] # testing that default uniform frequency bin widths works - calculated = wave.resource.spectral_width(S).iloc[0,0] - error = np.abs(expected-calculated)/expected + calculated = wave.resource.spectral_width(S).iloc[0, 0] + error = np.abs(expected - calculated) / expected self.assertLess(error, 0.01) - def test_plot_elevation_timeseries(self): - filename = abspath(join(plotdir, 'wave_plot_elevation_timeseries.png')) + filename = abspath(join(plotdir, "wave_plot_elevation_timeseries.png")) if isfile(filename): os.remove(filename) - data = self.valdata2['MC'] - temp = pd.DataFrame(data[list(data.keys())[0]]['elevation']) + data = self.valdata2["MC"] + temp = pd.DataFrame(data[list(data.keys())[0]]["elevation"]) temp.index = temp.index.astype(float) temp.sort_index(inplace=True) - eta = temp.iloc[0:100,:] + eta = temp.iloc[0:100, :] plt.figure() wave.graphics.plot_elevation_timeseries(eta) - plt.savefig(filename, format='png') + plt.savefig(filename, format="png") plt.close() self.assertTrue(isfile(filename)) -class TestPlotResouceCharacterizations(unittest.TestCase): +class TestPlotResouceCharacterizations(unittest.TestCase): @classmethod def setUpClass(self): - f_name= 'Hm0_Te_46022.json' - self.Hm0Te = pd.read_json(join(datadir,f_name)) + f_name = "Hm0_Te_46022.json" + self.Hm0Te = pd.read_json(join(datadir, f_name)) + @classmethod def tearDownClass(self): pass - def test_plot_avg_annual_energy_matrix(self): - filename = abspath(join(plotdir, 'avg_annual_scatter_table.png')) + def test_plot_avg_annual_energy_matrix(self): + filename = abspath(join(plotdir, "avg_annual_scatter_table.png")) if isfile(filename): os.remove(filename) Hm0Te = self.Hm0Te Hm0Te.drop(Hm0Te[Hm0Te.Hm0 > 20].index, inplace=True) - J = np.random.random(len(Hm0Te))*100 + J = np.random.random(len(Hm0Te)) * 100 plt.figure() - fig = wave.graphics.plot_avg_annual_energy_matrix(Hm0Te.Hm0, - Hm0Te.Te, J, Hm0_bin_size=0.5, Te_bin_size=1) - plt.savefig(filename, format='png') + fig = wave.graphics.plot_avg_annual_energy_matrix( + Hm0Te.Hm0, Hm0Te.Te, J, Hm0_bin_size=0.5, Te_bin_size=1 + ) + plt.savefig(filename, format="png") plt.close() self.assertTrue(isfile(filename)) def test_plot_monthly_cumulative_distribution(self): - - filename = abspath(join(plotdir, 'monthly_cumulative_distribution.png')) + filename = abspath(join(plotdir, "monthly_cumulative_distribution.png")) if isfile(filename): os.remove(filename) - a = pd.date_range(start='1/1/2010', periods=10000, freq='h') - S = pd.Series(np.random.random(len(a)) , index=a) - ax=wave.graphics.monthly_cumulative_distribution(S) - plt.savefig(filename, format='png') + a = pd.date_range(start="1/1/2010", periods=10000, freq="h") + S = pd.Series(np.random.random(len(a)), index=a) + ax = wave.graphics.monthly_cumulative_distribution(S) + plt.savefig(filename, format="png") plt.close() self.assertTrue(isfile(filename)) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/mhkit/tests/wave/test_resource_spectrum.py b/mhkit/tests/wave/test_resource_spectrum.py index 30e4e3c4e..4907a5638 100644 --- a/mhkit/tests/wave/test_resource_spectrum.py +++ b/mhkit/tests/wave/test_resource_spectrum.py @@ -2,34 +2,24 @@ from pandas.testing import assert_frame_equal from numpy.testing import assert_allclose from scipy.interpolate import interp1d -from random import seed, randint import matplotlib.pylab as plt -from datetime import datetime -import xarray.testing as xrt +import xarray as xr import mhkit.wave as wave -from io import StringIO import pandas as pd import numpy as np -import contextlib import unittest -import netCDF4 -import inspect -import pickle -import time -import json -import sys import os testdir = dirname(abspath(__file__)) -plotdir = join(testdir, 'plots') +plotdir = join(testdir, "plots") isdir = os.path.isdir(plotdir) -if not isdir: os.mkdir(plotdir) -datadir = normpath(join(testdir,relpath('../../../examples/data/wave'))) +if not isdir: + os.mkdir(plotdir) +datadir = normpath(join(testdir, relpath("../../../examples/data/wave"))) class TestResourceSpectrum(unittest.TestCase): - @classmethod def setUpClass(self): Trep = 600 @@ -44,12 +34,12 @@ def tearDownClass(self): pass def test_pierson_moskowitz_spectrum(self): - S = wave.resource.pierson_moskowitz_spectrum(self.f,self.Tp,self.Hs) - Hm0 = wave.resource.significant_wave_height(S).iloc[0,0] - Tp0 = wave.resource.peak_period(S).iloc[0,0] + S = wave.resource.pierson_moskowitz_spectrum(self.f, self.Tp, self.Hs) + Hm0 = wave.resource.significant_wave_height(S).iloc[0, 0] + Tp0 = wave.resource.peak_period(S).iloc[0, 0] - errorHm0 = np.abs(self.Tp - Tp0)/self.Tp - errorTp0 = np.abs(self.Hs - Hm0)/self.Hs + errorHm0 = np.abs(self.Tp - Tp0) / self.Tp + errorTp0 = np.abs(self.Hs - Hm0) / self.Hs self.assertLess(errorHm0, 0.01) self.assertLess(errorTp0, 0.01) @@ -60,18 +50,20 @@ def test_pierson_moskowitz_spectrum_zero_freq(self): f_nonzero = np.arange(df, 1, df) S_zero = wave.resource.pierson_moskowitz_spectrum(f_zero, self.Tp, self.Hs) - S_nonzero = wave.resource.pierson_moskowitz_spectrum(f_nonzero, self.Tp, self.Hs) + S_nonzero = wave.resource.pierson_moskowitz_spectrum( + f_nonzero, self.Tp, self.Hs + ) self.assertEqual(S_zero.values.squeeze()[0], 0.0) self.assertGreater(S_nonzero.values.squeeze()[0], 0.0) def test_jonswap_spectrum(self): S = wave.resource.jonswap_spectrum(self.f, self.Tp, self.Hs) - Hm0 = wave.resource.significant_wave_height(S).iloc[0,0] - Tp0 = wave.resource.peak_period(S).iloc[0,0] + Hm0 = wave.resource.significant_wave_height(S).iloc[0, 0] + Tp0 = wave.resource.peak_period(S).iloc[0, 0] - errorHm0 = np.abs(self.Tp - Tp0)/self.Tp - errorTp0 = np.abs(self.Hs - Hm0)/self.Hs + errorHm0 = np.abs(self.Tp - Tp0) / self.Tp + errorTp0 = np.abs(self.Hs - Hm0) / self.Hs self.assertLess(errorHm0, 0.01) self.assertLess(errorTp0, 0.01) @@ -87,31 +79,36 @@ def test_jonswap_spectrum_zero_freq(self): self.assertEqual(S_zero.values.squeeze()[0], 0.0) self.assertGreater(S_nonzero.values.squeeze()[0], 0.0) - def test_surface_elevation_phases_np_and_pd(self): - S0 = wave.resource.jonswap_spectrum(self.f,self.Tp,self.Hs) - S1 = wave.resource.jonswap_spectrum(self.f,self.Tp,self.Hs*1.1) + def test_surface_elevation_phases_xr_and_pd(self): + S0 = wave.resource.jonswap_spectrum(self.f, self.Tp, self.Hs) + S1 = wave.resource.jonswap_spectrum(self.f, self.Tp, self.Hs * 1.1) S = pd.concat([S0, S1], axis=1) phases_np = np.random.rand(S.shape[0], S.shape[1]) * 2 * np.pi phases_pd = pd.DataFrame(phases_np, index=S.index, columns=S.columns) + phases_xr = xr.Dataset(phases_pd) - eta_np = wave.resource.surface_elevation(S, self.t, phases=phases_np, seed=1) + eta_xr = wave.resource.surface_elevation(S, self.t, phases=phases_xr, seed=1) eta_pd = wave.resource.surface_elevation(S, self.t, phases=phases_pd, seed=1) - assert_frame_equal(eta_np, eta_pd) + assert_frame_equal(eta_xr, eta_pd) def test_surface_elevation_frequency_bins_np_and_pd(self): - S0 = wave.resource.jonswap_spectrum(self.f,self.Tp,self.Hs) - S1 = wave.resource.jonswap_spectrum(self.f,self.Tp,self.Hs*1.1) + S0 = wave.resource.jonswap_spectrum(self.f, self.Tp, self.Hs) + S1 = wave.resource.jonswap_spectrum(self.f, self.Tp, self.Hs * 1.1) S = pd.concat([S0, S1], axis=1) eta0 = wave.resource.surface_elevation(S, self.t, seed=1) - f_bins_np = np.array([np.diff(S.index)[0]]*len(S)) - f_bins_pd = pd.DataFrame(f_bins_np, index=S.index, columns=['df']) + f_bins_np = np.array([np.diff(S.index)[0]] * len(S)) + f_bins_pd = pd.DataFrame(f_bins_np, index=S.index, columns=["df"]) - eta_np = wave.resource.surface_elevation(S, self.t, frequency_bins=f_bins_np, seed=1) - eta_pd = wave.resource.surface_elevation(S, self.t, frequency_bins=f_bins_pd, seed=1) + eta_np = wave.resource.surface_elevation( + S, self.t, frequency_bins=f_bins_np, seed=1 + ) + eta_pd = wave.resource.surface_elevation( + S, self.t, frequency_bins=f_bins_pd, seed=1 + ) assert_frame_equal(eta0, eta_np) assert_frame_equal(eta_np, eta_pd) @@ -120,19 +117,19 @@ def test_surface_elevation_moments(self): S = wave.resource.jonswap_spectrum(self.f, self.Tp, self.Hs) eta = wave.resource.surface_elevation(S, self.t, seed=1) dt = self.t[1] - self.t[0] - Sn = wave.resource.elevation_spectrum(eta, 1/dt, len(eta.values), - detrend=False, window='boxcar', - noverlap=0) + Sn = wave.resource.elevation_spectrum( + eta, 1 / dt, len(eta.values), detrend=False, window="boxcar", noverlap=0 + ) - m0 = wave.resource.frequency_moment(S,0).m0.values[0] - m0n = wave.resource.frequency_moment(Sn,0).m0.values[0] - errorm0 = np.abs((m0 - m0n)/m0) + m0 = wave.resource.frequency_moment(S, 0).m0.values[0] + m0n = wave.resource.frequency_moment(Sn, 0).m0.values[0] + errorm0 = np.abs((m0 - m0n) / m0) self.assertLess(errorm0, 0.01) - m1 = wave.resource.frequency_moment(S,1).m1.values[0] - m1n = wave.resource.frequency_moment(Sn,1).m1.values[0] - errorm1 = np.abs((m1 - m1n)/m1) + m1 = wave.resource.frequency_moment(S, 1).m1.values[0] + m1n = wave.resource.frequency_moment(Sn, 1).m1.values[0] + errorm1 = np.abs((m1 - m1n) / m1) self.assertLess(errorm1, 0.01) @@ -140,40 +137,43 @@ def test_surface_elevation_rmse(self): S = wave.resource.jonswap_spectrum(self.f, self.Tp, self.Hs) eta = wave.resource.surface_elevation(S, self.t, seed=1) dt = self.t[1] - self.t[0] - Sn = wave.resource.elevation_spectrum(eta, 1/dt, len(eta), - detrend=False, window='boxcar', - noverlap=0) + Sn = wave.resource.elevation_spectrum( + eta, 1 / dt, len(eta), detrend=False, window="boxcar", noverlap=0 + ) fSn = interp1d(Sn.index.values, Sn.values, axis=0) - rmse = (S.values - fSn(S.index.values))**2 - rmse_sum = (np.sum(rmse)/len(rmse))**0.5 + Sn_interp = fSn(S.index.values).squeeze() + rmse = (S.values.squeeze() - Sn_interp) ** 2 + rmse_sum = (np.sum(rmse) / len(rmse)) ** 0.5 self.assertLess(rmse_sum, 0.02) def test_ifft_sum_of_sines(self): S = wave.resource.jonswap_spectrum(self.f, self.Tp, self.Hs) - eta_ifft = wave.resource.surface_elevation(S, self.t, seed=1, method='ifft') - eta_sos = wave.resource.surface_elevation(S, self.t, seed=1, method='sum_of_sines') + eta_ifft = wave.resource.surface_elevation(S, self.t, seed=1, method="ifft") + eta_sos = wave.resource.surface_elevation( + S, self.t, seed=1, method="sum_of_sines" + ) - assert_allclose(eta_ifft, eta_sos) + assert_allclose(eta_ifft, eta_sos) def test_plot_spectrum(self): - filename = abspath(join(plotdir, 'wave_plot_spectrum.png')) + filename = abspath(join(plotdir, "wave_plot_spectrum.png")) if isfile(filename): os.remove(filename) - S = wave.resource.pierson_moskowitz_spectrum(self.f,self.Tp,self.Hs) + S = wave.resource.pierson_moskowitz_spectrum(self.f, self.Tp, self.Hs) plt.figure() wave.graphics.plot_spectrum(S) - plt.savefig(filename, format='png') + plt.savefig(filename, format="png") plt.close() self.assertTrue(isfile(filename)) def test_plot_chakrabarti(self): - filename = abspath(join(plotdir, 'wave_plot_chakrabarti.png')) + filename = abspath(join(plotdir, "wave_plot_chakrabarti.png")) if isfile(filename): os.remove(filename) @@ -185,7 +185,7 @@ def test_plot_chakrabarti(self): plt.savefig(filename) def test_plot_chakrabarti_np(self): - filename = abspath(join(plotdir, 'wave_plot_chakrabarti_np.png')) + filename = abspath(join(plotdir, "wave_plot_chakrabarti_np.png")) if isfile(filename): os.remove(filename) @@ -199,21 +199,22 @@ def test_plot_chakrabarti_np(self): self.assertTrue(isfile(filename)) def test_plot_chakrabarti_pd(self): - filename = abspath(join(plotdir, 'wave_plot_chakrabarti_pd.png')) + filename = abspath(join(plotdir, "wave_plot_chakrabarti_pd.png")) if isfile(filename): os.remove(filename) D = np.linspace(5, 15, 5) H = 10 * np.ones_like(D) lambda_w = 200 * np.ones_like(D) - df = pd.DataFrame([H.flatten(),lambda_w.flatten(),D.flatten()], - index=['H','lambda_w','D']).transpose() + df = pd.DataFrame( + [H.flatten(), lambda_w.flatten(), D.flatten()], index=["H", "lambda_w", "D"] + ).transpose() wave.graphics.plot_chakrabarti(df.H, df.lambda_w, df.D) plt.savefig(filename) self.assertTrue(isfile(filename)) -if __name__ == '__main__': + +if __name__ == "__main__": unittest.main() - \ No newline at end of file diff --git a/mhkit/tidal/__init__.py b/mhkit/tidal/__init__.py index b669360a6..2644bfdfa 100644 --- a/mhkit/tidal/__init__.py +++ b/mhkit/tidal/__init__.py @@ -1,4 +1,4 @@ from mhkit.tidal import graphics from mhkit.tidal import io -from mhkit.tidal import resource +from mhkit.tidal import resource from mhkit.tidal import performance diff --git a/mhkit/tidal/d3d.py b/mhkit/tidal/d3d.py deleted file mode 100644 index b11aa1569..000000000 --- a/mhkit/tidal/d3d.py +++ /dev/null @@ -1 +0,0 @@ -from mhkit.river.d3d import * \ No newline at end of file diff --git a/mhkit/tidal/graphics.py b/mhkit/tidal/graphics.py index 51459b527..0483f2080 100644 --- a/mhkit/tidal/graphics.py +++ b/mhkit/tidal/graphics.py @@ -1,5 +1,4 @@ import numpy as np -import pandas as pd import bisect from scipy.interpolate import interpn as _interpn from scipy.interpolate import interp1d @@ -7,6 +6,7 @@ from mhkit.river.resource import exceedance_probability from mhkit.tidal.resource import _histogram, _flood_or_ebb from mhkit.river.graphics import plot_velocity_duration_curve, _xy_plot +from mhkit.utils import convert_to_dataarray def _initialize_polar(ax=None, metadata=None, flood=None, ebb=None): @@ -28,24 +28,32 @@ def _initialize_polar(ax=None, metadata=None, flood=None, ebb=None): fig = plt.figure(figsize=(12, 8)) ax = plt.axes(polar=True) # Angles are measured clockwise from true north - ax.set_theta_zero_location('N') + ax.set_theta_zero_location("N") ax.set_theta_direction(-1) - xticks = ['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW'] + xticks = ["N", "NE", "E", "SE", "S", "SW", "W", "NW"] # Polar plots do not have minor ticks, insert flood/ebb into major ticks xtickDegrees = [0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0] # Set title and metadata box if metadata != None: # Set the Title - plt.title(metadata['name']) + plt.title(metadata["name"]) # List of strings for metadata box - bouy_str = [f'Lat = {float(metadata["lat"]):0.2f}$\degree$', - f'Lon = {float(metadata["lon"]):0.2f}$\degree$'] + bouy_str = [ + f'Lat = {float(metadata["lat"]):0.2f}$\degree$', + f'Lon = {float(metadata["lon"]):0.2f}$\degree$', + ] # Create string for text box - bouy_data = '\n'.join(bouy_str) + bouy_data = "\n".join(bouy_str) # Set the text box - ax.text(-0.3, 0.80, bouy_data, transform=ax.transAxes, fontsize=14, - verticalalignment='top', bbox=dict(facecolor='none', - edgecolor='k', pad=5)) + ax.text( + -0.3, + 0.80, + bouy_data, + transform=ax.transAxes, + fontsize=14, + verticalalignment="top", + bbox=dict(facecolor="none", edgecolor="k", pad=5), + ) # If defined plot flood and ebb directions as major ticks if flood != None: # Get flood direction in degrees @@ -56,7 +64,7 @@ def _initialize_polar(ax=None, metadata=None, flood=None, ebb=None): # Get location in list idxFlood = xtickDegrees.index(floodDirection) # Insert label at appropriate location - xticks[idxFlood:idxFlood] = ['\nFlood'] + xticks[idxFlood:idxFlood] = ["\nFlood"] if ebb != None: # Get flood direction in degrees ebbDirection = ebb @@ -66,8 +74,8 @@ def _initialize_polar(ax=None, metadata=None, flood=None, ebb=None): # Get location in list idxEbb = xtickDegrees.index(ebbDirection) # Insert label at appropriate location - xticks[idxEbb:idxEbb] = ['\nEbb'] - ax.set_xticks(np.array(xtickDegrees)*np.pi/180.) + xticks[idxEbb:idxEbb] = ["\nEbb"] + ax.set_xticks(np.array(xtickDegrees) * np.pi / 180.0) ax.set_xticklabels(xticks) return ax @@ -83,37 +91,32 @@ def _check_inputs(directions, velocities, flood, ebb): velocities: array-like Velocities in m/s flood: float - Direction in degrees added to theta ticks + Direction in degrees added to theta ticks ebb: float Direction in degrees added to theta ticks """ - if not isinstance(velocities, (np.ndarray, pd.Series)): - raise TypeError('velocities must be of type np.ndarry or pd.Series') - if isinstance(velocities, np.ndarray): - velocities = pd.Series(velocities) - - if not isinstance(directions, (np.ndarray, pd.Series)): - raise TypeError('directions must be of type np.ndarry or pd.Series') - if isinstance(directions, np.ndarray): - directions = pd.Series(directions) + velocities = convert_to_dataarray(velocities) + directions = convert_to_dataarray(directions) if len(velocities) != len(directions): - raise ValueError('velocities and directions must have the same length') + raise ValueError("velocities and directions must have the same length") if all(np.nan_to_num(velocities.values) < 0): - raise ValueError('All velocities must be positive') - if all(np.nan_to_num(directions.values) < 0) and all(np.nan_to_num(directions.values) > 360): - raise ValueError('directions must be between 0 and 360 degrees') + raise ValueError("All velocities must be positive") + if all(np.nan_to_num(directions.values) < 0) and all( + np.nan_to_num(directions.values) > 360 + ): + raise ValueError("directions must be between 0 and 360 degrees") if not isinstance(flood, (int, float, type(None))): - raise TypeError('flood must be of type int or float') + raise TypeError("flood must be of type int or float") if not isinstance(ebb, (int, float, type(None))): - raise TypeError('ebb must be of type int or float') + raise TypeError("ebb must be of type int or float") if flood is not None: if (flood < 0) and (flood > 360): - raise ValueError('flood must be between 0 and 360 degrees') + raise ValueError("flood must be between 0 and 360 degrees") if ebb is not None: if (ebb < 0) and (ebb > 360): - raise ValueError('ebb must be between 0 and 360 degrees') + raise ValueError("ebb must be between 0 and 360 degrees") def plot_rose( @@ -124,10 +127,10 @@ def plot_rose( ax=None, metadata=None, flood=None, - ebb=None + ebb=None, ): """ - Creates a polar histogram. Direction angles from binned histogram must + Creates a polar histogram. Direction angles from binned histogram must be specified such that 0 degrees is north. Parameters @@ -136,9 +139,9 @@ def plot_rose( Directions in degrees with 0 degrees specified as true north velocities: array-like Velocities in m/s - width_dir: float + width_dir: float Width of directional bins for histogram in degrees - width_vel: float + width_vel: float Width of velocity bins for histogram in m/s ax: float Polar plot axes to add polar histogram @@ -146,7 +149,7 @@ def plot_rose( If provided needs keys ['name', 'lat', 'lon'] for plot title and information box on plot flood: float - Direction in degrees added to theta ticks + Direction in degrees added to theta ticks ebb: float Direction in degrees added to theta ticks Returns @@ -158,45 +161,50 @@ def plot_rose( _check_inputs(directions, velocities, flood, ebb) if not isinstance(width_dir, (int, float)): - raise TypeError('width_dir must be of type int or float') + raise TypeError("width_dir must be of type int or float") if not isinstance(width_vel, (int, float)): - raise TypeError('width_vel must be of type int or float') + raise TypeError("width_vel must be of type int or float") if width_dir < 0: - raise ValueError('width_dir must be greater than 0') + raise ValueError("width_dir must be greater than 0") if width_vel < 0: - raise ValueError('width_vel must be greater than 0') + raise ValueError("width_vel must be greater than 0") # Calculate the 2D histogram - H, dir_edges, vel_edges = _histogram( - directions, velocities, width_dir, width_vel) + H, dir_edges, vel_edges = _histogram(directions, velocities, width_dir, width_vel) # Determine number of bins dir_bins = H.shape[0] vel_bins = H.shape[1] # Create the angles - thetas = np.arange(0, 2*np.pi, 2*np.pi/dir_bins) + thetas = np.arange(0, 2 * np.pi, 2 * np.pi / dir_bins) # Initialize the polar polt ax = _initialize_polar(ax=ax, metadata=metadata, flood=flood, ebb=ebb) # Set bar color based on wind speed colors = plt.cm.viridis(np.linspace(0, 1.0, vel_bins)) # Set the current speed bin label names # Calculate the 2D histogram - labels = [f'{i:.1f}-{j:.1f}' for i, - j in zip(vel_edges[:-1], vel_edges[1:])] + labels = [f"{i:.1f}-{j:.1f}" for i, j in zip(vel_edges[:-1], vel_edges[1:])] # Initialize the vertical-offset (polar radius) for the stacked bar chart. r_offset = np.zeros(dir_bins) for vel_bin in range(vel_bins): # Plot fist set of bars in all directions - ax.bar(thetas, H[:, vel_bin], width=(2*np.pi/dir_bins), - bottom=r_offset, color=colors[vel_bin], label=labels[vel_bin]) + ax.bar( + thetas, + H[:, vel_bin], + width=(2 * np.pi / dir_bins), + bottom=r_offset, + color=colors[vel_bin], + label=labels[vel_bin], + ) # Increase the radius offset in all directions r_offset = r_offset + H[:, vel_bin] # Add the a legend for current speed bins plt.legend( - loc='best', title='Velocity bins [m/s]', bbox_to_anchor=(1.29, 1.00), ncol=1) + loc="best", title="Velocity bins [m/s]", bbox_to_anchor=(1.29, 1.00), ncol=1 + ) # Get the r-ticks (polar y-ticks) yticks = plt.yticks() # Format y-ticks with units for clarity - rticks = [f'{y:.1f}%' for y in yticks[0]] + rticks = [f"{y:.1f}%" for y in yticks[0]] # Set the y-ticks plt.yticks(yticks[0], rticks) return ax @@ -210,10 +218,10 @@ def plot_joint_probability_distribution( ax=None, metadata=None, flood=None, - ebb=None + ebb=None, ): """ - Creates a polar histogram. Direction angles from binned histogram must + Creates a polar histogram. Direction angles from binned histogram must be specified such that 0 is north. Parameters @@ -222,9 +230,9 @@ def plot_joint_probability_distribution( Directions in degrees with 0 degrees specified as true north velocities: array-like Velocities in m/s - width_dir: float + width_dir: float Width of directional bins for histogram in degrees - width_vel: float + width_vel: float Width of velocity bins for histogram in m/s ax: float Polar plot axes to add polar histogram @@ -232,71 +240,68 @@ def plot_joint_probability_distribution( If provided needs keys ['name', 'Lat', 'Lon'] for plot title and information box on plot flood: float - Direction in degrees added to theta ticks + Direction in degrees added to theta ticks ebb: float Direction in degrees added to theta ticks Returns ------- ax: figure - Joint probability distribution + Joint probability distribution """ _check_inputs(directions, velocities, flood, ebb) if not isinstance(width_dir, (int, float)): - raise TypeError('width_dir must be of type int or float') + raise TypeError("width_dir must be of type int or float") if not isinstance(width_vel, (int, float)): - raise TypeError('width_vel must be of type int or float') + raise TypeError("width_vel must be of type int or float") if width_dir < 0: - raise ValueError('width_dir must be greater than 0') + raise ValueError("width_dir must be greater than 0") if width_vel < 0: - raise ValueError('width_vel must be greater than 0') + raise ValueError("width_vel must be greater than 0") # Calculate the 2D histogram - H, dir_edges, vel_edges = _histogram( - directions, velocities, width_dir, width_vel) + H, dir_edges, vel_edges = _histogram(directions, velocities, width_dir, width_vel) # Initialize the polar polt ax = _initialize_polar(ax=ax, metadata=metadata, flood=flood, ebb=ebb) # Set the current speed bin label names - labels = [f'{i:.1f}-{j:.1f}' for i, - j in zip(vel_edges[:-1], vel_edges[1:])] + labels = [f"{i:.1f}-{j:.1f}" for i, j in zip(vel_edges[:-1], vel_edges[1:])] # Set vel & dir bins to middle of bin except at ends - dir_bins = 0.5*(dir_edges[1:] + dir_edges[:-1]) # set all bins to middle - vel_bins = 0.5*(vel_edges[1:] + vel_edges[:-1]) + dir_bins = 0.5 * (dir_edges[1:] + dir_edges[:-1]) # set all bins to middle + vel_bins = 0.5 * (vel_edges[1:] + vel_edges[:-1]) # Reset end of bin range to edge of bin dir_bins[0] = dir_edges[0] vel_bins[0] = vel_edges[0] dir_bins[-1] = dir_edges[-1] vel_bins[-1] = vel_edges[-1] # Interpolate the bins back to specific data points - z = _interpn((dir_bins, vel_bins), - H, np.vstack([directions, velocities]).T, method="splinef2d", - bounds_error=False) + z = _interpn( + (dir_bins, vel_bins), + H, + np.vstack([directions, velocities]).T, + method="splinef2d", + bounds_error=False, + ) # Plot the most probable data last idx = z.argsort() # Convert to radians and order points by probability - theta, r, z = directions.values[idx] * \ - np.pi/180, velocities.values[idx], z[idx] + theta, r, z = directions.values[idx] * np.pi / 180, velocities.values[idx], z[idx] # Create scatter plot colored by probability density sx = ax.scatter(theta, r, c=z, s=5, edgecolor=None) # Create colorbar - plt.colorbar(sx, ax=ax, label='Joint Probability [%]') + plt.colorbar(sx, ax=ax, label="Joint Probability [%]") # Get the r-ticks (polar y-ticks) yticks = ax.get_yticks() # Set y-ticks labels ax.set_yticks(yticks) # to avoid matplotlib warning - ax.set_yticklabels([f'{y:.1f} $m/s$' for y in yticks]) + ax.set_yticklabels([f"{y:.1f} $m/s$" for y in yticks]) return ax def plot_current_timeseries( - directions, - velocities, - principal_direction, - label=None, - ax=None + directions, velocities, principal_direction, label=None, ax=None ): """ Returns a plot of velocity from an array of direction and speed @@ -313,7 +318,7 @@ def plot_current_timeseries( label: string Label to use in the legend ax : matplotlib axes object - Axes for plotting. If None, then a new figure with a single + Axes for plotting. If None, then a new figure with a single axes is used. Returns @@ -325,30 +330,29 @@ def plot_current_timeseries( _check_inputs(directions, velocities, flood=None, ebb=None) if not isinstance(principal_direction, (int, float)): - raise TypeError('principal_direction must be of type int or float') + raise TypeError("principal_direction must be of type int or float") if (principal_direction < 0) and (principal_direction > 360): - raise ValueError( - 'principal_direction must be between 0 and 360 degrees') + raise ValueError("principal_direction must be between 0 and 360 degrees") # Rotate coordinate system by supplied principal_direction principal_directions = directions - principal_direction # Calculate the velocity - velocity = velocities * np.cos(np.pi/180*principal_directions) + velocity = velocities * np.cos(np.pi / 180 * principal_directions) # Call on standard xy plotting - ax = _xy_plot(velocities.index, velocity, fmt='-', label=label, - xlabel='Time', ylabel='Velocity [$m/s$]', ax=ax) + ax = _xy_plot( + velocities.index, + velocity, + fmt="-", + label=label, + xlabel="Time", + ylabel="Velocity [$m/s$]", + ax=ax, + ) return ax -def tidal_phase_probability( - directions, - velocities, - flood, - ebb, - bin_size=0.1, - ax=None -): - """ +def tidal_phase_probability(directions, velocities, flood, ebb, bin_size=0.1, ax=None): + """ Discretizes the tidal series speed by bin size and returns a plot of the probability for each bin in the flood or ebb tidal phase. @@ -365,7 +369,7 @@ def tidal_phase_probability( bin_size: float Speed bin size. Optional. Deaful = 0.1 m/s ax : matplotlib axes object - Axes for plotting. If None, then a new figure with a single + Axes for plotting. If None, then a new figure with a single axes is used. Returns @@ -375,22 +379,22 @@ def tidal_phase_probability( _check_inputs(directions, velocities, flood, ebb) if bin_size < 0: - raise ValueError('bin_size must be greater than 0') + raise ValueError("bin_size must be greater than 0") if ax == None: fig, ax = plt.subplots(figsize=(12, 8)) isEbb = _flood_or_ebb(directions, flood, ebb) - decimals = round(bin_size/0.1) - N_bins = int(round(velocities.max(), decimals)/bin_size) + decimals = round(bin_size / 0.1) + N_bins = int(round(velocities.max(), decimals) / bin_size) H, bins = np.histogram(velocities, bins=N_bins) H_ebb, bins1 = np.histogram(velocities[isEbb], bins=bins) H_flood, bins2 = np.histogram(velocities[~isEbb], bins=bins) - p_ebb = H_ebb/H - p_flood = H_flood/H + p_ebb = H_ebb / H + p_flood = H_flood / H center = (bins[:-1] + bins[1:]) / 2 width = 0.9 * (bins[1] - bins[0]) @@ -398,32 +402,44 @@ def tidal_phase_probability( mask1 = np.ma.where(p_ebb >= p_flood) mask2 = np.ma.where(p_flood >= p_ebb) - ax.bar(center[mask1], height=p_ebb[mask1], edgecolor='black', width=width, - label='Ebb', color='blue') - ax.bar(center, height=p_flood, edgecolor='black', width=width, - alpha=1, label='Flood', color='orange') - ax.bar(center[mask2], height=p_ebb[mask2], alpha=1, edgecolor='black', - width=width, color='blue') - - plt.xlabel('Velocity [m/s]') - plt.ylabel('Probability') + ax.bar( + center[mask1], + height=p_ebb[mask1], + edgecolor="black", + width=width, + label="Ebb", + color="blue", + ) + ax.bar( + center, + height=p_flood, + edgecolor="black", + width=width, + alpha=1, + label="Flood", + color="orange", + ) + ax.bar( + center[mask2], + height=p_ebb[mask2], + alpha=1, + edgecolor="black", + width=width, + color="blue", + ) + + plt.xlabel("Velocity [m/s]") + plt.ylabel("Probability") plt.ylim(0, 1.0) plt.legend() - plt.grid(linestyle=':') + plt.grid(linestyle=":") return ax -def tidal_phase_exceedance( - directions, - velocities, - flood, - ebb, - bin_size=0.1, - ax=None -): +def tidal_phase_exceedance(directions, velocities, flood, ebb, bin_size=0.1, ax=None): """ - Returns a stacked area plot of the exceedance probability for the + Returns a stacked area plot of the exceedance probability for the flood and ebb tidal phases. Parameters @@ -435,21 +451,21 @@ def tidal_phase_exceedance( flood: float or int Principal component of flow in the flood direction [degrees] ebb: float or int - Principal component of flow in the ebb direction [degrees] + Principal component of flow in the ebb direction [degrees] bin_size: float - Speed bin size. Optional. Deaful = 0.1 m/s + Speed bin size. Optional. Deaful = 0.1 m/s ax : matplotlib axes object - Axes for plotting. If None, then a new figure with a single + Axes for plotting. If None, then a new figure with a single axes is used. Returns ------- - ax: figure + ax: figure """ _check_inputs(directions, velocities, flood, ebb) if bin_size < 0: - raise ValueError('bin_size must be greater than 0') + raise ValueError("bin_size must be greater than 0") if ax == None: fig, ax = plt.subplots(figsize=(12, 8)) @@ -459,17 +475,20 @@ def tidal_phase_exceedance( s_ebb = velocities[isEbb] s_flood = velocities[~isEbb] - F = exceedance_probability(velocities)['F'] - F_ebb = exceedance_probability(s_ebb)['F'] - F_flood = exceedance_probability(s_flood)['F'] + F = exceedance_probability(velocities)["F"] + F_ebb = exceedance_probability(s_ebb)["F"] + F_flood = exceedance_probability(s_flood)["F"] - decimals = round(bin_size/0.1) - s_new = np.arange(np.around(velocities.min(), decimals), - np.around(velocities.max(), decimals)+bin_size, bin_size) + decimals = round(bin_size / 0.1) + s_new = np.arange( + np.around(velocities.min(), decimals), + np.around(velocities.max(), decimals) + bin_size, + bin_size, + ) f_total = interp1d(velocities, F, bounds_error=False) - f_ebb = interp1d(s_ebb, F_ebb, bounds_error=False) - f_flood = interp1d(s_flood, F_flood, bounds_error=False) + f_ebb = interp1d(s_ebb, F_ebb, bounds_error=False) + f_flood = interp1d(s_flood, F_flood, bounds_error=False) F_total = f_total(s_new) F_ebb = f_ebb(s_new) @@ -477,12 +496,16 @@ def tidal_phase_exceedance( F_max_total = np.nanmax(F_ebb) + np.nanmax(F_flood) - ax.stackplot(s_new, F_ebb/F_max_total*100, - F_flood/F_max_total*100, labels=['Ebb', 'Flood']) + ax.stackplot( + s_new, + F_ebb / F_max_total * 100, + F_flood / F_max_total * 100, + labels=["Ebb", "Flood"], + ) - plt.xlabel('velocity [m/s]') - plt.ylabel('Probability of Exceedance') + plt.xlabel("velocity [m/s]") + plt.ylabel("Probability of Exceedance") plt.legend() - plt.grid(linestyle=':', linewidth=1) + plt.grid(linestyle=":", linewidth=1) return ax diff --git a/mhkit/tidal/io/__init__.py b/mhkit/tidal/io/__init__.py index 3e20434aa..3f75b8116 100644 --- a/mhkit/tidal/io/__init__.py +++ b/mhkit/tidal/io/__init__.py @@ -1 +1,2 @@ from mhkit.tidal.io import noaa +from mhkit.tidal.io import d3d diff --git a/mhkit/tidal/io/d3d.py b/mhkit/tidal/io/d3d.py new file mode 100644 index 000000000..67ec083d9 --- /dev/null +++ b/mhkit/tidal/io/d3d.py @@ -0,0 +1 @@ +from mhkit.river.io.d3d import * diff --git a/mhkit/tidal/io/noaa.py b/mhkit/tidal/io/noaa.py index 4c261fb43..f11820695 100644 --- a/mhkit/tidal/io/noaa.py +++ b/mhkit/tidal/io/noaa.py @@ -1,42 +1,55 @@ """ noaa.py -This module provides functions to fetch, process, and read NOAA (National Oceanic and Atmospheric Administration) -current data directly from the NOAA Tides and Currents API (https://tidesandcurrents.noaa.gov/api/). It supports -loading data into a pandas DataFrame, handling data in XML and JSON formats, and writing data to a JSON file. +This module provides functions to fetch, process, and read NOAA (National +Oceanic and Atmospheric Administration) current data directly from the +NOAA Tides and Currents API (https://tidesandcurrents.noaa.gov/api/). It +supports loading data into a pandas DataFrame, handling data in XML and +JSON formats, and writing data to a JSON file. Functions: ---------- -request_noaa_data(station, parameter, start_date, end_date, proxy=None, write_json=None): - Loads NOAA current data from the API into a pandas DataFrame, with optional support for proxy settings and - writing data to a JSON file. - -_json_to_dataframe(response): - Converts NOAA response data in JSON format into a pandas DataFrame and returns metadata. (Currently, this - function does not return the full dataset requested.) +request_noaa_data(station, parameter, start_date, end_date, proxy=None, + write_json=None): + Loads NOAA current data from the API into a pandas DataFrame, + with optional support for proxy settings and writing data to a JSON + file. _xml_to_dataframe(response): - Converts NOAA response data in XML format into a pandas DataFrame and returns metadata. + Converts NOAA response data in XML format into a pandas DataFrame + and returns metadata. read_noaa_json(filename): - Reads a JSON file containing NOAA data saved from the request_noaa_data function and returns a DataFrame with - timeseries site data and metadata. + Reads a JSON file containing NOAA data saved from the request_noaa_data + function and returns a DataFrame with timeseries site data and metadata. """ + +import os import xml.etree.ElementTree as ET import datetime import json import math +import shutil import pandas as pd import requests - - -def request_noaa_data(station, parameter, start_date, end_date, - proxy=None, write_json=None): +from mhkit.utils.cache import handle_caching + + +def request_noaa_data( + station, + parameter, + start_date, + end_date, + proxy=None, + write_json=None, + clear_cache=False, + to_pandas=True, +): """ - Loads NOAA current data directly from https://tidesandcurrents.noaa.gov/api/ using a - get request into a pandas DataFrame. NOAA sets max of 31 days between start and end date. - See https://co-ops.nos.noaa.gov/api/ for options. All times are reported as GMT and metric - units are returned for data. + Loads NOAA current data directly from https://tidesandcurrents.noaa.gov/api/ + into a pandas DataFrame. NOAA sets max of 31 days between start and end date. + See https://co-ops.nos.noaa.gov/api/ for options. All times are reported as + GMT and metric units are returned for data. Uses cached data if available. The request URL prints to the screen. @@ -49,158 +62,231 @@ def request_noaa_data(station, parameter, start_date, end_date, start_date : str Start date in the format yyyyMMdd end_date : str - End date in the format yyyyMMdd + End date in the format yyyyMMdd proxy : dict or None - To request data from behind a firewall, define a dictionary of proxy settings, - for example {"http": 'localhost:8080'} + To request data from behind a firewall, define a dictionary of proxy + settings, for example {"http": 'localhost:8080'} write_json : str or None Name of json file to write data + clear_cache : bool + If True, the cache for this specific request will be cleared. + to_pandas : bool, optional + Flag to output pandas instead of xarray. Default = True. Returns ------- - data : pandas DataFrame - Data indexed by datetime with columns named according to the parameter's + data : pandas DataFrame or xarray Dataset + Data indexed by datetime with columns named according to the parameter's variable description + metadata : dict or None + Request metadata. If returning xarray, metadata is instead attached to + the data's attributes. """ - # Convert start and end dates to datetime objects - begin = datetime.datetime.strptime(start_date, '%Y%m%d').date() - end = datetime.datetime.strptime(end_date, '%Y%m%d').date() - - # Determine the number of 30 day intervals - delta = 30 - interval = math.ceil(((end - begin).days)/delta) - - # Create date ranges with 30 day intervals - date_list = [ - begin + datetime.timedelta(days=i * delta) for i in range(interval + 1)] - date_list[-1] = end - - # Iterate over date_list (30 day intervals) and fetch data - data_frames = [] - for i in range(len(date_list) - 1): - start_date = date_list[i].strftime('%Y%m%d') - end_date = date_list[i + 1].strftime('%Y%m%d') - - api_query = f"begin_date={start_date}&end_date={end_date}&station={station}&product={parameter}&units=metric&time_zone=gmt&application=web_services&format=xml" - data_url = f"https://tidesandcurrents.noaa.gov/api/datagetter?{api_query}" - - print('Data request URL: ', data_url) - - # Get response - response = requests.get(url=data_url, proxies=proxy) - - # Convert to DataFrame and save in data_frames list - df, metadata = _xml_to_dataframe(response) - data_frames.append(df) - - # Concatenate all DataFrames - data = pd.concat(data_frames, ignore_index=False) - - # Remove duplicated date values - data = data.loc[~data.index.duplicated()] - - # Write json if specified - if write_json is not None: - with open(write_json, 'w') as outfile: - # Convert DataFrame to json - jsonData = data.to_json() - # Convert to python object data - pyData = json.loads(jsonData) - # Add metadata to pyData - pyData['metadata'] = metadata - # Wrtie the pyData to a json file - json.dump(pyData, outfile) - return data, metadata - - -def _json_to_dataframe(response): - ''' - Returns a dataframe and metadata from a NOAA - response. - TODO: This function currently does not return the - full dataset requested. - ''' - text = json.loads(response.text) - metadata = text['metadata'] - # import ipdb; ipdb.set_trace() - # Initialize DataFrame - data = pd.DataFrame.from_records( - text['data'][1], index=[text['data'][1]['t']]) - # Append all times to DataFrame - for i in range(1, len(text['data'])): - data.append(pd.DataFrame.from_records(text['data'][i], - index=[text['data'][i]['t']])) - # Convert index to DataFram - data.index = pd.to_datetime(data.index) - # Remove 't' becuase it is the index - del data['t'] - # List of columns which are string - cols = data.columns[data.dtypes.eq('object')] - # Convert columns to float - data[cols] = data[cols].apply(pd.to_numeric, errors='coerce') - return data, metadata + # Type check inputs + if not isinstance(station, str): + raise TypeError( + f"Expected 'station' to be of type str, but got {type(station)}" + ) + if not isinstance(parameter, str): + raise TypeError( + f"Expected 'parameter' to be of type str, but got {type(parameter)}" + ) + if not isinstance(start_date, str): + raise TypeError( + f"Expected 'start_date' to be of type str, but got {type(start_date)}" + ) + if not isinstance(end_date, str): + raise TypeError( + f"Expected 'end_date' to be of type str, but got {type(end_date)}" + ) + if proxy and not isinstance(proxy, dict): + raise TypeError( + f"Expected 'proxy' to be of type dict or None, but got {type(proxy)}" + ) + if write_json and not isinstance(write_json, str): + raise TypeError( + f"Expected 'write_json' to be of type str or None, but got {type(write_json)}" + ) + if not isinstance(clear_cache, bool): + raise TypeError( + f"Expected 'clear_cache' to be of type bool, but got {type(clear_cache)}" + ) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + # Define the path to the cache directory + cache_dir = os.path.join(os.path.expanduser("~"), ".cache", "mhkit", "noaa") + + # Create a unique filename based on the function parameters + hash_params = f"{station}_{parameter}_{start_date}_{end_date}" + + # Use handle_caching to manage cache + cached_data, cached_metadata, cache_filepath = handle_caching( + hash_params, cache_dir, write_json=write_json, clear_cache_file=clear_cache + ) + + if cached_data is not None: + if write_json: + shutil.copy(cache_filepath, write_json) + if to_pandas: + return cached_data, cached_metadata + else: + cached_data = cached_data.to_xarray() + cached_data.attrs = cached_metadata + return cached_data + # If no cached data is available, make the API request + # no coverage bc in coverage runs we have already cached the data/ run this code + else: # pragma: no cover + # Convert start and end dates to datetime objects + begin = datetime.datetime.strptime(start_date, "%Y%m%d").date() + end = datetime.datetime.strptime(end_date, "%Y%m%d").date() + + # Determine the number of 30 day intervals + delta = 30 + interval = math.ceil(((end - begin).days) / delta) + + # Create date ranges with 30 day intervals + date_list = [ + begin + datetime.timedelta(days=i * delta) for i in range(interval + 1) + ] + date_list[-1] = end + + # Iterate over date_list (30 day intervals) and fetch data + data_frames = [] + for i in range(len(date_list) - 1): + start_date = date_list[i].strftime("%Y%m%d") + end_date = date_list[i + 1].strftime("%Y%m%d") + + api_query = f"begin_date={start_date}&end_date={end_date}&station={station}&product={parameter}&units=metric&time_zone=gmt&application=web_services&format=xml" + data_url = f"https://tidesandcurrents.noaa.gov/api/datagetter?{api_query}" + + print("Data request URL: ", data_url) + + # Get response + try: + response = requests.get(url=data_url, proxies=proxy) + response.raise_for_status() + except requests.exceptions.HTTPError as err: + print(f"HTTP error occurred: {err}") + continue + except requests.exceptions.RequestException as err: + print(f"Error occurred: {err}") + continue + # Convert to DataFrame and save in data_frames list + df, metadata = _xml_to_dataframe(response) + data_frames.append(df) + + # Concatenate all DataFrames + data = pd.concat(data_frames, ignore_index=False) + + # Remove duplicated date values + data = data.loc[~data.index.duplicated()] + + # After making the API request and processing the response, write the + # response to a cache file + handle_caching( + hash_params, + cache_dir, + data=data, + metadata=metadata, + clear_cache_file=clear_cache, + ) + + if write_json: + shutil.copy(cache_filepath, write_json) + + if to_pandas: + return data, metadata + else: + data = data.to_xarray() + data.attrs = metadata + return data def _xml_to_dataframe(response): - ''' + """ Returns a dataframe from an xml response - ''' + """ root = ET.fromstring(response.text) metadata = None data = None for child in root: # Save meta data dictionary - if child.tag == 'metadata': + if child.tag == "metadata": metadata = child.attrib - elif child.tag == 'observations': + elif child.tag == "observations": data = child - elif child.tag == 'error': - print('***ERROR: Response returned error') + elif child.tag == "error": + print("***ERROR: Response returned error") return None if data is None: - print('***ERROR: No observations found') + print("***ERROR: No observations found") return None # Create a list of DataFrames then Concatenate - df = pd.concat([pd.DataFrame(obs.attrib, index=[0]) - for obs in data], ignore_index=True) + df = pd.concat( + [pd.DataFrame(obs.attrib, index=[0]) for obs in data], ignore_index=True + ) # Convert time to datetime - df['t'] = pd.to_datetime(df.t) - df = df.set_index('t') + df["t"] = pd.to_datetime(df.t) + df = df.set_index("t") df.drop_duplicates(inplace=True) # Convert data to float - df[['d', 's']] = df[['d', 's']].apply(pd.to_numeric) + df[["d", "s"]] = df[["d", "s"]].apply(pd.to_numeric) return df, metadata -def read_noaa_json(filename): - ''' - Returns site DataFrame and metadata from a json saved from the +def read_noaa_json(filename, to_pandas=True): + """ + Returns site DataFrame and metadata from a json saved from the request_noaa_data Parameters ---------- filename: string filename with path of json file to load + to_pandas : bool, optional + Flag to output pandas instead of xarray. Default = True. + Returns ------- data: DataFrame - Timeseries Site data of direction and speed - metadata: dictionary - Site metadata - ''' + Timeseries Site data of direction and speed + metadata : dictionary or None + Site metadata. If returning xarray, metadata is instead attached to + the data's attributes. + """ + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + with open(filename) as outfile: - jsonData = json.load(outfile) - # Get the metadata - metadata = jsonData['metadata'] - # Remove metadata entry - del jsonData['metadata'] - # Remainder is DataFrame - data = pd.DataFrame.from_dict(jsonData) - # Convert from epoch to date time - data.index = pd.to_datetime(data.index, unit='ms') - return data, metadata + json_data = json.load(outfile) + try: # original MHKiT format (deprecate in future) + # Get the metadata + metadata = json_data["metadata"] + # Remove metadata entry + del json_data["metadata"] + # Remainder is DataFrame + data = pd.DataFrame.from_dict(json_data) + # Convert from epoch to date time + data.index = pd.to_datetime(data.index, unit="ms") + + except ValueError: # using cache.py format + if "metadata" in json_data: + metadata = json_data.pop("metadata", None) + data = pd.DataFrame( + json_data["data"], + index=pd.to_datetime(json_data["index"]), + columns=json_data["columns"], + ) + + if to_pandas: + return data, metadata + else: + data = data.to_xarray() + data.attrs = metadata + return data diff --git a/mhkit/tidal/performance.py b/mhkit/tidal/performance.py index f3346003a..3a516bec7 100644 --- a/mhkit/tidal/performance.py +++ b/mhkit/tidal/performance.py @@ -1,12 +1,16 @@ import numpy as np -import pandas as pd import xarray as xr -import warnings +from mhkit.utils import convert_to_dataarray from mhkit import dolfyn -from mhkit.river.performance import (circular, ducted, rectangular, - multiple_circular, tip_speed_ratio, - power_coefficient) +from mhkit.river.performance import ( + circular, + ducted, + rectangular, + multiple_circular, + tip_speed_ratio, + power_coefficient, +) def _slice_circular_capture_area(diameter, hub_height, doppler_cell_size): @@ -29,15 +33,15 @@ def _slice_circular_capture_area(diameter, hub_height, doppler_cell_size): Returns --------- capture_area_slice: xarray.DataArray - Capture area sliced into horizontal slices of height + Capture area sliced into horizontal slices of height `doppler_cell_size`, centered on `hub height`. """ def area_of_circle_segment(radius, angle): # Calculating area of sector - area_of_sector = np.pi * radius**2 * (angle/360) + area_of_sector = np.pi * radius**2 * (angle / 360) # Calculating area of triangle - area_of_triangle = 0.5 * radius**2 * np.sin((np.pi*angle)/180) + area_of_triangle = 0.5 * radius**2 * np.sin((np.pi * angle) / 180) return area_of_sector - area_of_triangle def point_on_circle(y, r): @@ -47,44 +51,44 @@ def point_on_circle(y, r): d = diameter cs = doppler_cell_size - A_cap = np.pi*(d/2)**2 # m^2 + A_cap = np.pi * (d / 2) ** 2 # m^2 # Need to chop up capture area into slices based on bin size # For a cirle: - r_min = hub_height - d/2 - r_max = hub_height + d/2 - A_edge = np.arange(r_min, r_max+cs, cs) - A_rng = A_edge[:-1] + cs/2 # Center of each slice + r_min = hub_height - d / 2 + r_max = hub_height + d / 2 + A_edge = np.arange(r_min, r_max + cs, cs) + A_rng = A_edge[:-1] + cs / 2 # Center of each slice # y runs from the bottom edge of the lower centerline slice to # the top edge of the lowest slice # Will need to figure out y if the hub height isn't centered y = abs(A_edge - np.mean(A_edge)) - y[np.where(abs(y) > (d/2))] = d/2 + y[np.where(abs(y) > (d / 2))] = d / 2 # Even vs odd number of slices if y.size % 2: odd = 1 else: odd = 0 - y = y[:len(y)//2] + y = y[: len(y) // 2] y = np.append(y, 0) - x = point_on_circle(y, d/2) - radii = np.rad2deg(np.arctan(x/y)*2) + x = point_on_circle(y, d / 2) + radii = np.rad2deg(np.arctan(x / y) * 2) # Segments go from outside of circle towards middle - As = area_of_circle_segment(d/2, radii) + As = area_of_circle_segment(d / 2, radii) # Subtract segments to get area of slices As_slc = As[1:] - As[:-1] if not odd: # Make middle slice half whole - As_slc[-1] = As_slc[-1]*2 + As_slc[-1] = As_slc[-1] * 2 # Copy-flip the other slices to get the whole circle As_slc = np.append(As_slc, np.flip(As_slc[:-1])) else: As_slc = abs(As_slc) - return xr.DataArray(As_slc, coords={'range': A_rng}) + return xr.DataArray(As_slc, coords={"range": A_rng}) def _slice_rectangular_capture_area(height, width, hub_height, doppler_cell_size): @@ -110,72 +114,48 @@ def _slice_rectangular_capture_area(height, width, hub_height, doppler_cell_size Returns --------- capture_area_slice: xarray.DataArray - Capture area sliced into horizontal slices of height + Capture area sliced into horizontal slices of height `doppler_cell_size`, centered on `hub height`. """ # Need to chop up capture area into slices based on bin size # For a rectangle it's pretty simple cs = doppler_cell_size - r_min = hub_height - height/2 - r_max = hub_height + height/2 - A_edge = np.arange(r_min, r_max+cs, cs) - A_rng = A_edge[:-1] + cs/2 # Center of each slice - - As_slc = np.ones(len(A_rng))*width*cs - - return xr.DataArray(As_slc, coords={'range': A_rng}) - - -def _check_dtype(var, var_name): + r_min = hub_height - height / 2 + r_max = hub_height + height / 2 + A_edge = np.arange(r_min, r_max + cs, cs) + A_rng = A_edge[:-1] + cs / 2 # Center of each slice + + As_slc = np.ones(len(A_rng)) * width * cs + + return xr.DataArray(As_slc, coords={"range": A_rng}) + + +def power_curve( + power, + velocity, + hub_height, + doppler_cell_size, + sampling_frequency, + window_avg_time=600, + turbine_profile="circular", + diameter=None, + height=None, + width=None, + to_pandas=True, +): """ - Checks the datatype of a variable, converting pandas Series to xarray DataArray, - or raising an error if the datatype is neither. - - Parameters - ------------- - var: xr.DataArray or pd.Series - The variable to be checked. - - var_name: str - The name of the variable, used for error message. - - Returns - --------- - var: xr.DataArray - The input variable, converted to xr.DataArray if it was a pd.Series. - """ - - if isinstance(var, pd.Series): - var = var.to_xarray() - elif not isinstance(var, xr.DataArray): - raise TypeError(var_name.capitalize() + - ' must be of type xr.DataArray or pd.Series') - return var - - -def power_curve(power, - velocity, - hub_height, - doppler_cell_size, - sampling_frequency, - window_avg_time=600, - turbine_profile='circular', - diameter=None, - height=None, - width=None): - """ - Calculates power curve and power statistics for a marine energy + Calculates power curve and power statistics for a marine energy device based on IEC/TS 62600-200 section 9.3. Parameters ------------- - power: pandas.Series or xarray.DataArray (time) + power: numpy ndarray, pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Device power output timeseries. - velocity: pandas.Series or xarray.DataArray ([range,] time) + velocity: numpy ndarray, pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset 1D or 2D streamwise sea water velocity or sea water speed. hub_height: numeric - Turbine hub height altitude above the seabed. Assumes ADCP + Turbine hub height altitude above the seabed. Assumes ADCP depth bins are referenced to the seafloor. doppler_cell_size: numeric ADCP depth bin size. @@ -191,111 +171,141 @@ def power_curve(power, Required for turbine_profile='rectangular'. Defaults to None. width: numeric, optional Required for turbine_profile='rectangular'. Defaults to None. + to_pandas: bool, optional + Flag to output pandas instead of xarray. Default = True. Returns --------- - pandas.DataFrame + device_power_curve: pandas DataFrame or xarray Dataset Power-weighted velocity, mean power, power std dev, max and min power vs hub-height velocity. """ # Velocity should be a 2D xarray or pandas array and have dims (range, time) # Power should have a timestamp coordinate/index - power = _check_dtype(power, 'power') - velocity = _check_dtype(velocity, 'velocity') + power = convert_to_dataarray(power) + velocity = convert_to_dataarray(velocity) if len(velocity.shape) != 2: - raise ValueError("Velocity should be 2 dimensional and have \ - dimensions of 'time' (temporal) and 'range' (spatial).") + raise ValueError( + "Velocity should be 2 dimensional and have \ + dimensions of 'time' (temporal) and 'range' (spatial)." + ) + + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") # Numeric positive checks - numeric_params = [hub_height, doppler_cell_size, - sampling_frequency, window_avg_time] - numeric_param_names = ['hub_height', 'doppler_cell_size', - 'sampling_frequency', 'window_avg_time'] + numeric_params = [ + hub_height, + doppler_cell_size, + sampling_frequency, + window_avg_time, + ] + numeric_param_names = [ + "hub_height", + "doppler_cell_size", + "sampling_frequency", + "window_avg_time", + ] for param, name in zip(numeric_params, numeric_param_names): if not isinstance(param, (int, float)): - raise TypeError(f'{name} must be numeric.') + raise TypeError(f"{name} must be numeric.") if param <= 0: - raise ValueError(f'{name} must be positive.') + raise ValueError(f"{name} must be positive.") # Turbine profile related checks - if turbine_profile not in ['circular', 'rectangular']: + if turbine_profile not in ["circular", "rectangular"]: raise ValueError( - "`turbine_profile` must be one of 'circular' or 'rectangular'.") - if turbine_profile == 'circular': + "`turbine_profile` must be one of 'circular' or 'rectangular'." + ) + if turbine_profile == "circular": if diameter is None: raise TypeError( - "`diameter` cannot be None for input `turbine_profile` = 'circular'.") + "`diameter` cannot be None for input `turbine_profile` = 'circular'." + ) elif not isinstance(diameter, (int, float)) or diameter <= 0: raise ValueError("`diameter` must be a positive number.") else: # If the checks pass, calculate A_slc A_slc = _slice_circular_capture_area( - diameter, hub_height, doppler_cell_size) + diameter, hub_height, doppler_cell_size + ) else: # Rectangular profile if height is None or width is None: raise TypeError( - "`height` and `width` cannot be None for input `turbine_profile` = 'rectangular'.") - elif not all(isinstance(val, (int, float)) and val > 0 for val in [height, width]): + "`height` and `width` cannot be None for input `turbine_profile` = 'rectangular'." + ) + elif not all( + isinstance(val, (int, float)) and val > 0 for val in [height, width] + ): raise ValueError("`height` and `width` must be positive numbers.") else: # If the checks pass, calculate A_slc A_slc = _slice_rectangular_capture_area( - height, width, hub_height, doppler_cell_size) + height, width, hub_height, doppler_cell_size + ) # Streamwise data U = abs(velocity) - time = U['time'].values + time = U["time"].values # Interpolate power to velocity timestamps - P = power.interp(time=U['time'], method='linear') + P = power.interp(time=U["time"], method="linear") # Power weighted velocity in capture area # Interpolate U range to capture area slices, then cube and multiply by area - U_hat = U.interp(range=A_slc['range'], method='linear')**3 * A_slc + U_hat = U.interp(range=A_slc["range"], method="linear") ** 3 * A_slc # Average the velocity across the capture area and divide out area - U_hat = (U_hat.sum('range') / A_slc.sum()) ** (-1/3) + U_hat = (U_hat.sum("range") / A_slc.sum()) ** (-1 / 3) # Time-average velocity at hub-height - bnr = dolfyn.VelBinner(n_bin=window_avg_time * - sampling_frequency, fs=sampling_frequency) + bnr = dolfyn.VelBinner( + n_bin=window_avg_time * sampling_frequency, fs=sampling_frequency + ) # Hub-height velocity mean - mean_hub_vel = xr.DataArray(bnr.mean(U.sel(range=hub_height, method='nearest').values), - coords={'time': bnr.mean(time)}) + mean_hub_vel = xr.DataArray( + bnr.mean(U.sel(range=hub_height, method="nearest").values), + coords={"time": bnr.mean(time)}, + ) # Power-weighted hub-height velocity mean - U_hat_bar = xr.DataArray((bnr.mean(U_hat.values ** 3)) ** (-1/3), - coords={'time': bnr.mean(time)}) + U_hat_bar = xr.DataArray( + (bnr.mean(U_hat.values**3)) ** (-1 / 3), coords={"time": bnr.mean(time)} + ) # Average power - P_bar = xr.DataArray(bnr.mean(P.values), - coords={'time': bnr.mean(time)}) + P_bar = xr.DataArray(bnr.mean(P.values), coords={"time": bnr.mean(time)}) # Then reorganize into 0.1 m velocity bins and average U_bins = np.arange(0, np.nanmax(mean_hub_vel) + 0.1, 0.1) - U_hub_vel = mean_hub_vel.assign_coords( - {"time": mean_hub_vel}).rename({"time": "speed"}) + U_hub_vel = mean_hub_vel.assign_coords({"time": mean_hub_vel}).rename( + {"time": "speed"} + ) U_hub_mean = U_hub_vel.groupby_bins("speed", U_bins).mean() - U_hat_vel = U_hat_bar.assign_coords( - {"time": mean_hub_vel}).rename({"time": "speed"}) + U_hat_vel = U_hat_bar.assign_coords({"time": mean_hub_vel}).rename( + {"time": "speed"} + ) U_hat_mean = U_hat_vel.groupby_bins("speed", U_bins).mean() - P_bar_vel = P_bar.assign_coords( - {"time": mean_hub_vel}).rename({"time": "speed"}) + P_bar_vel = P_bar.assign_coords({"time": mean_hub_vel}).rename({"time": "speed"}) P_bar_mean = P_bar_vel.groupby_bins("speed", U_bins).mean() P_bar_std = P_bar_vel.groupby_bins("speed", U_bins).std() P_bar_max = P_bar_vel.groupby_bins("speed", U_bins).max() P_bar_min = P_bar_vel.groupby_bins("speed", U_bins).min() - out = pd.DataFrame((U_hub_mean.to_series(), - U_hat_mean.to_series(), - P_bar_mean.to_series(), - P_bar_std.to_series(), - P_bar_max.to_series(), - P_bar_min.to_series(), - )).T - out.columns = ['U_avg', 'U_avg_power_weighted', - 'P_avg', 'P_std', 'P_max', 'P_min'] - out.index.name = 'U_bins' + device_power_curve = xr.Dataset( + { + "U_avg": U_hub_mean, + "U_avg_power_weighted": U_hat_mean, + "P_avg": P_bar_mean, + "P_std": P_bar_std, + "P_max": P_bar_max, + "P_min": P_bar_min, + } + ) + device_power_curve = device_power_curve.rename({"speed_bins": "U_bins"}) - return out + if to_pandas: + device_power_curve = device_power_curve.to_pandas() + + return device_power_curve def _average_velocity_bins(U, U_hub, bin_size): @@ -314,7 +324,7 @@ def _average_velocity_bins(U, U_hub, bin_size): Returns --------- - xarray.DataArray + U_binned: xarray.DataArray Data grouped into velocity bins. """ @@ -322,10 +332,10 @@ def _average_velocity_bins(U, U_hub, bin_size): U_bins = np.arange(0, np.nanmax(U_hub) + bin_size, bin_size) # Group time-ensembles into velocity bins based on hub-height velocity and average - out = U.assign_coords({"time": U_hub}).rename({"time": "speed"}) - out = out.groupby_bins("speed", U_bins).mean() + U_binned = U.assign_coords({"time": U_hub}).rename({"time": "speed"}) + U_binned = U_binned.groupby_bins("speed", U_bins).mean() - return out + return U_binned def _apply_function(function, bnr, U): @@ -351,39 +361,41 @@ def _apply_function(function, bnr, U): applied, grouped into bins according to bnr. """ - if function == 'mean': + if function == "mean": # Average data into 5-10 minute ensembles return xr.DataArray( bnr.mean(abs(U).values), - coords={'range': U.range, - 'time': bnr.mean(U['time'].values)}) - elif function == 'rms': + coords={"range": U.range, "time": bnr.mean(U["time"].values)}, + ) + elif function == "rms": # Reshape tidal velocity - returns (range, ensemble-time, ensemble elements) U_reshaped = bnr.reshape(abs(U).values) # Take root-mean-square U_rms = np.sqrt(np.nanmean(U_reshaped**2, axis=-1)) return xr.DataArray( - U_rms, - coords={'range': U.range, - 'time': bnr.mean(U['time'].values)}) - elif function == 'std': + U_rms, coords={"range": U.range, "time": bnr.mean(U["time"].values)} + ) + elif function == "std": # Standard deviation return xr.DataArray( bnr.standard_deviation(U.values), - coords={'range': U.range, - 'time': bnr.mean(U['time'].values)}) + coords={"range": U.range, "time": bnr.mean(U["time"].values)}, + ) else: raise ValueError( - f"Unknown function {function}. Should be one of 'mean', 'rms', or 'std'") - - -def velocity_profiles(velocity, - hub_height, - water_depth, - sampling_frequency, - window_avg_time=600, - function='mean', - ): + f"Unknown function {function}. Should be one of 'mean', 'rms', or 'std'" + ) + + +def velocity_profiles( + velocity, + hub_height, + water_depth, + sampling_frequency, + window_avg_time=600, + function="mean", + to_pandas=True, +): """ Calculates profiles of the mean, root-mean-square (RMS), or standard deviation(std) of velocity. The chosen metric, specified by `function`, @@ -392,10 +404,10 @@ def velocity_profiles(velocity, Parameters ------------- - velocity : pandas.Series or xarray.DataArray ([range,] time) + velocity : numpy ndarray, pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset 1D or 2D streamwise sea water velocity or sea water speed. hub_height : numeric - Turbine hub height altitude above the seabed. Assumes ADCP depth bins + Turbine hub height altitude above the seabed. Assumes ADCP depth bins are referenced to the seafloor. water_depth : numeric Water depth to seafloor, in same units as velocity `range` coordinate. @@ -405,29 +417,36 @@ def velocity_profiles(velocity, Time averaging window in seconds. Defaults to 600. func : string Function to apply. One of 'mean','rms', or 'std' + to_pandas: bool, optional + Flag to output pandas instead of xarray. Default = True. Returns --------- - pandas.DataFrame + iec_profiles: pandas.DataFrame Average velocity profiles based on ensemble mean velocity. """ - velocity = _check_dtype(velocity, 'velocity') + velocity = convert_to_dataarray(velocity, "velocity") if len(velocity.shape) != 2: - raise ValueError("Velocity should be 2 dimensional and have \ - dimensions of 'time' (temporal) and 'range' (spatial).") + raise ValueError( + "Velocity should be 2 dimensional and have \ + dimensions of 'time' (temporal) and 'range' (spatial)." + ) - if function not in ['mean', 'rms', 'std']: + if function not in ["mean", "rms", "std"]: raise ValueError("`function` must be one of 'mean', 'rms', or 'std'.") + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") # Streamwise data U = velocity # Create binner - bnr = dolfyn.VelBinner(n_bin=window_avg_time * - sampling_frequency, fs=sampling_frequency) + bnr = dolfyn.VelBinner( + n_bin=window_avg_time * sampling_frequency, fs=sampling_frequency + ) # Take velocity at hub height - mean_hub_vel = bnr.mean(U.sel(range=hub_height, method='nearest').values) + mean_hub_vel = bnr.mean(U.sel(range=hub_height, method="nearest").values) # Apply mean, root-mean-square, or standard deviation U_out = _apply_function(function, bnr, U) @@ -438,147 +457,123 @@ def velocity_profiles(velocity, # Extend top and bottom of profiles to the seafloor and sea surface # Clip off extra depth bins with nans rdx = profiles.isel(speed_bins=0).notnull().sum().values - profiles = profiles.isel(range=slice(None, rdx+1)) + profiles = profiles.isel(range=slice(None, rdx + 1)) # Set seafloor velocity to 0 m/s out_data = np.insert(profiles.data, 0, 0, axis=0) # Set max range to the user-provided water depth - new_range = np.insert(profiles['range'].data[:-1], 0, 0) + new_range = np.insert(profiles["range"].data[:-1], 0, 0) new_range = np.append(new_range, water_depth) # Create a profiles with new range - iec_profiles = xr.DataArray(out_data, coords={'range': new_range, - 'speed_bins': profiles['speed_bins']}) + iec_profiles = xr.DataArray( + out_data, coords={"range": new_range, "speed_bins": profiles["speed_bins"]} + ) # Forward fill to surface - iec_profiles = iec_profiles.ffill('range', limit=None) + iec_profiles = iec_profiles.ffill("range", limit=None) - return iec_profiles.to_pandas() + if to_pandas: + iec_profiles = iec_profiles.to_pandas() + return iec_profiles -def device_efficiency(power, - velocity, - water_density, - capture_area, - hub_height, - sampling_frequency, - window_avg_time=600): + +def device_efficiency( + power, + velocity, + water_density, + capture_area, + hub_height, + sampling_frequency, + window_avg_time=600, + to_pandas=True, +): """ Calculates marine energy device efficiency based on IEC/TS 62600-200 Section 9.7. Parameters ------------- - power : pandas.Series or xarray.DataArray (time) + power : numpy ndarray, pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Device power output timeseries in Watts. - velocity : pandas.Series or xarray.DataArray ([range,] time) + velocity : numpy ndarray, pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset 1D or 2D streamwise sea water velocity or sea water speed in m/s. water_density : float, pandas.Series or xarray.DataArray Sea water density in kg/m^3. capture_area : numeric Swept area of marine energy device. hub_height : numeric - Turbine hub height altitude above the seabed. Assumes ADCP depth bins + Turbine hub height altitude above the seabed. Assumes ADCP depth bins are referenced to the seafloor. sampling_frequency : numeric ADCP sampling frequency in Hz. window_avg_time : int, optional Time averaging window in seconds. Defaults to 600. + to_pandas: bool, optional + Flag to output pandas instead of xarray. Default = True. Returns --------- - pandas.Series + device_eta : pandas.Series or xarray.DataArray Device efficiency (power coefficient) in percent. """ # Velocity should be a 2D xarray or pandas array and have dims (range, time) # Power should have a timestamp coordinate/index - power = _check_dtype(power, 'power') - velocity = _check_dtype(velocity, 'velocity') + power = convert_to_dataarray(power, "power") + velocity = convert_to_dataarray(velocity, "velocity") if len(velocity.shape) != 2: - raise ValueError("Velocity should be 2 dimensional and have \ - dimensions of 'time' (temporal) and 'range' (spatial).") + raise ValueError( + "Velocity should be 2 dimensional and have \ + dimensions of 'time' (temporal) and 'range' (spatial)." + ) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") # Streamwise data U = abs(velocity) - time = U['time'].values + time = U["time"].values # Power: Interpolate to velocity timeseries - power = _interpolate_power_to_velocity_timeseries(power, U) + power.interp(time=U["time"], method="linear") # Create binner - bnr = dolfyn.VelBinner(n_bin=window_avg_time * - sampling_frequency, fs=sampling_frequency) + bnr = dolfyn.VelBinner( + n_bin=window_avg_time * sampling_frequency, fs=sampling_frequency + ) # Hub-height velocity - mean_hub_vel = xr.DataArray(bnr.mean(U.sel(range=hub_height, method='nearest').values), - coords={'time': bnr.mean(time)}) + mean_hub_vel = xr.DataArray( + bnr.mean(U.sel(range=hub_height, method="nearest").values), + coords={"time": bnr.mean(time)}, + ) vel_hub = _average_velocity_bins(mean_hub_vel, mean_hub_vel, bin_size=0.1) # Water density rho_vel = _calculate_density(water_density, bnr, mean_hub_vel, time) # Bin average power - P_avg = xr.DataArray(bnr.mean(power.values), - coords={'time': bnr.mean(time)}) + P_avg = xr.DataArray(bnr.mean(power.values), coords={"time": bnr.mean(time)}) P_vel = _average_velocity_bins(P_avg, mean_hub_vel, bin_size=0.1) # Theoretical power resource - P_resource = 1/2 * rho_vel * capture_area * vel_hub**3 + P_resource = 1 / 2 * rho_vel * capture_area * vel_hub**3 # Efficiency eta = P_vel / P_resource - out = pd.DataFrame((vel_hub.to_series(), - eta.to_series(), - )).T - out.columns = ['U_avg', 'Efficiency'] - out.index.name = 'U_bins' + device_eta = xr.Dataset({"U_avg": vel_hub, "Efficiency": eta}) + device_eta = device_eta.rename({"speed_bins": "U_bins"}) - return out + if to_pandas: + device_eta = device_eta.to_pandas() - -def _interpolate_power_to_velocity_timeseries(power, U): - """ - Interpolates the power timeseries to match the velocity timeseries time points. - - This function checks if the input power is an xarray DataArray or a pandas Series - with a DatetimeIndex and performs interpolation accordingly. If the input power - does not match either of these types, a warning is issued and the original power - timeseries is returned. - - Parameters - ------------- - power : xarray.DataArray or pandas.Series - The device power output timeseries. - U : xarray.DataArray - 2D streamwise sea water velocity or sea water speed. - - Returns - --------- - xarray.DataArray or pandas.Series - Interpolated power timeseries. - - Raises - --------- - Warning - If the input power is not a xarray DataArray or pandas Series with - a DatetimeIndex, a warning is issued stating that the function assumes the - power timestamps match the velocity timestamps. - """ - - if 'xarray' in type(power).__module__: - return power.interp(time=U['time'], method='linear') - elif 'pandas' in type(power).__module__ and isinstance(power.index, pd.DatetimeIndex): - return power.to_xarray().interp(time=U['time'], method='linear') - else: - warnings.warn( - "Assuming `power` timestamps match `velocity` timestamps") - return power + return device_eta def _calculate_density(water_density, bnr, mean_hub_vel, time): """ Calculates the averaged density for the given time period. - This function first checks if the water_density is a scalar or an array. - If it is an array, the function calculates the mean density over the time - period using the binner object 'bnr', and then averages it over velocity bins. + This function first checks if the water_density is a scalar or an array. + If it is an array, the function calculates the mean density over the time + period using the binner object 'bnr', and then averages it over velocity bins. If it is a scalar, it directly returns the input density. Parameters @@ -595,13 +590,14 @@ def _calculate_density(water_density, bnr, mean_hub_vel, time): Returns --------- xarray.DataArray or float - The averaged water density over velocity bins if water_density is an array, + The averaged water density over velocity bins if water_density is an array, or the input scalar water_density. """ if np.size(water_density) > 1: - rho_avg = xr.DataArray(bnr.mean(water_density.values), - coords={'time': bnr.mean(time)}) + rho_avg = xr.DataArray( + bnr.mean(water_density.values), coords={"time": bnr.mean(time)} + ) return _average_velocity_bins(rho_avg, mean_hub_vel, bin_size=0.1) else: return water_density diff --git a/mhkit/tidal/resource.py b/mhkit/tidal/resource.py index ef9961780..e6b6d21c4 100644 --- a/mhkit/tidal/resource.py +++ b/mhkit/tidal/resource.py @@ -1,10 +1,11 @@ import numpy as np import math -import pandas as pd -from mhkit.river.resource import exceedance_probability, Froude_number +from mhkit.river.resource import exceedance_probability, Froude_number +from mhkit.utils import convert_to_dataarray + def _histogram(directions, velocities, width_dir, width_vel): - ''' + """ Wrapper around numpy histogram 2D. Used to find joint probability between directions and velocities. Returns joint probability H as [%]. @@ -14,9 +15,9 @@ def _histogram(directions, velocities, width_dir, width_vel): Directions in degrees with 0 degrees specified as true north velocities: array-like Velocities in m/s - width_dir: float + width_dir: float Width of directional bins for histogram in degrees - width_vel: float + width_vel: float Width of velocity bins for histogram in m/s Returns ------- @@ -26,17 +27,22 @@ def _histogram(directions, velocities, width_dir, width_vel): List of directional bin edges vel_edges: list List of velocity bin edges - ''' + """ - # Number of directional bins - N_dir = math.ceil(360/width_dir) - # Max bin (round up to nearest integer) + # Number of directional bins + N_dir = math.ceil(360 / width_dir) + # Max bin (round up to nearest integer) vel_max = math.ceil(velocities.max()) # Number of velocity bins - N_vel = math.ceil(vel_max/width_vel) + N_vel = math.ceil(vel_max / width_vel) # 2D Histogram of current speed and direction - H, dir_edges, vel_edges = np.histogram2d(directions, velocities, bins=(N_dir,N_vel), - range=[[0,360],[0,vel_max]], density=True) + H, dir_edges, vel_edges = np.histogram2d( + directions, + velocities, + bins=(N_dir, N_vel), + range=[[0, 360], [0, vel_max]], + density=True, + ) # density = true therefore bin value * bin area summed =1 bin_area = width_dir * width_vel # Convert H values to percent [%] @@ -45,9 +51,9 @@ def _histogram(directions, velocities, width_dir, width_vel): def _normalize_angle(degree): - ''' + """ Normalizes degrees to be between 0 and 360 - + Parameters ---------- degree: int or float @@ -56,28 +62,28 @@ def _normalize_angle(degree): ------- new_degree: float Normalized between 0 and 360 degrees - ''' + """ # Set new degree as remainder - new_degree = degree%360 + new_degree = degree % 360 # Ensure positive - new_degree = (new_degree + 360) % 360 + new_degree = (new_degree + 360) % 360 return new_degree def principal_flow_directions(directions, width_dir): - ''' + """ Calculates principal flow directions for ebb and flood cycles - - The weighted average (over the working velocity range of the TEC) - should be considered to be the principal direction of the current, - and should be used for both the ebb and flood cycles to determine - the TEC optimum orientation. + + The weighted average (over the working velocity range of the TEC) + should be considered to be the principal direction of the current, + and should be used for both the ebb and flood cycles to determine + the TEC optimum orientation. Parameters ---------- - directions: pandas.Series or numpy.ndarray + directions: numpy ndarray, pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Flow direction in degrees CW from North, from 0 to 360 - width_dir: float + width_dir: float Width of directional bins for histogram in degrees Returns @@ -87,74 +93,79 @@ def principal_flow_directions(directions, width_dir): Notes ----- - One must determine which principal direction is flood and which is + One must determine which principal direction is flood and which is ebb based on knowledge of the measurement site. - ''' + """ - if isinstance(directions, np.ndarray): - directions=pd.Series(directions) - assert(all(directions>=0) and all(directions<=360), - 'flood must be between 0 and 360 degrees') + directions = convert_to_dataarray(directions) + if any(directions < 0) or any(directions > 360): + violating_values = [d for d in directions if d < 0 or d > 360] + raise ValueError( + f"directions must be between 0 and 360 degrees. Values out of range: {violating_values}" + ) - # Number of directional bins - N_dir=int(360/width_dir) + # Number of directional bins + N_dir = int(360 / width_dir) # Compute directional histogram - H1, dir_edges = np.histogram(directions, bins=N_dir,range=[0,360], density=True) - # Convert to perecnt - H1 = H1 * 100 # [%] + H1, dir_edges = np.histogram(directions, bins=N_dir, range=[0, 360], density=True) + # Convert to percent + H1 = H1 * 100 # [%] # Determine if there are an even or odd number of bins - odd = bool( N_dir % 2 ) + odd = bool(N_dir % 2) # Shift by 180 degrees and sum if odd: # Then split middle bin counts to left and right - H0to180 = H1[0:N_dir//2] - H180to360 = H1[N_dir//2+1:] - H0to180[-1] += H1[N_dir//2]/2 - H180to360[0] += H1[N_dir//2]/2 - #Add the two + H0to180 = H1[0 : N_dir // 2] + H180to360 = H1[N_dir // 2 + 1 :] + H0to180[-1] += H1[N_dir // 2] / 2 + H180to360[0] += H1[N_dir // 2] / 2 + # Add the two H180 = H0to180 + H180to360 else: - H180 = H1[0:N_dir//2] + H1[N_dir//2:N_dir+1] + H180 = H1[0 : N_dir // 2] + H1[N_dir // 2 : N_dir + 1] # Find the maximum value maxDegreeStacked = H180.argmax() # Shift by 90 to find angles normal to principal direction - floodEbbNormalDegree1 = _normalize_angle(maxDegreeStacked + 90.) - # Find the complimentary angle - floodEbbNormalDegree2 = _normalize_angle(floodEbbNormalDegree1+180.) + floodEbbNormalDegree1 = _normalize_angle(maxDegreeStacked + 90.0) + # Find the complimentary angle + floodEbbNormalDegree2 = _normalize_angle(floodEbbNormalDegree1 + 180.0) # Reset values so that the Degree1 is the smaller angle, and Degree2 the large floodEbbNormalDegree1 = min(floodEbbNormalDegree1, floodEbbNormalDegree2) - floodEbbNormalDegree2 = floodEbbNormalDegree1 + 180. + floodEbbNormalDegree2 = floodEbbNormalDegree1 + 180.0 # Slice directions on the 2 semi circles - d1 = directions[directions.between(floodEbbNormalDegree1, - floodEbbNormalDegree2)] - d2 = directions[~directions.between(floodEbbNormalDegree1, - floodEbbNormalDegree2)] + mask = (directions >= floodEbbNormalDegree1) & (directions <= floodEbbNormalDegree2) + d1 = directions[mask] + d2 = directions[~mask] # Shift second set of of directions to not break between 360 and 0 - d2 -= 180. + d2 -= 180 # Renormalize the points (gets rid of negatives) d2 = _normalize_angle(d2) # Number of bins for semi-circle - n_dir = int(180/width_dir) + n_dir = int(180 / width_dir) # Compute 1D histograms on both semi circles - Hd1, dir1_edges = np.histogram(d1, bins=n_dir,density=True) - Hd2, dir2_edges = np.histogram(d2, bins=n_dir,density=True) - # Convert to perecnt - Hd1 = Hd1 * 100 # [%] - Hd2 = Hd2 * 100 # [%] + Hd1, dir1_edges = np.histogram(d1, bins=n_dir, density=True) + Hd2, dir2_edges = np.histogram(d2, bins=n_dir, density=True) + # Convert to percent + Hd1 = Hd1 * 100 # [%] + Hd2 = Hd2 * 100 # [%] # Principal Directions average of the 2 bins - PrincipalDirection1 = 0.5 * (dir1_edges[Hd1.argmax()]+ dir1_edges[Hd1.argmax()+1]) - PrincipalDirection2 = 0.5 * (dir2_edges[Hd2.argmax()]+ dir2_edges[Hd2.argmax()+1])+180.0 + PrincipalDirection1 = 0.5 * ( + dir1_edges[Hd1.argmax()] + dir1_edges[Hd1.argmax() + 1] + ) + PrincipalDirection2 = ( + 0.5 * (dir2_edges[Hd2.argmax()] + dir2_edges[Hd2.argmax() + 1]) + 180.0 + ) + + return PrincipalDirection1, PrincipalDirection2 - return PrincipalDirection1, PrincipalDirection2 - def _flood_or_ebb(d, flood, ebb): - ''' - Returns a mask which is True for directions on the ebb side of the - midpoints between the flood and ebb directions on the unit circle + """ + Returns a mask which is True for directions on the ebb side of the + midpoints between the flood and ebb directions on the unit circle and False for directions on the Flood side. - + Parameters ---------- d: array-like @@ -163,24 +174,23 @@ def _flood_or_ebb(d, flood, ebb): Principal component of flow in the flood direction in degrees ebb: float or int Principal component of flow in the ebb direction in degrees - + Returns ------- is_ebb: boolean array - array of length N which is True for directions on the ebb side + array of length N which is True for directions on the ebb side of the midpoints between flood and ebb on the unit circle and false otherwise. - ''' + """ max_angle = max(ebb, flood) min_angle = min(ebb, flood) - - lower_split = (min_angle + (360 - max_angle + min_angle)/2 ) % 360 + + lower_split = (min_angle + (360 - max_angle + min_angle) / 2) % 360 upper_split = lower_split + 180 - + if lower_split <= ebb < upper_split: is_ebb = ((d < upper_split) & (d >= lower_split)).values else: is_ebb = ~((d < upper_split) & (d >= lower_split)).values - - return is_ebb + return is_ebb diff --git a/mhkit/utils.py b/mhkit/utils.py deleted file mode 100644 index 65ba2b918..000000000 --- a/mhkit/utils.py +++ /dev/null @@ -1,299 +0,0 @@ -from pecos.utils import index_to_datetime -import matplotlib.pyplot as plt -import datetime as dt -from mhkit import qc -import pandas as pd -import numpy as np - - -_matlab = False # Private variable indicating if mhkit is run through matlab - -def get_statistics(data,freq,period=600,vector_channels=[]): - """ - Calculate mean, max, min and stdev statistics of continuous data for a - given statistical window. Default length of statistical window (period) is - based on IEC TS 62600-3:2020 ED1. Also allows calculation of statistics for multiple statistical - windows of continuous data and accounts for vector/directional channels. - - Parameters - ------------ - data : pandas DataFrame - Data indexed by datetime with columns of data to be analyzed - freq : float/int - Sample rate of data [Hz] - period : float/int - Statistical window of interest [sec], default = 600 - vector_channels : string or list (optional) - List of vector/directional channel names formatted in deg (0-360) - - Returns - --------- - means,maxs,mins,stdevs : pandas DataFrame - Calculated statistical values from the data, indexed by the first timestamp - """ - # Check data type - assert isinstance(data, pd.DataFrame), 'data must be of type pd.DataFrame' - assert isinstance(freq, (float,int)), 'freq must be of type int or float' - assert isinstance(period, (float,int)), 'freq must be of type int or float' - # catch if vector_channels is not an string array - if isinstance(vector_channels,str): vector_channels = [vector_channels] - assert isinstance(vector_channels, list), 'vector_channels must be a list of strings' - - # Check timestamp using qc module - data.index = data.index.round('1ms') - dataQC = qc.check_timestamp(data,1/freq) - dataQC = dataQC['cleaned_data'] - - # Check to see if data length contains enough data points for statistical window - if len(dataQC)%(period*freq) > 0: - remain = len(dataQC) % (period*freq) - dataQC = dataQC.iloc[0:-int(remain)] - print('WARNING: there were not enough data points in the last statistical period. Last '+str(remain)+' points were removed.') - - # Pre-allocate lists - time = [] - means = [] - maxs = [] - mins = [] - stdev = [] - - # Get data chunks to performs stats on - step = period*freq - for i in range(int(len(dataQC)/(period*freq))): - datachunk = dataQC.iloc[i*step:(i+1)*step] - # Check whether there are any NaNs in datachunk - if datachunk.isnull().any().any(): - print('NaNs found in statistical window...check timestamps!') - input('Press to continue') - continue - else: - # Get stats - time.append(datachunk.index.values[0]) # time vector - maxs.append(datachunk.max()) # maxes - mins.append(datachunk.min()) # mins - means.append(datachunk.mean()) # means - stdev.append(datachunk.std()) # standard deviation - # calculate vector averages and std - for v in vector_channels: - vector_avg, vector_std = vector_statistics(datachunk[v]) - means[i][v] = vector_avg # overwrite scalar average for channel - stdev[i][v] = vector_std # overwrite scalar std for channel - - # Convert to DataFrames and set index - means = pd.DataFrame(means,index=time) - maxs = pd.DataFrame(maxs,index=time) - mins = pd.DataFrame(mins,index=time) - stdevs = pd.DataFrame(stdev,index=time) - - return means,maxs,mins,stdevs - -def vector_statistics(data): - """ - Function used to calculate statistics for vector/directional channels based on - routine from Campbell data logger and Yamartino algorithm - - Parameters - ---------- - data : pandas Series, numpy array, list - Vector channel to calculate statistics on [deg, 0-360] - - Returns - ------- - vector_avg : numpy array - Vector mean statistic - vector_std : numpy array - Vector standard deviation statistic - """ - try: data = np.array(data) - except: pass - assert isinstance(data, np.ndarray), 'data must be of type np.ndarray' - - # calculate mean - Ux = sum(np.sin(data*np.pi/180))/len(data) - Uy = sum(np.cos(data*np.pi/180))/len(data) - vector_avg = (90 - np.arctan2(Uy,Ux)*180/np.pi) - if vector_avg<0: vector_avg = vector_avg+360 - elif vector_avg>360: vector_avg = vector_avg-360 - # calculate standard deviation - magsum = round((Ux**2 + Uy**2)*1e8)/1e8 # round to 8th decimal place to reduce roundoff error - epsilon = (1-magsum)**0.5 - if not np.isreal(epsilon): # check if epsilon is imaginary (error) - vector_std = 0 - print('WARNING: epsilon contains imaginary value') - else: - vector_std = np.arcsin(epsilon)*(1+0.1547*epsilon**3)*180/np.pi - - return vector_avg, vector_std - -def unwrap_vector(data): - """ - Function used to unwrap vectors into 0-360 deg range - - Parameters - ------------ - data : pandas Series, numpy array, list - Data points to be unwrapped [deg] - - Returns - --------- - data : numpy array - Data points unwrapped between 0-360 deg - """ - # Check data types - try: - data = np.array(data) - except: - pass - assert isinstance(data, np.ndarray), 'data must be of type np.ndarray' - - # Loop through and unwrap points - for i in range(len(data)): - if data[i] < 0: - data[i] = data[i]+360 - elif data[i] > 360: - data[i] = data[i]-360 - if max(data) > 360 or min(data) < 0: - data = unwrap_vector(data) - return data - -def matlab_to_datetime(matlab_datenum): - """ - Convert MATLAB datenum format to Python datetime - - Parameters - ------------ - matlab_datenum : numpy array - MATLAB datenum to be converted - - Returns - --------- - time : DateTimeIndex - Python datetime values - """ - # Check data types - try: - matlab_datenum = np.array(matlab_datenum,ndmin=1) - except: - pass - assert isinstance(matlab_datenum, np.ndarray), 'data must be of type np.ndarray' - - # Pre-allocate - time = [] - # loop through dates and convert - for t in matlab_datenum: - day = dt.datetime.fromordinal(int(t)) - dayfrac = dt.timedelta(days=t%1) - dt.timedelta(days = 366) - time.append(day + dayfrac) - - time = np.array(time) - time = pd.to_datetime(time) - return time - -def excel_to_datetime(excel_num): - """ - Convert Excel datenum format to Python datetime - - Parameters - ------------ - excel_num : numpy array - Excel datenums to be converted - - Returns - --------- - time : DateTimeIndex - Python datetime values - """ - # Check data types - try: - excel_num = np.array(excel_num) - except: - pass - assert isinstance(excel_num, np.ndarray), 'data must be of type np.ndarray' - - # Convert to datetime - time = pd.to_datetime('1899-12-30')+pd.to_timedelta(excel_num,'D') - - return time - - -def magnitude_phase(x,y,z=None): - ''' - Retuns magnitude and phase in two or three dimensions. - - Parameters - ---------- - x: array_like - x-component - y: array_like - y-component - z: array_like - z-component defined positive up. (Optional) Default None. - - Returns - ------- - mag: float or array - magnitude of the vector - theta: float or array - radians from the x-axis - phi: float or array - radians from z-axis defined as positive up. Optional: only - returned when z is passed. - ''' - x=np.array(x) - y=np.array(y) - - threeD=False - if not isinstance(z, type(None)): - z=np.array(z) - threeD=True - - assert isinstance(x, (float,int,np.ndarray)) - assert isinstance(y, (float,int,np.ndarray)) - assert isinstance(z, (type(None),float,int,np.ndarray)) - - if threeD: - mag = np.sqrt(x**2 + y**2 + z**2) - theta = np.arctan2(y,x) - phi = np.arctan2(np.sqrt(x**2+y**2),z) - return mag, theta, phi - else: - mag = np.sqrt(x**2 + y**2) - theta = np.arctan2(y, x) - return mag, theta - -def unorm(x, y ,z): - ''' - Calculates the root mean squared value given three arrays. - - Parameters - ---------- - x: array - One input for the root mean squared calculation.(eq. x velocity) - y: array - One input for the root mean squared calculation.(eq. y velocity) - z: array - One input for the root mean squared calculation.(eq. z velocity) - - Returns - ------- - unorm : array - The root mean squared of x, y, and z. - - Example - ------- - If the inputs are [1,2,3], [4,5,6], and [7,8,9] the code take the - cordinationg value from each array and calculates the root mean squared. - The resulting output is [ 8.1240384, 9.64365076, 11.22497216]. - ''' - - assert isinstance(x,(np.ndarray, np.float64, pd.Series)), 'x must be an array' - assert isinstance(y,(np.ndarray, np.float64, pd.Series)), 'y must be an array' - assert isinstance(z,(np.ndarray, np.float64, pd.Series)), 'z must be an array' - assert all([len(x) == len(y), len (y) ==len (z)]), ('lengths of arrays must' - +' match') - - xyz = np.array([x,y,z]) - unorm = np.linalg.norm(xyz, axis= 0) - - return unorm - \ No newline at end of file diff --git a/mhkit/utils/__init__.py b/mhkit/utils/__init__.py new file mode 100644 index 000000000..e195d4569 --- /dev/null +++ b/mhkit/utils/__init__.py @@ -0,0 +1,18 @@ +from .time_utils import matlab_to_datetime, excel_to_datetime +from .stat_utils import ( + get_statistics, + vector_statistics, + unwrap_vector, + magnitude_phase, + unorm, +) +from .cache import handle_caching, clear_cache +from .upcrossing import upcrossing, peaks, troughs, heights, periods, custom +from .type_handling import ( + to_numeric_array, + convert_to_dataset, + convert_to_dataarray, + convert_nested_dict_and_pandas, +) + +_matlab = False # Private variable indicating if mhkit is run through matlab diff --git a/mhkit/utils/cache.py b/mhkit/utils/cache.py new file mode 100644 index 000000000..423a12757 --- /dev/null +++ b/mhkit/utils/cache.py @@ -0,0 +1,244 @@ +""" +This module provides functionality for managing cache files to optimize +network requests and computations for handling data. The module focuses +on enabling users to read from and write to cache files, as well as +perform cache clearing operations. Cache files are utilized to store data +temporarily, mitigating the need to re-fetch or recompute the same data multiple +times, which can be especially useful in network-dependent tasks. + +The module consists of two main functions: + +1. `handle_caching`: + This function manages the caching of data. It provides options to read from + and write to cache files, depending on whether the data is already provided + or if it needs to be fetched from the cache. If a cache file corresponding + to the given parameters already exists, the function can either load data + from it or clear it based on the parameters passed. It also offers the ability + to store associated metadata along with the data and supports both JSON and + pickle file formats for caching. This function returns the loaded data and + metadata from the cache file, along with the cache file path. + +2. `clear_cache`: + This function enables the clearing of either specific sub-directories or the + entire cache directory, depending on the parameter passed. It removes the + specified directory and then recreates it to ensure future caching tasks can + be executed without any issues. If the specified directory does not exist, + the function prints an indicative message. + +Module Dependencies: +-------------------- + - hashlib: For creating unique filenames based on hashed parameters. + - json: For reading and writing JSON formatted cache files. + - os: For performing operating system dependent tasks like directory creation. + - re: For regular expression operations to match datetime formatted strings. + - shutil: For performing high-level file operations like copying and removal. + - pickle: For reading and writing pickle formatted cache files. + - pandas: For handling data in DataFrame format. + +Author: ssolson +Date: 2023-09-26 +""" + +import hashlib +import json +import os +import re +import shutil +import pickle +import pandas as pd + + +def handle_caching( + hash_params, + cache_dir, + data=None, + metadata=None, + write_json=None, + clear_cache_file=False, +): + """ + Handles caching of data to avoid redundant network requests or + computations. + + The function checks if a cache file exists for the given parameters. + If it does, the function will load data from the cache file, unless + the `clear_cache_file` parameter is set to `True`, in which case the + cache file is cleared. If the cache file does not exist and the + `data` parameter is not `None`, the function will store the + provided data in a cache file. + + Parameters + ---------- + hash_params : str + The parameters to be hashed and used as the filename for the cache file. + cache_dir : str + The directory where the cache files are stored. + data : pandas DataFrame or None + The data to be stored in the cache file. If `None`, the function + will attempt to load data from the cache file. + metadata : dict or None + Metadata associated with the data. This will be stored in the + cache file along with the data. + write_json : str or None + If specified, the cache file will be copied to a file with this name. + clear_cache_file : bool + If `True`, the cache file for the given parameters will be cleared. + + Returns + ------- + data : pandas DataFrame or None + The data loaded from the cache file. If data was provided as a + parameter, the same data will be returned. If the cache file + does not exist and no data was provided, `None` will be returned. + metadata : dict or None + The metadata loaded from the cache file. If metadata was provided + as a parameter, the same metadata will be returned. If the cache + file does not exist and no metadata was provided, `None` will be + returned. + cache_filepath : str + The path to the cache file. + """ + + # Check if 'cdip' is in cache_dir, then use .pkl instead of .json + file_extension = ( + ".pkl" + if "cdip" in cache_dir or "hindcast" in cache_dir or "ndbc" in cache_dir + else ".json" + ) + + # Make cache directory if it doesn't exist + if not os.path.isdir(cache_dir): + os.makedirs(cache_dir) + + # Create a unique filename based on the function parameters + cache_filename = ( + hashlib.md5(hash_params.encode("utf-8")).hexdigest() + file_extension + ) + cache_filepath = os.path.join(cache_dir, cache_filename) + + # If clear_cache_file is True, remove the cache file for this request + if clear_cache_file and os.path.isfile(cache_filepath): + os.remove(cache_filepath) + print(f"Cleared cache for {cache_filepath}") + + # If a cached file exists, load and return the data from the file + if os.path.isfile(cache_filepath) and data is None: + if file_extension == ".json": + with open(cache_filepath, encoding="utf-8") as f: + jsonData = json.load(f) + + # Extract metadata if it exists + if "metadata" in jsonData: + metadata = jsonData.pop("metadata", None) + + # Check if index is datetime formatted + if all( + re.match(r"\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}", str(dt)) + for dt in jsonData["index"] + ): + data = pd.DataFrame( + jsonData["data"], + index=pd.to_datetime(jsonData["index"]), + columns=jsonData["columns"], + ) + else: + data = pd.DataFrame( + jsonData["data"], + index=jsonData["index"], + columns=jsonData["columns"], + ) + + # Convert the rest to DataFrame + data = pd.DataFrame( + jsonData["data"], + index=pd.to_datetime(jsonData["index"]), + columns=jsonData["columns"], + ) + + elif file_extension == ".pkl": + with open(cache_filepath, "rb") as f: + data, metadata = pickle.load(f) + + if write_json: + shutil.copy(cache_filepath, write_json) + + return data, metadata, cache_filepath + + # If a cached file does not exist and data is provided, + # store the data in a cache file + elif data is not None: + if file_extension == ".json": + # Convert DataFrame to python dict + pyData = data.to_dict(orient="split") + # Add metadata to pyData + pyData["metadata"] = metadata + # Check if index is datetime indexed + if isinstance(data.index, pd.DatetimeIndex): + pyData["index"] = [ + dt.strftime("%Y-%m-%d %H:%M:%S") for dt in pyData["index"] + ] + else: + pyData["index"] = list(data.index) + with open(cache_filepath, "w", encoding="utf-8") as f: + json.dump(pyData, f) + + elif file_extension == ".pkl": + with open(cache_filepath, "wb") as f: + pickle.dump((data, metadata), f) + + if write_json: + shutil.copy(cache_filepath, write_json) + + return data, metadata, cache_filepath + # If data is not provided and the cache file doesn't exist, return cache_filepath + return None, None, cache_filepath + + +def clear_cache(specific_dir=None): + """ + Clears the cache. + + The function checks if a specific directory or the entire cache directory + exists. If it does, the function will remove the directory and recreate it. + If the directory does not exist, a message indicating is printed. + + Parameters + ---------- + specific_dir : str or None, optional + Specific sub-directory to clear. If None, the entire cache is cleared. + Default is None. + + Returns + ------- + None + """ + cache_dir = os.path.join(os.path.expanduser("~"), ".cache", "mhkit") + + # Consider generating this from a system folder search + folders = { + "river": "river", + "tidal": "tidal", + "wave": "wave", + "usgs": os.path.join("river", "usgs"), + "noaa": os.path.join("tidal", "noaa"), + "ndbc": os.path.join("wave", "ndbc"), + "cdip": os.path.join("wave", "cdip"), + "hindcast": os.path.join("wave", "hindcast"), + } + + # If specific_dir is provided and matches a key in the folders dictionary, + # use its corresponding value + if specific_dir and specific_dir in folders: + specific_dir = folders[specific_dir] + + # Construct the path to the directory to be cleared + path_to_clear = os.path.join(cache_dir, specific_dir) if specific_dir else cache_dir + + # Check if the directory exists + if os.path.exists(path_to_clear): + # Clear the directory + shutil.rmtree(path_to_clear) + # Recreate the directory after deletion + os.makedirs(path_to_clear) + else: + print(f"The directory {path_to_clear} does not exist.") diff --git a/mhkit/utils/stat_utils.py b/mhkit/utils/stat_utils.py new file mode 100644 index 000000000..f0a7e2994 --- /dev/null +++ b/mhkit/utils/stat_utils.py @@ -0,0 +1,270 @@ +from mhkit import qc +import pandas as pd +import numpy as np + + +def get_statistics(data, freq, period=600, vector_channels=[]): + """ + Calculate mean, max, min and stdev statistics of continuous data for a + given statistical window. Default length of statistical window (period) is + based on IEC TS 62600-3:2020 ED1. Also allows calculation of statistics for multiple statistical + windows of continuous data and accounts for vector/directional channels. + + Parameters + ------------ + data : pandas DataFrame + Data indexed by datetime with columns of data to be analyzed + freq : float/int + Sample rate of data [Hz] + period : float/int + Statistical window of interest [sec], default = 600 + vector_channels : string or list (optional) + List of vector/directional channel names formatted in deg (0-360) + + Returns + --------- + means,maxs,mins,stdevs : pandas DataFrame + Calculated statistical values from the data, indexed by the first timestamp + """ + # Check data type + if not isinstance(data, pd.DataFrame): + raise TypeError(f"data must be of type pd.DataFrame. Got: {type(data)}") + if not isinstance(freq, (float, int)): + raise TypeError(f"freq must be of type int or float. Got: {type(freq)}") + if not isinstance(period, (float, int)): + raise TypeError(f"period must be of type int or float. Got: {type(period)}") + # catch if vector_channels is not an string array + if isinstance(vector_channels, str): + vector_channels = [vector_channels] + if not isinstance(vector_channels, list): + raise TypeError( + f"vector_channels must be a list of strings. Got: {type(vector_channels)}" + ) + + # Check timestamp using qc module + data.index = data.index.round("1ms") + dataQC = qc.check_timestamp(data, 1 / freq) + dataQC = dataQC["cleaned_data"] + + # Check to see if data length contains enough data points for statistical window + if len(dataQC) % (period * freq) > 0: + remain = len(dataQC) % (period * freq) + dataQC = dataQC.iloc[0 : -int(remain)] + print( + "WARNING: there were not enough data points in the last statistical period. Last " + + str(remain) + + " points were removed." + ) + + # Pre-allocate lists + time = [] + means = [] + maxs = [] + mins = [] + stdev = [] + + # Get data chunks to performs stats on + step = period * freq + for i in range(int(len(dataQC) / (period * freq))): + datachunk = dataQC.iloc[i * step : (i + 1) * step] + # Check whether there are any NaNs in datachunk + if datachunk.isnull().any().any(): + print("NaNs found in statistical window...check timestamps!") + input("Press to continue") + continue + else: + # Get stats + time.append(datachunk.index.values[0]) # time vector + maxs.append(datachunk.max()) # maxes + mins.append(datachunk.min()) # mins + means.append(datachunk.mean()) # means + stdev.append(datachunk.std()) # standard deviation + # calculate vector averages and std + for v in vector_channels: + vector_avg, vector_std = vector_statistics(datachunk[v]) + # overwrite scalar average for channel + means[i][v] = vector_avg + stdev[i][v] = vector_std # overwrite scalar std for channel + + # Convert to DataFrames and set index + means = pd.DataFrame(means, index=time) + maxs = pd.DataFrame(maxs, index=time) + mins = pd.DataFrame(mins, index=time) + stdevs = pd.DataFrame(stdev, index=time) + + return means, maxs, mins, stdevs + + +def vector_statistics(data): + """ + Function used to calculate statistics for vector/directional channels based on + routine from Campbell data logger and Yamartino algorithm + + Parameters + ---------- + data : pandas Series, numpy array, list + Vector channel to calculate statistics on [deg, 0-360] + + Returns + ------- + vector_avg : numpy array + Vector mean statistic + vector_std : numpy array + Vector standard deviation statistic + """ + try: + data = np.array(data) + except: + pass + if not isinstance(data, np.ndarray): + raise TypeError(f"data must be of type np.ndarray. Got: {type(data)}") + + # calculate mean + Ux = sum(np.sin(data * np.pi / 180)) / len(data) + Uy = sum(np.cos(data * np.pi / 180)) / len(data) + vector_avg = 90 - np.arctan2(Uy, Ux) * 180 / np.pi + if vector_avg < 0: + vector_avg = vector_avg + 360 + elif vector_avg > 360: + vector_avg = vector_avg - 360 + # calculate standard deviation + # round to 8th decimal place to reduce roundoff error + magsum = round((Ux**2 + Uy**2) * 1e8) / 1e8 + epsilon = (1 - magsum) ** 0.5 + if not np.isreal(epsilon): # check if epsilon is imaginary (error) + vector_std = 0 + print("WARNING: epsilon contains imaginary value") + else: + vector_std = np.arcsin(epsilon) * (1 + 0.1547 * epsilon**3) * 180 / np.pi + + return vector_avg, vector_std + + +def unwrap_vector(data): + """ + Function used to unwrap vectors into 0-360 deg range + + Parameters + ------------ + data : pandas Series, numpy array, list + Data points to be unwrapped [deg] + + Returns + --------- + data : numpy array + Data points unwrapped between 0-360 deg + """ + # Check data types + try: + data = np.array(data) + except: + pass + if not isinstance(data, np.ndarray): + raise TypeError(f"data must be of type np.ndarray. Got: {type(data)}") + + # Loop through and unwrap points + for i in range(len(data)): + if data[i] < 0: + data[i] = data[i] + 360 + elif data[i] > 360: + data[i] = data[i] - 360 + if max(data) > 360 or min(data) < 0: + data = unwrap_vector(data) + return data + + +def magnitude_phase(x, y, z=None): + """ + Retuns magnitude and phase in two or three dimensions. + + Parameters + ---------- + x: array_like + x-component + y: array_like + y-component + z: array_like + z-component defined positive up. (Optional) Default None. + + Returns + ------- + mag: float or array + magnitude of the vector + theta: float or array + radians from the x-axis + phi: float or array + radians from z-axis defined as positive up. Optional: only + returned when z is passed. + """ + x = np.array(x) + y = np.array(y) + + threeD = False + if not isinstance(z, type(None)): + z = np.array(z) + threeD = True + + if not isinstance(x, (float, int, np.ndarray)): + raise TypeError(f"x must be of type float, int, or np.ndarray. Got: {type(x)}") + if not isinstance(y, (float, int, np.ndarray)): + raise TypeError(f"y must be of type float, int, or np.ndarray. Got: {type(y)}") + if not isinstance(z, (type(None), float, int, np.ndarray)): + raise TypeError( + f"If specified, z must be of type float, int, or np.ndarray. Got: {type(z)}" + ) + + if threeD: + mag = np.sqrt(x**2 + y**2 + z**2) + theta = np.arctan2(y, x) + phi = np.arctan2(np.sqrt(x**2 + y**2), z) + return mag, theta, phi + else: + mag = np.sqrt(x**2 + y**2) + theta = np.arctan2(y, x) + return mag, theta + + +def unorm(x, y, z): + """ + Calculates the root mean squared value given three arrays. + + Parameters + ---------- + x: array + One input for the root mean squared calculation.(eq. x velocity) + y: array + One input for the root mean squared calculation.(eq. y velocity) + z: array + One input for the root mean squared calculation.(eq. z velocity) + + Returns + ------- + unorm : array + The root mean squared of x, y, and z. + + Example + ------- + If the inputs are [1,2,3], [4,5,6], and [7,8,9] the code take the + cordinationg value from each array and calculates the root mean squared. + The resulting output is [ 8.1240384, 9.64365076, 11.22497216]. + """ + + if not isinstance(x, (np.ndarray, np.float64, pd.Series)): + raise TypeError( + f"x must be of type np.ndarray, np.float64, or pd.Series. Got: {type(x)}" + ) + if not isinstance(y, (np.ndarray, np.float64, pd.Series)): + raise TypeError( + f"y must be of type np.ndarray, np.float64, or pd.Series. Got: {type(y)}" + ) + if not isinstance(z, (np.ndarray, np.float64, pd.Series)): + raise TypeError( + f"z must be of type np.ndarray, np.float64, or pd.Series. Got: {type(z)}" + ) + if not all([len(x) == len(y), len(y) == len(z)]): + raise ValueError("lengths of arrays must match") + + xyz = np.array([x, y, z]) + unorm = np.linalg.norm(xyz, axis=0) + + return unorm diff --git a/mhkit/utils/time_utils.py b/mhkit/utils/time_utils.py new file mode 100644 index 000000000..643219c9b --- /dev/null +++ b/mhkit/utils/time_utils.py @@ -0,0 +1,66 @@ +import datetime as dt +import pandas as pd +import numpy as np + + +def matlab_to_datetime(matlab_datenum): + """ + Convert MATLAB datenum format to Python datetime + + Parameters + ------------ + matlab_datenum : numpy array + MATLAB datenum to be converted + + Returns + --------- + time : DateTimeIndex + Python datetime values + """ + # Check data types + try: + matlab_datenum = np.array(matlab_datenum, ndmin=1) + except: + pass + if not isinstance(matlab_datenum, np.ndarray): + raise TypeError(f"data must be of type np.ndarray. Got: {type(data)}") + + # Pre-allocate + time = [] + # loop through dates and convert + for t in matlab_datenum: + day = dt.datetime.fromordinal(int(t)) + dayfrac = dt.timedelta(days=t % 1) - dt.timedelta(days=366) + time.append(day + dayfrac) + + time = np.array(time) + time = pd.to_datetime(time) + return time + + +def excel_to_datetime(excel_num): + """ + Convert Excel datenum format to Python datetime + + Parameters + ------------ + excel_num : numpy array + Excel datenums to be converted + + Returns + --------- + time : DateTimeIndex + Python datetime values + """ + # Check data types + try: + excel_num = np.array(excel_num) + except: + pass + if not isinstance(excel_num, np.ndarray): + raise TypeError(f"excel_num must be of type np.ndarray. Got: {type(excel_num)}") + + # Convert to datetime + time = pd.to_datetime("1899-12-30") + pd.to_timedelta(excel_num, "D") + + return time diff --git a/mhkit/utils/type_handling.py b/mhkit/utils/type_handling.py new file mode 100644 index 000000000..2b6c5b920 --- /dev/null +++ b/mhkit/utils/type_handling.py @@ -0,0 +1,211 @@ +import numpy as np +import pandas as pd +import xarray as xr + + +def to_numeric_array(data, name): + """ + Convert input data to a numeric array, ensuring all elements are numeric. + """ + if isinstance(data, (list, np.ndarray, pd.Series, xr.DataArray)): + data = np.asarray(data) + if not np.issubdtype(data.dtype, np.number): + raise TypeError( + (f"{name} must contain numeric data." + f" Got data type: {data.dtype}") + ) + else: + raise TypeError( + ( + f"{name} must be a list, np.ndarray, pd.Series," + + f" or xr.DataArray. Got: {type(data)}" + ) + ) + return data + + +def convert_to_dataset(data, name="data"): + """ + Converts the given data to an xarray.Dataset. + + This function is designed to handle inputs that can be either a pandas DataFrame, a pandas Series, + an xarray DataArray, or an xarray Dataset. It ensures that the output is consistently an xarray.Dataset. + + Parameters + ---------- + data: pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset + The data to be converted. + + name: str (Optional) + The name to assign to the data variable in case the input is an xarray DataArray without a name. + Default value is 'data'. + + Returns + ------- + xarray.Dataset + The input data converted to an xarray.Dataset. If the input is already an xarray.Dataset, + it is returned as is. + + Examples + -------- + >>> df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) + >>> ds = convert_to_dataset(df) + >>> type(ds) + + + >>> series = pd.Series([1, 2, 3], name='C') + >>> ds = convert_to_dataset(series) + >>> type(ds) + + + >>> data_array = xr.DataArray([1, 2, 3]) + >>> ds = convert_to_dataset(data_array, name='D') + >>> type(ds) + + """ + if not isinstance(data, (pd.DataFrame, pd.Series, xr.DataArray, xr.Dataset)): + raise TypeError( + "Input data must be of type pandas.DataFrame, pandas.Series, " + "xarray.DataArray, or xarray.Dataset." + f"Got {type(data)}." + ) + + if not isinstance(name, str): + raise TypeError("The 'name' parameter must be a string" f"Got {type(name)}.") + + # Takes data that could be pd.DataFrame, pd.Series, xr.DataArray, or + # xr.Dataset and converts it to xr.Dataset + if isinstance(data, pd.DataFrame): + # xr.Dataset(data) is drastically faster (1e1 - 1e2x faster) than using pd.DataFrame.to_xarray() + data = xr.Dataset(data) + + if isinstance(data, pd.Series): + # Converting to a DataArray then to a dataset makes the variable and + # dimension naming cleaner than going straight to a Dataset with + # xr.Dataset(pd.Series) + data = xr.DataArray(data) + + if isinstance(data, xr.DataArray): + # xr.DataArray.to_dataset() breaks if the data variable is unnamed + if data.name == None: + data.name = name + data = data.to_dataset() + + return data + + +def convert_to_dataarray(data, name="data"): + """ + Converts the given data to an xarray.DataArray. + + This function is designed to handle inputs that can be either a numpy ndarray, pandas Series, + or an xarray DataArray. For convenience, pandas DataFrame and xarray Dataset can also be input + but may only contain a single variable. The function ensures that the output is consistently + an xarray.DataArray. + + Parameters + ---------- + data: numpy ndarray, pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset + The data to be converted. + + name: str (Optional) + The name to overwrite the name of the input data variable for pandas or xarray input. + Default value is 'data'. + + Returns + ------- + xarray.DataArray + The input data converted to an xarray.DataArray. If the input is already an xarray.DataArray, + it is returned as is. + + Examples + -------- + >>> df = pd.DataFrame({'A': [1, 2, 3]}) + >>> da = convert_to_dataarray(df) + >>> type(da) + + + >>> series = pd.Series([1, 2, 3], name='C') + >>> da = convert_to_dataarray(series) + >>> type(da) + + + >>> data_array = xr.DataArray([1, 2, 3]) + >>> da = convert_to_dataarray(data_array, name='D') + >>> type(da) + + """ + if not isinstance( + data, (np.ndarray, pd.DataFrame, pd.Series, xr.DataArray, xr.Dataset) + ): + raise TypeError( + "Input data must be of type np.ndarray, pandas.DataFrame, pandas.Series, " + f"xarray.DataArray, or xarray.Dataset. Got {type(data)}" + ) + + if not isinstance(name, str): + raise TypeError(f"The 'name' parameter must be a string. Got {type(name)}") + + # Checks pd.DataFrame input and converts to pd.Series if possible + if isinstance(data, pd.DataFrame): + if data.shape[1] > 1: + raise ValueError( + "If the input data is a pd.DataFrame or xr.Dataset, it must contain one variable. Got {data.shape[1]}" + ) + else: + # use iloc instead of squeeze. For DataFrames/Series with only a + # single value, squeeze returns a scalar, which is unexpected. + # iloc will return a Series as expected + data = data.iloc[:, 0] + + # Checks xr.Dataset input and converts to xr.DataArray if possible + if isinstance(data, xr.Dataset): + keys = list(data.keys()) + if len(keys) > 1: + raise ValueError( + "If the input data is a pd.DataFrame or xr.Dataset, it must contain one variable. Got {len(data.keys())}" + ) + else: + data = data.to_array() + data = data.sel( + variable=keys[0] + ) # removes the variable dimension, further simplifying the dataarray + + # Converts pd.Series to xr.DataArray + if isinstance(data, pd.Series): + data = data.to_xarray() + + # Converts np.ndarray to xr.DataArray. Assigns a simple 0-based dimension named index + if isinstance(data, np.ndarray): + data = xr.DataArray( + data=data, dims="index", coords={"index": np.arange(len(data))} + ) + + # If there's no data name, add one to prevent issues calling or converting the dataArray later one + if data.name == None: + data.name = name + + return data + + +def convert_nested_dict_and_pandas(data): + """ + Recursively searches inside nested dictionaries for pandas DataFrames to + convert to xarray Datasets. Typically called by wave.io functions that read + SWAN, WEC-Sim, CDIP, NDBC data. + + Parameters + ---------- + data: dictionary of dictionaries and pandas DataFrames + + Returns + ------- + data : dictionary of dictionaries and xarray Datasets + + """ + for key in data.keys(): + if isinstance(data[key], pd.DataFrame): + data[key] = convert_to_dataset(data[key]) + elif isinstance(data[key], dict): + data[key] = convert_nested_dict_and_pandas(data[key]) + + return data diff --git a/mhkit/utils/upcrossing.py b/mhkit/utils/upcrossing.py new file mode 100644 index 000000000..5993d6544 --- /dev/null +++ b/mhkit/utils/upcrossing.py @@ -0,0 +1,250 @@ +""" +Upcrossing Analysis Functions +============================= +This module contains a collection of functions that facilitate upcrossing +analyses. + +Key Functions: +-------------- +- `upcrossing`: Finds the zero upcrossing points. + +- `peaks`: Finds the peaks between zero crossings. + +- `troughs`: Finds the troughs between zero crossings. + +- `heights`: Calculates the height between zero crossings. + +- `periods`: Calculates the period between zero crossings. + +- `custom`: Applies a custom, user-defined function between zero crossings. + +Dependencies: +------------- +- numpy: Data analysis + +Author: +------- +mbruggs +akeeste + +Date: +----- +2023-10-10 + + +""" + +import numpy as np + + +def _apply(t, data, f, inds): + if inds is None: + inds = upcrossing(t, data) + + n = inds.size - 1 + + vals = np.empty(n) + for i in range(n): + vals[i] = f(inds[i], inds[i + 1]) + + return vals + + +def upcrossing(t, data): + """ + Finds the zero upcrossing points. + + Parameters + ---------- + t: np.array + Time array. + data: np.array + Signal time series. + + Returns + ------- + inds: np.array + Zero crossing indices + """ + # Check data types + if not isinstance(t, np.ndarray): + raise TypeError(f"t must be of type np.ndarray. Got: {type(t)}") + if not isinstance(data, np.ndarray): + raise TypeError(f"data must be of type np.ndarray. Got: {type(data)}") + if len(data.shape) != 1: + raise ValueError("only 1D data supported, try calling squeeze()") + + # eliminate zeros + zeroMask = data == 0 + data[zeroMask] = 0.5 * np.min(np.abs(data)) + + # zero up-crossings + diff = np.diff(np.sign(data)) + zeroUpCrossings_mask = (diff == 2) | (diff == 1) + zeroUpCrossings_index = np.where(zeroUpCrossings_mask)[0] + + return zeroUpCrossings_index + + +def peaks(t, data, inds=None): + """ + Finds the peaks between zero crossings. + + Parameters + ---------- + t: np.array + Time array. + data: np.array + Signal time-series. + inds: np.array + Optional indices for the upcrossing. Useful + when using several of the upcrossing methods + to avoid repeating the upcrossing analysis + each time. + + Returns + ------- + peaks: np.array + Peak values of the time-series + + """ + # Check data types + if not isinstance(t, np.ndarray): + raise TypeError(f"t must be of type np.ndarray. Got: {type(t)}") + if not isinstance(data, np.ndarray): + raise TypeError(f"data must be of type np.ndarray. Got: {type(data)}") + + return _apply(t, data, lambda ind1, ind2: np.max(data[ind1:ind2]), inds) + + +def troughs(t, data, inds=None): + """ + Finds the troughs between zero crossings. + + Parameters + ---------- + t: np.array + Time array. + data: np.array + Signal time-series. + inds: np.array + Optional indices for the upcrossing. Useful + when using several of the upcrossing methods + to avoid repeating the upcrossing analysis + each time. + + Returns + ------- + troughs: np.array + Trough values of the time-series + + """ + # Check data types + if not isinstance(t, np.ndarray): + raise TypeError(f"t must be of type np.ndarray. Got: {type(t)}") + if not isinstance(data, np.ndarray): + raise TypeError(f"data must be of type np.ndarray. Got: {type(data)}") + + return _apply(t, data, lambda ind1, ind2: np.min(data[ind1:ind2]), inds) + + +def heights(t, data, inds=None): + """ + Calculates the height between zero crossings. + + The height is defined as the max value - min value + between the zero crossing points. + + Parameters + ---------- + t: np.array + Time array. + data: np.array + Signal time-series. + inds: np.array + Optional indices for the upcrossing. Useful + when using several of the upcrossing methods + to avoid repeating the upcrossing analysis + each time. + + Returns + ------- + heights: np.array + Height values of the time-series + """ + # Check data types + if not isinstance(t, np.ndarray): + raise TypeError(f"t must be of type np.ndarray. Got: {type(t)}") + if not isinstance(data, np.ndarray): + raise TypeError(f"data must be of type np.ndarray. Got: {type(data)}") + + def func(ind1, ind2): + return np.max(data[ind1:ind2]) - np.min(data[ind1:ind2]) + + return _apply(t, data, func, inds) + + +def periods(t, data, inds=None): + """ + Calculates the period between zero crossings. + + Parameters + ---------- + t: np.array + Time array. + data: np.array + Signal time-series. + inds: np.array + Optional indices for the upcrossing. Useful + when using several of the upcrossing methods + to avoid repeating the upcrossing analysis + each time. + + Returns + ------- + periods: np.array + Period values of the time-series + """ + # Check data types + if not isinstance(t, np.ndarray): + raise TypeError(f"t must be of type np.ndarray. Got: {type(t)}") + if not isinstance(data, np.ndarray): + raise TypeError(f"data must be of type np.ndarray. Got: {type(data)}") + + return _apply(t, data, lambda ind1, ind2: t[ind2] - t[ind1], inds) + + +def custom(t, data, func, inds=None): + """ + Applies a custom function to the timeseries data between upcrossing points. + + Parameters + ---------- + t: np.array + Time array. + data: np.array + Signal time-series. + func: f(ind1, ind2) -> np.array + Function to apply between the zero crossing periods + given t[ind1], t[ind2], where ind1 < ind2, correspond + to the start and end of an upcrossing section. + inds: np.array + Optional indices for the upcrossing. Useful + when using several of the upcrossing methods + to avoid repeating the upcrossing analysis + each time. + + Returns + ------- + values: np.array + Custom values of the time-series + """ + # Check data types + if not isinstance(t, np.ndarray): + raise TypeError(f"t must be of type np.ndarray. Got: {type(t)}") + if not isinstance(data, np.ndarray): + raise TypeError(f"data must be of type np.ndarray. Got: {type(data)}") + if not callable(func): + raise ValueError("func must be callable") + + return _apply(t, data, func, inds) diff --git a/mhkit/wave/__init__.py b/mhkit/wave/__init__.py index 3a963ced8..f84c667cd 100644 --- a/mhkit/wave/__init__.py +++ b/mhkit/wave/__init__.py @@ -2,4 +2,4 @@ from mhkit.wave import io from mhkit.wave import graphics from mhkit.wave import performance -from mhkit.wave import contours \ No newline at end of file +from mhkit.wave import contours diff --git a/mhkit/wave/contours.py b/mhkit/wave/contours.py index 0574573f9..905c560b8 100644 --- a/mhkit/wave/contours.py +++ b/mhkit/wave/contours.py @@ -6,11 +6,16 @@ import scipy.stats as stats import scipy.interpolate as interp import numpy as np +import warnings +from mhkit.utils import to_numeric_array +import matplotlib -### Contours -def environmental_contours(x1, x2, sea_state_duration, return_period, - method, **kwargs): +mpl_version = tuple(map(int, matplotlib.__version__.split("."))) + + +# Contours +def environmental_contours(x1, x2, sea_state_duration, return_period, method, **kwargs): """ Returns a Dictionary of x1 and x2 components for each contour method passed. A method may be one of the following: @@ -20,9 +25,9 @@ def environmental_contours(x1, x2, sea_state_duration, return_period, Parameters ---------- - x1: array + x1: list, np.ndarray, pd.Series, xr.DataArray Component 1 data - x2: array + x2: list, np.ndarray, pd.Series, xr.DataArray Component 2 data sea_state_duration : int or float `x1` and `x2` averaging period in seconds @@ -73,24 +78,26 @@ def environmental_contours(x1, x2, sea_state_duration, return_period, copulas: Dictionary Dictionary of x1 and x2 copula components for each copula method """ - try: - x1 = np.array(x1) - except: - pass - try: - x2 = np.array(x2) - except: - pass - assert isinstance(x1, np.ndarray), 'x1 must be of type np.ndarray' - assert isinstance(x2, np.ndarray), 'x2 must be of type np.ndarray' - assert isinstance(sea_state_duration, (int, float)), ( - 'sea_state_duration must be of type int or float') - assert isinstance(return_period, (int, float, np.ndarray)), ( - 'return_period must be of type int, float, or array') + x1 = to_numeric_array(x1, "x1") + x2 = to_numeric_array(x2, "x2") + if not isinstance(x1, np.ndarray) or x1.ndim == 0: + raise TypeError(f"x1 must be a non-scalar array. Got: {type(x1)}") + if not isinstance(x2, np.ndarray) or x2.ndim == 0: + raise TypeError(f"x2 must be a non-scalar array. Got: {type(x2)}") + if len(x1) != len(x2): + raise ValueError("The lengths of x1 and x2 must be equal.") + if not isinstance(sea_state_duration, (int, float)): + raise TypeError( + f"sea_state_duration must be of type int or float. Got: {type(sea_state_duration)}" + ) + if not isinstance(return_period, (int, float, np.ndarray)): + raise TypeError( + f"return_period must be of type int, float, or np.ndarray. Got: {type(return_period)}" + ) bin_val_size = kwargs.get("bin_val_size", 0.25) nb_steps = kwargs.get("nb_steps", 1000) - initial_bin_max_val = kwargs.get("initial_bin_max_val", 1.) + initial_bin_max_val = kwargs.get("initial_bin_max_val", 1.0) min_bin_count = kwargs.get("min_bin_count", 40) bandwidth = kwargs.get("bandwidth", None) Ndata_bivariate_KDE = kwargs.get("Ndata_bivariate_KDE", 100) @@ -100,38 +107,56 @@ def environmental_contours(x1, x2, sea_state_duration, return_period, PCA_bin_size = kwargs.get("PCA_bin_size", 250) return_fit = kwargs.get("return_fit", False) - assert isinstance(PCA, (dict, type(None))), ( - 'If specified PCA must be a dict') - assert isinstance(PCA_bin_size, int), 'PCA_bin_size must be of type int' - assert isinstance(return_fit, bool), 'return_fit must be of type bool' - assert isinstance(bin_val_size, (int, float)), ( - 'bin_val_size must be of type int or float') - assert isinstance(nb_steps, int), 'nb_steps must be of type int' - assert isinstance(min_bin_count, int), ('min_bin_count must be of ' - + 'type int') - assert isinstance(initial_bin_max_val, (int, float)), ( - 'initial_bin_max_val must be of type int or float') - if bandwidth == None: - assert(not 'bivariate_KDE' in method), ( - 'Must specify keyword bandwidth with bivariate KDE method') + if not isinstance(max_x1, (int, float, type(None))): + raise TypeError(f"If specified, max_x1 must be a dict. Got: {type(PCA)}") + if not isinstance(max_x2, (int, float, type(None))): + raise TypeError(f"If specified, max_x2 must be a dict. Got: {type(PCA)}") + if not isinstance(PCA, (dict, type(None))): + raise TypeError(f"If specified, PCA must be a dict. Got: {type(PCA)}") + if not isinstance(PCA_bin_size, int): + raise TypeError(f"PCA_bin_size must be of type int. Got: {type(PCA_bin_size)}") + if not isinstance(return_fit, bool): + raise TypeError(f"return_fit must be of type bool. Got: {type(return_fit)}") + if not isinstance(bin_val_size, (int, float)): + raise TypeError( + f"bin_val_size must be of type int or float. Got: {type(bin_val_size)}" + ) + if not isinstance(nb_steps, int): + raise TypeError(f"nb_steps must be of type int. Got: {type(nb_steps)}") + if not isinstance(min_bin_count, int): + raise TypeError( + f"min_bin_count must be of type int. Got: {type(min_bin_count)}" + ) + if not isinstance(initial_bin_max_val, (int, float)): + raise TypeError( + f"initial_bin_max_val must be of type int or float. Got: {type(initial_bin_max_val)}" + ) + if "bivariate_KDE" in method and bandwidth == None: + raise TypeError( + f"Must specify keyword bandwidth with bivariate KDE method. Got: {type(bandwidth)}" + ) if isinstance(method, str): method = [method] - assert (len(set(method)) == len(method)), ( - 'Can only pass a unique ' - + 'method once per function call. Consider wrapping this ' - + 'function in a for loop to investage variations on the same method') - - method_class = {'PCA': 'parametric', - 'gaussian': 'parametric', - 'gumbel': 'parametric', - 'clayton': 'parametric', - 'rosenblatt': 'parametric', - 'nonparametric_gaussian': 'nonparametric', - 'nonparametric_clayton': 'nonparametric', - 'nonparametric_gumbel': 'nonparametric', - 'bivariate_KDE': 'KDE', - 'bivariate_KDE_log': 'KDE'} + if not (len(set(method)) == len(method)): + raise ValueError( + f"Can only pass a unique " + + "method once per function call. Consider wrapping this " + + "function in a for loop to investage variations on the same method" + ) + + method_class = { + "PCA": "parametric", + "gaussian": "parametric", + "gumbel": "parametric", + "clayton": "parametric", + "rosenblatt": "parametric", + "nonparametric_gaussian": "nonparametric", + "nonparametric_clayton": "nonparametric", + "nonparametric_gumbel": "nonparametric", + "bivariate_KDE": "KDE", + "bivariate_KDE_log": "KDE", + } classification = [] methods = method @@ -142,95 +167,128 @@ def environmental_contours(x1, x2, sea_state_duration, return_period, fit_parametric = None fit_nonparametric = None component_1 = None - if 'parametric' in classification: - (para_dist_1, para_dist_2, mean_cond, std_cond) = ( - _copula_parameters(x1, x2, min_bin_count, - initial_bin_max_val, bin_val_size)) + if "parametric" in classification: + (para_dist_1, para_dist_2, mean_cond, std_cond) = _copula_parameters( + x1, x2, min_bin_count, initial_bin_max_val, bin_val_size + ) - x_quantile = fit['x_quantile'] + x_quantile = fit["x_quantile"] a = para_dist_1[0] c = para_dist_1[1] loc = para_dist_1[2] scale = para_dist_1[3] - component_1 = stats.exponweib.ppf( - x_quantile, a, c, loc=loc, scale=scale) + component_1 = stats.exponweib.ppf(x_quantile, a, c, loc=loc, scale=scale) fit_parametric = fit - fit_parametric['para_dist_1'] = para_dist_1 - fit_parametric['para_dist_2'] = para_dist_2 - fit_parametric['mean_cond'] = mean_cond - fit_parametric['std_cond'] = std_cond + fit_parametric["para_dist_1"] = para_dist_1 + fit_parametric["para_dist_2"] = para_dist_2 + fit_parametric["mean_cond"] = mean_cond + fit_parametric["std_cond"] = std_cond if PCA == None: PCA = fit_parametric - if 'nonparametric' in classification: - (nonpara_dist_1, nonpara_dist_2, nonpara_pdf_2) = ( - _nonparametric_copula_parameters(x1, x2, nb_steps=nb_steps)) + if "nonparametric" in classification: + ( + nonpara_dist_1, + nonpara_dist_2, + nonpara_pdf_2, + ) = _nonparametric_copula_parameters(x1, x2, nb_steps=nb_steps) fit_nonparametric = fit - fit_nonparametric['nonpara_dist_1'] = nonpara_dist_1 - fit_nonparametric['nonpara_dist_2'] = nonpara_dist_2 - fit_nonparametric['nonpara_pdf_2'] = nonpara_pdf_2 - - copula_functions = {'PCA': - {'func': PCA_contour, - 'vals': (x1, x2, PCA, {'nb_steps': nb_steps, - 'return_fit': return_fit, - 'bin_size': PCA_bin_size})}, - 'gaussian': - {'func': _gaussian_copula, - 'vals': (x1, x2, fit_parametric, component_1, - {'return_fit': return_fit})}, - 'gumbel': - {'func': _gumbel_copula, - 'vals': (x1, x2, fit_parametric, component_1, - nb_steps, {'return_fit': return_fit})}, - 'clayton': - {'func': _clayton_copula, - 'vals': (x1, x2, fit_parametric, component_1, - {'return_fit': return_fit})}, - 'rosenblatt': - {'func': _rosenblatt_copula, - 'vals': (x1, x2, fit_parametric, component_1, - {'return_fit': return_fit})}, - 'nonparametric_gaussian': - {'func': _nonparametric_gaussian_copula, - 'vals': (x1, x2, fit_nonparametric, nb_steps, - {'return_fit': return_fit})}, - 'nonparametric_clayton': - {'func': _nonparametric_clayton_copula, - 'vals': (x1, x2, fit_nonparametric, nb_steps, - {'return_fit': return_fit})}, - 'nonparametric_gumbel': - {'func': _nonparametric_gumbel_copula, - 'vals': (x1, x2, fit_nonparametric, nb_steps, - {'return_fit': return_fit})}, - 'bivariate_KDE': - {'func': _bivariate_KDE, - 'vals': (x1, x2, bandwidth, fit, nb_steps, - Ndata_bivariate_KDE, - {'max_x1': max_x1, 'max_x2': max_x2, - 'return_fit': return_fit})}, - 'bivariate_KDE_log': - {'func': _bivariate_KDE, - 'vals': (x1, x2, bandwidth, fit, nb_steps, - Ndata_bivariate_KDE, - {'max_x1': max_x1, 'max_x2': max_x2, - 'log_transform': True, - 'return_fit': return_fit})}, - } + fit_nonparametric["nonpara_dist_1"] = nonpara_dist_1 + fit_nonparametric["nonpara_dist_2"] = nonpara_dist_2 + fit_nonparametric["nonpara_pdf_2"] = nonpara_pdf_2 + + copula_functions = { + "PCA": { + "func": PCA_contour, + "vals": ( + x1, + x2, + PCA, + { + "nb_steps": nb_steps, + "return_fit": return_fit, + "bin_size": PCA_bin_size, + }, + ), + }, + "gaussian": { + "func": _gaussian_copula, + "vals": (x1, x2, fit_parametric, component_1, {"return_fit": return_fit}), + }, + "gumbel": { + "func": _gumbel_copula, + "vals": ( + x1, + x2, + fit_parametric, + component_1, + nb_steps, + {"return_fit": return_fit}, + ), + }, + "clayton": { + "func": _clayton_copula, + "vals": (x1, x2, fit_parametric, component_1, {"return_fit": return_fit}), + }, + "rosenblatt": { + "func": _rosenblatt_copula, + "vals": (x1, x2, fit_parametric, component_1, {"return_fit": return_fit}), + }, + "nonparametric_gaussian": { + "func": _nonparametric_gaussian_copula, + "vals": (x1, x2, fit_nonparametric, nb_steps, {"return_fit": return_fit}), + }, + "nonparametric_clayton": { + "func": _nonparametric_clayton_copula, + "vals": (x1, x2, fit_nonparametric, nb_steps, {"return_fit": return_fit}), + }, + "nonparametric_gumbel": { + "func": _nonparametric_gumbel_copula, + "vals": (x1, x2, fit_nonparametric, nb_steps, {"return_fit": return_fit}), + }, + "bivariate_KDE": { + "func": _bivariate_KDE, + "vals": ( + x1, + x2, + bandwidth, + fit, + nb_steps, + Ndata_bivariate_KDE, + {"max_x1": max_x1, "max_x2": max_x2, "return_fit": return_fit}, + ), + }, + "bivariate_KDE_log": { + "func": _bivariate_KDE, + "vals": ( + x1, + x2, + bandwidth, + fit, + nb_steps, + Ndata_bivariate_KDE, + { + "max_x1": max_x1, + "max_x2": max_x2, + "log_transform": True, + "return_fit": return_fit, + }, + ), + }, + } copulas = {} for method in methods: - vals = copula_functions[method]['vals'] + vals = copula_functions[method]["vals"] if return_fit: - component_1, component_2, fit = copula_functions[method]['func']( - *vals) - copulas[f'{method}_fit'] = fit + component_1, component_2, fit = copula_functions[method]["func"](*vals) + copulas[f"{method}_fit"] = fit else: - component_1, component_2 = copula_functions[method]['func'](*vals) - copulas[f'{method}_x1'] = component_1 - copulas[f'{method}_x2'] = component_2 + component_1, component_2 = copula_functions[method]["func"](*vals) + copulas[f"{method}_x1"] = component_1 + copulas[f"{method}_x2"] = component_2 return copulas @@ -259,9 +317,9 @@ def PCA_contour(x1, x2, fit, kwargs): Parameters ---------- - x1: numpy array + x1: list, np.ndarray, pd.Series, xr.DataArray Component 1 data - x2: numpy array + x2: list, np.ndarray, pd.Series, xr.DataArray Component 2 data fit: dict Dictionary of the iso-probability results. May additionally @@ -289,7 +347,7 @@ def PCA_contour(x1, x2, fit, kwargs): Calculated x2 values along the contour boundary following return to original input orientation. fit: dict (optional) - principal component analysis dictionary + principal component analysis dictionary Keys: ----- 'principal_axes': sign corrected PCA axes @@ -299,63 +357,68 @@ def PCA_contour(x1, x2, fit, kwargs): 'sigma_param' : fit to _sig_fits """ - try: - x1 = np.array(x1) - except: - pass - try: - x2 = np.array(x2) - except: - pass - assert isinstance(x1, np.ndarray), 'x1 must be of type np.ndarray' - assert isinstance(x2, np.ndarray), 'x2 must be of type np.ndarray' + x1 = to_numeric_array(x1, "x1") + x2 = to_numeric_array(x2, "x2") + if not isinstance(x1, np.ndarray) or x1.ndim == 0: + raise TypeError(f"x1 must be a non-scalar array. Got: {type(x1)}") + if not isinstance(x2, np.ndarray) or x2.ndim == 0: + raise TypeError(f"x2 must be a non-scalar array. Got: {type(x2)}") + if len(x1) != len(x2): + raise ValueError("The lengths of x1 and x2 must be equal.") bin_size = kwargs.get("bin_size", 250) nb_steps = kwargs.get("nb_steps", 1000) return_fit = kwargs.get("return_fit", False) - assert isinstance(bin_size, int), 'bin_size must be of type int' - assert isinstance(nb_steps, int), 'nb_steps must be of type int' - assert isinstance(return_fit, bool), 'return_fit must be of type bool' + if not isinstance(bin_size, int): + raise TypeError(f"bin_size must be of type int. Got: {type(bin_size)}") + if not isinstance(nb_steps, int): + raise TypeError(f"nb_steps must be of type int. Got: {type(nb_steps)}") + if not isinstance(return_fit, bool): + raise TypeError(f"return_fit must be of type bool. Got: {type(return_fit)}") - if 'x1_fit' not in fit: + if "x1_fit" not in fit: pca_fit = _principal_component_analysis(x1, x2, bin_size=bin_size) for key in pca_fit: fit[key] = pca_fit[key] - x_quantile = fit['x_quantile'] - y_quantile = fit['y_quantile'] + x_quantile = fit["x_quantile"] + y_quantile = fit["y_quantile"] # Use the inverse of cdf to calculate component 1 values - component_1 = stats.invgauss.ppf(x_quantile, - mu=fit['x1_fit']['mu'], - loc=fit['x1_fit']['loc'], - scale=fit['x1_fit']['scale']) + component_1 = stats.invgauss.ppf( + x_quantile, + mu=fit["x1_fit"]["mu"], + loc=fit["x1_fit"]["loc"], + scale=fit["x1_fit"]["scale"], + ) # Find Component 2 mu using first order linear regression - mu_slope = fit['mu_fit'].slope - mu_intercept = fit['mu_fit'].intercept + mu_slope = fit["mu_fit"].slope + mu_intercept = fit["mu_fit"].intercept component_2_mu = mu_slope * component_1 + mu_intercept # Find Componenet 2 sigma using second order polynomial fit - sigma_polynomial_coeffcients = fit['sigma_fit'].x + sigma_polynomial_coeffcients = fit["sigma_fit"].x component_2_sigma = np.polyval(sigma_polynomial_coeffcients, component_1) # Use calculated mu and sigma values to calculate C2 along the contour - component_2 = stats.norm.ppf(y_quantile, - loc=component_2_mu, - scale=component_2_sigma) + component_2 = stats.norm.ppf( + y_quantile, loc=component_2_mu, scale=component_2_sigma + ) # Convert contours back to the original reference frame - principal_axes = fit['principal_axes'] - shift = fit['shift'] + principal_axes = fit["principal_axes"] + shift = fit["shift"] pa00 = principal_axes[0, 0] pa01 = principal_axes[0, 1] - x1_contour = ((pa00 * component_1 + pa01 * (component_2 - shift)) / - (pa01**2 + pa00**2)) - x2_contour = ((pa01 * component_1 - pa00 * (component_2 - shift)) / - (pa01**2 + pa00**2)) + x1_contour = (pa00 * component_1 + pa01 * (component_2 - shift)) / ( + pa01**2 + pa00**2 + ) + x2_contour = (pa01 * component_1 - pa00 * (component_2 - shift)) / ( + pa01**2 + pa00**2 + ) # Assign 0 value to any negative x1 contour values x1_contour = np.maximum(0, x1_contour) @@ -410,15 +473,18 @@ def _principal_component_analysis(x1, x2, bin_size=250): 'mu_param' : fit to _mu_fcn 'sigma_param' : fit to _sig_fits """ - assert isinstance(x1, np.ndarray), 'x1 must be of type np.ndarray' - assert isinstance(x2, np.ndarray), 'x2 must be of type np.ndarray' - assert isinstance(bin_size, int), 'bin_size must be of type int' + if not isinstance(x1, np.ndarray): + raise TypeError(f"x1 must be of type np.ndarray. Got: {type(x1)}") + if not isinstance(x2, np.ndarray): + raise TypeError(f"x2 must be of type np.ndarray. Got: {type(x2)}") + if not isinstance(bin_size, int): + raise TypeError(f"bin_size must be of type int. Got: {type(bin_size)}") + # Step 0: Perform Standard PCA mean_location = 0 x1_mean_centered = x1 - x1.mean(axis=0) x2_mean_centered = x2 - x2.mean(axis=0) - n_samples_by_n_features = np.column_stack((x1_mean_centered, - x2_mean_centered)) + n_samples_by_n_features = np.column_stack((x1_mean_centered, x2_mean_centered)) pca = skPCA(n_components=2) pca.fit(n_samples_by_n_features) principal_axes = pca.components_ @@ -444,29 +510,31 @@ def _principal_component_analysis(x1, x2, bin_size=250): x2_sorted = x2_components[x1_sorted_index] x1_fit_results = stats.invgauss.fit(x1_sorted, floc=mean_location) - x1_fit = {'mu': x1_fit_results[0], - 'loc': x1_fit_results[1], - 'scale': x1_fit_results[2]} + x1_fit = { + "mu": x1_fit_results[0], + "loc": x1_fit_results[1], + "scale": x1_fit_results[2], + } # Step 3: Bin Data & find order 1 linear relation between x1 & x2 means N = len(x1) - minimum_4_bins = np.floor(N*0.25) + minimum_4_bins = np.floor(N * 0.25) if bin_size > minimum_4_bins: bin_size = minimum_4_bins - msg = ('To allow for a minimum of 4 bins the bin size has been' + - f'set to {minimum_4_bins}') - print(msg) + msg = ( + "To allow for a minimum of 4 bins, the bin size has been " + + f"set to {minimum_4_bins}" + ) + warnings.warn(msg, UserWarning) - N_multiples = N // bin_size - max_N_multiples_index = N_multiples*bin_size + N_multiples = int(N // bin_size) + max_N_multiples_index = int(N_multiples * bin_size) x1_integer_multiples_of_bin_size = x1_sorted[0:max_N_multiples_index] x2_integer_multiples_of_bin_size = x2_sorted[0:max_N_multiples_index] - x1_bins = np.split(x1_integer_multiples_of_bin_size, - N_multiples) - x2_bins = np.split(x2_integer_multiples_of_bin_size, - N_multiples) + x1_bins = np.split(x1_integer_multiples_of_bin_size, N_multiples) + x2_bins = np.split(x2_integer_multiples_of_bin_size, N_multiples) x1_last_bin = x1_sorted[max_N_multiples_index:] x2_last_bin = x2_sorted[max_N_multiples_index:] @@ -487,29 +555,38 @@ def _principal_component_analysis(x1, x2, bin_size=250): # STEP 4: Find order 2 relation between x1_mean and x2 standard deviation sigma_polynomial_order = 2 - sig_0 = 0.1 * np.ones(sigma_polynomial_order+1) + sig_0 = 0.1 * np.ones(sigma_polynomial_order + 1) def _objective_function(sig_p, x1_means, x2_sigmas): return mean_squared_error(np.polyval(sig_p, x1_means), x2_sigmas) # Constraint Functions - def y_intercept_gt_0(sig_p): return (sig_p[2]) + def y_intercept_gt_0(sig_p): + return sig_p[2] def sig_polynomial_min_gt_0(sig_p): - return (sig_p[2] - (sig_p[1]**2) / (4 * sig_p[0])) - - constraints = ({'type': 'ineq', 'fun': y_intercept_gt_0}, - {'type': 'ineq', 'fun': sig_polynomial_min_gt_0}) - - sigma_fit = optim.minimize(_objective_function, x0=sig_0, - args=(x1_means, x2_sigmas), - method='SLSQP', constraints=constraints) - - PCA = {'principal_axes': principal_axes, - 'shift': shift, - 'x1_fit': x1_fit, - 'mu_fit': mu_fit, - 'sigma_fit': sigma_fit} + return sig_p[2] - (sig_p[1] ** 2) / (4 * sig_p[0]) + + constraints = ( + {"type": "ineq", "fun": y_intercept_gt_0}, + {"type": "ineq", "fun": sig_polynomial_min_gt_0}, + ) + + sigma_fit = optim.minimize( + _objective_function, + x0=sig_0, + args=(x1_means, x2_sigmas), + method="SLSQP", + constraints=constraints, + ) + + PCA = { + "principal_axes": principal_axes, + "shift": shift, + "x1_fit": x1_fit, + "mu_fit": mu_fit, + "sigma_fit": sigma_fit, + } return PCA @@ -541,37 +618,41 @@ def _iso_prob_and_quantile(sea_state_duration, return_period, nb_steps): 'y_quantile' - CDF of y-component """ - assert isinstance(sea_state_duration, (int, float) - ), 'sea_state_duration must be of type int or float' - assert isinstance(return_period, (int, float)), ( - 'return_period must be of type int or float') - - assert isinstance(nb_steps, int), 'nb_steps must be of type int' + if not isinstance(sea_state_duration, (int, float)): + raise TypeError( + f"sea_state_duration must be of type int or float. Got: {type(sea_state_duration)}" + ) + if not isinstance(return_period, (int, float)): + raise TypeError( + f"return_period must be of type int or float. Got: {type(return_period)}" + ) + if not isinstance(nb_steps, int): + raise TypeError(f"nb_steps must be of type int. Got: {type(nb_steps)}") dt_yrs = sea_state_duration / (3600 * 24 * 365) exceedance_probability = 1 / (return_period / dt_yrs) - iso_probability_radius = stats.norm.ppf((1 - exceedance_probability), - loc=0, scale=1) + iso_probability_radius = stats.norm.ppf( + (1 - exceedance_probability), loc=0, scale=1 + ) discretized_radians = np.linspace(0, 2 * np.pi, nb_steps) - x_component_iso_prob = iso_probability_radius * \ - np.cos(discretized_radians) - y_component_iso_prob = iso_probability_radius * \ - np.sin(discretized_radians) + x_component_iso_prob = iso_probability_radius * np.cos(discretized_radians) + y_component_iso_prob = iso_probability_radius * np.sin(discretized_radians) x_quantile = stats.norm.cdf(x_component_iso_prob, loc=0, scale=1) y_quantile = stats.norm.cdf(y_component_iso_prob, loc=0, scale=1) - results = {'exceedance_probability': exceedance_probability, - 'x_component_iso_prob': x_component_iso_prob, - 'y_component_iso_prob': y_component_iso_prob, - 'x_quantile': x_quantile, - 'y_quantile': y_quantile} + results = { + "exceedance_probability": exceedance_probability, + "x_component_iso_prob": x_component_iso_prob, + "y_component_iso_prob": y_component_iso_prob, + "x_quantile": x_quantile, + "y_quantile": y_quantile, + } return results -def _copula_parameters(x1, x2, min_bin_count, initial_bin_max_val, - bin_val_size): +def _copula_parameters(x1, x2, min_bin_count, initial_bin_max_val, bin_val_size): """ Returns an estimate of the Weibull and Lognormal distribution for x1 and x2 respectively. Additionally returns the estimates of the @@ -602,14 +683,22 @@ def _copula_parameters(x1, x2, min_bin_count, initial_bin_max_val, std_cond: array Estimate coefficients of the standard deviation of Ln(x2|x1) """ - assert isinstance(x1, np.ndarray), 'x1 must be of type np.ndarray' - assert isinstance(x2, np.ndarray), 'x2 must be of type np.ndarray' - assert isinstance(min_bin_count, int), ('min_bin_count must be of' - + 'type int') - assert isinstance(bin_val_size, (int, float)), ( - 'bin_val_size must be of type int or float') - assert isinstance(initial_bin_max_val, (int, float)), ( - 'initial_bin_max_val must be of type int or float') + if not isinstance(x1, np.ndarray): + raise TypeError(f"x1 must be of type np.ndarray. Got: {type(x1)}") + if not isinstance(x2, np.ndarray): + raise TypeError(f"x2 must be of type np.ndarray. Got: {type(x2)}") + if not isinstance(min_bin_count, int): + raise TypeError( + f"min_bin_count must be of type int. Got: {type(min_bin_count)}" + ) + if not isinstance(bin_val_size, (int, float)): + raise TypeError( + f"bin_val_size must be of type int or float. Got: {type(bin_val_size)}" + ) + if not isinstance(initial_bin_max_val, (int, float)): + raise TypeError( + f"initial_bin_max_val must be of type int or float. Got: {type(initial_bin_max_val)}" + ) # Binning x1_sorted_index = x1.argsort() @@ -634,10 +723,10 @@ def _copula_parameters(x1, x2, min_bin_count, initial_bin_max_val, bin_size_i = np.inf while bin_size_i >= min_bin_count: i += 1 - bin_i_max_val = initial_bin_max_val + bin_val_size*(i) + bin_i_max_val = initial_bin_max_val + bin_val_size * (i) N_vals_lt_limit = sum(x1_sorted <= bin_i_max_val) ind = np.append(ind, N_vals_lt_limit) - bin_size_i = ind[i]-ind[i-1] + bin_size_i = ind[i] - ind[i - 1] # Weibull distribution parameters for component 1 using MLE para_dist_1 = stats.exponweib.fit(x1_sorted, floc=0, fa=1) @@ -656,7 +745,7 @@ def _copula_parameters(x1, x2, min_bin_count, initial_bin_max_val, x2_lognormal_dist0 = stats.norm.fit(x2_log0) para_dist_cond.append(x2_lognormal_dist0) # mean of x1 (component 1 for zero bin) - x1_bin0 = x1_sorted[range(0, int(ind[0])-1)] + x1_bin0 = x1_sorted[range(0, int(ind[0]) - 1)] hss.append(np.mean(x1_bin0)) # Special case 2-bin lognormal Dist @@ -667,11 +756,11 @@ def _copula_parameters(x1, x2, min_bin_count, initial_bin_max_val, para_dist_cond.append(x2_lognormal_dist1) # mean of Hs (component 1 for bin 1) - hss.append(np.mean(x1_sorted[range(0, int(ind[1])-1)])) + hss.append(np.mean(x1_sorted[range(0, int(ind[1]) - 1)])) # lognormal Dist (lognormal dist over only 2 bins) for i in range(2, num): - ind_i = range(int(ind[i-2]), int(ind[i])) + ind_i = range(int(ind[i - 2]), int(ind[i])) x2_log_i = np.log(x2_sorted[ind_i]) x2_lognormal_dist_i = stats.norm.fit(x2_log_i) para_dist_cond.append(x2_lognormal_dist_i) @@ -680,7 +769,7 @@ def _copula_parameters(x1, x2, min_bin_count, initial_bin_max_val, # Estimate coefficient using least square solution (mean: 3rd order, # sigma: 2nd order) - ind_f = range(int(ind[num-2]), int(len(x1))) + ind_f = range(int(ind[num - 2]), int(len(x1))) x2_log_f = np.log(x2_sorted[ind_f]) x2_lognormal_dist_f = stats.norm.fit(x2_log_f) para_dist_cond.append(x2_lognormal_dist_f) # parameters for last bin @@ -692,17 +781,15 @@ def _copula_parameters(x1, x2, min_bin_count, initial_bin_max_val, hss = np.array(hss) # cubic in Hs: a + bx + cx**2 + dx**3 - phi_mean = np.column_stack((np.ones(num+1), hss, hss**2, hss**3)) + phi_mean = np.column_stack((np.ones(num + 1), hss, hss**2, hss**3)) # quadratic in Hs a + bx + cx**2 - phi_std = np.column_stack((np.ones(num+1), hss, hss**2)) + phi_std = np.column_stack((np.ones(num + 1), hss, hss**2)) # Estimate coefficients of mean of Ln(T|Hs)(vector 4x1) (cubic in Hs) - mean_cond = np.linalg.lstsq(phi_mean, para_dist_cond[:, 0], - rcond=None)[0] + mean_cond = np.linalg.lstsq(phi_mean, para_dist_cond[:, 0], rcond=None)[0] # Estimate coefficients of standard deviation of Ln(T|Hs) # (vector 3x1) (quadratic in Hs) - std_cond = np.linalg.lstsq(phi_std, para_dist_cond[:, 1], - rcond=None)[0] + std_cond = np.linalg.lstsq(phi_std, para_dist_cond[:, 1], rcond=None)[0] return para_dist_1, para_dist_2, mean_cond, std_cond @@ -753,36 +840,42 @@ def _gaussian_copula(x1, x2, fit, component_1, kwargs): x2 = np.array(x2) except: pass - assert isinstance(x1, np.ndarray), 'x1 must be of type np.ndarray' - assert isinstance(x2, np.ndarray), 'x2 must be of type np.ndarray' - assert isinstance(component_1, np.ndarray), ( - 'x2 must be of type np.ndarray') - + if not isinstance(x1, np.ndarray): + raise TypeError(f"x1 must be of type np.ndarray. Got: {type(x1)}") + if not isinstance(x2, np.ndarray): + raise TypeError(f"x2 must be of type np.ndarray. Got: {type(x2)}") + if not isinstance(component_1, np.ndarray): + raise TypeError( + f"component_1 must be of type np.ndarray. Got: {type(component_1)}" + ) return_fit = kwargs.get("return_fit", False) - assert isinstance(return_fit, bool), ( - 'If specified return_fit must be a bool') + if not isinstance(return_fit, bool): + raise TypeError( + f"If specified, return_fit must be of type bool. Got: {type(return_fit)}" + ) - x_component_iso_prob = fit['x_component_iso_prob'] - y_component_iso_prob = fit['y_component_iso_prob'] + x_component_iso_prob = fit["x_component_iso_prob"] + y_component_iso_prob = fit["y_component_iso_prob"] # Calculate Kendall's tau tau = stats.kendalltau(x2, x1)[0] - rho_gau = np.sin(tau*np.pi/2.) + rho_gau = np.sin(tau * np.pi / 2.0) - z2_Gauss = stats.norm.cdf(y_component_iso_prob*np.sqrt(1.-rho_gau**2.) - + rho_gau*x_component_iso_prob) + z2_Gauss = stats.norm.cdf( + y_component_iso_prob * np.sqrt(1.0 - rho_gau**2.0) + + rho_gau * x_component_iso_prob + ) - para_dist_2 = fit['para_dist_2'] + para_dist_2 = fit["para_dist_2"] s = para_dist_2[1] loc = 0 scale = np.exp(para_dist_2[0]) # lognormal inverse - component_2_Gaussian = stats.lognorm.ppf(z2_Gauss, s=s, loc=loc, - scale=scale) - fit['tau'] = tau - fit['rho'] = rho_gau - fit['z2'] = z2_Gauss + component_2_Gaussian = stats.lognorm.ppf(z2_Gauss, s=s, loc=loc, scale=scale) + fit["tau"] = tau + fit["rho"] = rho_gau + fit["z2"] = z2_Gauss if return_fit: return component_1, component_2_Gaussian, fit @@ -807,18 +900,20 @@ def _gumbel_density(u, alpha): Copula density function. """ - #Ignore divide by 0 warnings and resulting NaN warnings - np.seterr(all='ignore') + # Ignore divide by 0 warnings and resulting NaN warnings + np.seterr(all="ignore") v = -np.log(u) v = np.sort(v, axis=0) vmin = v[0, :] vmax = v[1, :] nlogC = vmax * (1 + (vmin / vmax) ** alpha) ** (1 / alpha) - y = (alpha - 1 + nlogC)*np.exp( - -nlogC+np.sum((alpha-1) * np.log(v)+v, axis=0) + - (1-2*alpha)*np.log(nlogC)) - np.seterr(all='warn') - return(y) + y = (alpha - 1 + nlogC) * np.exp( + -nlogC + + np.sum((alpha - 1) * np.log(v) + v, axis=0) + + (1 - 2 * alpha) * np.log(nlogC) + ) + np.seterr(all="warn") + return y def _gumbel_copula(x1, x2, fit, component_1, nb_steps, kwargs): @@ -869,24 +964,30 @@ def _gumbel_copula(x1, x2, fit, component_1, nb_steps, kwargs): x2 = np.array(x2) except: pass - assert isinstance(x1, np.ndarray), 'x1 must be of type np.ndarray' - assert isinstance(x2, np.ndarray), 'x2 must be of type np.ndarray' - assert isinstance(component_1, np.ndarray), 'x2 must be of type np.ndarray' - + if not isinstance(x1, np.ndarray): + raise TypeError(f"x1 must be of type np.ndarray. Got: {type(x1)}") + if not isinstance(x2, np.ndarray): + raise TypeError(f"x2 must be of type np.ndarray. Got: {type(x2)}") + if not isinstance(component_1, np.ndarray): + raise TypeError( + f"component_1 must be of type np.ndarray. Got: {type(component_1)}" + ) return_fit = kwargs.get("return_fit", False) - assert isinstance( - return_fit, bool), 'If specified return_fit must be a bool' + if not isinstance(return_fit, bool): + raise TypeError( + f"If specified, return_fit must be of type bool. Got: {type(return_fit)}" + ) - x_quantile = fit['x_quantile'] - y_quantile = fit['y_quantile'] - para_dist_2 = fit['para_dist_2'] + x_quantile = fit["x_quantile"] + y_quantile = fit["y_quantile"] + para_dist_2 = fit["para_dist_2"] # Calculate Kendall's tau tau = stats.kendalltau(x2, x1)[0] - theta_gum = 1./(1.-tau) + theta_gum = 1.0 / (1.0 - tau) min_limit_2 = 0 - max_limit_2 = np.ceil(np.amax(x2)*2) + max_limit_2 = np.ceil(np.amax(x2) * 2) Ndata = 1000 x = np.linspace(min_limit_2, max_limit_2, Ndata) @@ -895,21 +996,21 @@ def _gumbel_copula(x1, x2, fit, component_1, nb_steps, kwargs): scale = np.exp(para_dist_2[0]) z2 = stats.lognorm.cdf(x, s=s, loc=0, scale=scale) - fit['tau'] = tau - fit['theta'] = theta_gum - fit['z2'] = z2 + fit["tau"] = tau + fit["theta"] = theta_gum + fit["z2"] = z2 component_2_Gumbel = np.zeros(nb_steps) for k in range(nb_steps): - z1 = np.array([x_quantile[k]]*Ndata) + z1 = np.array([x_quantile[k]] * Ndata) Z = np.array((z1, z2)) Y = _gumbel_density(Z, theta_gum) Y = np.nan_to_num(Y) # pdf 2|1, f(comp_2|comp_1)=c(z1,z2)*f(comp_2) - p_x_x1 = Y*(stats.lognorm.pdf(x, s=s, loc=0, scale=scale)) + p_x_x1 = Y * (stats.lognorm.pdf(x, s=s, loc=0, scale=scale)) # Estimate CDF from PDF dum = np.cumsum(p_x_x1) - cdf = dum/(dum[Ndata-1]) + cdf = dum / (dum[Ndata - 1]) # Result of conditional CDF derived based on Gumbel copula table = np.array((x, cdf)) table = table.T @@ -918,7 +1019,7 @@ def _gumbel_copula(x1, x2, fit, component_1, nb_steps, kwargs): component_2_Gumbel[k] = min(table[:, 0]) break elif y_quantile[k] <= table[j, 1]: - component_2_Gumbel[k] = (table[j, 0]+table[j-1, 0])/2 + component_2_Gumbel[k] = (table[j, 0] + table[j - 1, 0]) / 2 break else: component_2_Gumbel[k] = table[:, 0].max() @@ -967,32 +1068,41 @@ def _clayton_copula(x1, x2, fit, component_1, kwargs): If return_fit=True. Dictionary with iso-probabilities passed with additional fit metrics from the copula method. """ - assert isinstance(x1, np.ndarray), 'x1 must be of type np.ndarray' - assert isinstance(x2, np.ndarray), 'x2 must be of type np.ndarray' - assert isinstance(component_1, np.ndarray), 'x2 must be of type np.ndarray' + if not isinstance(x1, np.ndarray): + raise TypeError(f"x1 must be of type np.ndarray. Got: {type(x1)}") + if not isinstance(x2, np.ndarray): + raise TypeError(f"x2 must be of type np.ndarray. Got: {type(x2)}") + if not isinstance(component_1, np.ndarray): + raise TypeError( + f"component_1 must be of type np.ndarray. Got: {type(component_1)}" + ) return_fit = kwargs.get("return_fit", False) - assert isinstance( - return_fit, bool), 'If specified return_fit must be a bool' + if not isinstance(return_fit, bool): + raise TypeError( + f"If specified, return_fit must be of type bool. Got: {type(return_fit)}" + ) - x_quantile = fit['x_quantile'] - y_quantile = fit['y_quantile'] - para_dist_2 = fit['para_dist_2'] + x_quantile = fit["x_quantile"] + y_quantile = fit["y_quantile"] + para_dist_2 = fit["para_dist_2"] # Calculate Kendall's tau tau = stats.kendalltau(x2, x1)[0] - theta_clay = (2.*tau)/(1.-tau) + theta_clay = (2.0 * tau) / (1.0 - tau) s = para_dist_2[1] scale = np.exp(para_dist_2[0]) - z2_Clay = ((1.-x_quantile**(-theta_clay)+x_quantile**(-theta_clay) / - y_quantile)**(theta_clay/(1.+theta_clay)))**(-1./theta_clay) + z2_Clay = ( + (1.0 - x_quantile ** (-theta_clay) + x_quantile ** (-theta_clay) / y_quantile) + ** (theta_clay / (1.0 + theta_clay)) + ) ** (-1.0 / theta_clay) # lognormal inverse component_2_Clayton = stats.lognorm.ppf(z2_Clay, s=s, loc=0, scale=scale) - fit['theta_clay'] = theta_clay - fit['tau'] = tau - fit['z2_Clay'] = z2_Clay + fit["theta_clay"] = theta_clay + fit["tau"] = tau + fit["z2_Clay"] = z2_Clay if return_fit: return component_1, component_2_Clayton, fit @@ -1047,36 +1157,47 @@ def _rosenblatt_copula(x1, x2, fit, component_1, kwargs): x2 = np.array(x2) except: pass - assert isinstance(x1, np.ndarray), 'x1 must be of type np.ndarray' - assert isinstance(x2, np.ndarray), 'x2 must be of type np.ndarray' - assert isinstance(component_1, np.ndarray), 'x2 must be of type np.ndarray' + if not isinstance(x1, np.ndarray): + raise TypeError(f"x1 must be of type np.ndarray. Got: {type(x1)}") + if not isinstance(x2, np.ndarray): + raise TypeError(f"x2 must be of type np.ndarray. Got: {type(x2)}") + if not isinstance(component_1, np.ndarray): + raise TypeError( + f"component_1 must be of type np.ndarray. Got: {type(component_1)}" + ) return_fit = kwargs.get("return_fit", False) - assert isinstance( - return_fit, bool), 'If specified return_fit must be a bool' + if not isinstance(return_fit, bool): + raise TypeError( + f"If specified, return_fit must be of type bool. Got: {type(return_fit)}" + ) - y_quantile = fit['y_quantile'] - mean_cond = fit['mean_cond'] - std_cond = fit['std_cond'] + y_quantile = fit["y_quantile"] + mean_cond = fit["mean_cond"] + std_cond = fit["std_cond"] # mean of Ln(T) as a function of x1 - lamda_cond = mean_cond[0]+mean_cond[1]*component_1 + \ - mean_cond[2]*component_1**2+mean_cond[3]*component_1**3 + lamda_cond = ( + mean_cond[0] + + mean_cond[1] * component_1 + + mean_cond[2] * component_1**2 + + mean_cond[3] * component_1**3 + ) # Standard deviation of Ln(x2) as a function of x1 - sigma_cond = std_cond[0]+std_cond[1]*component_1+std_cond[2]*component_1**2 + sigma_cond = std_cond[0] + std_cond[1] * component_1 + std_cond[2] * component_1**2 # lognormal inverse component_2_Rosenblatt = stats.lognorm.ppf( - y_quantile, s=sigma_cond, loc=0, scale=np.exp(lamda_cond)) + y_quantile, s=sigma_cond, loc=0, scale=np.exp(lamda_cond) + ) - fit['lamda_cond'] = lamda_cond - fit['sigma_cond'] = sigma_cond + fit["lamda_cond"] = lamda_cond + fit["sigma_cond"] = sigma_cond if return_fit: return component_1, component_2_Rosenblatt, fit return component_1, component_2_Rosenblatt -def _nonparametric_copula_parameters(x1, x2, max_x1=None, max_x2=None, - nb_steps=1000): +def _nonparametric_copula_parameters(x1, x2, max_x1=None, max_x2=None, nb_steps=1000): """ Calculates nonparametric copula parameters @@ -1102,15 +1223,20 @@ def _nonparametric_copula_parameters(x1, x2, max_x1=None, max_x2=None, nonpara_pdf_2: x2 points in KDE space and Nonparametric PDF for x2 """ - assert isinstance(x1, np.ndarray), 'x1 must be of type np.ndarray' - assert isinstance(x2, np.ndarray), 'x2 must be of type np.ndarray' + if not isinstance(x1, np.ndarray): + raise TypeError(f"x1 must be of type np.ndarray. Got: {type(x1)}") + if not isinstance(x2, np.ndarray): + raise TypeError(f"x2 must be of type np.ndarray. Got: {type(x2)}") if not max_x1: - max_x1 = x1.max()*2 + max_x1 = x1.max() * 2 if not max_x2: - max_x2 = x2.max()*2 - assert isinstance(max_x1, float), 'max_x1 must be of type float' - assert isinstance(max_x2, float), 'max_x2 must be of type float' - assert isinstance(nb_steps, int), 'nb_steps must be of type int' + max_x2 = x2.max() * 2 + if not isinstance(max_x1, float): + raise TypeError(f"max_x1 must be of type float. Got: {type(max_x1)}") + if not isinstance(max_x2, float): + raise TypeError(f"max_x2 must be of type float. Got: {type(max_x2)}") + if not isinstance(nb_steps, int): + raise TypeError(f"nb_steps must be of type int. Got: {type(nb_steps)}") # Binning x1_sorted_index = x1.argsort() @@ -1128,11 +1254,11 @@ def _nonparametric_copula_parameters(x1, x2, max_x1=None, max_x2=None, # Calculate optimal bandwidth for T and Hs sig = stats.median_abs_deviation(x2_sorted) num = float(len(x2_sorted)) - bwT = sig*(4.0/(3.0*num))**(1.0/5.0) + bwT = sig * (4.0 / (3.0 * num)) ** (1.0 / 5.0) sig = stats.median_abs_deviation(x1_sorted) num = float(len(x1_sorted)) - bwHs = sig*(4.0/(3.0*num))**(1.0/5.0) + bwHs = sig * (4.0 / (3.0 * num)) ** (1.0 / 5.0) # Nonparametric PDF for x2 temp = KDEUnivariate(x2_sorted) @@ -1143,11 +1269,11 @@ def _nonparametric_copula_parameters(x1, x2, max_x1=None, max_x2=None, temp = KDEUnivariate(x1_sorted) temp.fit(bw=bwHs) tempPDF = temp.evaluate(pts_x1) - F_x1 = tempPDF/sum(tempPDF) + F_x1 = tempPDF / sum(tempPDF) F_x1 = np.cumsum(F_x1) # Nonparametric CDF for x2 - F_x2 = f_x2/sum(f_x2) + F_x2 = f_x2 / sum(f_x2) F_x2 = np.cumsum(F_x2) nonpara_dist_1 = np.transpose(np.array([pts_x1, F_x1])) @@ -1176,7 +1302,8 @@ def _nonparametric_component(z, nonpara_dist, nb_steps): component: array nonparametic component values """ - assert isinstance(nb_steps, int), 'nb_steps must be of type int' + if not isinstance(nb_steps, int): + raise TypeError(f"nb_steps must be of type int. Got: {type(nb_steps)}") component = np.zeros(nb_steps) for k in range(0, nb_steps): @@ -1185,7 +1312,7 @@ def _nonparametric_component(z, nonpara_dist, nb_steps): component[k] = min(nonpara_dist[:, 0]) break elif z[k] <= nonpara_dist[j, 1]: - component[k] = (nonpara_dist[j, 0] + nonpara_dist[j-1, 0])/2 + component[k] = (nonpara_dist[j, 0] + nonpara_dist[j - 1, 0]) / 2 break else: component[k] = max(nonpara_dist[:, 0]) @@ -1223,48 +1350,51 @@ def _nonparametric_gaussian_copula(x1, x2, fit, nb_steps, kwargs): If return_fit=True. Dictionary with iso-probabilities passed with additional fit metrics from the copula method. """ - assert isinstance(x1, np.ndarray), 'x1 must be of type np.ndarray' - assert isinstance(x2, np.ndarray), 'x2 must be of type np.ndarray' - assert isinstance(nb_steps, int), 'nb_steps must be of type int' - + if not isinstance(x1, np.ndarray): + raise TypeError(f"x1 must be of type np.ndarray. Got: {type(x1)}") + if not isinstance(x2, np.ndarray): + raise TypeError(f"x2 must be of type np.ndarray. Got: {type(x2)}") + if not isinstance(nb_steps, int): + raise TypeError(f"nb_steps must be of type int. Got: {type(nb_steps)}") return_fit = kwargs.get("return_fit", False) - assert isinstance( - return_fit, bool), 'If specified return_fit must be a bool' + if not isinstance(return_fit, bool): + raise TypeError( + f"If specified, return_fit must be of type bool. Got: {type(return_fit)}" + ) - x_component_iso_prob = fit['x_component_iso_prob'] - y_component_iso_prob = fit['y_component_iso_prob'] - nonpara_dist_1 = fit['nonpara_dist_1'] - nonpara_dist_2 = fit['nonpara_dist_2'] + x_component_iso_prob = fit["x_component_iso_prob"] + y_component_iso_prob = fit["y_component_iso_prob"] + nonpara_dist_1 = fit["nonpara_dist_1"] + nonpara_dist_2 = fit["nonpara_dist_2"] # Calculate Kendall's tau tau = stats.kendalltau(x2, x1)[0] - rho_gau = np.sin(tau*np.pi/2.) + rho_gau = np.sin(tau * np.pi / 2.0) # Component 1 z1 = stats.norm.cdf(x_component_iso_prob) - z2 = stats.norm.cdf(y_component_iso_prob*np.sqrt(1. - - rho_gau**2.)+rho_gau*x_component_iso_prob) + z2 = stats.norm.cdf( + y_component_iso_prob * np.sqrt(1.0 - rho_gau**2.0) + + rho_gau * x_component_iso_prob + ) - comps = {1: {'z': z1, - 'nonpara_dist': nonpara_dist_1 - }, - 2: {'z': z2, - 'nonpara_dist': nonpara_dist_2 - } - } + comps = { + 1: {"z": z1, "nonpara_dist": nonpara_dist_1}, + 2: {"z": z2, "nonpara_dist": nonpara_dist_2}, + } for c in comps: - z = comps[c]['z'] - nonpara_dist = comps[c]['nonpara_dist'] - comps[c]['comp'] = _nonparametric_component(z, nonpara_dist, nb_steps) + z = comps[c]["z"] + nonpara_dist = comps[c]["nonpara_dist"] + comps[c]["comp"] = _nonparametric_component(z, nonpara_dist, nb_steps) - component_1_np = comps[1]['comp'] - component_2_np_gaussian = comps[2]['comp'] + component_1_np = comps[1]["comp"] + component_2_np_gaussian = comps[2]["comp"] - fit['tau'] = tau - fit['rho'] = rho_gau - fit['z1'] = z1 - fit['z2'] = z2 + fit["tau"] = tau + fit["rho"] = rho_gau + fit["z1"] = z1 + fit["z2"] = z2 if return_fit: return component_1_np, component_2_np_gaussian, fit @@ -1302,51 +1432,53 @@ def _nonparametric_clayton_copula(x1, x2, fit, nb_steps, kwargs): If return_fit=True. Dictionary with iso-probabilities passed with additional fit metrics from the copula method. """ - assert isinstance(x1, np.ndarray), 'x1 must be of type np.ndarray' - assert isinstance(x2, np.ndarray), 'x2 must be of type np.ndarray' - assert isinstance(nb_steps, int), 'nb_steps must be of type int' - + if not isinstance(x1, np.ndarray): + raise TypeError(f"x1 must be of type np.ndarray. Got: {type(x1)}") + if not isinstance(x2, np.ndarray): + raise TypeError(f"x2 must be of type np.ndarray. Got: {type(x2)}") + if not isinstance(nb_steps, int): + raise TypeError(f"nb_steps must be of type int. Got: {type(nb_steps)}") return_fit = kwargs.get("return_fit", False) - assert isinstance(return_fit, bool), ('If specified return_fit ' - + 'must be a bool') - - x_component_iso_prob = fit['x_component_iso_prob'] - x_quantile = fit['x_quantile'] - y_quantile = fit['y_quantile'] - nonpara_dist_1 = fit['nonpara_dist_1'] - nonpara_dist_2 = fit['nonpara_dist_2'] - nonpara_pdf_2 = fit['nonpara_pdf_2'] + if not isinstance(return_fit, bool): + raise TypeError( + f"If specified, return_fit must be of type bool. Got: {type(return_fit)}" + ) + + x_component_iso_prob = fit["x_component_iso_prob"] + x_quantile = fit["x_quantile"] + y_quantile = fit["y_quantile"] + nonpara_dist_1 = fit["nonpara_dist_1"] + nonpara_dist_2 = fit["nonpara_dist_2"] + nonpara_pdf_2 = fit["nonpara_pdf_2"] # Calculate Kendall's tau tau = stats.kendalltau(x2, x1)[0] - theta_clay = (2.*tau)/(1.-tau) + theta_clay = (2.0 * tau) / (1.0 - tau) # Component 1 (Hs) z1 = stats.norm.cdf(x_component_iso_prob) - z2_clay = ((1-x_quantile**(-theta_clay) - + x_quantile**(-theta_clay) - / y_quantile)**(theta_clay/(1.+theta_clay)))**(-1./theta_clay) - - comps = {1: {'z': z1, - 'nonpara_dist': nonpara_dist_1 - }, - 2: {'z': z2_clay, - 'nonpara_dist': nonpara_dist_2 - } - } + z2_clay = ( + (1 - x_quantile ** (-theta_clay) + x_quantile ** (-theta_clay) / y_quantile) + ** (theta_clay / (1.0 + theta_clay)) + ) ** (-1.0 / theta_clay) + + comps = { + 1: {"z": z1, "nonpara_dist": nonpara_dist_1}, + 2: {"z": z2_clay, "nonpara_dist": nonpara_dist_2}, + } for c in comps: - z = comps[c]['z'] - nonpara_dist = comps[c]['nonpara_dist'] - comps[c]['comp'] = _nonparametric_component(z, nonpara_dist, nb_steps) + z = comps[c]["z"] + nonpara_dist = comps[c]["nonpara_dist"] + comps[c]["comp"] = _nonparametric_component(z, nonpara_dist, nb_steps) - component_1_np = comps[1]['comp'] - component_2_np_clayton = comps[2]['comp'] + component_1_np = comps[1]["comp"] + component_2_np_clayton = comps[2]["comp"] - fit['tau'] = tau - fit['theta'] = theta_clay - fit['z1'] = z1 - fit['z2'] = z2_clay + fit["tau"] = tau + fit["theta"] = theta_clay + fit["z1"] = z1 + fit["z2"] = z2_clay if return_fit: return component_1_np, component_2_np_clayton, fit @@ -1384,25 +1516,29 @@ def _nonparametric_gumbel_copula(x1, x2, fit, nb_steps, kwargs): If return_fit=True. Dictionary with iso-probabilities passed with additional fit metrics from the copula method. """ - assert isinstance(x1, np.ndarray), 'x1 must be of type np.ndarray' - assert isinstance(x2, np.ndarray), 'x2 must be of type np.ndarray' - assert isinstance(nb_steps, int), 'nb_steps must be of type int' - + if not isinstance(x1, np.ndarray): + raise TypeError(f"x1 must be of type np.ndarray. Got: {type(x1)}") + if not isinstance(x2, np.ndarray): + raise TypeError(f"x2 must be of type np.ndarray. Got: {type(x2)}") + if not isinstance(nb_steps, int): + raise TypeError(f"nb_steps must be of type int. Got: {type(nb_steps)}") return_fit = kwargs.get("return_fit", False) - assert isinstance(return_fit, bool), ('If specified return_fit ' - + 'must be a bool') + if not isinstance(return_fit, bool): + raise TypeError( + f"If specified, return_fit must be a bool. Got: {type(return_fit)}" + ) Ndata = 1000 - x_quantile = fit['x_quantile'] - y_quantile = fit['y_quantile'] - nonpara_dist_1 = fit['nonpara_dist_1'] - nonpara_dist_2 = fit['nonpara_dist_2'] - nonpara_pdf_2 = fit['nonpara_pdf_2'] + x_quantile = fit["x_quantile"] + y_quantile = fit["y_quantile"] + nonpara_dist_1 = fit["nonpara_dist_1"] + nonpara_dist_2 = fit["nonpara_dist_2"] + nonpara_pdf_2 = fit["nonpara_pdf_2"] # Calculate Kendall's tau tau = stats.kendalltau(x2, x1)[0] - theta_gum = 1./(1.-tau) + theta_gum = 1.0 / (1.0 - tau) # Component 1 (Hs) z1 = x_quantile @@ -1414,15 +1550,15 @@ def _nonparametric_gumbel_copula(x1, x2, fit, nb_steps, kwargs): component_2_np_gumbel = np.zeros(nb_steps) for k in range(nb_steps): - z1 = np.array([x_quantile[k]]*Ndata) + z1 = np.array([x_quantile[k]] * Ndata) Z = np.array((z1.T, F_x2)) Y = _gumbel_density(Z, theta_gum) Y = np.nan_to_num(Y) # pdf 2|1 - p_x2_x1 = Y*f_x2 + p_x2_x1 = Y * f_x2 # Estimate CDF from PDF dum = np.cumsum(p_x2_x1) - cdf = dum/(dum[Ndata-1]) + cdf = dum / (dum[Ndata - 1]) table = np.array((pts_x2, cdf)) table = table.T for j in range(Ndata): @@ -1430,17 +1566,17 @@ def _nonparametric_gumbel_copula(x1, x2, fit, nb_steps, kwargs): component_2_np_gumbel[k] = min(table[:, 0]) break elif y_quantile[k] <= table[j, 1]: - component_2_np_gumbel[k] = (table[j, 0]+table[j-1, 0])/2 + component_2_np_gumbel[k] = (table[j, 0] + table[j - 1, 0]) / 2 break else: component_2_np_gumbel[k] = max(table[:, 0]) - fit['tau'] = tau - fit['theta'] = theta_gum - fit['z1'] = z1 - fit['pts_x2'] = pts_x2 - fit['f_x2'] = f_x2 - fit['F_x2'] = F_x2 + fit["tau"] = tau + fit["theta"] = theta_gum + fit["z1"] = z1 + fit["pts_x2"] = pts_x2 + fit["f_x2"] = f_x2 + fit["F_x2"] = F_x2 if return_fit: return component_1_np, component_2_np_gumbel, fit @@ -1466,7 +1602,7 @@ def _bivariate_KDE(x1, x2, bw, fit, nb_steps, Ndata_bivariate_KDE, kwargs): fit: Dictionay Dictionary of the iso-probability results nb_steps: int - number of points used to discritize KDE space + number of points used to discretize KDE space max_x1: float Defines the max value of x1 to discretize the KDE space max_x2: float @@ -1487,9 +1623,12 @@ def _bivariate_KDE(x1, x2, bw, fit, nb_steps, Ndata_bivariate_KDE, kwargs): If return_fit=True. Dictionary with iso-probabilities passed with additional fit metrics from the copula method. """ - assert isinstance(x1, np.ndarray), 'x1 must be of type np.ndarray' - assert isinstance(x2, np.ndarray), 'x2 must be of type np.ndarray' - assert isinstance(nb_steps, int), 'nb_steps must be of type int' + if not isinstance(x1, np.ndarray): + raise TypeError(f"x1 must be of type np.ndarray. Got: {type(x1)}") + if not isinstance(x2, np.ndarray): + raise TypeError(f"x2 must be of type np.ndarray. Got: {type(x2)}") + if not isinstance(nb_steps, int): + raise TypeError(f"nb_steps must be of type int. Got: {type(nb_steps)}") max_x1 = kwargs.get("max_x1", None) max_x2 = kwargs.get("max_x2", None) @@ -1497,17 +1636,23 @@ def _bivariate_KDE(x1, x2, bw, fit, nb_steps, Ndata_bivariate_KDE, kwargs): return_fit = kwargs.get("return_fit", False) if isinstance(max_x1, type(None)): - max_x1 = x1.max()*2 + max_x1 = x1.max() * 2 if isinstance(max_x2, type(None)): - max_x2 = x2.max()*2 - assert isinstance(max_x1, float), 'max_x1 must be of type float' - assert isinstance(max_x2, float), 'max_x2 must be of type float' - assert isinstance(log_transform, bool), ('If specified log_transform' - + 'must be a bool') - assert isinstance(return_fit, bool), ('If specified return_fit must ' - + 'be a bool') - - p_f = fit['exceedance_probability'] + max_x2 = x2.max() * 2 + if not isinstance(max_x1, float): + raise TypeError(f"max_x1 must be of type float. Got: {type(max_x1)}") + if not isinstance(max_x2, float): + raise TypeError(f"max_x2 must be of type float. Got: {type(max_x2)}") + if not isinstance(log_transform, bool): + raise TypeError( + f"If specified, log_transform must be of type bool. Got: {type(log_transform)}" + ) + if not isinstance(return_fit, bool): + raise TypeError( + f"If specified, return_fit must be of type bool. Got: {type(return_fit)}" + ) + + p_f = fit["exceedance_probability"] min_limit_1 = 0.01 min_limit_2 = 0.01 @@ -1535,10 +1680,10 @@ def _bivariate_KDE(x1, x2, bw, fit, nb_steps, Ndata_bivariate_KDE, kwargs): for i in range(0, m): ftemp = np.ones((n, 1)) for j in range(0, d): - z = (txi[j][i] - ty[j])/bw[j] + z = (txi[j][i] - ty[j]) / bw[j] fk = stats.norm.pdf(z) if log_transform: - fnew = fk*(1/np.transpose(xi[j][i])) + fnew = fk * (1 / np.transpose(xi[j][i])) else: fnew = fk fnew = np.reshape(fnew, (n, 1)) @@ -1551,27 +1696,39 @@ def _bivariate_KDE(x1, x2, bw, fit, nb_steps, Ndata_bivariate_KDE, kwargs): x1_bivariate_KDE = [] x2_bivariate_KDE = [] - for i, seg in enumerate(vals.allsegs[0]): + if mpl_version < (3, 8): # For versions before 3.8 + segments = vals.allsegs[0] + else: + segments = [path.vertices for path in vals.get_paths()] + + for seg in segments: x1_bivariate_KDE.append(seg[:, 1]) x2_bivariate_KDE.append(seg[:, 0]) x1_bivariate_KDE = np.transpose(np.asarray(x1_bivariate_KDE)[0]) x2_bivariate_KDE = np.transpose(np.asarray(x2_bivariate_KDE)[0]) - fit['mesh_pts_x1'] = mesh_pts_x1 - fit['mesh_pts_x2'] = mesh_pts_x2 - fit['ty'] = ty - fit['xi'] = xi - fit['contour_vals'] = vals + fit["mesh_pts_x1"] = mesh_pts_x1 + fit["mesh_pts_x2"] = mesh_pts_x2 + fit["ty"] = ty + fit["xi"] = xi + fit["contour_vals"] = vals if return_fit: return x1_bivariate_KDE, x2_bivariate_KDE, fit return x1_bivariate_KDE, x2_bivariate_KDE -### Sampling -def samples_full_seastate(x1, x2, points_per_interval, return_periods, - sea_state_duration, method="PCA", bin_size=250): +# Sampling +def samples_full_seastate( + x1, + x2, + points_per_interval, + return_periods, + sea_state_duration, + method="PCA", + bin_size=250, +): """ Sample a sea state between contours of specified return periods. @@ -1585,9 +1742,9 @@ def samples_full_seastate(x1, x2, points_per_interval, return_periods, Parameters ---------- - x1: np.array + x1: list, np.ndarray, pd.Series, xr.DataArray Component 1 data - x2: np.array + x2: list, np.ndarray, pd.Series, xr.DataArray Component 2 data points_per_interval : int Number of sample points to be calculated per contour interval. @@ -1612,21 +1769,29 @@ def samples_full_seastate(x1, x2, points_per_interval, return_periods, Vector of probabilistic weights for each sampling point to be used in risk calculations. """ - if method != 'PCA': + if method != "PCA": raise NotImplementedError( - "Full sea state sampling is currently only implemented using " + - "the 'PCA' method.") - assert isinstance(x1, np.ndarray), 'x1 must be of type np.ndarray' - assert isinstance(x2, np.ndarray), 'x2 must be of type np.ndarray' - assert isinstance(points_per_interval, - int), 'points_per_interval must be of int' - assert isinstance(return_periods, np.ndarray - ), 'return_periods must be of type np.ndarray' - assert isinstance(sea_state_duration, (int, float) - ), 'sea_state_duration must be of int or float' - assert isinstance(method, (str, list) - ), 'method must be of type string or list' - assert isinstance(bin_size, int), 'bin_size must be of int' + "Full sea state sampling is currently only implemented using " + + "the 'PCA' method." + ) + x1 = to_numeric_array(x1, "x1") + x2 = to_numeric_array(x2, "x2") + if not isinstance(points_per_interval, int): + raise TypeError( + f"points_per_interval must be of int. Got: {type(points_per_interval)}" + ) + if not isinstance(return_periods, np.ndarray): + raise TypeError( + f"return_periods must be of type np.ndarray. Got: {type(return_periods)}" + ) + if not isinstance(sea_state_duration, (int, float)): + raise TypeError( + f"sea_state_duration must be of int or float. Got: {type(sea_state_duration)}" + ) + if not isinstance(method, (str, list)): + raise TypeError(f"method must be of type string or list. Got: {type(method)}") + if not isinstance(bin_size, int): + raise TypeError(f"bin_size must be of int. Got: {type(bin_size)}") pca_fit = _principal_component_analysis(x1, x2, bin_size) @@ -1636,31 +1801,31 @@ def samples_full_seastate(x1, x2, points_per_interval, return_periods, h_zeroline = np.zeros(len(t_zeroline)) # Transform zero line into principal component space - coeff = pca_fit['principal_axes'] - shift = pca_fit['shift'] - comp_zeroline = np.dot(np.transpose(np.vstack([h_zeroline, t_zeroline])), - coeff) + coeff = pca_fit["principal_axes"] + shift = pca_fit["shift"] + comp_zeroline = np.dot(np.transpose(np.vstack([h_zeroline, t_zeroline])), coeff) comp_zeroline[:, 1] = comp_zeroline[:, 1] + shift - comp1 = pca_fit['x1_fit'] + comp1 = pca_fit["x1_fit"] c1_zeroline_prob = stats.invgauss.cdf( - comp_zeroline[:, 0], mu=comp1['mu'], loc=0, scale=comp1['scale']) + comp_zeroline[:, 0], mu=comp1["mu"], loc=0, scale=comp1["scale"] + ) - mu_slope = pca_fit['mu_fit'].slope - mu_intercept = pca_fit['mu_fit'].intercept + mu_slope = pca_fit["mu_fit"].slope + mu_intercept = pca_fit["mu_fit"].intercept mu_zeroline = mu_slope * comp_zeroline[:, 0] + mu_intercept - sigma_polynomial_coeffcients = pca_fit['sigma_fit'].x - sigma_zeroline = np.polyval( - sigma_polynomial_coeffcients, comp_zeroline[:, 0]) - c2_zeroline_prob = stats.norm.cdf(comp_zeroline[:, 1], - loc=mu_zeroline, scale=sigma_zeroline) + sigma_polynomial_coeffcients = pca_fit["sigma_fit"].x + sigma_zeroline = np.polyval(sigma_polynomial_coeffcients, comp_zeroline[:, 0]) + c2_zeroline_prob = stats.norm.cdf( + comp_zeroline[:, 1], loc=mu_zeroline, scale=sigma_zeroline + ) c1_normzeroline = stats.norm.ppf(c1_zeroline_prob, 0, 1) c2_normzeroline = stats.norm.ppf(c2_zeroline_prob, 0, 1) return_periods = np.asarray(return_periods) - contour_probs = 1 / (365*24*60*60/sea_state_duration * return_periods) + contour_probs = 1 / (365 * 24 * 60 * 60 / sea_state_duration * return_periods) # Reliability contour generation # Calculate reliability @@ -1686,12 +1851,11 @@ def samples_full_seastate(x1, x2, points_per_interval, return_periods, # Transform to polar coordinates theta_zeroline = np.arctan2(c2_normzeroline, c1_normzeroline) rho_zeroline = np.sqrt(c1_normzeroline**2 + c2_normzeroline**2) - theta_zeroline[theta_zeroline < 0] = theta_zeroline[ - theta_zeroline < 0] + 2 * np.pi + theta_zeroline[theta_zeroline < 0] = theta_zeroline[theta_zeroline < 0] + 2 * np.pi sample_alpha, sample_beta, weight_points = _generate_sample_data( - beta_lines, rho_zeroline, theta_zeroline, points_per_interval, - contour_probs) + beta_lines, rho_zeroline, theta_zeroline, points_per_interval, contour_probs + ) # Sample transformation to principal component space sample_u1 = sample_beta * np.cos(sample_alpha) @@ -1699,19 +1863,22 @@ def samples_full_seastate(x1, x2, points_per_interval, return_periods, comp1_sample = stats.invgauss.ppf( stats.norm.cdf(sample_u1, loc=0, scale=1), - mu=comp1['mu'], loc=0, scale=comp1['scale']) + mu=comp1["mu"], + loc=0, + scale=comp1["scale"], + ) mu_sample = mu_slope * comp1_sample + mu_intercept # Calculate sigma values at each point on the circle sigma_sample = np.polyval(sigma_polynomial_coeffcients, comp1_sample) # Use calculated mu and sigma values to calculate C2 along the contour - comp2_sample = stats.norm.ppf(stats.norm.cdf(sample_u2, loc=0, scale=1), - loc=mu_sample, scale=sigma_sample) + comp2_sample = stats.norm.ppf( + stats.norm.cdf(sample_u2, loc=0, scale=1), loc=mu_sample, scale=sigma_sample + ) # Sample transformation into Hs-T space - h_sample, t_sample = _princomp_inv( - comp1_sample, comp2_sample, coeff, shift) + h_sample, t_sample = _princomp_inv(comp1_sample, comp2_sample, coeff, shift) return h_sample, t_sample, weight_points @@ -1723,65 +1890,63 @@ def samples_contour(t_samples, t_contour, hs_contour): Parameters ---------- - t_samples : np.array + t_samples : list, np.ndarray, pd.Series, xr.DataArray Points for sampling along return contour - t_contour : np.array + t_contour : list, np.ndarray, pd.Series, xr.DataArray T values along contour - hs_contour : np.array + hs_contour : list, np.ndarray, pd.Series, xr.DataArray Hs values along contour Returns ------- - hs_samples : nparray + hs_samples : np.ndarray points sampled along return contour """ - assert isinstance( - t_samples, np.ndarray), 't_samples must be of type np.ndarray' - assert isinstance( - t_contour, np.ndarray), 't_contour must be of type np.ndarray' - assert isinstance( - hs_contour, np.ndarray), 'hs_contour must be of type np.ndarray' - - #finds minimum and maximum energy period values + t_samples = to_numeric_array(t_samples, "t_samples") + t_contour = to_numeric_array(t_contour, "t_contour") + hs_contour = to_numeric_array(hs_contour, "hs_contour") + + # finds minimum and maximum energy period values amin = np.argmin(t_contour) amax = np.argmax(t_contour) aamin = np.min([amin, amax]) aamax = np.max([amin, amax]) - #finds points along the contour + # finds points along the contour w1 = hs_contour[aamin:aamax] w2 = np.concatenate((hs_contour[aamax:], hs_contour[:aamin])) - if (np.max(w1) > np.max(w2)): + if np.max(w1) > np.max(w2): x1 = t_contour[aamin:aamax] y1 = hs_contour[aamin:aamax] else: x1 = np.concatenate((t_contour[aamax:], t_contour[:aamin])) y1 = np.concatenate((hs_contour[aamax:], hs_contour[:aamin])) - #sorts data based on the max and min energy period values + # sorts data based on the max and min energy period values ms = np.argsort(x1) x = x1[ms] y = y1[ms] - #interpolates the sorted data + # interpolates the sorted data si = interp.interp1d(x, y) - #finds the wave height based on the user specified energy period values + # finds the wave height based on the user specified energy period values hs_samples = si(t_samples) return hs_samples -def _generate_sample_data(beta_lines, rho_zeroline, theta_zeroline, - points_per_interval, contour_probs): +def _generate_sample_data( + beta_lines, rho_zeroline, theta_zeroline, points_per_interval, contour_probs +): """ Calculate radius, angle, and weight for each sample point Parameters ---------- - beta_lines: np.array + beta_lines: list, np.ndarray, pd.Series, xr.DataArray Array of mu fitting function parameters. - rho_zeroline: np.array + rho_zeroline: list, np.ndarray, pd.Series, xr.DataArray Array of radii - theta_zeroline: np.array + theta_zeroline: list, np.ndarray, pd.Series, xr.DataArray points_per_interval: int - contour_probs: np.array + contour_probs: list, np.ndarray, pd.Series, xr.DataArray Returns ------- @@ -1792,16 +1957,14 @@ def _generate_sample_data(beta_lines, rho_zeroline, theta_zeroline, weight_points: np.array Array of weights for each point. """ - assert isinstance( - beta_lines, np.ndarray), 'beta_lines must be of type np.ndarray' - assert isinstance( - rho_zeroline, np.ndarray), 'rho_zeroline must be of type np.ndarray' - assert isinstance(theta_zeroline, np.ndarray - ), 'theta_zeroline must be of type np.ndarray' - assert isinstance(points_per_interval, int - ), 'points_per_interval must be of type int' - assert isinstance( - contour_probs, np.ndarray), 'contour_probs must be of type np.ndarray' + beta_lines = to_numeric_array(beta_lines, "beta_lines") + rho_zeroline = to_numeric_array(rho_zeroline, "rho_zeroline") + theta_zeroline = to_numeric_array(theta_zeroline, "theta_zeroline") + contour_probs = to_numeric_array(contour_probs, "contour_probs") + if not isinstance(points_per_interval, int): + raise TypeError( + f"points_per_interval must be of type int. Got: {type(points_per_interval)}" + ) num_samples = (len(beta_lines) - 1) * points_per_interval alpha_bounds = np.zeros((len(beta_lines) - 1, 2)) @@ -1822,8 +1985,10 @@ def _generate_sample_data(beta_lines, rho_zeroline, theta_zeroline, left = np.amin(np.where(r < 0)) right = np.amax(np.where(r < 0)) # Save sampling bounds - alpha_bounds[i, :] = (theta_zeroline[left], theta_zeroline[right] - - 2 * np.pi) + alpha_bounds[i, :] = ( + theta_zeroline[left], + theta_zeroline[right] - 2 * np.pi, + ) else: alpha_bounds[i, :] = np.array((0, 2 * np.pi)) # Find the angular distance that will be covered by sampling the disc @@ -1834,23 +1999,27 @@ def _generate_sample_data(beta_lines, rho_zeroline, theta_zeroline, # areas to be sampled alpha[i, :] = np.arange( min(alpha_bounds[i]), - max(alpha_bounds[i]) + 0.1, angular_dist[i] / points_per_interval) + max(alpha_bounds[i]) + 0.1, + angular_dist[i] / points_per_interval, + ) # Calculate the weight of each point sampled per contour - weight[i] = ((contour_probs[i] - contour_probs[i + 1]) * - angular_ratio[i] / points_per_interval) + weight[i] = ( + (contour_probs[i] - contour_probs[i + 1]) + * angular_ratio[i] + / points_per_interval + ) for j in range(points_per_interval): # Generate sample radius by adding a randomly sampled distance to # the 'disc' lower bound - sample_beta[(i) * points_per_interval + j] = ( - beta_lines[i] + - np.random.random_sample() * (beta_lines[i + 1] - beta_lines[i]) - ) + sample_beta[(i) * points_per_interval + j] = beta_lines[ + i + ] + np.random.random_sample() * (beta_lines[i + 1] - beta_lines[i]) # Generate sample angle by adding a randomly sampled distance to # the lower bound of the angle defining a discrete portion of the # 'disc' - sample_alpha[(i) * points_per_interval + j] = ( - alpha[i, j] + - np.random.random_sample() * (alpha[i, j + 1] - alpha[i, j])) + sample_alpha[(i) * points_per_interval + j] = alpha[ + i, j + ] + np.random.random_sample() * (alpha[i, j + 1] - alpha[i, j]) # Save the weight for each sample point weight_points[i * points_per_interval + j] = weight[i] @@ -1880,20 +2049,28 @@ def _princomp_inv(princip_data1, princip_data2, coeff, shift): original2: np.array T values following rotation from principal component space. """ - assert isinstance( - princip_data1, np.ndarray), 'princip_data1 must be of type np.ndarray' - assert isinstance( - princip_data2, np.ndarray), 'princip_data2 must be of type np.ndarray' - assert isinstance(coeff, np.ndarray), 'coeff must be of type np.ndarray' - assert isinstance(shift, float), 'float must be of type float' + if not isinstance(princip_data1, np.ndarray): + raise TypeError( + f"princip_data1 must be of type np.ndarray. Got: {type(princip_data1)}" + ) + if not isinstance(princip_data2, np.ndarray): + raise TypeError( + f"princip_data2 must be of type np.ndarray. Got: {type(princip_data2)}" + ) + if not isinstance(coeff, np.ndarray): + raise TypeError(f"coeff must be of type np.ndarray. Got: {type(coeff)}") + if not isinstance(shift, float): + raise TypeError(f"shift must be of type float. Got: {type(shift)}") original1 = np.zeros(len(princip_data1)) original2 = np.zeros(len(princip_data1)) for i in range(len(princip_data2)): - original1[i] = (((coeff[0, 1] * (princip_data2[i] - shift)) + - (coeff[0, 0] * princip_data1[i])) / (coeff[0, 1]**2 + - coeff[0, 0]**2)) - original2[i] = (((coeff[0, 1] * princip_data1[i]) - - (coeff[0, 0] * (princip_data2[i] - shift))) / - (coeff[0, 1]**2 + coeff[0, 0]**2)) + original1[i] = ( + (coeff[0, 1] * (princip_data2[i] - shift)) + + (coeff[0, 0] * princip_data1[i]) + ) / (coeff[0, 1] ** 2 + coeff[0, 0] ** 2) + original2[i] = ( + (coeff[0, 1] * princip_data1[i]) + - (coeff[0, 0] * (princip_data2[i] - shift)) + ) / (coeff[0, 1] ** 2 + coeff[0, 0] ** 2) return original1, original2 diff --git a/mhkit/wave/graphics.py b/mhkit/wave/graphics.py index afb24016a..ba8e536ff 100644 --- a/mhkit/wave/graphics.py +++ b/mhkit/wave/graphics.py @@ -1,6 +1,6 @@ - from mhkit.river.resource import exceedance_probability from mhkit.river.graphics import _xy_plot +from mhkit.utils import convert_to_dataset import matplotlib.patheffects as pe import matplotlib.pyplot as plt from matplotlib import gridspec @@ -17,7 +17,7 @@ def plot_spectrum(S, ax=None): Parameters ------------ - S: pandas DataFrame + S: pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset Spectral density [m^2/Hz] indexed frequency [Hz] ax : matplotlib axes object Axes for plotting. If None, then a new figure is created. @@ -26,12 +26,19 @@ def plot_spectrum(S, ax=None): --------- ax : matplotlib pyplot axes """ - assert isinstance(S, pd.DataFrame), 'S must be of type pd.DataFrame' - - f = S.index - for key in S.keys(): - ax = _xy_plot(f*2*np.pi, S[key]/(2*np.pi), fmt='-', xlabel='omega [rad/s]', - ylabel='Spectral density [m$^2$s/rad]', ax=ax) + S = convert_to_dataset(S) + + frequency_dimension = list(S.dims)[0] + f = S[frequency_dimension] + for var in S.data_vars: + ax = _xy_plot( + f * 2 * np.pi, + S[var] / (2 * np.pi), + fmt="-", + xlabel="omega [rad/s]", + ylabel="Spectral density [m$^2$s/rad]", + ax=ax, + ) return ax @@ -42,7 +49,7 @@ def plot_elevation_timeseries(eta, ax=None): Parameters ---------- - eta: pandas DataFrame + eta: pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset Wave surface elevation [m] indexed by time [datetime or s] ax : matplotlib axes object Axes for plotting. If None, then a new figure is created. @@ -51,30 +58,24 @@ def plot_elevation_timeseries(eta, ax=None): ------- ax : matplotlib pyplot axes """ + eta = convert_to_dataset(eta) - assert isinstance(eta, pd.DataFrame), 'eta must be of type pd.DataFrame' + time_dimension = list(eta.dims)[0] + t = eta[time_dimension] - for key in eta.keys(): - ax = _xy_plot(eta.index, eta[key], fmt='-', xlabel='Time', - ylabel='$\eta$ [m]', ax=ax) + for var in eta.data_vars: + ax = _xy_plot(t, eta[var], fmt="-", xlabel="Time", ylabel="$\eta$ [m]", ax=ax) return ax -def plot_matrix( - M, - xlabel='Te', - ylabel='Hm0', - zlabel=None, - show_values=True, - ax=None - ): +def plot_matrix(M, xlabel="Te", ylabel="Hm0", zlabel=None, show_values=True, ax=None): """ Plots values in the matrix as a scatter diagram Parameters ------------ - M: pandas DataFrame + M: pandas Series, pandas DataFrame, xarray DataArray Matrix with numeric labels for x and y axis, and numeric entries. An example would be the average capture length matrix generated by mhkit.device.wave, or something similar. @@ -93,13 +94,18 @@ def plot_matrix( ax : matplotlib pyplot axes """ - assert isinstance(M, pd.DataFrame), 'M must be of type pd.DataFrame' + try: + M = pd.DataFrame(M) + except: + pass + if not isinstance(M, pd.DataFrame): + raise TypeError(f"M must be of type pd.DataFrame. Got: {type(M)}") if ax is None: plt.figure() ax = plt.gca() - im = ax.imshow(M, origin='lower', aspect='auto') + im = ax.imshow(M, origin="lower", aspect="auto") # Add colorbar cbar = plt.colorbar(im) @@ -114,8 +120,10 @@ def plot_matrix( if show_values: for i, col in enumerate(M.columns): for j, index in enumerate(M.index): - if not np.isnan(M.loc[index,col]): - ax.text(i, j, format(M.loc[index,col], '.2f'), ha="center", va="center") + if not np.isnan(M.loc[index, col]): + ax.text( + i, j, format(M.loc[index, col], ".2f"), ha="center", va="center" + ) # Reset x and y ticks ax.set_xticks(np.arange(len(M.columns))) @@ -162,11 +170,11 @@ def plot_chakrabarti(H, lambda_w, D, ax=None): Parameters ---------- - H: float or numpy array or pandas Series + H: int, float, numpy array, pandas Series, or xarray DataArray Wave height [m] - lambda_w: float or numpy array or pandas Series + lambda_w: int, float, numpy array, pandas Series, or xarray DataArray Wave length [m] - D: float or numpy array or pandas Series + D: int, float, numpy array, pandas Series, or xarray DataArray Characteristic length [m] ax : matplotlib axes object (optional) Axes for plotting. If None, then a new figure is created. @@ -175,46 +183,57 @@ def plot_chakrabarti(H, lambda_w, D, ax=None): ------- ax : matplotlib pyplot axes """ - assert isinstance(H, (np.ndarray, float, int, np.int64,pd.Series)), \ - 'H must be a real numeric type' - assert isinstance(lambda_w, (np.ndarray, float, int, np.int64,pd.Series)), \ - 'lambda_w must be a real numeric type' - assert isinstance(D, (np.ndarray, float, int, np.int64,pd.Series)), \ - 'D must be a real numeric type' - - if any([(isinstance(H, np.ndarray) or isinstance(H, pd.Series)), \ - (isinstance(lambda_w, np.ndarray) or isinstance(H, pd.Series)), \ - (isinstance(D, np.ndarray) or isinstance(H, pd.Series))\ - ]): - errMsg = 'D, H, and lambda_w must be same shape' + if not isinstance(H, (np.ndarray, float, int, np.int64, pd.Series, xr.DataArray)): + raise TypeError( + f"H must be of type float, int, np.int64, np.ndarray, pd.Series, or xr.DataArray. Got: {type(H)}" + ) + if not isinstance( + lambda_w, (np.ndarray, float, int, np.int64, pd.Series, xr.DataArray) + ): + raise TypeError( + f"lambda_w must be of type float, int, np.int64, np.ndarray, pd.Series, or xr.DataArray. Got: {type(lambda_w)}" + ) + if not isinstance(D, (np.ndarray, float, int, np.int64, pd.Series, xr.DataArray)): + raise TypeError( + f"D must be of type float, int, np.int64, np.ndarray, pd.Series, or xr.DataArray. Got: {type(D)}" + ) + + if any( + [ + isinstance(H, (np.ndarray, pd.Series, xr.DataArray)), + isinstance(lambda_w, (np.ndarray, pd.Series, xr.DataArray)), + isinstance(D, (np.ndarray, pd.Series, xr.DataArray)), + ] + ): n_H = H.squeeze().shape n_lambda_w = lambda_w.squeeze().shape n_D = D.squeeze().shape - assert n_H == n_lambda_w and n_H == n_D, errMsg + if not (n_H == n_lambda_w and n_H == n_D): + raise ValueError("D, H, and lambda_w must be same shape") if isinstance(H, np.ndarray): - mvals = pd.DataFrame(H.reshape(len(H),1), columns=['H']) - mvals['lambda_w'] = lambda_w - mvals['D'] = D - elif isinstance(H, pd.Series): + mvals = pd.DataFrame(H.reshape(len(H), 1), columns=["H"]) + mvals["lambda_w"] = lambda_w + mvals["D"] = D + elif isinstance(H, (pd.Series, xr.DataArray)): mvals = pd.DataFrame(H) - mvals['lambda_w'] = lambda_w - mvals['D'] = D + mvals["lambda_w"] = lambda_w + mvals["D"] = D else: H = np.array([H]) lambda_w = np.array([lambda_w]) D = np.array([D]) - mvals = pd.DataFrame(H.reshape(len(H),1), columns=['H']) - mvals['lambda_w'] = lambda_w - mvals['D'] = D + mvals = pd.DataFrame(H.reshape(len(H), 1), columns=["H"]) + mvals["lambda_w"] = lambda_w + mvals["D"] = D if ax is None: plt.figure() ax = plt.gca() - ax.set_xscale('log') - ax.set_yscale('log') + ax.set_xscale("log") + ax.set_yscale("log") for index, row in mvals.iterrows(): H = row.H @@ -222,103 +241,140 @@ def plot_chakrabarti(H, lambda_w, D, ax=None): lambda_w = row.lambda_w KC = H / D - Diffraction = np.pi*D / lambda_w - label = f'$H$ = {H:g}, $\lambda_w$ = {lambda_w:g}, $D$ = {D:g}' - ax.plot(Diffraction, KC, 'o', label=label) - - if np.any(KC>=10 or KC<=.02) or np.any(Diffraction>=50) or \ - np.any(lambda_w >= 1000) : - ax.autoscale(enable=True, axis='both', tight=True) + Diffraction = np.pi * D / lambda_w + label = f"$H$ = {H:g}, $\lambda_w$ = {lambda_w:g}, $D$ = {D:g}" + ax.plot(Diffraction, KC, "o", label=label) + + if ( + np.any(KC >= 10 or KC <= 0.02) + or np.any(Diffraction >= 50) + or np.any(lambda_w >= 1000) + ): + ax.autoscale(enable=True, axis="both", tight=True) else: ax.set_xlim((0.01, 10)) ax.set_ylim((0.01, 50)) graphScale = list(ax.get_xlim()) - if graphScale[0] >= .01: - graphScale[0] =.01 + if graphScale[0] >= 0.01: + graphScale[0] = 0.01 # deep water breaking limit (H/lambda_w = 0.14) - x = np.logspace(1,np.log10(graphScale[0]), 2) + x = np.logspace(1, np.log10(graphScale[0]), 2) y_breaking = 0.14 * np.pi / x - ax.plot(x, y_breaking, 'k-') + ax.plot(x, y_breaking, "k-") graphScale = list(ax.get_xlim()) - ax.text(1, 7, - 'wave\nbreaking\n$H/\lambda_w > 0.14$', - ha='center', va='center', fontstyle='italic', - fontsize='small',clip_on='True') + ax.text( + 1, + 7, + "wave\nbreaking\n$H/\lambda_w > 0.14$", + ha="center", + va="center", + fontstyle="italic", + fontsize="small", + clip_on="True", + ) # upper bound of low drag region ldv = 20 - y_small_drag = 20*np.ones_like(graphScale) + y_small_drag = 20 * np.ones_like(graphScale) graphScale[1] = 0.14 * np.pi / ldv - ax.plot(graphScale, y_small_drag,'k--') - ax.text(0.0125, 30, - 'drag', - ha='center', va='top', fontstyle='italic', - fontsize='small',clip_on='True') + ax.plot(graphScale, y_small_drag, "k--") + ax.text( + 0.0125, + 30, + "drag", + ha="center", + va="top", + fontstyle="italic", + fontsize="small", + clip_on="True", + ) # upper bound of small drag region sdv = 1.5 - y_small_drag = sdv*np.ones_like(graphScale) + y_small_drag = sdv * np.ones_like(graphScale) graphScale[1] = 0.14 * np.pi / sdv - ax.plot(graphScale, y_small_drag,'k--') - ax.text(0.02, 7, - 'inertia \n& drag', - ha='center', va='center', fontstyle='italic', - fontsize='small',clip_on='True') + ax.plot(graphScale, y_small_drag, "k--") + ax.text( + 0.02, + 7, + "inertia \n& drag", + ha="center", + va="center", + fontstyle="italic", + fontsize="small", + clip_on="True", + ) # upper bound of negligible drag region ndv = 0.25 graphScale[1] = 0.14 * np.pi / ndv - y_small_drag = ndv*np.ones_like(graphScale) - ax.plot(graphScale, y_small_drag,'k--') - ax.text(8e-2, 0.7, - 'large\ninertia', - ha='center', va='center', fontstyle='italic', - fontsize='small',clip_on='True') - - - ax.text(8e-2, 6e-2, - 'all\ninertia', - ha='center', va='center', fontstyle='italic', - fontsize='small', clip_on='True') + y_small_drag = ndv * np.ones_like(graphScale) + ax.plot(graphScale, y_small_drag, "k--") + ax.text( + 8e-2, + 0.7, + "large\ninertia", + ha="center", + va="center", + fontstyle="italic", + fontsize="small", + clip_on="True", + ) + + ax.text( + 8e-2, + 6e-2, + "all\ninertia", + ha="center", + va="center", + fontstyle="italic", + fontsize="small", + clip_on="True", + ) # left bound of diffraction region drv = 0.5 graphScale = list(ax.get_ylim()) graphScale[1] = 0.14 * np.pi / drv - x_diff_reg = drv*np.ones_like(graphScale) - ax.plot(x_diff_reg, graphScale, 'k--') - ax.text(2, 6e-2, - 'diffraction', - ha='center', va='center', fontstyle='italic', - fontsize='small',clip_on='True') - + x_diff_reg = drv * np.ones_like(graphScale) + ax.plot(x_diff_reg, graphScale, "k--") + ax.text( + 2, + 6e-2, + "diffraction", + ha="center", + va="center", + fontstyle="italic", + fontsize="small", + clip_on="True", + ) if index > 0: - ax.legend(fontsize='xx-small', ncol=2) + ax.legend(fontsize="xx-small", ncol=2) - ax.set_xlabel('Diffraction parameter, $\\frac{\\pi D}{\\lambda_w}$') - ax.set_ylabel('KC parameter, $\\frac{H}{D}$') + ax.set_xlabel("Diffraction parameter, $\\frac{\\pi D}{\\lambda_w}$") + ax.set_ylabel("KC parameter, $\\frac{H}{D}$") plt.tight_layout() def plot_environmental_contour(x1, x2, x1_contour, x2_contour, **kwargs): - ''' + """ Plots an overlay of the x1 and x2 variables to the calculate environmental contours. - + Parameters ---------- - x1: numpy array + x1: list, np.ndarray, pd.Series, xr.DataArray x-axis data - x2: numpy array + x2: list, np.ndarray, pd.Series, xr.DataArray x-axis data - x1_contour: numpy array or list + x1_contour: list, np.ndarray, pd.Series, xr.DataArray Calculated x1 contour values - x2_contour: numpy array or list + x2_contour: list, np.ndarray, pd.Series, xr.DataArray Calculated x2 contour values **kwargs : optional x_label: string (optional) @@ -336,74 +392,105 @@ def plot_environmental_contour(x1, x2, x1_contour, x2_contour, **kwargs): Default None. markers: string string or list of strings to use as marker types - + Returns ------- ax : matplotlib pyplot axes - ''' - try: x1 = x1.values - except: pass - try: x2 = x2.values - except: pass - assert isinstance(x1, np.ndarray), 'x1 must be of type np.ndarray' - assert isinstance(x2, np.ndarray), 'x2 must be of type np.ndarray' - assert isinstance(x1_contour, (np.ndarray,list)), ('x1_contour must be of ' - 'type np.ndarray or list') - assert isinstance(x2_contour, (np.ndarray,list)), ('x2_contour must be of ' - 'type np.ndarray or list') + """ + try: + x1 = x1.values + except: + pass + try: + x2 = x2.values + except: + pass + if not isinstance(x1, np.ndarray): + raise TypeError(f"x1 must be of type np.ndarray. Got: {type(x1)}") + if not isinstance(x2, np.ndarray): + raise TypeError(f"x2 must be of type np.ndarray. Got: {type(x2)}") + try: + x1_contour = x1_contour.values + except: + pass + try: + x2_contour = x2_contour.values + except: + pass + if not isinstance(x1_contour, (np.ndarray, list)): + raise TypeError( + f"x1_contour must be of type np.ndarray or list. Got: {type(x1_contour)}" + ) + if not isinstance(x2_contour, (np.ndarray, list)): + raise TypeError( + f"x2_contour must be of type np.ndarray or list. Got: {type(x2_contour)}" + ) + x_label = kwargs.get("x_label", None) y_label = kwargs.get("y_label", None) - data_label=kwargs.get("data_label", None) - contour_label=kwargs.get("contour_label", None) - ax=kwargs.get("ax", None) - markers=kwargs.get("markers", '-') - assert isinstance(data_label, (str,type(None))), 'data_label must be of type str' - assert isinstance(contour_label, (str,list, type(None))), ('contour_label be of ' - 'type str') - - if isinstance(markers, list): - assert all( [isinstance(marker, (str)) for marker in markers] ) - elif isinstance(markers, str): - markers=[markers] - assert all( [isinstance(marker, (str)) for marker in markers] ) - else: - assert isinstance(markers, (str,list)), ('markers must be of type str or list of strings') + data_label = kwargs.get("data_label", None) + contour_label = kwargs.get("contour_label", None) + ax = kwargs.get("ax", None) + markers = kwargs.get("markers", "-") + if not isinstance(data_label, (str, type(None))): + raise TypeError( + f"If specified, data_label must be of type str. Got: {type(data_label)}" + ) + if not isinstance(contour_label, (str, list, type(None))): + raise TypeError( + f"If specified, contour_label be of type str. Got: {type(contour_label)}" + ) - assert len(x2_contour) == len(x1_contour), ('contour must be of' - f'equal dimesion got {len(x2_contour)} and {len(x1_contour)}') + if isinstance(markers, str): + markers = [markers] + if not isinstance(markers, list) or not all( + [isinstance(marker, (str)) for marker in markers] + ): + raise TypeError( + f"markers must be of type str or list of strings. Got: {markers}" + ) + if not len(x2_contour) == len(x1_contour): + raise ValueError( + f"contour must be of equal dimension got {len(x2_contour)} and {len(x1_contour)}" + ) if isinstance(x1_contour, np.ndarray): - N_contours=1 - x2_contour = [x2_contour] + N_contours = 1 + x2_contour = [x2_contour] x1_contour = [x1_contour] elif isinstance(x1_contour, list): - N_contours=len(x1_contour) + N_contours = len(x1_contour) if contour_label != None: if isinstance(contour_label, str): contour_label = [contour_label] N_c_labels = len(contour_label) - assert N_c_labels == N_contours, ('If specified, the ' - 'number of contour lables must be equal to number the ' - f'number of contour years. Got {N_c_labels} and {N_contours}') + if not N_c_labels == N_contours: + raise ValueError( + "If specified, the number of contour labels must" + " be equal to number the number of contour years." + f" Got: {N_c_labels} and {N_contours}" + ) else: contour_label = [None] * N_contours - if len(markers)==1: - markers=markers*N_contours - assert len(markers) == N_contours, ('Markers must be same length' - f'as N contours specified. Got: {len(markers)} and {len(x1_contour)}') + if len(markers) == 1: + markers = markers * N_contours + if not len(markers) == N_contours: + raise ValueError( + "Markers must be same length as N contours specified." + f"Got: {len(markers)} and {len(x1_contour)}" + ) for i in range(N_contours): contour1 = np.array(x1_contour[i]).T contour2 = np.array(x2_contour[i]).T - ax = _xy_plot(contour1, contour2, markers[i], - label=contour_label[i], ax=ax) + ax = _xy_plot(contour1, contour2, markers[i], label=contour_label[i], ax=ax) - plt.plot(x1, x2, 'bo', alpha=0.1, label=data_label) + plt.plot(x1, x2, "bo", alpha=0.1, label=data_label) - plt.legend(loc='lower right') + plt.legend(loc="lower right") plt.xlabel(x_label) plt.ylabel(y_label) plt.tight_layout() @@ -411,16 +498,16 @@ def plot_environmental_contour(x1, x2, x1_contour, x2_contour, **kwargs): def plot_avg_annual_energy_matrix( - Hm0, - Te, - J, - time_index=None, - Hm0_bin_size=None, - Te_bin_size=None, - Hm0_edges=None, - Te_edges=None - ): - ''' + Hm0, + Te, + J, + time_index=None, + Hm0_bin_size=None, + Te_bin_size=None, + Hm0_edges=None, + Te_edges=None, +): + """ Creates an average annual energy matrix with frequency of occurance. Parameters @@ -446,51 +533,53 @@ def plot_avg_annual_energy_matrix( ------- fig: Figure Average annual energy table plot - ''' + """ fig = plt.figure() if isinstance(time_index, type(None)): data = pd.DataFrame(dict(Hm0=Hm0, Te=Te, J=J)) else: - data= pd.DataFrame(dict(Hm0=Hm0, Te=Te, J=J), index=time_index) - years=data.index.year.unique() + data = pd.DataFrame(dict(Hm0=Hm0, Te=Te, J=J), index=time_index) + years = data.index.year.unique() if isinstance(Hm0_edges, type(None)): Hm0_max = data.Hm0.max() - Hm0_edges = np.arange(0,Hm0_max+Hm0_bin_size,Hm0_bin_size) + Hm0_edges = np.arange(0, Hm0_max + Hm0_bin_size, Hm0_bin_size) if isinstance(Te_edges, type(None)): Te_max = data.Te.max() - Te_edges = np.arange(0, Te_max+Te_bin_size,Te_bin_size) + Te_edges = np.arange(0, Te_max + Te_bin_size, Te_bin_size) # Dict for number of hours each sea state occurs - hist_counts={} - hist_J={} + hist_counts = {} + hist_J = {} # Create hist of counts, and weghted by J for each year for year in years: year_data = data.loc[str(year)].copy(deep=True) # Get the counts of each bin - counts, xedges, yedges= np.histogram2d( + counts, xedges, yedges = np.histogram2d( year_data.Te, year_data.Hm0, - bins = (Te_edges,Hm0_edges), + bins=(Te_edges, Hm0_edges), ) # Get centers for number of counts plot location - xcenters = xedges[:-1]+ np.diff(xedges) - ycenters = yedges[:-1]+ np.diff(yedges) + xcenters = xedges[:-1] + np.diff(xedges) + ycenters = yedges[:-1] + np.diff(yedges) - year_data['xbins'] = np.digitize(year_data.Te, xcenters) - year_data['ybins'] = np.digitize(year_data.Hm0, ycenters) + year_data["xbins"] = np.digitize(year_data.Te, xcenters) + year_data["ybins"] = np.digitize(year_data.Hm0, ycenters) total_year_J = year_data.J.sum() - H=counts.copy() + H = counts.copy() for i in range(len(xcenters)): for j in range(len(ycenters)): - bin_J = year_data[(year_data.xbins == i) & (year_data.ybins == j)].J.sum() + bin_J = year_data[ + (year_data.xbins == i) & (year_data.ybins == j) + ].J.sum() H[i][j] = bin_J / total_year_J # Save in results dict @@ -498,70 +587,82 @@ def plot_avg_annual_energy_matrix( hist_J[year] = H # Calculate avg annual - avg_annual_counts_hist = sum(hist_counts.values())/len(years) - avg_annual_J_hist = sum(hist_J.values())/len(years) + avg_annual_counts_hist = sum(hist_counts.values()) / len(years) + avg_annual_J_hist = sum(hist_J.values()) / len(years) # Create a mask of non-zero weights to hide from imshow - Hmasked = np.ma.masked_where(~(avg_annual_J_hist>0),avg_annual_J_hist) - plt.imshow(Hmasked.T, interpolation = 'none', vmin = 0.005, origin='lower', aspect='auto', - extent=[xedges[0], xedges[-1], yedges[0], yedges[-1]]) + Hmasked = np.ma.masked_where(~(avg_annual_J_hist > 0), avg_annual_J_hist) + plt.imshow( + Hmasked.T, + interpolation="none", + vmin=0.005, + origin="lower", + aspect="auto", + extent=[xedges[0], xedges[-1], yedges[0], yedges[-1]], + ) # Plot number of counts as text on the hist of annual avg J for xi in range(len(xcenters)): for yi in range(len(ycenters)): if avg_annual_counts_hist[xi][yi] != 0: plt.text( - xedges[xi], - yedges[yi], - int(np.ceil(avg_annual_counts_hist[xi][yi])), - fontsize=10, - color='white', - path_effects=[pe.withStroke(linewidth=1, foreground="k")] - ) - plt.xlabel('Wave Energy Period (s)') - plt.ylabel('Significant Wave Height (m)') - - cbar=plt.colorbar() - cbar.set_label('Mean Normalized Annual Energy') + xedges[xi], + yedges[yi], + int(np.ceil(avg_annual_counts_hist[xi][yi])), + fontsize=10, + color="white", + path_effects=[pe.withStroke(linewidth=1, foreground="k")], + ) + plt.xlabel("Wave Energy Period (s)") + plt.ylabel("Significant Wave Height (m)") + + cbar = plt.colorbar() + cbar.set_label("Mean Normalized Annual Energy") plt.tight_layout() return fig def monthly_cumulative_distribution(J): - ''' + """ Creates a cumulative distribution of energy flux as described in IEC TS 62600-101. Parameters ---------- - J: Series + J: pd.Series, xr.DataArray Energy Flux with DateTime index Returns ------- ax: axes Figure of monthly cumulative distribution - ''' - assert isinstance(J, pd.Series), 'J must be of type pd.Series' - cumSum={} - months=J.index.month.unique() + """ + J = pd.Series(J) + cumSum = {} + months = J.index.month.unique() for month in months: - F = exceedance_probability(J[J.index.month==month]) - cumSum[month] = 1-F/100 - cumSum[month].sort_values('F', inplace=True) - plt.figure(figsize=(12,8) ) + F = exceedance_probability(J[J.index.month == month]) + cumSum[month] = 1 - F / 100 + cumSum[month].sort_values("F", inplace=True) + plt.figure(figsize=(12, 8)) for month in months: - plt.semilogx(J.loc[cumSum[month].index], cumSum[month].F, '--', - label=calendar.month_abbr[month]) + plt.semilogx( + J.loc[cumSum[month].index], + cumSum[month].F, + "--", + label=calendar.month_abbr[month], + ) F = exceedance_probability(J) - F.sort_values('F', inplace=True) - ax = plt.semilogx(J.loc[F.index], 1-F['F']/100, 'k-', fillstyle='none', label='All') + F.sort_values("F", inplace=True) + ax = plt.semilogx( + J.loc[F.index], 1 - F["F"] / 100, "k-", fillstyle="none", label="All" + ) plt.grid() - plt.xlabel('Energy Flux') - plt.ylabel('Cumulative Distribution') + plt.xlabel("Energy Flux") + plt.ylabel("Cumulative Distribution") plt.legend() return ax @@ -577,11 +678,11 @@ def plot_compendium(Hs, Tp, Dp, buoy_title=None, ax=None): Parameters ---------- - Hs: pandas Series + Hs: pandas Series or xarray DataArray significant wave height - Tp: pandas Series + Tp: pandas Series or xarray DataArray significant wave height - Dp: pandas Series + Dp: pandas Series or xarray DataArray significant wave height buoy_title: string (optional) Buoy title from the CDIP THREDDS Server @@ -592,47 +693,54 @@ def plot_compendium(Hs, Tp, Dp, buoy_title=None, ax=None): ax : matplotlib pyplot axes """ - assert isinstance(Hs, pd.Series), 'Hs must be of type pd.Series' - assert isinstance(Tp, pd.Series), 'Tp must be of type pd.Series' - assert isinstance(Dp, pd.Series), 'Dp must be of type pd.Series' - assert isinstance(buoy_title, (str, type(None))), 'buoy_title must be of type string' + Hs = pd.Series(Hs) + Tp = pd.Series(Tp) + Dp = pd.Series(Dp) + if not isinstance(Hs, pd.Series): + raise TypeError(f"Hs must be of type pd.Series. Got: {type(Hs)}") + if not isinstance(Tp, pd.Series): + raise TypeError(f"Tp must be of type pd.Series. Got: {type(Tp)}") + if not isinstance(Dp, pd.Series): + raise TypeError(f"Dp must be of type pd.Series. Got: {type(Dp)}") + if not isinstance(buoy_title, (str, type(None))): + raise TypeError( + f"If specified, buoy_title must be of type string. Got: {type(buoy_title)}" + ) - f, (pHs, pTp, pDp) = plt.subplots(3, 1, sharex=True, figsize=(15,10)) + f, (pHs, pTp, pDp) = plt.subplots(3, 1, sharex=True, figsize=(15, 10)) - pHs.plot(Hs.index,Hs,'b') - pTp.plot(Tp.index,Tp,'b') - pDp.scatter(Dp.index,Dp,color='blue',s=5) + pHs.plot(Hs.index, Hs, "b") + pTp.plot(Tp.index, Tp, "b") + pDp.scatter(Dp.index, Dp, color="blue", s=5) - pHs.tick_params(axis='x', which='major', labelsize=12, top='off') - pHs.set_ylim(0,8) - pHs.tick_params(axis='y', which='major', labelsize=12, right='off') - pHs.set_ylabel('Hs [m]', fontsize=18) - pHs.grid(color='b', linestyle='--') + pHs.tick_params(axis="x", which="major", labelsize=12, top="off") + pHs.set_ylim(0, 8) + pHs.tick_params(axis="y", which="major", labelsize=12, right="off") + pHs.set_ylabel("Hs [m]", fontsize=18) + pHs.grid(color="b", linestyle="--") pHs2 = pHs.twinx() - pHs2.set_ylim(0,25) - pHs2.set_ylabel('Hs [ft]', fontsize=18) - + pHs2.set_ylim(0, 25) + pHs2.set_ylabel("Hs [ft]", fontsize=18) # Peak Period, Tp - pTp.set_ylim(0,28) - pTp.set_ylabel('Tp [s]', fontsize=18) - pTp.grid(color='b', linestyle='--') - + pTp.set_ylim(0, 28) + pTp.set_ylabel("Tp [s]", fontsize=18) + pTp.grid(color="b", linestyle="--") # Direction, Dp - pDp.set_ylim(0,360) - pDp.set_ylabel('Dp [deg]', fontsize=18) - pDp.grid(color='b', linestyle='--') - pDp.set_xlabel('Day', fontsize=18) + pDp.set_ylim(0, 360) + pDp.set_ylabel("Dp [deg]", fontsize=18) + pDp.grid(color="b", linestyle="--") + pDp.set_xlabel("Day", fontsize=18) # Set x-axis tick interval to every 5 days degrees = 70 days = matplotlib.dates.DayLocator(interval=5) - daysFmt = matplotlib.dates.DateFormatter('%Y-%m-%d') + daysFmt = matplotlib.dates.DateFormatter("%Y-%m-%d") plt.gca().xaxis.set_major_locator(days) plt.gca().xaxis.set_major_formatter(daysFmt) - plt.setp( pDp.xaxis.get_majorticklabels(), rotation=degrees ) + plt.setp(pDp.xaxis.get_majorticklabels(), rotation=degrees) # Set Titles month_name_start = Hs.index.month_name()[0][:3] @@ -641,7 +749,7 @@ def plot_compendium(Hs, Tp, Dp, buoy_title=None, ax=None): year_end = Hs.index.year[-1] plt.suptitle(buoy_title, fontsize=30) - plt.title(f'{Hs.index[0].date()} to {Hs.index[-1].date()}', fontsize=20) + plt.title(f"{Hs.index[0].date()} to {Hs.index[-1].date()}", fontsize=20) ax = f @@ -658,7 +766,7 @@ def plot_boxplot(Hs, buoy_title=None): Parameters ------------ - data: pandas DataFrame + Hs: pandas Series or xarray DataArray Spectral density [m^2/Hz] indexed frequency [Hz] buoy_title: string (optional) Buoy title from the CDIP THREDDS Server @@ -668,66 +776,82 @@ def plot_boxplot(Hs, buoy_title=None): --------- ax : matplotlib pyplot axes """ - assert isinstance(Hs, pd.Series), 'Hs must be of type pd.Series' - assert isinstance(buoy_title, (str, type(None))), 'buoy_title must be of type string' + Hs = pd.Series(Hs) + if not isinstance(Hs, pd.Series): + raise TypeError(f"Hs must be of type pd.Series. Got: {type(Hs)}") + if not isinstance(buoy_title, (str, type(None))): + raise TypeError( + f"If specified, buoy_title must be of type string. Got: {type(buoy_title)}" + ) months = Hs.index.month means = Hs.groupby(months).mean() monthlengths = Hs.groupby(months).count() - fig = plt.figure(figsize=(10,12)) - gs = gridspec.GridSpec(2,1, height_ratios=[4,1]) + fig = plt.figure(figsize=(10, 12)) + gs = gridspec.GridSpec(2, 1, height_ratios=[4, 1]) - boxprops = dict(color='k') - whiskerprops = dict(linestyle='--', color='k') - flierprops = dict(marker='+', color='r',markeredgecolor='r',markerfacecolor='r') - medianprops = dict(linewidth=2.5,color='firebrick') - meanprops = dict(linewidth=2.5, marker='_', markersize=25) + boxprops = dict(color="k") + whiskerprops = dict(linestyle="--", color="k") + flierprops = dict(marker="+", color="r", markeredgecolor="r", markerfacecolor="r") + medianprops = dict(linewidth=2.5, color="firebrick") + meanprops = dict(linewidth=2.5, marker="_", markersize=25) - bp = plt.subplot(gs[0,:]) + bp = plt.subplot(gs[0, :]) Hs_months = Hs.to_frame().groupby(months) - bp = Hs_months.boxplot(subplots=False, boxprops=boxprops, - whiskerprops=whiskerprops, flierprops=flierprops, - medianprops=medianprops, showmeans=True, meanprops=meanprops) + bp = Hs_months.boxplot( + subplots=False, + boxprops=boxprops, + whiskerprops=whiskerprops, + flierprops=flierprops, + medianprops=medianprops, + showmeans=True, + meanprops=meanprops, + ) # Add values of monthly means as text for i, mean in enumerate(means): - bp.annotate(np.round(mean,2), (means.index[i],mean),fontsize=12, - horizontalalignment='center',verticalalignment='bottom', - color='g') + bp.annotate( + np.round(mean, 2), + (means.index[i], mean), + fontsize=12, + horizontalalignment="center", + verticalalignment="bottom", + color="g", + ) # Create a second row of x-axis labels for top subplot newax = bp.twiny() - newax.tick_params(which='major', direction='in', pad=-18) + newax.tick_params(which="major", direction="in", pad=-18) newax.set_xlim(bp.get_xlim()) - newax.xaxis.set_ticks_position('top') - newax.xaxis.set_label_position('top') - newax.set_xticks(np.arange(1,13,1)) - newax.set_xticklabels(monthlengths,fontsize=10) - + newax.xaxis.set_ticks_position("top") + newax.xaxis.set_label_position("top") + newax.set_xticks(np.arange(1, 13, 1)) + newax.set_xticklabels(monthlengths, fontsize=10) # Sample 'legend' boxplot, to go underneath actual boxplot - bp_sample2 = np.random.normal(2.5,0.5,500) - bp2 = plt.subplot(gs[1,:]) - meanprops = dict(linewidth=2.5, marker='|', markersize=25) - bp2_example = bp2.boxplot(bp_sample2,vert=False,flierprops=flierprops, - medianprops=medianprops) - sample_mean=2.3 - bp2.scatter(sample_mean,1,marker="|",color='g',linewidths=1.0,s=200) - - for line in bp2_example['medians']: + bp_sample2 = np.random.normal(2.5, 0.5, 500) + bp2 = plt.subplot(gs[1, :]) + meanprops = dict(linewidth=2.5, marker="|", markersize=25) + bp2_example = bp2.boxplot( + bp_sample2, vert=False, flierprops=flierprops, medianprops=medianprops + ) + sample_mean = 2.3 + bp2.scatter(sample_mean, 1, marker="|", color="g", linewidths=1.0, s=200) + + for line in bp2_example["medians"]: xm, ym = line.get_xydata()[0] - for line in bp2_example['boxes']: + for line in bp2_example["boxes"]: xb, yb = line.get_xydata()[0] - for line in bp2_example['whiskers']: + for line in bp2_example["whiskers"]: xw, yw = line.get_xydata()[0] - bp2.annotate("Median",[xm-0.1,ym-0.3*ym],fontsize=10,color='firebrick') - bp2.annotate("Mean",[sample_mean-0.1,0.65],fontsize=10,color='g') - bp2.annotate("25%ile",[xb-0.05*xb,yb-0.15*yb],fontsize=10) - bp2.annotate("75%ile",[xb+0.26*xb,yb-0.15*yb],fontsize=10) - bp2.annotate("Outliers",[xw+0.3*xw,yw-0.3*yw],fontsize=10,color='r') + bp2.annotate("Median", [xm - 0.1, ym - 0.3 * ym], fontsize=10, color="firebrick") + bp2.annotate("Mean", [sample_mean - 0.1, 0.65], fontsize=10, color="g") + bp2.annotate("25%ile", [xb - 0.05 * xb, yb - 0.15 * yb], fontsize=10) + bp2.annotate("75%ile", [xb + 0.26 * xb, yb - 0.15 * yb], fontsize=10) + bp2.annotate("Outliers", [xw + 0.3 * xw, yw - 0.3 * yw], fontsize=10, color="r") if buoy_title: plt.suptitle(buoy_title, fontsize=30, y=0.97) @@ -735,14 +859,14 @@ def plot_boxplot(Hs, buoy_title=None): bp2.set_title("Sample Boxplot", fontsize=10, y=1.02) # Set axes labels and ticks - months_text = [ m[:3] for m in Hs.index.month_name().unique()] - bp.set_xticklabels(months_text,fontsize=12) - bp.set_ylabel('Significant Wave Height, Hs (m)', fontsize=14) - bp.tick_params(axis='y', which='major', labelsize=12, right='off') - bp.tick_params(axis='x', which='major', labelsize=12, top='off') + months_text = [m[:3] for m in Hs.index.month_name().unique()] + bp.set_xticklabels(months_text, fontsize=12) + bp.set_ylabel("Significant Wave Height, Hs (m)", fontsize=14) + bp.tick_params(axis="y", which="major", labelsize=12, right="off") + bp.tick_params(axis="x", which="major", labelsize=12, top="off") # Plot horizontal gridlines onto top subplot - bp.grid(axis='x', color='b', linestyle='-', alpha=0.25) + bp.grid(axis="x", color="b", linestyle="-", alpha=0.25) # Remove tickmarks from bottom subplot bp2.axes.get_xaxis().set_visible(False) @@ -754,13 +878,13 @@ def plot_boxplot(Hs, buoy_title=None): def plot_directional_spectrum( - spectrum, - min=None, - fill=True, - nlevels=11, - name="Elevation Variance", - units="m^2" - ): + spectrum, + color_level_min=None, + fill=True, + nlevels=11, + name="Elevation Variance", + units="m^2", +): """ Create a contour polar plot of a directional spectrum. @@ -768,8 +892,8 @@ def plot_directional_spectrum( ------------ spectrum: xarray.DataArray Spectral data indexed frequency [Hz] and wave direction [deg]. - min: float (optional) - Minimum value to plot. + color_level_min: float (optional) + Minimum color bar level. fill: bool Whether to use `contourf` (filled) instead of `contour` (lines). nlevels: int @@ -783,27 +907,38 @@ def plot_directional_spectrum( --------- ax : matplotlib pyplot axes """ - assert isinstance(spectrum, xr.DataArray), 'spectrum must be a DataArray' - if min is not None: - assert isinstance(min, float), 'min must be a float' - assert isinstance(fill, bool), 'fill must be a bool' - assert isinstance(nlevels, int), 'nlevels must be an int' - assert isinstance(name, str), 'name must be a string' - assert isinstance(units, str), 'units must be a string' - - a,f = np.meshgrid(np.deg2rad(spectrum.direction), spectrum.frequency) - _, ax = plt.subplots(subplot_kw=dict(projection='polar')) - tmp = np.floor(np.min(spectrum.data)*10)/10 - min = tmp if (min is None) else min - max = np.ceil(np.max(spectrum.data)*10)/10 - levels = np.linspace(min, max, nlevels) + if not isinstance(spectrum, xr.DataArray): + raise TypeError(f"spectrum must be of type xr.DataArray. Got: {type(spectrum)}") + if not isinstance(color_level_min, (type(None), float)): + raise TypeError( + f"If specified, color_level_min must be of type float. Got: {type(color_level_min)}" + ) + if not isinstance(fill, bool): + raise TypeError(f"If specified, fill must be of type bool. Got: {type(fill)}") + if not isinstance(nlevels, int): + raise TypeError( + f"If specified, nlevels must be of type int. Got: {type(nlevels)}" + ) + if not isinstance(name, str): + raise TypeError(f"If specified, name must be of type string. Got: {type(name)}") + if not isinstance(units, str): + raise TypeError( + f"If specified, units must be of type string. Got: {type(units)}" + ) + + a, f = np.meshgrid(np.deg2rad(spectrum.direction), spectrum.frequency) + _, ax = plt.subplots(subplot_kw=dict(projection="polar")) + tmp = np.floor(np.min(spectrum.data) * 10) / 10 + color_level_min = tmp if (color_level_min is None) else color_level_min + color_level_max = np.ceil(np.max(spectrum.data) * 10) / 10 + levels = np.linspace(color_level_min, color_level_max, nlevels) if fill: c = ax.contourf(a, f, spectrum, levels=levels) else: c = ax.contour(a, f, spectrum, levels=levels) cbar = plt.colorbar(c) - cbar.set_label(f'Spectrum [{units}/Hz/deg]', rotation=270, labelpad=20) - ax.set_title(f'{name} Spectrum') + cbar.set_label(f"Spectrum [{units}/Hz/deg]", rotation=270, labelpad=20) + ax.set_title(f"{name} Spectrum") ylabels = ax.get_yticklabels() ylabels = [ilabel.get_text() for ilabel in ax.get_yticklabels()] ylabels = [ilabel + "Hz" for ilabel in ylabels] diff --git a/mhkit/wave/io/__init__.py b/mhkit/wave/io/__init__.py index f6ad3f71f..2e966e752 100644 --- a/mhkit/wave/io/__init__.py +++ b/mhkit/wave/io/__init__.py @@ -2,4 +2,4 @@ from mhkit.wave.io import wecsim from mhkit.wave.io import cdip from mhkit.wave.io import swan -from mhkit.wave.io import hindcast \ No newline at end of file +from mhkit.wave.io import hindcast diff --git a/mhkit/wave/io/cdip.py b/mhkit/wave/io/cdip.py index a5cf2451b..5fb6e34f3 100644 --- a/mhkit/wave/io/cdip.py +++ b/mhkit/wave/io/cdip.py @@ -1,323 +1,408 @@ -from datetime import timezone +import os import pandas as pd import numpy as np import datetime import netCDF4 -import time import pytz +from mhkit.utils.cache import handle_caching +from mhkit.utils import convert_nested_dict_and_pandas + def _validate_date(date_text): - ''' + """ Checks date format to ensure YYYY-MM-DD format and return date in datetime format. - + Parameters ---------- date_text: string Date string format to check - + Returns ------- dt: datetime - ''' - assert isinstance(date_text, str), (f'date_text must be' / - 'of type string') + """ + + if not isinstance(date_text, str): + raise ValueError("date_text must be of type string. Got: {date_text}") + try: - dt = datetime.datetime.strptime(date_text, '%Y-%m-%d') + dt = datetime.datetime.strptime(date_text, "%Y-%m-%d") except ValueError: raise ValueError("Incorrect data format, should be YYYY-MM-DD") else: - dt = dt.replace(tzinfo=timezone.utc) - + dt = dt.replace(tzinfo=datetime.timezone.utc) + return dt def _start_and_end_of_year(year): - ''' + """ Returns a datetime start and end for a given year - + Parameters ---------- year: int Year to get start and end dates - + Returns ------- start_year: datetime object start of the year end_year: datetime object - end of the year - ''' - - assert isinstance(year, (type(None),int,list)), 'year must be of type int' - + end of the year + """ + + if not isinstance(year, (type(None), int, list)): + raise ValueError("year must be of type int, list, or None. Got: {type(year)}") + try: year = str(year) - start_year = datetime.datetime.strptime(year, '%Y') - except ValueError: - raise ValueError("Incorrect years format, should be YYYY") - else: - next_year = datetime.datetime.strptime(f'{int(year)+1}', '%Y') + start_year = datetime.datetime.strptime(year, "%Y") + except ValueError as exc: + raise ValueError("Incorrect years format, should be YYYY") from exc + else: + next_year = datetime.datetime.strptime(f"{int(year)+1}", "%Y") end_year = next_year - datetime.timedelta(days=1) return start_year, end_year def _dates_to_timestamp(nc, start_date=None, end_date=None): - ''' - Returns timestamps from dates. - + """ + Returns timestamps from dates. + Parameters ---------- nc: netCDF Object - netCDF data for the given station number and data type - start_date: string + netCDF data for the given station number and data type + start_date: string Start date in YYYY-MM-DD, e.g. '2012-04-01' - end_date: string - End date in YYYY-MM-DD, e.g. '2012-04-30' - + end_date: string + End date in YYYY-MM-DD, e.g. '2012-04-30' + Returns ------- start_stamp: float - seconds since the Epoch to start_date + seconds since the Epoch to start_date end_stamp: float seconds since the Epoch to end_date - ''' - - assert isinstance(start_date, (str, type(None))), ('start_date' / - 'must be of type str') - assert isinstance(end_date, (str, type(None))), ('end_date must be' / - 'of type str') - - time_all = nc.variables['waveTime'][:].compressed() - t_i=(datetime.datetime.fromtimestamp(time_all[0]) - .astimezone(pytz.timezone('UTC'))) - t_f=(datetime.datetime.fromtimestamp(time_all[-1]) - .astimezone(pytz.timezone('UTC'))) + """ + + if start_date and not isinstance(start_date, datetime.datetime): + raise ValueError( + f"start_date must be of type datetime.datetime or None. Got: {type(start_date)}" + ) + + if end_date and not isinstance(end_date, datetime.datetime): + raise ValueError( + f"end_date must be of type datetime.datetime or None. Got: {type(end_date)}" + ) + + time_all = nc.variables["waveTime"][:].compressed() + t_i = datetime.datetime.fromtimestamp(time_all[0]).astimezone(pytz.timezone("UTC")) + t_f = datetime.datetime.fromtimestamp(time_all[-1]).astimezone(pytz.timezone("UTC")) time_range_all = [t_i, t_f] - - if start_date: - start_datetime = _validate_date(start_date) - if end_date: - end_datetime = _validate_date(end_date) - if start_datetime > end_datetime: - raise Exception(f'start_date ({start_datetime}) must be'+ - f'before end_date ({end_datetime})') - elif start_datetime == end_datetime: - raise Exception(f'start_date ({start_datetime}) cannot be'+ - f'the same as end_date ({end_datetime})') - - def to_timestamp(time): - stamp = (pd.to_datetime(time) - .astimezone(pytz.timezone('UTC')) - .timestamp()) - return stamp - + if start_date: - if start_datetime > time_range_all[0] and start_datetime < time_range_all[1]: - start_stamp = start_datetime.astimezone(pytz.timezone('UTC')).timestamp() + start_date = start_date.astimezone(pytz.UTC) + if start_date > time_range_all[0] and start_date < time_range_all[1]: + start_stamp = start_date.timestamp() else: - print(f'WARNING: Provided start_date ({start_datetime}) is ' - f'not in the returned data range {time_range_all} \n' - f'Setting start_date to the earliest date in range ' - f'{time_range_all[0]}') - start_stamp = to_timestamp(time_range_all[0]) - + print( + f"WARNING: Provided start_date ({start_date}) is " + f"not in the returned data range {time_range_all} \n" + f"Setting start_date to the earliest date in range " + f"{time_range_all[0]}" + ) + start_stamp = time_range_all[0].timestamp() + if end_date: - if end_datetime > time_range_all[0] and end_datetime < time_range_all[1]: - end_stamp = end_datetime.astimezone(pytz.timezone('UTC')).timestamp() + end_date = end_date.astimezone(pytz.UTC) + if end_date > time_range_all[0] and end_date < time_range_all[1]: + end_stamp = end_date.timestamp() else: - print(f'WARNING: Provided end_date ({end_datetime}) is ' - f'not in the returned data range {time_range_all} \n' - f'Setting end_date to the latest date in range ' - f'{time_range_all[1]}') - end_stamp = to_timestamp(time_range_all[1]) - - + print( + f"WARNING: Provided end_date ({end_date}) is " + f"not in the returned data range {time_range_all} \n" + f"Setting end_date to the latest date in range " + f"{time_range_all[1]}" + ) + end_stamp = time_range_all[1].timestamp() + if start_date and not end_date: - end_stamp = to_timestamp(time_range_all[1]) + end_stamp = time_range_all[1].timestamp() elif end_date and not start_date: - start_stamp = to_timestamp(time_range_all[0]) - + start_stamp = time_range_all[0].timestamp() + if not start_date: - start_stamp = to_timestamp(time_range_all[0]) + start_stamp = time_range_all[0].timestamp() if not end_date: - end_stamp = to_timestamp(time_range_all[1]) + end_stamp = time_range_all[1].timestamp() + + return start_stamp, end_stamp - return start_stamp, end_stamp - def request_netCDF(station_number, data_type): - ''' + """ Returns historic or realtime data from CDIP THREDDS server - + Parameters ---------- station_number: string CDIP station number of interest data_type: string 'historic' or 'realtime' - + Returns ------- - nc: netCDF Object + nc: xarray Dataset netCDF data for the given station number and data type - ''' - assert isinstance(station_number, str), (f'station_number must be ' + - f'of type string. Got: {station_number}') - assert isinstance(data_type, str), (f'data_type must be' / - 'of type string') - assert data_type in ['historic', 'realtime'], ('data_type must be'\ - f' "historic" or "realtime". Got: {data_type}') - if data_type == 'historic': - cdip_archive= 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/archive' - data_url = f'{cdip_archive}/{station_number}p1/{station_number}p1_historic.nc' - elif data_type == 'realtime': - cdip_realtime = 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/realtime' - data_url = f'{cdip_realtime}/{station_number}p1_rt.nc' - + """ + + if not isinstance(station_number, (str, type(None))): + raise ValueError( + f"station_number must be of type string. Got: {type(station_number)}" + ) + + if not isinstance(data_type, str): + raise ValueError(f"data_type must be of type string. Got: {type(data_type)}") + + if data_type not in ["historic", "realtime"]: + raise ValueError('data_type must be "historic" or "realtime". Got: {data_type}') + + BASE_URL = "http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/" + + if data_type == "historic": + data_url = ( + f"{BASE_URL}archive/{station_number}p1/{station_number}p1_historic.nc" + ) + else: # data_type == 'realtime' + data_url = f"{BASE_URL}realtime/{station_number}p1_rt.nc" + nc = netCDF4.Dataset(data_url) - + return nc - -def request_parse_workflow(nc=None, station_number=None, parameters=None, - years=None, start_date=None, end_date=None, - data_type='historic', all_2D_variables=False): - ''' - Parses a passed CDIP netCDF file or requests a station number - from http://cdip.ucsd.edu/) and parses. This function can return specific + +def request_parse_workflow( + nc=None, + station_number=None, + parameters=None, + years=None, + start_date=None, + end_date=None, + data_type="historic", + all_2D_variables=False, + silent=False, + to_pandas=True, +): + """ + Parses a passed CDIP netCDF file or requests a station number + from http://cdip.ucsd.edu/) and parses. This function can return specific parameters is passed. Years may be non-consecutive e.g. [2001, 2010]. Time may be sliced by dates (start_date or end date in YYYY-MM-DD). data_type defaults to historic but may also be set to 'realtime'. By default 2D variables are not parsed if all 2D varaibles are needed. See - the MHKiT CDiP example Jupyter notbook for information on available parameters. - - + the MHKiT CDiP example Jupyter notbook for information on available parameters. + + Parameters ---------- nc: netCDF Object - netCDF data for the given station number and data type. Can be the output of - request_netCDF + netCDF data for the given station number and data type. Can be the output of + request_netCDF station_number: string Station number of CDIP wave buoy - parameters: string or list of stings + parameters: string or list of strings Parameters to return. If None will return all varaibles except - 2D-variables. + 2D-variables. years: int or list of int - Year date, e.g. 2001 or [2001, 2010] - start_date: string + Year date, e.g. 2001 or [2001, 2010] + start_date: string Start date in YYYY-MM-DD, e.g. '2012-04-01' - end_date: string + end_date: string End date in YYYY-MM-DD, e.g. '2012-04-30' data_type: string - Either 'historic' or 'realtime' + Either 'historic' or 'realtime' all_2D_variables: boolean - Will return all 2D data. Enabling this will add significant + Will return all 2D data. Enabling this will add significant processing time. If all 2D variables are not needed it is - recomended to pass 2D parameters of interest using the + recomended to pass 2D parameters of interest using the 'parameters' keyword and leave this set to False. Default False. - + silent: boolean + Set to True to prevent the print statement that announces when 2D + variable processing begins. Default False. + to_pandas: bool (optional) + Flag to output a dictionary of pandas objects instead of a dictionary + of xarray objects. Default = True. + + Returns ------- data: dictionary - 'vars1D': DataFrame - 1D variables indexed by time + 'data': dictionary of variables + 'vars': pandas DataFrame or xarray Dataset + 1D variables indexed by time + 'vars2D': dictionary of DataFrames or Datasets, optional + If 2D-vars are passed in the 'parameters key' or if run + with all_2D_variables=True, then this key will appear + with a dictonary of DataFrames of 2D variables. 'metadata': dictionary Anything not of length time - 'vars2D': dictionary of DataFrames, optional - If 2D-vars are passed in the 'parameters key' or if run - with all_2D_variables=True, then this key will appear - with a dictonary of DataFrames of 2D variables. - ''' - assert isinstance(station_number, (str, type(None))), (f'station_number must be '+ - 'of type string') - assert isinstance(parameters, (str, type(None), list)), ('parameters' / - 'must be of type str or list of strings') - assert isinstance(start_date, (str, type(None))), ('start_date' / - 'must be of type str') - assert isinstance(end_date, (str, type(None))), ('end_date must be' / - 'of type str') - assert isinstance(years, (type(None),int,list)), ('years must be of'/ - 'type int or list of ints') - assert isinstance(data_type, str), (f'data_type must be' / - 'of type string') - assert data_type in ['historic', 'realtime'], 'data_type must be'\ - f' "historic" or "realtime". Got: {data_type}' - - + """ + if not isinstance(station_number, (str, type(None))): + raise TypeError( + f"station_number must be of type string. Got: {type(station_number)}" + ) + + if not isinstance(parameters, (str, type(None), list)): + raise TypeError( + f"parameters must be of type str or list of strings. Got: {type(parameters)}" + ) + + if start_date is not None: + if isinstance(start_date, str): + try: + start_date = datetime.datetime.strptime(start_date, "%Y-%m-%d") + start_date = start_date.replace(tzinfo=pytz.UTC) + except ValueError as exc: + raise ValueError("Incorrect data format, should be YYYY-MM-DD") from exc + else: + raise TypeError(f"start_date must be of type str. Got: {type(start_date)}") + + if end_date is not None: + if isinstance(end_date, str): + try: + end_date = datetime.datetime.strptime(end_date, "%Y-%m-%d") + end_date = end_date.replace(tzinfo=pytz.UTC) + except ValueError as exc: + raise ValueError("Incorrect data format, should be YYYY-MM-DD") from exc + else: + raise TypeError(f"end_date must be of type str. Got: {type(end_date)}") + + if not isinstance(years, (type(None), int, list)): + raise TypeError( + f"years must be of type int or list of ints. Got: {type(years)}" + ) + + if not isinstance(data_type, str): + raise TypeError(f"data_type must be of type string. Got: {type(data_type)}") + + if data_type not in ["historic", "realtime"]: + raise ValueError( + f'data_type must be "historic" or "realtime". Got: {data_type}' + ) + if not any([nc, station_number]): - raise Exception('Must provide either a CDIP netCDF file or a station '+ - 'number') - + raise ValueError("Must provide either a CDIP netCDF file or a station number.") + + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + if not nc: nc = request_netCDF(station_number, data_type) - - buoy_name = nc.variables['metaStationName'][:].compressed().tobytes().decode("utf-8") - - - multiyear=False + + # Define the path to the cache directory + cache_dir = os.path.join(os.path.expanduser("~"), ".cache", "mhkit", "cdip") + + buoy_name = ( + nc.variables["metaStationName"][:].compressed().tobytes().decode("utf-8") + ) + + multiyear = False if years: - if isinstance(years,int): - start_date = f'{years}-01-01' - end_date = f'{years+1}-01-01' - elif isinstance(years,list): - if len(years)==1: - start_date = f'{years[0]}-01-01' - end_date = f'{years[0]+1}-01-01' + if isinstance(years, int): + start_date = datetime.datetime(years, 1, 1, tzinfo=pytz.UTC) + end_date = datetime.datetime(years + 1, 1, 1, tzinfo=pytz.UTC) + elif isinstance(years, list): + if len(years) == 1: + start_date = datetime.datetime(years[0], 1, 1, tzinfo=pytz.UTC) + end_date = datetime.datetime(years[0] + 1, 1, 1, tzinfo=pytz.UTC) else: - multiyear=True - + multiyear = True if not multiyear: - data = get_netcdf_variables(nc, - start_date=start_date, end_date=end_date, - parameters=parameters, - all_2D_variables=all_2D_variables) - - elif multiyear: - data={'data':{},'metadata':{}} - multiyear_data={} - multiyear_data_2D={} - for year in years: - start_date = f'{year}-01-01' - end_date = f'{year+1}-01-01' - - year_data = get_netcdf_variables(nc, - start_date=start_date, end_date=end_date, - parameters=parameters, - all_2D_variables=all_2D_variables) - multiyear_data[year] = year_data['data'] - - for data_key in year_data['data'].keys(): - if data_key.endswith('2D'): - data['data'][data_key]={} - for data_key2D in year_data['data'][data_key].keys(): - data_list=[] - for year in years: + # Check the cache first + hash_params = f"{station_number}-{parameters}-{start_date}-{end_date}" + data = handle_caching(hash_params, cache_dir) + + if data[:2] == (None, None): + data = get_netcdf_variables( + nc, + start_date=start_date, + end_date=end_date, + parameters=parameters, + all_2D_variables=all_2D_variables, + silent=silent, + ) + handle_caching(hash_params, cache_dir, data=data) + else: + data = data[0] + + else: + data = {"data": {}, "metadata": {}} + multiyear_data = {} + for year in years: + start_date = datetime.datetime(year, 1, 1, tzinfo=pytz.UTC) + end_date = datetime.datetime(year + 1, 1, 1, tzinfo=pytz.UTC) + + # Check the cache for each individual year + hash_params = f"{station_number}-{parameters}-{start_date}-{end_date}" + year_data = handle_caching(hash_params, cache_dir) + if year_data[:2] == (None, None): + year_data = get_netcdf_variables( + nc, + start_date=start_date, + end_date=end_date, + parameters=parameters, + all_2D_variables=all_2D_variables, + silent=silent, + ) + # Cache the individual year's data + handle_caching(hash_params, cache_dir, data=year_data) + else: + year_data = year_data[0] + multiyear_data[year] = year_data["data"] + + for data_key in year_data["data"].keys(): + if data_key.endswith("2D"): + data["data"][data_key] = {} + for data_key2D in year_data["data"][data_key].keys(): + data_list = [] + for year in years: data2D = multiyear_data[year][data_key][data_key2D] data_list.append(data2D) - data['data'][data_key][data_key2D]=pd.concat(data_list) - else: + data["data"][data_key][data_key2D] = pd.concat(data_list) + else: data_list = [multiyear_data[year][data_key] for year in years] - data['data'][data_key] = pd.concat(data_list) + data["data"][data_key] = pd.concat(data_list) + if buoy_name: + try: + data.setdefault("metadata", {})["name"] = buoy_name + except: + pass - - - data['metadata'] = year_data['metadata'] - data['metadata']['name'] = buoy_name + if not to_pandas: + data = convert_nested_dict_and_pandas(data) return data - - -def get_netcdf_variables(nc, start_date=None, end_date=None, - parameters=None, all_2D_variables=False): - ''' + + +def get_netcdf_variables( + nc, + start_date=None, + end_date=None, + parameters=None, + all_2D_variables=False, + silent=False, + to_pandas=True, +): + """ Iterates over and extracts variables from CDIP bouy data. See - the MHKiT CDiP example Jupyter notbook for information on available - parameters. - - + the MHKiT CDiP example Jupyter notbook for information on available + parameters. + Parameters ---------- nc: netCDF Object @@ -325,152 +410,221 @@ def get_netcdf_variables(nc, start_date=None, end_date=None, start_stamp: float Data of interest start in seconds since epoch end_stamp: float - Data of interest end in seconds since epoch - parameters: string or list of stings + Data of interest end in seconds since epoch + parameters: string or list of strings Parameters to return. If None will return all varaibles except 2D-variables. Default None. all_2D_variables: boolean - Will return all 2D data. Enabling this will add significant + Will return all 2D data. Enabling this will add significant processing time. If all 2D variables are not needed it is - recomended to pass 2D parameters of interest using the + recomended to pass 2D parameters of interest using the 'parameters' keyword and leave this set to False. Default False. + silent: boolean + Set to True to prevent the print statement that announces when 2D + variable processing begins. Default False. + to_pandas: bool (optional) + Flag to output a dictionary of pandas objects instead of a dictionary + of xarray objects. Default = True. + Returns ------- results: dictionary - 'vars1D': DataFrame - 1D variables indexed by time + 'data': dictionary of variables + 'vars': pandas DataFrame or xarray Dataset + 1D variables indexed by time + 'vars2D': dictionary of DataFrames or Datasets, optional + If 2D-vars are passed in the 'parameters key' or if run + with all_2D_variables=True, then this key will appear + with a dictonary of DataFrames/Datasets of 2D variables. 'metadata': dictionary Anything not of length time - 'vars2D': dictionary of DataFrames, optional - If 2D-vars are passed in the 'parameters key' or if run - with all_2D_variables=True, then this key will appear - with a dictonary of DataFrames of 2D variables. - ''' - - assert isinstance(nc, netCDF4.Dataset), 'nc must be netCDF4 dataset' - assert isinstance(start_date, (str, type(None))), ('start_date' / - 'must be of type str') - assert isinstance(end_date, (str, type(None))), ('end_date must be' / - 'of type str') - assert isinstance(parameters, (str, type(None), list)), ('parameters' / - 'must be of type str or list of strings') - assert isinstance(all_2D_variables, bool), ('all_2D_variables'/ - 'must be a boolean') + """ + + if not isinstance(nc, netCDF4.Dataset): + raise TypeError("nc must be netCDF4 dataset. Got: {type(nc)}") + + if start_date and isinstance(start_date, str): + start_date = datetime.datetime.strptime(start_date, "%Y-%m-%d") + + if end_date and isinstance(end_date, str): + end_date = datetime.datetime.strptime(end_date, "%Y-%m-%d") + + if not isinstance(parameters, (str, type(None), list)): + raise TypeError( + "parameters must be of type str or list of strings. Got: {type(parameters)}" + ) + + if not isinstance(all_2D_variables, bool): + raise TypeError( + "all_2D_variables must be a boolean. Got: {type(all_2D_variables)}" + ) if parameters: - if isinstance(parameters,str): - parameters = [parameters] - assert all([isinstance(param , str) for param in parameters]), ('All'/ - 'elements of parameters must be strings') + if isinstance(parameters, str): + parameters = [parameters] + for param in parameters: + if not isinstance(param, str): + raise TypeError("All elements of parameters must be strings.") + + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + buoy_name = ( + nc.variables["metaStationName"][:].compressed().tobytes().decode("utf-8") + ) - buoy_name = nc.variables['metaStationName'][:].compressed().tobytes().decode("utf-8") allVariables = [var for var in nc.variables] - - include_2D_variables=False - twoDimensionalVars = [ 'waveEnergyDensity', 'waveMeanDirection', - 'waveA1Value', 'waveB1Value', 'waveA2Value', - 'waveB2Value', 'waveCheckFactor', 'waveSpread', - 'waveM2Value', 'waveN2Value'] - + allVariableSet = set(allVariables) + + twoDimensionalVars = [ + "waveEnergyDensity", + "waveMeanDirection", + "waveA1Value", + "waveB1Value", + "waveA2Value", + "waveB2Value", + "waveCheckFactor", + "waveSpread", + "waveM2Value", + "waveN2Value", + ] + twoDimensionalVarsSet = set(twoDimensionalVars) + + # If parameters are provided, convert them into a set if parameters: params = set(parameters) - include_params = params.intersection(set(allVariables)) - if params != include_params: - not_found = params.difference(include_params) - print(f'WARNING: {not_found} was not found in data.\n' \ - f'Possible parameters are:\n {allVariables}') - - include_params_2D = include_params.intersection( - set(twoDimensionalVars)) - include_params = include_params.difference(include_params_2D) - - if include_params_2D: - include_2D_variables=True - include_params.add('waveFrequency') - include_2D_vars = sorted(include_params_2D) - - include_vars = sorted(include_params) - else: - include_vars = allVariables - - for var in twoDimensionalVars: - include_vars.remove(var) - - if all_2D_variables: - include_2D_variables=True - include_2D_vars = twoDimensionalVars - - - start_stamp, end_stamp =_dates_to_timestamp(nc, start_date=start_date, - end_date=end_date) - - variables_by_type={} - prefixs = ['wave', 'sst', 'gps', 'dwr', 'meta'] - remainingVariables = set(include_vars) - for prefix in prefixs: - variables_by_type[prefix] = [var for var in include_vars - if var.startswith(prefix)] - remainingVariables -= set(variables_by_type[prefix]) - if not variables_by_type[prefix]: - del variables_by_type[prefix] - - results={'data':{}, 'metadata':{}} + params = set() + + # If all_2D_variables is True, add all 2D variables to params + if all_2D_variables: + params.update(twoDimensionalVarsSet) + + include_params = params & allVariableSet + if params != include_params: + not_found = params - include_params + print( + f"WARNING: {not_found} was not found in data.\n" + f"Possible parameters are:\n {allVariables}" + ) + + include_params_2D = include_params & twoDimensionalVarsSet + include_params -= include_params_2D + + include_2D_variables = bool(include_params_2D) + if include_2D_variables: + include_params.add("waveFrequency") + + include_vars = include_params + + # when parameters is None and all_2D_variables is False + if not parameters and not all_2D_variables: + include_vars = allVariableSet - twoDimensionalVarsSet + + start_stamp, end_stamp = _dates_to_timestamp( + nc, start_date=start_date, end_date=end_date + ) + + prefixs = ["wave", "sst", "gps", "dwr", "meta"] + variables_by_type = { + prefix: [var for var in include_vars if var.startswith(prefix)] + for prefix in prefixs + } + variables_by_type = { + prefix: vars for prefix, vars in variables_by_type.items() if vars + } + + results = {"data": {}, "metadata": {}} for prefix in variables_by_type: - var_results={} - time_variables={} - metadata={} - - if prefix != 'meta': - prefixTime = nc.variables[f'{prefix}Time'][:] - - masked_time = np.ma.masked_outside(prefixTime, start_stamp, - end_stamp) - mask = masked_time.mask - var_time = masked_time.compressed() + time_variables = {} + metadata = {} + + if prefix != "meta": + prefixTime = nc.variables[f"{prefix}Time"][:] + + masked_time = np.ma.masked_outside(prefixTime, start_stamp, end_stamp) + mask = masked_time.mask + var_time = masked_time.compressed() N_time = masked_time.size - else: - N_time= np.nan - - for var in variables_by_type[prefix]: - variable = np.ma.filled(nc.variables[var]) - if variable.size == N_time: - variable = np.ma.masked_array(variable, mask).astype(float) - time_variables[var] = variable.compressed() - else: - metadata[var] = nc.variables[var][:].compressed() - - time_slice = pd.to_datetime(var_time, unit='s') - data = pd.DataFrame(time_variables, index=time_slice) - - if prefix != 'meta': - results['data'][prefix] = data - results['data'][prefix].name = buoy_name - results['metadata'][prefix] = metadata - - if (prefix == 'wave') and (include_2D_variables): - - print('Processing 2D Variables:') - vars2D={} - columns=metadata['waveFrequency'] - N_time= len(time_slice) + + for var in variables_by_type[prefix]: + variable = np.ma.filled(nc.variables[var]) + if variable.size == N_time: + variable = np.ma.masked_array(variable, mask).astype(float) + time_variables[var] = variable.compressed() + else: + metadata[var] = nc.variables[var][:].compressed() + + time_slice = pd.to_datetime(var_time, unit="s") + data = pd.DataFrame(time_variables, index=time_slice) + results["data"][prefix] = data + results["data"][prefix].name = buoy_name + + results["metadata"][prefix] = metadata + + if (prefix == "wave") and (include_2D_variables): + if not silent: + print("Processing 2D Variables:") + + vars2D = {} + columns = metadata["waveFrequency"] + N_time = len(time_slice) N_frequency = len(columns) try: l = len(mask) except: mask = np.array([False] * N_time) - - mask2D= np.tile(mask, (len(columns),1)).T - for var in include_2D_vars: + + mask2D = np.tile(mask, (len(columns), 1)).T + for var in include_params_2D: variable2D = nc.variables[var][:].data variable2D = np.ma.masked_array(variable2D, mask2D) - variable2D = variable2D.compressed().reshape(N_time, N_frequency) - variable = pd.DataFrame(variable2D,index=time_slice, - columns=columns) + variable2D = variable2D.compressed().reshape(N_time, N_frequency) + variable = pd.DataFrame(variable2D, index=time_slice, columns=columns) vars2D[var] = variable - results['data']['wave2D'] = vars2D - results['metadata']['name'] = buoy_name - + results["data"]["wave2D"] = vars2D + results["metadata"]["name"] = buoy_name + + if not to_pandas: + results = convert_nested_dict_and_pandas(results) + return results + + +def _process_multiyear_data(nc, years, parameters, all_2D_variables): + """ + A helper function to process multiyear data. + + Parameters + ---------- + nc : netCDF4.Dataset + netCDF file containing the data + years : list of int + A list of years to process + parameters : list of str + A list of parameters to return + all_2D_variables : bool + Whether to return all 2D variables + + Returns + ------- + data : dict + A dictionary containing the processed data + """ + + data = {} + for year in years: + start_date = datetime.datetime(year, 1, 1) + end_date = datetime.datetime(year + 1, 1, 1) + + year_data = get_netcdf_variables( + nc, + start_date=start_date, + end_date=end_date, + parameters=parameters, + all_2D_variables=all_2D_variables, + ) + data[year] = year_data + + return data diff --git a/mhkit/wave/io/hindcast/__init__.py b/mhkit/wave/io/hindcast/__init__.py index 5d6507b9e..2e6057131 100644 --- a/mhkit/wave/io/hindcast/__init__.py +++ b/mhkit/wave/io/hindcast/__init__.py @@ -1,8 +1,11 @@ from mhkit.wave.io.hindcast import wind_toolkit + try: from mhkit.wave.io.hindcast import hindcast except ImportError: - print("WARNING: Wave WPTO hindcast functions not imported from" - "MHKiT-Python. If you are using Windows and calling from" - "MHKiT-MATLAB this is expected.") + print( + "WARNING: Wave WPTO hindcast functions not imported from" + "MHKiT-Python. If you are using Windows and calling from" + "MHKiT-MATLAB this is expected." + ) pass diff --git a/mhkit/wave/io/hindcast/hindcast.py b/mhkit/wave/io/hindcast/hindcast.py index 81b83548f..5922edbc7 100644 --- a/mhkit/wave/io/hindcast/hindcast.py +++ b/mhkit/wave/io/hindcast/hindcast.py @@ -24,17 +24,24 @@ - xarray - numpy - rex.MultiYearWaveX, rex.WaveX + +Author: rpauly, aidanbharath, ssolson +Date: 2023-09-26 """ + +import os import sys from time import sleep import pandas as pd import xarray as xr import numpy as np from rex import MultiYearWaveX, WaveX +from mhkit.utils.cache import handle_caching +from mhkit.utils.type_handling import convert_to_dataset def region_selection(lat_lon): - ''' + """ Returns the name of the predefined region in which the given coordinates reside. Can be used to check if the passed lat/lon pair is within the WPTO hindcast dataset. @@ -48,39 +55,31 @@ def region_selection(lat_lon): ------- region : string Name of predefined region for given coordinates - ''' + """ if not isinstance(lat_lon, (list, tuple)): - raise TypeError('lat_lon must be of type list or tuple') + raise TypeError(f"lat_lon must be of type list or tuple. Got: {type(lat_lon)}") if not all(isinstance(coord, (float, int)) for coord in lat_lon): - raise TypeError('lat_lon values must be of type float or int') + raise TypeError( + f"lat_lon values must be of type float or int. Got: {type(lat_lon[0])}" + ) regions = { - 'Hawaii': { - 'lat': [15.0, 27.000002], - 'lon': [-164.0, -151.0] - }, - 'West_Coast': { - 'lat': [30.0906, 48.8641], - 'lon': [-130.072, -116.899] - }, - 'Atlantic': { - 'lat': [24.382, 44.8247], - 'lon': [-81.552, -65.721] - }, + "Hawaii": {"lat": [15.0, 27.000002], "lon": [-164.0, -151.0]}, + "West_Coast": {"lat": [30.0906, 48.8641], "lon": [-130.072, -116.899]}, + "Atlantic": {"lat": [24.382, 44.8247], "lon": [-81.552, -65.721]}, } def region_search(lat_lon, region, regions): return all( regions[region][dk][0] <= d <= regions[region][dk][1] - for dk, d in {'lat': lat_lon[0], 'lon': lat_lon[1]}.items() + for dk, d in {"lat": lat_lon[0], "lon": lat_lon[1]}.items() ) - region = [region for region in regions if region_search( - lat_lon, region, regions)] + region = [region for region in regions if region_search(lat_lon, region, regions)] if not region: - raise ValueError('ERROR: coordinates out of bounds') + raise ValueError("ERROR: coordinates out of bounds.") return region[0] @@ -95,18 +94,18 @@ def request_wpto_point_data( str_decode=True, hsds=True, path=None, - as_xarray=False, + to_pandas=True, ): """ Returns data from the WPTO wave hindcast hosted on AWS at the specified latitude and longitude point(s), or the closest available point(s). - Visit https://registry.opendata.aws/wpto-pds-us-wave/ for more - information about the dataset and available locations and years. + Visit https://registry.opendata.aws/wpto-pds-us-wave/ for more + information about the dataset and available locations and years. Note: To access the WPTO hindcast data, you will need to configure - h5pyd for data access on HSDS. Please see the WPTO_hindcast_example - notebook for more information. + h5pyd for data access on HSDS. Please see the WPTO_hindcast_example + notebook for setup instructions. Parameters ---------- @@ -115,22 +114,22 @@ def request_wpto_point_data( Options: '3-hour' '1-hour' parameter : string or list of strings Dataset parameter to be downloaded - 3-hour dataset options: 'directionality_coefficient', + 3-hour dataset options: 'directionality_coefficient', 'energy_period', 'maximum_energy_direction' 'mean_absolute_period', 'mean_zero-crossing_period', 'omni-directional_wave_power', 'peak_period' - 'significant_wave_height', 'spectral_width', 'water_depth' - 1-hour dataset options: 'directionality_coefficient', + 'significant_wave_height', 'spectral_width', 'water_depth' + 1-hour dataset options: 'directionality_coefficient', 'energy_period', 'maximum_energy_direction' 'mean_absolute_period', 'mean_zero-crossing_period', 'omni-directional_wave_power', 'peak_period', - 'significant_wave_height', 'spectral_width', + 'significant_wave_height', 'spectral_width', 'water_depth', 'maximim_energy_direction', 'mean_wave_direction', 'frequency_bin_edges' lat_lon : tuple or list of tuples - Latitude longitude pairs at which to extract data - years : list - Year(s) to be accessed. The years 1979-2010 available. + Latitude longitude pairs at which to extract data + years : list + Year(s) to be accessed. The years 1979-2010 available. Examples: [1996] or [2004,2006,2007] tree : str | cKDTree (optional) cKDTree or path to .pkl file containing pre-computed tree @@ -144,112 +143,143 @@ def request_wpto_point_data( Default = True hsds : bool (optional) Boolean flag to use h5pyd to handle .h5 'files' hosted on AWS - behind HSDS. Setting to False will indicate to look for files on + behind HSDS. Setting to False will indicate to look for files on local machine, not AWS. Default = True path : string (optional) Optionally override with a custom .h5 filepath. Useful when setting - `hsds=False`. - as_xarray : bool (optional) - Boolean flag to return data as an xarray Dataset. Default = False + `hsds=False`. + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns --------- - data: DataFrame - Data indexed by datetime with columns named for parameter - and cooresponding metadata index - meta: DataFrame - Location metadata for the requested data location + data: pandas DataFrame or xarray Dataset + Data indexed by datetime with columns named for parameter + and cooresponding metadata index + meta: DataFrame + Location metadata for the requested data location """ - assert isinstance(parameter, (str, list) - ), 'parameter must be of type string or list' - assert isinstance(lat_lon, (list, tuple) - ), 'lat_lon must be of type list or tuple' - assert isinstance(data_type, str), 'data_type must be a string' - assert isinstance(years, list), 'years must be a list' - assert isinstance(tree, (str, type(None))), 'tree must be a string' - assert isinstance(unscale, bool), 'unscale must be bool type' - assert isinstance(str_decode, bool), 'str_decode must be bool type' - assert isinstance(hsds, bool), 'hsds must be bool type' - assert isinstance(path, (str, type(None))), 'path must be a string' - assert isinstance(as_xarray, bool), 'as_xarray must be bool type' - - if 'directional_wave_spectrum' in parameter: - sys.exit('This function does not support directional_wave_spectrum output') - - # Check for multiple region selection - if isinstance(lat_lon[0], float): - region = region_selection(lat_lon) + if not isinstance(parameter, (str, list)): + raise TypeError( + f"parameter must be of type string or list. Got: {type(parameter)}" + ) + if not isinstance(lat_lon, (list, tuple)): + raise TypeError(f"lat_lon must be of type list or tuple. Got: {type(lat_lon)}") + if not isinstance(data_type, str): + raise TypeError(f"data_type must be a string. Got: {type(data_type)}") + if not isinstance(years, list): + raise TypeError(f"years must be a list. Got: {type(years)}") + if not isinstance(tree, (str, type(None))): + raise TypeError(f"If specified, tree must be a string. Got: {type(tree)}") + if not isinstance(unscale, bool): + raise TypeError( + f"If specified, unscale must be bool type. Got: {type(unscale)}" + ) + if not isinstance(str_decode, bool): + raise TypeError( + f"If specified, str_decode must be bool type. Got: {type(str_decode)}" + ) + if not isinstance(hsds, bool): + raise TypeError(f"If specified, hsds must be bool type. Got: {type(hsds)}") + if not isinstance(path, (str, type(None))): + raise TypeError(f"If specified, path must be a string. Got: {type(path)}") + if not isinstance(to_pandas, bool): + raise TypeError( + f"If specified, to_pandas must be bool type. Got: {type(to_pandas)}" + ) + + # Attempt to load data from cache + # Construct a string representation of the function parameters + hash_params = f"{data_type}_{parameter}_{lat_lon}_{years}_{tree}_{unscale}_{str_decode}_{hsds}_{path}_{to_pandas}" + cache_dir = _get_cache_dir() + data, meta, _ = handle_caching(hash_params, cache_dir) + + if data is not None: + return data, meta else: - region_list = [] - for loc in lat_lon: - region_list.append(region_selection(loc)) - if region_list.count(region_list[0]) == len(lat_lon): - region = region_list[0] + if "directional_wave_spectrum" in parameter: + sys.exit("This function does not support directional_wave_spectrum output") + + # Check for multiple region selection + if isinstance(lat_lon[0], float): + region = region_selection(lat_lon) else: - sys.exit('Coordinates must be within the same region!') - - if path: - wave_path = path - elif data_type == '3-hour': - wave_path = f'/nrel/US_wave/{region}/{region}_wave_*.h5' - elif data_type == '1-hour': - wave_path = f'/nrel/US_wave/virtual_buoy/{region}/{region}_virtual_buoy_*.h5' - else: - print('ERROR: invalid data_type') + region_list = [] + for loc in lat_lon: + region_list.append(region_selection(loc)) + if region_list.count(region_list[0]) == len(lat_lon): + region = region_list[0] + else: + sys.exit("Coordinates must be within the same region!") + + if path: + wave_path = path + elif data_type == "3-hour": + wave_path = f"/nrel/US_wave/{region}/{region}_wave_*.h5" + elif data_type == "1-hour": + wave_path = ( + f"/nrel/US_wave/virtual_buoy/{region}/{region}_virtual_buoy_*.h5" + ) + else: + print("ERROR: invalid data_type") + + wave_kwargs = { + "tree": tree, + "unscale": unscale, + "str_decode": str_decode, + "hsds": hsds, + "years": years, + } + data_list = [] + + with MultiYearWaveX(wave_path, **wave_kwargs) as rex_waves: + if isinstance(parameter, list): + for param in parameter: + temp_data = rex_waves.get_lat_lon_df(param, lat_lon) + gid = rex_waves.lat_lon_gid(lat_lon) + cols = temp_data.columns[:] + for i, col in zip(range(len(cols)), cols): + temp = f"{param}_{gid}" + temp_data = temp_data.rename(columns={col: temp}) - wave_kwargs = { - 'tree': tree, - 'unscale': unscale, - 'str_decode': str_decode, - 'hsds': hsds, - 'years': years - } - data_list = [] - - with MultiYearWaveX(wave_path, **wave_kwargs) as rex_waves: - if isinstance(parameter, list): - for param in parameter: - temp_data = rex_waves.get_lat_lon_df(param, lat_lon) - gid = rex_waves.lat_lon_gid(lat_lon) - cols = temp_data.columns[:] - for i, col in zip(range(len(cols)), cols): - temp = f'{param}_{gid}' - temp_data = temp_data.rename(columns={col: temp}) + data_list.append(temp_data) + data = pd.concat(data_list, axis=1) - data_list.append(temp_data) - data = pd.concat(data_list, axis=1) + else: + data = rex_waves.get_lat_lon_df(parameter, lat_lon) + cols = data.columns[:] - else: - data = rex_waves.get_lat_lon_df(parameter, lat_lon) - cols = data.columns[:] + for i, col in zip(range(len(cols)), cols): + temp = f"{parameter}_{i}" + data = data.rename(columns={col: temp}) - for i, col in zip(range(len(cols)), cols): - temp = f'{parameter}_{i}' - data = data.rename(columns={col: temp}) + meta = rex_waves.meta.loc[cols, :] + meta = meta.reset_index(drop=True) + gid = rex_waves.lat_lon_gid(lat_lon) + meta["gid"] = gid - meta = rex_waves.meta.loc[cols, :] - meta = meta.reset_index(drop=True) - gid = rex_waves.lat_lon_gid(lat_lon) - meta['gid'] = gid + if not to_pandas: + data = convert_to_dataset(data) + data["time_index"] = pd.to_datetime(data.time_index) - if as_xarray: - data = data.to_xarray() - data['time_index'] = pd.to_datetime(data.time_index) + if isinstance(parameter, list): + param_coords = [f"{param}_{gid}" for param in parameter] + data.coords["parameter"] = xr.DataArray( + param_coords, dims="parameter" + ) - if isinstance(parameter, list): - param_coords = [f'{param}_{gid}' for param in parameter] - data.coords['parameter'] = xr.DataArray( - param_coords, dims='parameter') + data.coords["year"] = xr.DataArray(years, dims="year") - data.coords['year'] = xr.DataArray(years, dims='year') + meta_ds = meta.to_xarray() + data = xr.merge([data, meta_ds]) - meta_ds = meta.to_xarray() - data = xr.merge([data, meta_ds]) + # Remove the 'index' coordinate + data = data.drop_vars("index") - # Remove the 'index' coordinate - data = data.drop_vars('index') + # save_to_cache(hash_params, data, meta) + handle_caching(hash_params, cache_dir, data, meta) - return data, meta + return data, meta def request_wpto_directional_spectrum( @@ -267,13 +297,13 @@ def request_wpto_directional_spectrum( or the closest available point(s). The data is returned as an xarray Dataset with keys indexed by a graphical identifier (gid). `gid`s are integers which represent a lat, long on which data is - stored. Requesting an array of `lat_lons` will return a dataset - with multiple `gids` representing the data closest to each requested + stored. Requesting an array of `lat_lons` will return a dataset + with multiple `gids` representing the data closest to each requested `lat`, `lon`. Visit https://registry.opendata.aws/wpto-pds-us-wave/ for more information about the dataset and available - locations and years. + locations and years. Note: To access the WPTO hindcast data, you will need to configure h5pyd for data access on HSDS. @@ -302,23 +332,34 @@ def request_wpto_directional_spectrum( local machine, not AWS. Default = True path : string (optional) Optionally override with a custom .h5 filepath. Useful when setting - `hsds=False` + `hsds=False` Returns --------- - data: xarray + data: xarray Dataset Coordinates as datetime, frequency, and direction for data at specified location(s) meta: DataFrame Location metadata for the requested data location """ - assert isinstance(lat_lon, (list, tuple) - ), 'lat_lon must be of type list or tuple' - assert isinstance(year, str), 'years must be a string' - assert isinstance(tree, (str, type(None))), 'tree must be a sring' - assert isinstance(unscale, bool), 'unscale must be bool type' - assert isinstance(str_decode, bool), 'str_decode must be bool type' - assert isinstance(hsds, bool), 'hsds must be bool type' + if not isinstance(lat_lon, (list, tuple)): + raise TypeError(f"lat_lon must be of type list or tuple. Got: {type(lat_lon)}") + if not isinstance(year, str): + raise TypeError(f"year must be a string. Got: {type(year)}") + if not isinstance(tree, (str, type(None))): + raise TypeError(f"If specified, tree must be a string. Got: {type(tree)}") + if not isinstance(unscale, bool): + raise TypeError( + f"If specified, unscale must be bool type. Got: {type(unscale)}" + ) + if not isinstance(str_decode, bool): + raise TypeError( + f"If specified, str_decode must be bool type. Got: {type(str_decode)}" + ) + if not isinstance(hsds, bool): + raise TypeError(f"If specified, hsds must be bool type. Got: {type(hsds)}") + if not isinstance(path, (str, type(None))): + raise TypeError(f"If specified, path must be a string. Got: {type(path)}") # check for multiple region selection if isinstance(lat_lon[0], float): @@ -328,17 +369,25 @@ def request_wpto_directional_spectrum( if reglist.count(reglist[0]) == len(lat_lon): region = reglist[0] else: - sys.exit('Coordinates must be within the same region!') + sys.exit("Coordinates must be within the same region!") + + # Attempt to load data from cache + hash_params = f"{lat_lon}_{year}_{tree}_{unscale}_{str_decode}_{hsds}_{path}" + cache_dir = _get_cache_dir() + data, meta, _ = handle_caching(hash_params, cache_dir) + + if data is not None: + return data, meta wave_path = path or ( - f'/nrel/US_wave/virtual_buoy/{region}/{region}_virtual_buoy_{year}.h5' + f"/nrel/US_wave/virtual_buoy/{region}/{region}_virtual_buoy_{year}.h5" ) - parameter = 'directional_wave_spectrum' + parameter = "directional_wave_spectrum" wave_kwargs = { - 'tree': tree, - 'unscale': unscale, - 'str_decode': str_decode, - 'hsds': hsds + "tree": tree, + "unscale": unscale, + "str_decode": str_decode, + "hsds": hsds, } with WaveX(wave_path, **wave_kwargs) as rex_waves: @@ -348,33 +397,32 @@ def request_wpto_directional_spectrum( # Setup index and columns columns = [gid] if isinstance(gid, (int, np.integer)) else gid time_index = rex_waves.time_index - frequency = rex_waves['frequency'] - direction = rex_waves['direction'] + frequency = rex_waves["frequency"] + direction = rex_waves["direction"] index = pd.MultiIndex.from_product( [time_index, frequency, direction], - names=['time_index', 'frequency', 'direction'] + names=["time_index", "frequency", "direction"], ) # Create bins for multiple smaller API dataset requests N = 6 length = len(rex_waves) quotient, remainder = divmod(length, N) - bins = [i*quotient for i in range(N+1)] + bins = [i * quotient for i in range(N + 1)] bins[-1] += remainder - index_bins = (np.array(bins)*len(frequency)*len(direction)).tolist() + index_bins = (np.array(bins) * len(frequency) * len(direction)).tolist() # Request multiple datasets and add to dictionary datas = {} - for i in range(len(bins)-1): - idx = index[index_bins[i]:index_bins[i+1]] + for i in range(len(bins) - 1): + idx = index[index_bins[i] : index_bins[i + 1]] # Request with exponential back off wait time sleep_time = 2 num_retries = 4 for _ in range(num_retries): try: - data_array = rex_waves[parameter, - bins[i]:bins[i+1], :, :, gid] + data_array = rex_waves[parameter, bins[i] : bins[i + 1], :, :, gid] str_error = None except Exception as err: str_error = str(err) @@ -388,51 +436,57 @@ def request_wpto_directional_spectrum( ax1 = np.product(data_array.shape[:3]) ax2 = data_array.shape[-1] if len(data_array.shape) == 4 else 1 datas[i] = pd.DataFrame( - data_array.reshape(ax1, ax2), - columns=columns, - index=idx + data_array.reshape(ax1, ax2), columns=columns, index=idx ) data_raw = pd.concat(datas.values()) data = data_raw.to_xarray() - data['time_index'] = pd.to_datetime(data.time_index) + data["time_index"] = pd.to_datetime(data.time_index) # Get metadata meta = rex_waves.meta.loc[columns, :] meta = meta.reset_index(drop=True) - meta['gid'] = gid + meta["gid"] = gid # Convert gid to integer or list of integers - # gid_list = [int(g) for g in gid] if isinstance(gid, list) else [int(gid)] - # gid_list = [int(g) for g in gid] if isinstance(gid, list) else [int(gid)] - gid_list = [int(g) for g in gid] if isinstance( - gid, (list, np.ndarray)) else [int(gid)] + gid_list = ( + [int(g) for g in gid] if isinstance(gid, (list, np.ndarray)) else [int(gid)] + ) - data_var_concat = xr.concat([data[g] for g in gid_list], dim='gid') + data_var_concat = xr.concat([data[g] for g in gid_list], dim="gid") # Create a new DataArray with the correct dimensions and coordinates spectral_density = xr.DataArray( - data_var_concat.data.reshape(-1, len(frequency), - len(direction), len(gid_list)), - dims=['time_index', 'frequency', 'direction', 'gid'], + data_var_concat.data.reshape( + -1, len(frequency), len(direction), len(gid_list) + ), + dims=["time_index", "frequency", "direction", "gid"], coords={ - 'time_index': data['time_index'], - 'frequency': data['frequency'], - 'direction': data['direction'], - 'gid': gid_list - } + "time_index": data["time_index"], + "frequency": data["frequency"], + "direction": data["direction"], + "gid": gid_list, + }, ) # Create the new dataset data = xr.Dataset( - { - 'spectral_density': spectral_density - }, + {"spectral_density": spectral_density}, coords={ - 'time_index': data['time_index'], - 'frequency': data['frequency'], - 'direction': data['direction'], - 'gid': gid_list - } + "time_index": data["time_index"], + "frequency": data["frequency"], + "direction": data["direction"], + "gid": gid_list, + }, ) + + handle_caching(hash_params, cache_dir, data, meta) + return data, meta + + +def _get_cache_dir(): + """ + Returns the path to the cache directory. + """ + return os.path.join(os.path.expanduser("~"), ".cache", "mhkit", "hindcast") diff --git a/mhkit/wave/io/hindcast/wind_toolkit.py b/mhkit/wave/io/hindcast/wind_toolkit.py index 3adb083c5..f945089b3 100644 --- a/mhkit/wave/io/hindcast/wind_toolkit.py +++ b/mhkit/wave/io/hindcast/wind_toolkit.py @@ -1,63 +1,219 @@ +""" +Wind Toolkit Data Utility Functions +=================================== + +This module contains a collection of utility functions designed to facilitate +the extraction, caching, and visualization of wind data from the WIND Toolkit +hindcast dataset hosted on AWS. This dataset includes offshore wind hindcast data +with various parameters like wind speed, direction, temperature, and pressure. + +Key Functions: +-------------- +- `region_selection`: Determines which predefined wind region a given latitude + and longitude fall within. + +- `get_region_data`: Retrieves latitude and longitude data points for a specified + wind region. Uses caching to speed up repeated requests. + +- `plot_region`: Plots the geographical extent of a specified wind region and + can overlay a given latitude-longitude point. + +- `elevation_to_string`: Converts a parameter (e.g., 'windspeed') and elevation + values (e.g., [20, 40, 120]) to the formatted strings used in the WIND Toolkit. + +- `request_wtk_point_data`: Fetches specified wind data parameters for given + latitude-longitude points and years from the WIND Toolkit hindcast dataset. + Supports caching for faster repeated data retrieval. + +Dependencies: +------------- +- rex: Library to handle renewable energy datasets. +- pandas: Data manipulation and analysis. +- os, hashlib, pickle: Used for caching functionality. +- matplotlib: Used for plotting. + +Notes: +------ +- To access the WIND Toolkit hindcast data, users need to configure `h5pyd` + for data access on HSDS (see the metocean_example or WPTO_hindcast_example + notebook for more details). + +- While some functions perform basic checks (e.g., verifying that latitude + and longitude are within a predefined region), it's essential to understand + the boundaries of each region and the available parameters and elevations in the dataset. + +Author: +------- +akeeste +ssolson + +Date: +----- +2023-09-26 + +""" + +import os +import hashlib +import pickle import pandas as pd + from rex import MultiYearWindX import matplotlib.pyplot as plt +from mhkit.utils.cache import handle_caching +from mhkit.utils.type_handling import convert_to_dataset -def region_selection(lat_lon, preferred_region=''): - ''' +def region_selection(lat_lon, preferred_region=""): + """ Returns the name of the predefined region in which the given coordinates reside. - Can be used to check if the passed lat/lon pair is within the WIND Toolkit hindcast dataset. + Can be used to check if the passed lat/lon pair is within the WIND Toolkit hindcast dataset. Parameters ---------- lat_lon : tuple Latitude and longitude coordinates as floats or integers - + preferred_region : string (optional) Latitude and longitude coordinates as floats or integers - + Returns ------- region : string Name of predefined region for given coordinates - ''' - assert isinstance(lat_lon, tuple), 'lat_lon must be of type list or tuple' - assert len(lat_lon)==2, 'lat_lon must be of length 2' - assert isinstance(lat_lon[0], (float,int)), 'lat_lon values must be of type float or int' - assert isinstance(lat_lon[1], (float,int)), 'lat_lon values must be of type float or int' - assert isinstance(preferred_region, str), 'preferred_region must be of type string' - - # Note that this check is fast, but not robust because region are not + """ + if not isinstance(lat_lon, tuple): + raise TypeError(f"lat_lon must be of type tuple, got {type(lat_lon).__name__}") + + if len(lat_lon) != 2: + raise ValueError(f"lat_lon must be of length 2, got length {len(lat_lon)}") + + if not isinstance(lat_lon[0], (float, int)): + raise TypeError( + f"lat_lon values must be floats or ints, got {type(lat_lon[0]).__name__}" + ) + + if not isinstance(lat_lon[1], (float, int)): + raise TypeError( + f"lat_lon values must be floats or ints, got {type(lat_lon[1]).__name__}" + ) + + if not isinstance(preferred_region, str): + raise TypeError( + f"preferred_region must be a string, got {type(preferred_region).__name__}" + ) + + # Note that this check is fast, but not robust because region are not # rectangular on a lat-lon grid rDict = { - 'CA_NWP_overlap':{'lat':[41.213, 42.642], 'lon':[-129.090, -121.672]}, - 'Offshore_CA':{ 'lat':[31.932, 42.642], 'lon':[-129.090, -115.806]}, - 'Hawaii':{ 'lat':[15.565, 26.221], 'lon':[-164.451, -151.278]}, - 'NW_Pacific':{ 'lat':[41.213, 49.579], 'lon':[-130.831, -121.672]}, - 'Mid_Atlantic':{ 'lat':[37.273, 42.211], 'lon':[-76.427, -64.800]}, + "CA_NWP_overlap": {"lat": [41.213, 42.642], "lon": [-129.090, -121.672]}, + "Offshore_CA": {"lat": [31.932, 42.642], "lon": [-129.090, -115.806]}, + "Hawaii": {"lat": [15.565, 26.221], "lon": [-164.451, -151.278]}, + "NW_Pacific": {"lat": [41.213, 49.579], "lon": [-130.831, -121.672]}, + "Mid_Atlantic": {"lat": [37.273, 42.211], "lon": [-76.427, -64.800]}, } - region_search = lambda x: all( ( True if rDict[x][dk][0] <= d <= rDict[x][dk][1] else False - for dk, d in {'lat':lat_lon[0],'lon':lat_lon[1]}.items() ) ) + def region_search(x): + return all( + ( + True if rDict[x][dk][0] <= d <= rDict[x][dk][1] else False + for dk, d in {"lat": lat_lon[0], "lon": lat_lon[1]}.items() + ) + ) + region = [key for key in rDict if region_search(key)] - - if region[0] == 'CA_NWP_overlap': - if preferred_region == 'Offshore_CA': - region[0] = 'Offshore_CA' - elif preferred_region == 'NW_Pacific': - region[0] = 'NW_Pacific' + + if region[0] == "CA_NWP_overlap": + if preferred_region == "Offshore_CA": + region[0] = "Offshore_CA" + elif preferred_region == "NW_Pacific": + region[0] = "NW_Pacific" else: - raise TypeError(f"Preferred_region ({preferred_region}) must be 'Offshore_CA' or 'NW_Pacific' when lat_lon {lat_lon} falls in the overlap region") - - if len(region)==0: - raise TypeError(f'Coordinates {lat_lon} out of bounds. Must be within {rDict}') + raise TypeError( + f"Preferred_region ({preferred_region}) must be 'Offshore_CA' or 'NW_Pacific' when lat_lon {lat_lon} falls in the overlap region" + ) + + if len(region) == 0: + raise TypeError(f"Coordinates {lat_lon} out of bounds. Must be within {rDict}") else: return region[0] -def plot_region(region,lat_lon=None,ax=None): - ''' - Visualizes the area that a given region covers. Can help users understand +def get_region_data(region): + """ + Retrieves the latitude and longitude data points for the specified region + from the cache if available; otherwise, fetches the data and caches it for + subsequent calls. + + The function forms a unique identifier from the `region` parameter and checks + whether the corresponding data is available in the cache. If the data is found, + it's loaded and returned. If not, the data is fetched, cached, and then returned. + + Parameters + ---------- + region : str + Name of the predefined region in the WIND Toolkit for which to + retrieve latitude and longitude data points. It is case-sensitive. + Examples: 'Offshore_CA','Hawaii','Mid_Atlantic','NW_Pacific' + + Returns + ------- + lats : numpy.ndarray + A 1D array containing the latitude coordinates of data points + in the specified region. + + lons : numpy.ndarray + A 1D array containing the longitude coordinates of data points + in the specified region. + + Example + ------- + >>> lats, lons = get_region_data('Offshore_CA') + """ + if not isinstance(region, str): + raise TypeError("region must be of type string") + # Define the path to the cache directory + cache_dir = os.path.join(os.path.expanduser("~"), ".cache", "mhkit", "hindcast") + + # Create a unique identifier for this function call + hash_id = hashlib.md5(region.encode()).hexdigest() + + # Create cache directory if it doesn't exist + os.makedirs(cache_dir, exist_ok=True) + + # Create a path to the cache file for this function call + cache_file = os.path.join(cache_dir, f"{hash_id}.pkl") + + if os.path.isfile(cache_file): + # If the cache file exists, load the data from the cache + with open(cache_file, "rb") as f: + lats, lons = pickle.load(f) + return lats, lons + else: + wind_path = "/nrel/wtk/" + region.lower() + "/" + region + "_*.h5" + windKwargs = { + "tree": None, + "unscale": True, + "str_decode": True, + "hsds": True, + "years": [2019], + } + + # Get the latitude and longitude list from the region in rex + rex_wind = MultiYearWindX(wind_path, **windKwargs) + lats = rex_wind.lat_lon[:, 0] + lons = rex_wind.lat_lon[:, 1] + + # Save data to cache + with open(cache_file, "wb") as f: + pickle.dump((lats, lons), f) + + return lats, lons + + +def plot_region(region, lat_lon=None, ax=None): + """ + Visualizes the area that a given region covers. Can help users understand the extent of a region since they are not all rectangular. Parameters @@ -66,48 +222,47 @@ def plot_region(region,lat_lon=None,ax=None): Name of predefined region in the WIND Toolkit Options: 'Offshore_CA','Hawaii','Mid_Atlantic','NW_Pacific' lat_lon : couple (optional) - Latitude and longitude pair to plot on top of the chosen region. Useful + Latitude and longitude pair to plot on top of the chosen region. Useful to inform accurate latitude-longitude selection for data analysis. ax : matplotlib axes object (optional) Axes for plotting. If None, then a new figure is created. - + Returns --------- - ax : matplotlib pyplot axes - ''' - assert isinstance(region, str), 'region must be of type string' - assert region in ['Offshore_CA','Hawaii','Mid_Atlantic','NW_Pacific'], f'{region} not in list of supported regions' - - wind_path = '/nrel/wtk/'+region.lower()+'/'+region+'_*.h5' - windKwargs = {'tree':None, 'unscale':True, 'str_decode':True, 'hsds':True, - 'years':[2019]} - - # Get the latitude and longitude list from the region in rex - rex_wind = MultiYearWindX(wind_path, **windKwargs) - lats = rex_wind.lat_lon[:,0] - lons = rex_wind.lat_lon[:,1] - + ax : matplotlib pyplot axes + """ + if not isinstance(region, str): + raise TypeError("region must be of type string") + + supported_regions = ["Offshore_CA", "Hawaii", "Mid_Atlantic", "NW_Pacific"] + if region not in supported_regions: + raise ValueError( + f'{region} not in list of supported regions: {", ".join(supported_regions)}' + ) + + lats, lons = get_region_data(region) + # Plot the latitude longitude pairs if ax is None: fig, ax = plt.subplots() - ax.plot(lons,lats,'o',label=f'{region} region') + ax.plot(lons, lats, "o", label=f"{region} region") if lat_lon is not None: - ax.plot(lat_lon[1],lat_lon[0],'o',label='Specified lat-lon point') - ax.set_xlabel('Longitude (deg)') - ax.set_ylabel('Latitude (deg)') + ax.plot(lat_lon[1], lat_lon[0], "o", label="Specified lat-lon point") + ax.set_xlabel("Longitude (deg)") + ax.set_ylabel("Latitude (deg)") ax.grid() - ax.set_title(f'Extent of the WIND Toolkit {region} region') + ax.set_title(f"Extent of the WIND Toolkit {region} region") ax.legend() - + return ax def elevation_to_string(parameter, elevations): - """ - Takes in a parameter (e.g. 'windspeed') and elevations (e.g. [20, 40, 120]) + """ + Takes in a parameter (e.g. 'windspeed') and elevations (e.g. [20, 40, 120]) and returns the formatted strings that are input to WIND Toolkit (e.g. windspeed_10m). Does not check parameter against the elevation levels. This is done in request_wtk_point_data. - + Parameters ---------- parameter: string @@ -116,40 +271,57 @@ def elevation_to_string(parameter, elevations): elevations : list List of elevations (float). Values can range from approxiamtely 20 to 200 in increments of 20, depending - on the parameter in question. See Documentation for request_wtk_point_data + on the parameter in question. See Documentation for request_wtk_point_data for the full list of available parameters. Returns --------- parameter_list: list Formatted List of WIND Toolkit parameter strings - + """ - - assert isinstance(parameter,str) - assert isinstance(elevations,(float,list)) - assert parameter in ['windspeed','winddirection','temperature','pressure'] - + + if not isinstance(parameter, str): + raise TypeError(f"parameter must be a string, got {type(parameter)}") + + if not isinstance(elevations, (float, list)): + raise TypeError(f"elevations must be a float or list, got {type(elevations)}") + + if parameter not in ["windspeed", "winddirection", "temperature", "pressure"]: + raise ValueError(f"Invalid parameter: {parameter}") + parameter_list = [] for e in elevations: - parameter_list.append(parameter+'_'+str(e)+'m') - + parameter_list.append(parameter + "_" + str(e) + "m") + return parameter_list -def request_wtk_point_data(time_interval, parameter, lat_lon, years, preferred_region='', - tree=None, unscale=True, str_decode=True,hsds=True): - """ - Returns data from the WIND Toolkit offshore wind hindcast hosted on AWS at the specified latitude and longitude point(s), - or the closest available point(s). - Visit https://registry.opendata.aws/nrel-pds-wtk/ for more information about the dataset and available - locations and years. - - Calls with multiple parameters must have the same time interval. Calls - with multiple locations must use the same region (use the plot_region function). - - Note: To access the WIND Toolkit hindcast data, you will need to configure h5pyd for data access on HSDS. - Please see the WTK_hindcast_example notebook for more information. +def request_wtk_point_data( + time_interval, + parameter, + lat_lon, + years, + preferred_region="", + tree=None, + unscale=True, + str_decode=True, + hsds=True, + clear_cache=False, + to_pandas=True, +): + """ + Returns data from the WIND Toolkit offshore wind hindcast hosted on + AWS at the specified latitude and longitude point(s), or the closest + available point(s).Visit https://registry.opendata.aws/nrel-pds-wtk/ + for more information about the dataset and available locations and years. + + Calls with multiple parameters must have the same time interval. Calls + with multiple locations must use the same region (use the plot_region function). + + Note: To access the WIND Toolkit hindcast data, you will need to + configure h5pyd for data access on HSDS. Please see the + metocean_example or WPTO_hindcast_example notebook for more information. Parameters ---------- @@ -159,33 +331,33 @@ def request_wtk_point_data(time_interval, parameter, lat_lon, years, preferred_r parameter : string or list of strings Dataset parameter to be downloaded. Other parameters may be available. This list is limited to those available at both 5-minute and 1-hour - time intervals for all regions. - Options: - 'precipitationrate_0m', 'inversemoninobukhovlength_2m', - 'relativehumidity_2m', 'surface_sea_temperature', - 'pressure_0m', 'pressure_100m', 'pressure_200m', - 'temperature_10m', 'temperature_20m', 'temperature_40m', - 'temperature_60m', 'temperature_80m', 'temperature_100m', - 'temperature_120m', 'temperature_140m', 'temperature_160m', - 'temperature_180m', 'temperature_200m', - 'winddirection_10m', 'winddirection_20m', 'winddirection_40m', - 'winddirection_60m', 'winddirection_80m', 'winddirection_100m', - 'winddirection_120m', 'winddirection_140m', 'winddirection_160m', - 'winddirection_180m', 'winddirection_200m', - 'windspeed_10m', 'windspeed_20m', 'windspeed_40m', - 'windspeed_60m', 'windspeed_80m', 'windspeed_100m', - 'windspeed_120m', 'windspeed_140m', 'windspeed_160m', + time intervals for all regions. + Options: + 'precipitationrate_0m', 'inversemoninobukhovlength_2m', + 'relativehumidity_2m', 'surface_sea_temperature', + 'pressure_0m', 'pressure_100m', 'pressure_200m', + 'temperature_10m', 'temperature_20m', 'temperature_40m', + 'temperature_60m', 'temperature_80m', 'temperature_100m', + 'temperature_120m', 'temperature_140m', 'temperature_160m', + 'temperature_180m', 'temperature_200m', + 'winddirection_10m', 'winddirection_20m', 'winddirection_40m', + 'winddirection_60m', 'winddirection_80m', 'winddirection_100m', + 'winddirection_120m', 'winddirection_140m', 'winddirection_160m', + 'winddirection_180m', 'winddirection_200m', + 'windspeed_10m', 'windspeed_20m', 'windspeed_40m', + 'windspeed_60m', 'windspeed_80m', 'windspeed_100m', + 'windspeed_120m', 'windspeed_140m', 'windspeed_160m', 'windspeed_180m', 'windspeed_200m' lat_lon : tuple or list of tuples - Latitude longitude pairs at which to extract data. Use plot_region() or + Latitude longitude pairs at which to extract data. Use plot_region() or region_selection() to see the corresponding region for a given location. - years : list - Year(s) to be accessed. The years 2000-2019 available (up to 2020 + years : list + Year(s) to be accessed. The years 2000-2019 available (up to 2020 for Mid-Atlantic). Examples: [2015] or [2004,2006,2007] preferred_region : string (optional) Region that the lat_lon belongs to ('Offshore_CA' or 'NW_Pacific'). Required when a lat_lon point falls in both the Offshore California - and NW Pacific regions. Overlap region defined by + and NW Pacific regions. Overlap region defined by latitude = (41.213, 42.642) and longitude = (-129.090, -121.672). Default = '' tree : str | cKDTree (optional) @@ -200,69 +372,116 @@ def request_wtk_point_data(time_interval, parameter, lat_lon, years, preferred_r Default = True hsds : bool (optional) Boolean flag to use h5pyd to handle .h5 'files' hosted on AWS - behind HSDS. Setting to False will indicate to look for files on + behind HSDS. Setting to False will indicate to look for files on local machine, not AWS. Default = True + clear_cache : bool (optional) + Boolean flag to clear the cache related to this specific request. + Default is False. + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns --------- - data: DataFrame - Data indexed by datetime with columns named for parameter and cooresponding metadata index - meta: DataFrame - Location metadata for the requested data location + data: DataFrame + Data indexed by datetime with columns named for parameter and + cooresponding metadata index + meta: DataFrame + Location metadata for the requested data location """ - - assert isinstance(parameter, (str, list)), 'parameter must be of type string or list' - assert isinstance(lat_lon, (list,tuple)), 'lat_lon must be of type list or tuple' - assert isinstance(time_interval, str), 'time_interval must be a string' - assert isinstance(years,list), 'years must be a list' - assert isinstance(preferred_region, str), 'preferred_region must be a string' - assert isinstance(tree,(str,type(None))), 'tree must be a string' - assert isinstance(unscale,bool), 'unscale must be bool type' - assert isinstance(str_decode,bool), 'str_decode must be bool type' - assert isinstance(hsds,bool), 'hsds must be bool type' - - # check for multiple region selection - if isinstance(lat_lon[0], float): - region = region_selection(lat_lon, preferred_region) + + if not isinstance(parameter, (str, list)): + raise TypeError("parameter must be of type string or list") + if not isinstance(lat_lon, (list, tuple)): + raise TypeError("lat_lon must be of type list or tuple") + if not isinstance(time_interval, str): + raise TypeError("time_interval must be a string") + if not isinstance(years, list): + raise TypeError("years must be a list") + if not isinstance(preferred_region, str): + raise TypeError("preferred_region must be a string") + if not isinstance(tree, (str, type(None))): + raise TypeError("tree must be a string or None") + if not isinstance(unscale, bool): + raise TypeError("unscale must be bool type") + if not isinstance(str_decode, bool): + raise TypeError("str_decode must be bool type") + if not isinstance(hsds, bool): + raise TypeError("hsds must be bool type") + if not isinstance(clear_cache, bool): + raise TypeError("clear_cache must be of type bool") + + # Define the path to the cache directory + cache_dir = os.path.join(os.path.expanduser("~"), ".cache", "mhkit", "hindcast") + + # Construct a string representation of the function parameters + hash_params = f"{time_interval}_{parameter}_{lat_lon}_{years}_{preferred_region}_{tree}_{unscale}_{str_decode}_{hsds}" + + # Use handle_caching to manage caching. + data, meta, _ = handle_caching(hash_params, cache_dir, clear_cache_file=clear_cache) + + if data is not None and meta is not None: + if not to_pandas: + data = convert_to_dataset(data) + data.attrs = meta + + return data, meta # Return cached data and meta if available else: - reglist = [] - for loc in lat_lon: - reglist.append(region_selection(loc)) - if reglist.count(reglist[0]) == len(lat_lon): - region = reglist[0] + # check for multiple region selection + if isinstance(lat_lon[0], float): + region = region_selection(lat_lon, preferred_region) else: - raise TypeError('Coordinates must be within the same region!') - - if time_interval == '1-hour': - wind_path = f'/nrel/wtk/'+region.lower()+'/'+region+'_*.h5' - elif time_interval == '5-minute': - wind_path = f'/nrel/wtk/'+region.lower()+'-5min/'+region+'_*.h5' - else: - raise TypeError(f"Invalid time_interval '{time_interval}', must be '1-hour' or '5-minute'") - windKwargs = {'tree':tree,'unscale':unscale,'str_decode':str_decode, 'hsds':hsds, - 'years':years} - data_list = [] - - with MultiYearWindX(wind_path, **windKwargs) as rex_wind: - if isinstance(parameter, list): - for p in parameter: - temp_data = rex_wind.get_lat_lon_df(p,lat_lon) - col = temp_data.columns[:] - for i,c in zip(range(len(col)),col): - temp = f'{p}_{i}' - temp_data = temp_data.rename(columns={c:temp}) - - data_list.append(temp_data) - data= pd.concat(data_list, axis=1) - + reglist = [] + for loc in lat_lon: + reglist.append(region_selection(loc)) + if reglist.count(reglist[0]) == len(lat_lon): + region = reglist[0] + else: + raise TypeError("Coordinates must be within the same region!") + + if time_interval == "1-hour": + wind_path = f"/nrel/wtk/{region.lower()}/{region}_*.h5" + elif time_interval == "5-minute": + wind_path = f"/nrel/wtk/{region.lower()}-5min/{region}_*.h5" else: - data = rex_wind.get_lat_lon_df(parameter,lat_lon) - col = data.columns[:] + raise TypeError( + f"Invalid time_interval '{time_interval}', must be '1-hour' or '5-minute'" + ) + windKwargs = { + "tree": tree, + "unscale": unscale, + "str_decode": str_decode, + "hsds": hsds, + "years": years, + } + data_list = [] + with MultiYearWindX(wind_path, **windKwargs) as rex_wind: + if isinstance(parameter, list): + for p in parameter: + temp_data = rex_wind.get_lat_lon_df(p, lat_lon) + col = temp_data.columns[:] + for i, c in zip(range(len(col)), col): + temp = f"{p}_{i}" + temp_data = temp_data.rename(columns={c: temp}) + + data_list.append(temp_data) + data = pd.concat(data_list, axis=1) + + else: + data = rex_wind.get_lat_lon_df(parameter, lat_lon) + col = data.columns[:] + + for i, c in zip(range(len(col)), col): + temp = f"{parameter}_{i}" + data = data.rename(columns={c: temp}) + + meta = rex_wind.meta.loc[col, :] + meta = meta.reset_index(drop=True) + + # Save the retrieved data and metadata to cache. + handle_caching(hash_params, cache_dir, data=data, metadata=meta) - for i,c in zip(range(len(col)),col): - temp = f'{parameter}_{i}' - data = data.rename(columns={c:temp}) + if not to_pandas: + data = convert_to_dataset(data) + data.attrs = meta - meta = rex_wind.meta.loc[col,:] - meta = meta.reset_index(drop=True) - return data, meta + return data, meta diff --git a/mhkit/wave/io/ndbc.py b/mhkit/wave/io/ndbc.py index 019481bc8..268c3390e 100644 --- a/mhkit/wave/io/ndbc.py +++ b/mhkit/wave/io/ndbc.py @@ -1,3 +1,4 @@ +import os from collections import OrderedDict as _OrderedDict from collections import defaultdict as _defaultdict from io import BytesIO @@ -11,9 +12,15 @@ import xarray as xr from bs4 import BeautifulSoup +from mhkit.utils.cache import handle_caching +from mhkit.utils import ( + convert_to_dataset, + convert_to_dataarray, + convert_nested_dict_and_pandas, +) -def read_file(file_name, missing_values=['MM', 9999, 999, 99]): +def read_file(file_name, missing_values=["MM", 9999, 999, 99], to_pandas=True): """ Reads a NDBC wave buoy data file (from https://www.ndbc.noaa.gov). @@ -36,23 +43,31 @@ def read_file(file_name, missing_values=['MM', 9999, 999, 99]): missing_value: list of values List of values that denote missing data + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. + Returns --------- - data: pandas DataFrame + data: pandas DataFrame or xarray Dataset Data indexed by datetime with columns named according to header row metadata: dict or None Dictionary with {column name: units} key value pairs when the NDBC file contains unit information, otherwise None is returned """ - assert isinstance(file_name, str), 'file_name must be of type str' - assert isinstance( - missing_values, list), 'missing_values must be of type list' + if not isinstance(file_name, str): + raise TypeError(f"file_name must be of type str. Got: {type(file_name)}") + if not isinstance(missing_values, list): + raise TypeError( + f"If specified, missing_values must be of type list. Got: {type(missing_values)}" + ) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") # Open file and get header rows f = open(file_name, "r") header = f.readline().rstrip().split() # read potential headers - units = f.readline().rstrip().split() # read potential units + units = f.readline().rstrip().split() # read potential units f.close() # If first line is commented, remove comment sign # @@ -70,31 +85,38 @@ def read_file(file_name, missing_values=['MM', 9999, 999, 99]): # Check if the time stamp contains minutes, and create list of column names # to parse for date - if header[4] == 'mm': + if header[4] == "mm": parse_vals = header[0:5] - date_format = '%Y %m %d %H %M' + date_format = "%Y %m %d %H %M" units = units[5:] # remove date columns from units else: parse_vals = header[0:4] - date_format = '%Y %m %d %H' + date_format = "%Y %m %d %H" units = units[4:] # remove date columns from units # If first line is commented, manually feed in column names if header_commented: - data = pd.read_csv(file_name, sep='\s+', header=None, names=header, - comment="#", parse_dates=[parse_vals]) + data = pd.read_csv( + file_name, + sep="\s+", + header=None, + names=header, + comment="#", + parse_dates=[parse_vals], + ) # If first line is not commented, then the first row can be used as header else: - data = pd.read_csv(file_name, sep='\s+', header=0, - comment="#", parse_dates=[parse_vals]) + data = pd.read_csv( + file_name, sep="\s+", header=0, comment="#", parse_dates=[parse_vals] + ) # Convert index to datetime date_column = "_".join(parse_vals) - data['Time'] = pd.to_datetime(data[date_column], format=date_format) - data.index = data['Time'].values + data["Time"] = pd.to_datetime(data[date_column], format=date_format) + data.index = data["Time"].values # Remove date columns del data[date_column] - del data['Time'] + del data["Time"] # If there was a row of units, convert to dictionary if units_exist: @@ -104,7 +126,7 @@ def read_file(file_name, missing_values=['MM', 9999, 999, 99]): # Convert columns to numeric data if possible, otherwise leave as string for column in data: - data[column] = pd.to_numeric(data[column], errors='ignore') + data[column] = pd.to_numeric(data[column], errors="ignore") # Convert column names to float if possible (handles frequency headers) # if there is non-numeric name, just leave all as strings. @@ -116,12 +138,17 @@ def read_file(file_name, missing_values=['MM', 9999, 999, 99]): # Replace indicated missing values with nan data.replace(missing_values, np.nan, inplace=True) + if not to_pandas: + data = convert_to_dataset(data) + return data, metadata -def available_data(parameter, buoy_number=None, proxy=None): - ''' - For a given parameter this will return a DataFrame of years, +def available_data( + parameter, buoy_number=None, proxy=None, clear_cache=False, to_pandas=True +): + """ + For a given parameter this will return a DataFrame or Dataset of years, station IDs and file names that contain that parameter data. Parameters @@ -142,58 +169,95 @@ def available_data(parameter, buoy_number=None, proxy=None): Proxy dict passed to python requests, (e.g. proxy_dict= {"http": 'http:wwwproxy.yourProxy:80/'}) + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. + Returns ------- - available_data: DataFrame + available_data: pandas DataFrame or xarray Dataset DataFrame with station ID, years, and NDBC file names. - ''' - assert isinstance(parameter, str), 'parameter must be a string' - assert isinstance(buoy_number, (str, type(None), list)), ('If ' - 'specified the buoy number must be a string or list of strings') - assert isinstance(proxy, (dict, type(None)) - ), 'If specified proxy must be a dict' - supported = _supported_params(parameter) + """ + if not isinstance(parameter, str): + raise TypeError(f"parameter must be a string. Got: {type(parameter)}") + if not isinstance(buoy_number, (str, type(None), list)): + raise TypeError( + f"If specified, buoy_number must be a string or list of strings. Got: {type(buoy_number)}" + ) + if not isinstance(proxy, (dict, type(None))): + raise TypeError(f"If specified, proxy must be a dict. Got: {type(proxy)}") + _supported_params(parameter) if isinstance(buoy_number, str): - assert len(buoy_number) == 5, ('Buoy must be 5-character' - f'alpha-numeric station identifier got: {buoy_number}') + if not len(buoy_number) == 5: + raise ValueError( + "buoy_number must be 5-character" + f"alpha-numeric station identifier. Got: {buoy_number}" + ) elif isinstance(buoy_number, list): for buoy in buoy_number: - assert len(buoy) == 5, ('Each buoy must be a 5-character' - f'alpha-numeric station identifier got: {buoy}') - ndbc_data = f'https://www.ndbc.noaa.gov/data/historical/{parameter}/' - if proxy == None: - response = requests.get(ndbc_data) + if not len(buoy) == 5: + raise ValueError( + "Each value in the buoy_number list must be a 5-character" + f"alpha-numeric station identifier. Got: {buoy_number}" + ) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + # Generate a unique hash_params based on the function parameters + hash_params = f"parameter:{parameter}_buoy_number:{buoy_number}_proxy:{proxy}" + cache_dir = os.path.join(os.path.expanduser("~"), ".cache", "mhkit", "ndbc") + + # Check the cache before making the request + data, _, _ = handle_caching(hash_params, cache_dir, clear_cache_file=clear_cache) + + # no coverage bc in coverage runs we have already cached the data/ run this code + if data is None: # pragma: no cover + ndbc_data = f"https://www.ndbc.noaa.gov/data/historical/{parameter}/" + + try: + response = requests.get(ndbc_data, proxies=proxy, timeout=30) + response.raise_for_status() + + except requests.exceptions.Timeout: + print("The request timed out") + response = None + + except requests.exceptions.RequestException as error: + print(f"An error occurred: {error}") + response = None + + if response and response.status_code != 200: + msg = f"request.get({ndbc_data}) failed by returning code of {response.status_code}" + raise Exception(msg) + + filenames = pd.read_html(response.text)[0].Name.dropna() + buoys = _parse_filenames(parameter, filenames) + + available_data = buoys.copy(deep=True) + + # Set year to numeric (makes year key non-unique) + available_data["year"] = available_data.year.str.strip("b") + available_data["year"] = pd.to_numeric(available_data.year.str.strip("_old")) + + if isinstance(buoy_number, str): + available_data = available_data[available_data.id == buoy_number] + elif isinstance(buoy_number, list): + available_data = available_data[available_data.id == buoy_number[0]] + for i in range(1, len(buoy_number)): + data = available_data[available_data.id == buoy_number[i]] + available_data = available_data.append(data) + # Cache the result + handle_caching(hash_params, cache_dir, data=available_data) else: - response = requests.get(ndbc_data, proxies=proxy) + available_data = data - status = response.status_code - if status != 200: - msg = f"request.get{ndbc_data} failed by returning code of {status}" - raise Exception(msg) - - filenames = pd.read_html(response.text)[0].Name.dropna() - buoys = _parse_filenames(parameter, filenames) - - available_data = buoys.copy(deep=True) - - # Set year to numeric (makes year key non-unique) - available_data['year'] = available_data.year.str.strip('b') - available_data['year'] = pd.to_numeric( - available_data.year.str.strip('_old')) - - if isinstance(buoy_number, str): - available_data = available_data[available_data.id == buoy_number] - elif isinstance(buoy_number, list): - available_data = available_data[available_data.id == buoy_number[0]] - for i in range(1, len(buoy_number)): - data = available_data[available_data.id == buoy_number[i]] - available_data = available_data.append(data) + if not to_pandas: + available_data = convert_to_dataset(available_data) return available_data def _parse_filenames(parameter, filenames): - ''' + """ Takes a list of available filenames as a series from NDBC then parses out the station ID and year from the file name. @@ -215,37 +279,38 @@ def _parse_filenames(parameter, filenames): ------- buoys: DataFrame DataFrame with keys=['id','year','file_name'] - ''' - assert isinstance( - filenames, pd.Series), 'filenames must be of type pd.Series' - assert isinstance(parameter, str), 'parameter must be a string' + """ + if not isinstance(filenames, pd.Series): + raise TypeError(f"filenames must be of type pd.Series. Got: {type(filenames)}") + if not isinstance(parameter, str): + raise TypeError(f"parameter must be a string. Got: {type(parameter)}") supported = _supported_params(parameter) file_seps = { - 'swden': 'w', - 'swdir': 'd', - 'swdir2': 'i', - 'swr1': 'j', - 'swr2': 'k', - 'stdmet': 'h', - 'cwind': 'c' + "swden": "w", + "swdir": "d", + "swdir2": "i", + "swr1": "j", + "swr2": "k", + "stdmet": "h", + "cwind": "c", } file_sep = file_seps[parameter] - filenames = filenames[filenames.str.contains('.txt.gz')] - buoy_id_year_str = filenames.str.split('.', expand=True)[0] + filenames = filenames[filenames.str.contains(".txt.gz")] + buoy_id_year_str = filenames.str.split(".", expand=True)[0] buoy_id_year = buoy_id_year_str.str.split(file_sep, n=1, expand=True) - buoys = buoy_id_year.rename(columns={0: 'id', 1: 'year'}) + buoys = buoy_id_year.rename(columns={0: "id", 1: "year"}) expected_station_id_length = 5 buoys = buoys[buoys.id.str.len() == expected_station_id_length] - buoys['filename'] = filenames + buoys["filename"] = filenames return buoys -def request_data(parameter, filenames, proxy=None): - ''' - Requests data by filenames and returns a dictionary of DataFrames +def request_data(parameter, filenames, proxy=None, clear_cache=False, to_pandas=True): + """ + Requests data by filenames and returns a dictionary of DataFrames or dictionary of Datasets for each filename passed. If filenames for a single buoy are passed then the yearly DataFrames in the returned dictionary (ndbc_data) are indexed by year (e.g. ndbc_data['2014']). If multiple buoy ids are @@ -263,74 +328,107 @@ def request_data(parameter, filenames, proxy=None): 'stdmet': 'Standard Meteorological Current Year Historical Data' 'cwind' : 'Continuous Winds Current Year Historical Data' - filenames: pandas Series or DataFrame + filenames: pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset Data filenames on https://www.ndbc.noaa.gov/data/historical/{parameter}/ proxy: dict Proxy dict passed to python requests, (e.g. proxy_dict= {"http": 'http:wwwproxy.yourProxy:80/'}) + to_pandas: bool (optional) + Flag to output a dictionary of pandas objects instead of a dictionary + of xarray objects. Default = True. + Returns ------- ndbc_data: dict - Dictionary of DataFrames indexed by buoy and year. - ''' - assert isinstance(filenames, (pd.Series, pd.DataFrame)), ( - 'filenames must be of type pd.Series') - assert isinstance(parameter, str), 'parameter must be a string' - assert isinstance(proxy, (dict, type(None))), ('If specified proxy' - 'must be a dict') - - supported = _supported_params(parameter) - if isinstance(filenames, pd.DataFrame): - filenames = pd.Series(filenames.squeeze()) - assert len(filenames) > 0, "At least 1 filename must be passed" + Dictionary of DataFrames/Datasets indexed by buoy and year. + """ + filenames = convert_to_dataarray(filenames) + filenames = pd.Series(filenames) + if not isinstance(parameter, str): + raise TypeError(f"parameter must be a string. Got: {type(parameter)}") + if not isinstance(proxy, (dict, type(None))): + raise TypeError(f"If specified, proxy must be a dict. Got: {type(proxy)}") + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + _supported_params(parameter) + if not len(filenames) > 0: + raise ValueError("At least 1 filename must be passed") + + # Define the path to the cache directory + cache_dir = os.path.join(os.path.expanduser("~"), ".cache", "mhkit", "ndbc") buoy_data = _parse_filenames(parameter, filenames) - parameter_url = f'https://www.ndbc.noaa.gov/data/historical/{parameter}' ndbc_data = _defaultdict(dict) - for buoy_id in buoy_data['id'].unique(): - buoy = buoy_data[buoy_data['id'] == buoy_id] + for buoy_id in buoy_data["id"].unique(): + buoy = buoy_data[buoy_data["id"] == buoy_id] years = buoy.year filenames = buoy.filename for year, filename in zip(years, filenames): - file_url = f'{parameter_url}/{filename}' + # Create a unique filename based on the function parameters for caching + hash_params = f"{buoy_id}_{parameter}_{year}_{filename}" + cached_data, _, _ = handle_caching( + hash_params, cache_dir, clear_cache_file=clear_cache + ) + + if cached_data is not None: + ndbc_data[buoy_id][year] = cached_data + continue + file_url = ( + f"https://www.ndbc.noaa.gov/data/historical/{parameter}/{filename}" + ) if proxy == None: response = requests.get(file_url) else: response = requests.get(file_url, proxies=proxy) try: - data = zlib.decompress(response.content, 16+zlib.MAX_WBITS) - df = pd.read_csv(BytesIO(data), sep='\s+', low_memory=False) + data = zlib.decompress(response.content, 16 + zlib.MAX_WBITS) + df = pd.read_csv(BytesIO(data), sep="\s+", low_memory=False) # catch when units are included below the header - firstYear = df['MM'][0] - if isinstance(firstYear, str) and firstYear == 'mo': - df = pd.read_csv(BytesIO(data), sep='\s+', - low_memory=False, skiprows=[1]) + firstYear = df["MM"][0] + if isinstance(firstYear, str) and firstYear == "mo": + df = pd.read_csv( + BytesIO(data), sep="\s+", low_memory=False, skiprows=[1] + ) except zlib.error: - msg = (f'Issue decompressing the NDBC file {filename}' - f'(id: {buoy_id}, year: {year}). Please request ' - 'the data again.') + msg = ( + f"Issue decompressing the NDBC file {filename}" + f"(id: {buoy_id}, year: {year}). Please request " + "the data again." + ) print(msg) except pandas.errors.EmptyDataError: - msg = (f'The NDBC buoy {buoy_id} for year {year} with ' - f'filename {filename} is empty or missing ' - 'data. Please omit this file from your data ' - 'request in the future.') + msg = ( + f"The NDBC buoy {buoy_id} for year {year} with " + f"filename {filename} is empty or missing " + "data. Please omit this file from your data " + "request in the future." + ) print(msg) else: ndbc_data[buoy_id][year] = df - if len(ndbc_data) == 1: + # Cache the data after processing it if it exists + if year in ndbc_data[buoy_id]: + handle_caching( + hash_params, cache_dir, data=ndbc_data[buoy_id][year] + ) + + if buoy_id and len(ndbc_data) == 1: ndbc_data = ndbc_data[buoy_id] + if not to_pandas: + ndbc_data = convert_nested_dict_and_pandas(ndbc_data) + return ndbc_data -def to_datetime_index(parameter, ndbc_data): - ''' +def to_datetime_index(parameter, ndbc_data, to_pandas=True): + """ Converts the NDBC date and time information reported in separate columns into a DateTime index and removed the NDBC date & time columns. @@ -346,39 +444,55 @@ def to_datetime_index(parameter, ndbc_data): 'stdmet': 'Standard Meteorological Current Year Historical Data' 'cwind': 'Continuous Winds Current Year Historical Data' - ndbc_data: DataFrame + ndbc_data: pandas DataFrame or xarray Dataset NDBC data in dataframe with date and time columns to be converted + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. + Returns ------- - df_datetime: DataFrame + df_datetime: pandas DataFrame or xarray Dataset Dataframe with NDBC date columns removed, and datetime index - ''' + """ - assert isinstance(parameter, str), 'parameter must be a string' - assert isinstance( - ndbc_data, pd.DataFrame), 'ndbc_data must be of type pd.DataFrame' + if not isinstance(parameter, str): + raise TypeError(f"parameter must be a string. Got: {type(parameter)}") + if isinstance(ndbc_data, xr.Dataset): + ndbc_data = ndbc_data.to_pandas() + if not isinstance(ndbc_data, pd.DataFrame): + raise TypeError( + f"ndbc_data must be of type pd.DataFrame. Got: {type(ndbc_data)}" + ) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") df_datetime = ndbc_data.copy(deep=True) - df_datetime['date'], ndbc_date_cols = dates_to_datetime( - df_datetime, return_date_cols=True) + df_datetime["date"], ndbc_date_cols = dates_to_datetime( + df_datetime, return_date_cols=True + ) df_datetime = df_datetime.drop(ndbc_date_cols, axis=1) - df_datetime = df_datetime.set_index('date') - if parameter in ['swden', 'swdir', 'swdir2', 'swr1', 'swr2']: + df_datetime = df_datetime.set_index("date") + if parameter in ["swden", "swdir", "swdir2", "swr1", "swr2"]: df_datetime.columns = df_datetime.columns.astype(float) + if not to_pandas: + df_datetime = convert_to_dataset(df_datetime) + return df_datetime -def dates_to_datetime(data, return_date_cols=False, return_as_dataframe=False): - ''' - Takes a DataFrame and converts the NDBC date columns - (e.g. "#YY MM DD hh mm") to datetime. Returns a DataFrame with the +def dates_to_datetime( + data, return_date_cols=False, return_as_dataframe=False, to_pandas=True +): + """ + Takes a DataFrame/Dataset and converts the NDBC date columns + (e.g. "#YY MM DD hh mm") to datetime. Returns a DataFrame/Dataset with the removed NDBC date columns a new ['date'] columns with DateTime Format. Parameters ---------- - data: DataFrame + data: pandas DataFrame or xarray Dataset Dataframe with headers (e.g. ['YY', 'MM', 'DD', 'hh', {'mm'}]) return_date_col: Bool (optional) @@ -387,52 +501,62 @@ def dates_to_datetime(data, return_date_cols=False, return_as_dataframe=False): return_as_dataFrame: bool Results returned as a DataFrame (useful for MHKiT-MATLAB) + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. + Returns ------- - date: Series + date: pandas Series or xarray DataArray Series with NDBC dates dropped and new ['date'] column in DateTime format ndbc_date_cols: list (optional) - List of the DataFrame columns headers for dates as provided by + List of the DataFrame/Dataset columns headers for dates as provided by NDBC - ''' - assert isinstance(data, pd.DataFrame), 'data must be of type pd.DataFrame' - assert isinstance(return_date_cols, - bool), 'return_date_cols must be of type bool' + """ + if isinstance(data, xr.Dataset): + data = pd.DataFrame(data) + if not isinstance(data, pd.DataFrame): + raise TypeError(f"data must be of type pd.DataFrame. Got: {type(data)}") + if not isinstance(return_date_cols, bool): + raise TypeError( + f"return_date_cols must be of type bool. Got: {type(return_date_cols)}" + ) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") df = data.copy(deep=True) cols = df.columns.values.tolist() try: - minutes_loc = cols.index('mm') + minutes_loc = cols.index("mm") minutes = True except: - df['mm'] = np.zeros(len(df)).astype(int).astype(str) + df["mm"] = np.zeros(len(df)).astype(int).astype(str) minutes = False row_0_is_units = False - year_string = [col for col in cols if col.startswith('Y')] + year_string = [col for col in cols if col.startswith("Y")] if not year_string: - year_string = [col for col in cols if col.startswith('#')] + year_string = [col for col in cols if col.startswith("#")] if not year_string: - print(f'ERROR: Could Not Find Year Column in {cols}') + print(f"ERROR: Could Not Find Year Column in {cols}") year_string = year_string[0] - year_fmt = '%Y' - if str(df[year_string][0]).startswith('#'): + year_fmt = "%Y" + if str(df[year_string][0]).startswith("#"): row_0_is_units = True df = df.drop(df.index[0]) - elif year_string[0] == 'YYYY': + elif year_string[0] == "YYYY": year_string = year_string[0] - year_fmt = '%Y' - elif year_string[0] == 'YY': + year_fmt = "%Y" + elif year_string[0] == "YY": year_string = year_string[0] - year_fmt = '%y' + year_fmt = "%y" - parse_columns = [year_string, 'MM', 'DD', 'hh', 'mm'] + parse_columns = [year_string, "MM", "DD", "hh", "mm"] df = _date_string_to_datetime(df, parse_columns, year_fmt) - date = df['date'] + date = df["date"] if row_0_is_units: date = pd.concat([pd.Series([np.nan]), date]) @@ -440,18 +564,23 @@ def dates_to_datetime(data, return_date_cols=False, return_as_dataframe=False): if return_as_dataframe: date = pd.DataFrame(date) + if not to_pandas: + date = convert_to_dataset(date) + elif not to_pandas: + date = convert_to_dataarray(date) + if return_date_cols: if minutes: - ndbc_date_cols = [year_string, 'MM', 'DD', 'hh', 'mm'] + ndbc_date_cols = [year_string, "MM", "DD", "hh", "mm"] else: - ndbc_date_cols = [year_string, 'MM', 'DD', 'hh'] + ndbc_date_cols = [year_string, "MM", "DD", "hh"] return date, ndbc_date_cols return date def _date_string_to_datetime(df, columns, year_fmt): - ''' + """ Takes a NDBC df and creates a datetime from multiple columns headers by combining each column into a single string. Then the datetime method is applied given the expected format. @@ -473,28 +602,31 @@ def _date_string_to_datetime(df, columns, year_fmt): ------- df: DataFrame The passed df with a new column ['date'] with the datetime format - ''' - assert isinstance(df, pd.DataFrame), 'df must be of type pd.DataFrame' - assert isinstance(columns, list), 'Columns must be a list' - assert isinstance(year_fmt, str), 'year_fmt must be a string' + """ + if not isinstance(df, pd.DataFrame): + raise TypeError(f"df must be of type pd.DataFrame. Got: {type(df)}") + if not isinstance(columns, list): + raise TypeError(f"columns must be a list. Got: {type(columns)}") + if not isinstance(year_fmt, str): + raise TypeError(f"year_fmt must be a string. Got: {type(year_fmt)}") # Convert to str and zero pad for key in columns: df[key] = df[key].astype(str).str.zfill(2) - df['date_string'] = df[columns[0]] + df["date_string"] = df[columns[0]] for column in columns[1:]: - df['date_string'] = df[['date_string', column]].apply( - lambda x: ''.join(x), axis=1) - df['date'] = pd.to_datetime( - df['date_string'], format=f'{year_fmt}%m%d%H%M') - del df['date_string'] + df["date_string"] = df[["date_string", column]].apply( + lambda x: "".join(x), axis=1 + ) + df["date"] = pd.to_datetime(df["date_string"], format=f"{year_fmt}%m%d%H%M") + del df["date_string"] return df -def parameter_units(parameter=''): - ''' +def parameter_units(parameter=""): + """ Returns an ordered dictionary of NDBC parameters with unit values. If no parameter is passed then an ordered dictionary of all NDBC parameterz specified unites is returned. If a parameter is specified @@ -530,163 +662,175 @@ def parameter_units(parameter=''): ------- units: dict Dictionary of parameter units - ''' - - assert isinstance(parameter, str), 'parameter must be a string' - - if parameter == 'adcp': - units = {'DEP01': 'm', - 'DIR01': 'deg', - 'SPD01': 'cm/s', - } - elif parameter == 'cwind': - units = {'WDIR': 'degT', - 'WSPD': 'm/s', - 'GDR': 'degT', - 'GST': 'm/s', - 'GTIME': 'hhmm' - } - elif parameter == 'dart': - units = {'T': '-', - 'HEIGHT': 'm', - } - elif parameter == 'derived2': - units = {'CHILL': 'degC', - 'HEAT': 'degC', - 'ICE': 'cm/hr', - 'WSPD10': 'm/s', - 'WSPD20': 'm/s' - } - elif parameter == 'ocean': - units = {'DEPTH': 'm', - 'OTMP': 'degC', - 'COND': 'mS/cm', - 'SAL': 'psu', - 'O2%': '%', - 'O2PPM': 'ppm', - 'CLCON': 'ug/l', - 'TURB': 'FTU', - 'PH': '-', - 'EH': 'mv', - } - elif parameter == 'rain': - units = {'ACCUM': 'mm', - } - elif parameter == 'rain10': - units = {'RATE': 'mm/h', - } - elif parameter == 'rain24': - units = {'RATE': 'mm/h', - 'PCT': '%', - 'SDEV': '-', - } - elif parameter == 'realtime2': - units = {'WVHT': 'm', - 'SwH': 'm', - 'SwP': 'sec', - 'WWH': 'm', - 'WWP': 'sec', - 'SwD': '-', - 'WWD': 'degT', - 'STEEPNESS': '-', - 'APD': 'sec', - 'MWD': 'degT', - } - elif parameter == 'srad': - units = {'SRAD1': 'w/m2', - 'SRAD2': 'w/m2', - 'SRAD3': 'w/m2', - } - elif parameter == 'stdmet': - units = {'WDIR': 'degT', - 'WSPD': 'm/s', - 'GST': 'm/s', - 'WVHT': 'm', - 'DPD': 'sec', - 'APD': 'sec', - 'MWD': 'degT', - 'PRES': 'hPa', - 'ATMP': 'degC', - 'WTMP': 'degC', - 'DEWP': 'degC', - 'VIS': 'nmi', - 'PTDY': 'hPa', - 'TIDE': 'ft'} - elif parameter == 'supl': - units = {'PRES': 'hPa', - 'PTIME': 'hhmm', - 'WSPD': 'm/s', - 'WDIR': 'degT', - 'WTIME': 'hhmm' - } - elif parameter == 'swden': - units = {'swden': '(m*m)/Hz'} - elif parameter == 'swdir': - units = {'swdir': 'deg'} - elif parameter == 'swdir2': - units = {'swdir2': 'deg'} - elif parameter == 'swr1': - units = {'swr1': ''} - elif parameter == 'swr2': - units = {'swr2': ''} + """ + + if not isinstance(parameter, str): + raise TypeError(f"parameter must be a string. Got: {type(parameter)}") + + if parameter == "adcp": + units = { + "DEP01": "m", + "DIR01": "deg", + "SPD01": "cm/s", + } + elif parameter == "cwind": + units = { + "WDIR": "degT", + "WSPD": "m/s", + "GDR": "degT", + "GST": "m/s", + "GTIME": "hhmm", + } + elif parameter == "dart": + units = { + "T": "-", + "HEIGHT": "m", + } + elif parameter == "derived2": + units = { + "CHILL": "degC", + "HEAT": "degC", + "ICE": "cm/hr", + "WSPD10": "m/s", + "WSPD20": "m/s", + } + elif parameter == "ocean": + units = { + "DEPTH": "m", + "OTMP": "degC", + "COND": "mS/cm", + "SAL": "psu", + "O2%": "%", + "O2PPM": "ppm", + "CLCON": "ug/l", + "TURB": "FTU", + "PH": "-", + "EH": "mv", + } + elif parameter == "rain": + units = { + "ACCUM": "mm", + } + elif parameter == "rain10": + units = { + "RATE": "mm/h", + } + elif parameter == "rain24": + units = { + "RATE": "mm/h", + "PCT": "%", + "SDEV": "-", + } + elif parameter == "realtime2": + units = { + "WVHT": "m", + "SwH": "m", + "SwP": "sec", + "WWH": "m", + "WWP": "sec", + "SwD": "-", + "WWD": "degT", + "STEEPNESS": "-", + "APD": "sec", + "MWD": "degT", + } + elif parameter == "srad": + units = { + "SRAD1": "w/m2", + "SRAD2": "w/m2", + "SRAD3": "w/m2", + } + elif parameter == "stdmet": + units = { + "WDIR": "degT", + "WSPD": "m/s", + "GST": "m/s", + "WVHT": "m", + "DPD": "sec", + "APD": "sec", + "MWD": "degT", + "PRES": "hPa", + "ATMP": "degC", + "WTMP": "degC", + "DEWP": "degC", + "VIS": "nmi", + "PTDY": "hPa", + "TIDE": "ft", + } + elif parameter == "supl": + units = { + "PRES": "hPa", + "PTIME": "hhmm", + "WSPD": "m/s", + "WDIR": "degT", + "WTIME": "hhmm", + } + elif parameter == "swden": + units = {"swden": "(m*m)/Hz"} + elif parameter == "swdir": + units = {"swdir": "deg"} + elif parameter == "swdir2": + units = {"swdir2": "deg"} + elif parameter == "swr1": + units = {"swr1": ""} + elif parameter == "swr2": + units = {"swr2": ""} else: - units = {'swden': '(m*m)/Hz', - 'PRES': 'hPa', - 'PTIME': 'hhmm', - 'WDIR': 'degT', - 'WTIME': 'hhmm', - 'GST': 'm/s', - 'WVHT': 'm', - 'DPD': 'sec', - 'APD': 'sec', - 'MWD': 'degT', - 'ATMP': 'degC', - 'WTMP': 'degC', - 'DEWP': 'degC', - 'VIS': 'nmi', - 'PTDY': 'hPa', - 'TIDE': 'ft', - 'SRAD1': 'w/m2', - 'SRAD2': 'w/m2', - 'SRAD3': 'w/m2', - 'WVHT': 'm', - 'SwH': 'm', - 'SwP': 'sec', - 'WWH': 'm', - 'WWP': 'sec', - 'SwD': '-', - 'WWD': 'degT', - 'STEEPNESS': '-', - 'APD': 'sec', - 'RATE': 'mm/h', - 'PCT': '%', - 'SDEV': '-', - 'ACCUM': 'mm', - 'DEPTH': 'm', - 'OTMP': 'degC', - 'COND': 'mS/cm', - 'SAL': 'psu', - 'O2%': '%', - 'O2PPM': 'ppm', - 'CLCON': 'ug/l', - 'TURB': 'FTU', - 'PH': '-', - 'EH': 'mv', - 'CHILL': 'degC', - 'HEAT': 'degC', - 'ICE': 'cm/hr', - 'WSPD': 'm/s', - 'WSPD10': 'm/s', - 'WSPD20': 'm/s', - 'T': '-', - 'HEIGHT': 'm', - 'GDR': 'degT', - 'GST': 'm/s', - 'GTIME': 'hhmm', - 'DEP01': 'm', - 'DIR01': 'deg', - 'SPD01': 'cm/s', - } + units = { + "swden": "(m*m)/Hz", + "PRES": "hPa", + "PTIME": "hhmm", + "WDIR": "degT", + "WTIME": "hhmm", + "DPD": "sec", + "MWD": "degT", + "ATMP": "degC", + "WTMP": "degC", + "DEWP": "degC", + "VIS": "nmi", + "PTDY": "hPa", + "TIDE": "ft", + "SRAD1": "w/m2", + "SRAD2": "w/m2", + "SRAD3": "w/m2", + "WVHT": "m", + "SwH": "m", + "SwP": "sec", + "WWH": "m", + "WWP": "sec", + "SwD": "-", + "WWD": "degT", + "STEEPNESS": "-", + "APD": "sec", + "RATE": "mm/h", + "PCT": "%", + "SDEV": "-", + "ACCUM": "mm", + "DEPTH": "m", + "OTMP": "degC", + "COND": "mS/cm", + "SAL": "psu", + "O2%": "%", + "O2PPM": "ppm", + "CLCON": "ug/l", + "TURB": "FTU", + "PH": "-", + "EH": "mv", + "CHILL": "degC", + "HEAT": "degC", + "ICE": "cm/hr", + "WSPD": "m/s", + "WSPD10": "m/s", + "WSPD20": "m/s", + "T": "-", + "HEIGHT": "m", + "GDR": "degT", + "GST": "m/s", + "GTIME": "hhmm", + "DEP01": "m", + "DIR01": "deg", + "SPD01": "cm/s", + } units = _OrderedDict(sorted(units.items())) @@ -694,7 +838,7 @@ def parameter_units(parameter=''): def _supported_params(parameter): - ''' + """ There is a significant number of datasets provided by NDBC. There is specific data processing required for each type. Therefore this function throws an error for any data type not currently covered. @@ -712,33 +856,28 @@ def _supported_params(parameter): ------- msg: bool Whether the parameter is supported. - ''' - assert isinstance(parameter, str), 'parameter must be a string' + """ + if not isinstance(parameter, str): + raise TypeError(f"parameter must be a string. Got: {type(parameter)}") supported = True - supported_params = [ - 'swden', - 'swdir', - 'swdir2', - 'swr1', - 'swr2', - 'stdmet', - 'cwind' - ] + supported_params = ["swden", "swdir", "swdir2", "swr1", "swr2", "stdmet", "cwind"] param = [param for param in supported_params if param == parameter] if not param: supported = False - msg = ["Currently parameters ['swden', 'swdir', 'swdir2', " + - "'swr1', 'swr2', 'stdmet', 'cwind'] are supported. \n" + - "If you would like to see more data types please \n" + - " open an issue or submit a Pull Request on GitHub"] + msg = [ + "Currently parameters ['swden', 'swdir', 'swdir2', " + + "'swr1', 'swr2', 'stdmet', 'cwind'] are supported. \n" + + "If you would like to see more data types please \n" + + " open an issue or submit a Pull Request on GitHub" + ] raise Exception(msg[0]) return supported def _historical_parameters(): - ''' + """ Names and description of all NDBC Historical Data. Available Data: https://www.ndbc.noaa.gov/data/ @@ -754,26 +893,26 @@ def _historical_parameters(): ------- msg: dict Names and decriptions of historical parameters. - ''' + """ parameters = { - 'adcp': 'Acoustic Doppler Current Profiler Current Year Historical Data', - 'adcp2': 'Acoustic Doppler Current Profiler Current Year Historical Data', - 'cwind': 'Continuous Winds Current Year Historical Data', - 'dart': 'Water Column Height (DART) Current Year Historical Data', - 'mmbcur': 'Marsh-McBirney Current Measurements', - 'ocean': 'Oceanographic Current Year Historical Data', - 'rain': 'Hourly Rain Current Year Historical Data', - 'rain10': '10-Minute Rain Current Year Historical Data', - 'rain24': '24-Hour Rain Current Year Historical Data', - 'srad': 'Solar Radiation Current Year Historical Data', - 'stdmet': 'Standard Meteorological Current Year Historical Data', - 'supl': 'Supplemental Measurements Current Year Historical Data', - 'swden': 'Raw Spectral Wave Current Year Historical Data', - 'swdir': 'Spectral Wave Current Year Historical Data (alpha1)', - 'swdir2': 'Spectral Wave Current Year Historical Data (alpha2)', - 'swr1': 'Spectral Wave Current Year Historical Data (r1)', - 'swr2': 'Spectral Wave Current Year Historical Data (r2)', - 'wlevel': 'Tide Current Year Historical Data', + "adcp": "Acoustic Doppler Current Profiler Current Year Historical Data", + "adcp2": "Acoustic Doppler Current Profiler Current Year Historical Data", + "cwind": "Continuous Winds Current Year Historical Data", + "dart": "Water Column Height (DART) Current Year Historical Data", + "mmbcur": "Marsh-McBirney Current Measurements", + "ocean": "Oceanographic Current Year Historical Data", + "rain": "Hourly Rain Current Year Historical Data", + "rain10": "10-Minute Rain Current Year Historical Data", + "rain24": "24-Hour Rain Current Year Historical Data", + "srad": "Solar Radiation Current Year Historical Data", + "stdmet": "Standard Meteorological Current Year Historical Data", + "supl": "Supplemental Measurements Current Year Historical Data", + "swden": "Raw Spectral Wave Current Year Historical Data", + "swdir": "Spectral Wave Current Year Historical Data (alpha1)", + "swdir2": "Spectral Wave Current Year Historical Data (alpha2)", + "swr1": "Spectral Wave Current Year Historical Data (r1)", + "swr2": "Spectral Wave Current Year Historical Data (r2)", + "wlevel": "Tide Current Year Historical Data", } return parameters @@ -801,74 +940,88 @@ def request_directional_data(buoy, year): Dataset containing the five parameter data indexed by frequency and date. """ - assert isinstance(buoy, str), 'buoy must be a string' - assert isinstance(year, int), 'year must be an int' - - directional_parameters = ['swden', 'swdir', 'swdir2', 'swr1', 'swr2'] - - seps = {'swden': 'w', - 'swdir': 'd', - 'swdir2': 'i', - 'swr1': 'j', - 'swr2': 'k', - } + if not isinstance(buoy, str): + raise TypeError(f"buoy must be a string. Got: {type(buoy)}") + if not isinstance(year, int): + raise TypeError(f"year must be an int. Got: {type(year)}") + + directional_parameters = ["swden", "swdir", "swdir2", "swr1", "swr2"] + + seps = { + "swden": "w", + "swdir": "d", + "swdir2": "i", + "swr1": "j", + "swr2": "k", + } data_dict = {} for param in directional_parameters: - file = f'{buoy}{seps[param]}{year}.txt.gz' - raw_data = request_data(param, pd.Series([file,]))[str(year)] + file = f"{buoy}{seps[param]}{year}.txt.gz" + raw_data = request_data( + param, + pd.Series( + [ + file, + ] + ), + )[str(year)] pd_data = to_datetime_index(param, raw_data) xr_data = xr.DataArray(pd_data) - xr_data = xr_data.astype(float).rename({'dim_1': 'frequency', }) - if param in ['swr1', 'swr2']: - xr_data = xr_data/100.0 + xr_data = xr_data.astype(float).rename( + { + "dim_1": "frequency", + } + ) + if param in ["swr1", "swr2"]: + xr_data = xr_data / 100.0 xr_data.frequency.attrs = { - 'units': 'Hz', - 'long_name': 'frequency', - 'standard_name': 'f', + "units": "Hz", + "long_name": "frequency", + "standard_name": "f", } xr_data.date.attrs = { - 'units': '', - 'long_name': 'datetime', - 'standard_name': 't', + "units": "", + "long_name": "datetime", + "standard_name": "t", } data_dict[param] = xr_data - data_dict['swden'].attrs = { - 'units': 'm^2/Hz', - 'long_name': 'omnidirecational spectrum', - 'standard_name': 'S', - 'description': 'Omnidirectional *sea surface elevation variance (m^2)* spectrum (/Hz).' + data_dict["swden"].attrs = { + "units": "m^2/Hz", + "long_name": "omnidirecational spectrum", + "standard_name": "S", + "description": "Omnidirectional *sea surface elevation variance (m^2)* spectrum (/Hz).", } - data_dict['swdir'].attrs = { - 'units': 'deg', - 'long_name': 'mean wave direction', - 'standard_name': 'α1', - 'description': 'Mean wave direction.' + data_dict["swdir"].attrs = { + "units": "deg", + "long_name": "mean wave direction", + "standard_name": "α1", + "description": "Mean wave direction.", } - data_dict['swdir2'].attrs = { - 'units': 'deg', - 'long_name': 'principal wave direction', - 'standard_name': 'α2', - 'description': 'Principal wave direction.' + data_dict["swdir2"].attrs = { + "units": "deg", + "long_name": "principal wave direction", + "standard_name": "α2", + "description": "Principal wave direction.", } - data_dict['swr1'].attrs = { - 'units': '', - 'long_name': 'coordinate r1', - 'standard_name': 'r1', - 'description': 'First normalized polar coordinate of the Fourier coefficients (nondimensional).' + data_dict["swr1"].attrs = { + "units": "", + "long_name": "coordinate r1", + "standard_name": "r1", + "description": "First normalized polar coordinate of the Fourier coefficients (nondimensional).", } - data_dict['swr2'].attrs = { - 'units': '', - 'long_name': 'coordinate r2', - 'standard_name': 'r2', - 'description': 'Second normalized polar coordinate of the Fourier coefficients (nondimensional).' + data_dict["swr2"].attrs = { + "units": "", + "long_name": "coordinate r2", + "standard_name": "r2", + "description": "Second normalized polar coordinate of the Fourier coefficients (nondimensional).", } return xr.Dataset(data_dict) @@ -899,40 +1052,52 @@ def _create_spectrum(data, frequencies, directions, name, units): DataArray containing the spectrum values indexed by frequency and wave direction. """ - assert isinstance(data, np.ndarray), 'data must be an array' - assert isinstance(frequencies, np.ndarray), 'frequencies must be an array' - assert isinstance(directions, np.ndarray), 'directions must be an array' - assert isinstance(name, str), 'name must be a string' - assert isinstance(units, str), 'units must be a string' - - msg = (f'data has wrong shape {data.shape}, ' + - f'expected {(len(frequencies), len(directions))}') - assert data.shape == (len(frequencies), len(directions)), msg + if not isinstance(data, np.ndarray): + raise TypeError(f"data must be of type np.ndarray. Got: {type(data)}") + if not isinstance(frequencies, np.ndarray): + raise TypeError( + f"frequencies must be of type np.ndarray. Got: {type(frequencies)}" + ) + if not isinstance(directions, np.ndarray): + raise TypeError( + f"directions must be of type np.ndarray. Got: {type(directions)}" + ) + if not isinstance(name, str): + raise TypeError(f"name must be of type string. Got: {type(name)}") + if not isinstance(units, str): + raise TypeError(f"units must be of type string. Got: {type(units)}") + + msg = ( + f"data has wrong shape {data.shape}, " + + f"expected {(len(frequencies), len(directions))}" + ) + if not data.shape == (len(frequencies), len(directions)): + raise ValueError(msg) direction_attrs = { - 'units': 'deg', - 'long_name': 'wave direction', - 'standard_name': 'direction', + "units": "deg", + "long_name": "wave direction", + "standard_name": "direction", } frequency_attrs = { - 'units': 'Hz', - 'long_name': 'frequency', - 'standard_name': 'f', + "units": "Hz", + "long_name": "frequency", + "standard_name": "f", } spectrum = xr.DataArray( data, coords={ - 'frequency': ('frequency', frequencies, frequency_attrs), - 'direction': ('direction', directions, direction_attrs) + "frequency": ("frequency", frequencies, frequency_attrs), + "direction": ("direction", directions, direction_attrs), }, attrs={ - 'units': f'{units}/Hz/deg', - 'long_name': f'{name} spectrum', - 'standard_name': 'spectrum', - 'description': f'*{name} ({units})* spectrum (/Hz/deg).', - } + "units": f"{units}/Hz/deg", + "long_name": f"{name} spectrum", + "standard_name": "spectrum", + "description": f"*{name} ({units})* spectrum (/Hz/deg).", + }, ) return spectrum @@ -957,27 +1122,26 @@ def create_spread_function(data, directions): DataArray containing the spread function values indexed by frequency and wave direction. """ - assert isinstance(data, xr.Dataset), 'data must be a Dataset' - assert isinstance(directions, np.ndarray), 'directions must be an array' + if not isinstance(data, xr.Dataset): + raise TypeError(f"data must be of type xr.Dataset. Got: {type(data)}") + if not isinstance(directions, np.ndarray): + raise TypeError( + f"directions must be of type np.ndarray. Got: {type(directions)}" + ) - r1 = data['swr1'].data.reshape(-1, 1) - r2 = data['swr2'].data.reshape(-1, 1) - a1 = data['swdir'].data.reshape(-1, 1) - a2 = data['swdir2'].data.reshape(-1, 1) + r1 = data["swr1"].data.reshape(-1, 1) + r2 = data["swr2"].data.reshape(-1, 1) + a1 = data["swdir"].data.reshape(-1, 1) + a2 = data["swdir2"].data.reshape(-1, 1) a = directions.reshape(1, -1) spread = ( - 1/np.pi * ( - 0.5 + - r1*np.cos(np.deg2rad(a-a1)) + - r2*np.cos(2*np.deg2rad(a-a2)) - ) + 1 + / np.pi + * (0.5 + r1 * np.cos(np.deg2rad(a - a1)) + r2 * np.cos(2 * np.deg2rad(a - a2))) ) spread = _create_spectrum( - spread, - data.frequency.values, - directions, - name="Spread", - units="1") + spread, data.frequency.values, directions, name="Spread", units="1" + ) return spread @@ -1000,27 +1164,32 @@ def create_directional_spectrum(data, directions): DataArray containing the spectrum values indexed by frequency and wave direction. """ - assert isinstance(data, xr.Dataset), 'data must be a Dataset' - assert isinstance(directions, np.ndarray), 'directions must be an array' + if not isinstance(data, xr.Dataset): + raise TypeError(f"data must be of type xr.Dataset. Got: {type(data)}") + if not isinstance(directions, np.ndarray): + raise TypeError( + f"directions must be of type np.ndarray. Got: {type(directions)}" + ) spread = create_spread_function(data, directions).values - omnidirectional_spectrum = data['swden'].data.reshape(-1, 1) + omnidirectional_spectrum = data["swden"].data.reshape(-1, 1) spectrum = omnidirectional_spectrum * spread spectrum = _create_spectrum( spectrum, data.frequency.values, directions, name="Elevation variance", - units="m^2") + units="m^2", + ) return spectrum def get_buoy_metadata(station_number: str): """ - Fetches and parses the metadata of a National Data Buoy Center (NDBC) station + Fetches and parses the metadata of a National Data Buoy Center (NDBC) station from https://www.ndbc.noaa.gov. - Extracts information such as provider, buoy type, latitude, longitude, and + Extracts information such as provider, buoy type, latitude, longitude, and other metadata from the station's webpage. Parameters @@ -1046,29 +1215,28 @@ def get_buoy_metadata(station_number: str): soup = BeautifulSoup(content, "html.parser") # Find the title element - title_element = soup.find('h1') + title_element = soup.find("h1") # Extract the title (remove the trailing image and whitespace) - title = title_element.get_text(strip=True).split('\n')[0] + title = title_element.get_text(strip=True).split("\n")[0] # Check if the title element exists - if title == 'Station not found': - raise ValueError( - f"Invalid or nonexistent station number: {station_number}") + if title == "Station not found": + raise ValueError(f"Invalid or nonexistent station number: {station_number}") # Save buoy name to a dictionary data = {} - data['buoy'] = title + data["buoy"] = title # Find the specific div containing the buoy metadata - metadata_div = soup.find('div', id='stn_metadata') + metadata_div = soup.find("div", id="stn_metadata") # Extract the metadata - lines = metadata_div.p.text.split('\n') + lines = metadata_div.p.text.split("\n") line_count = 1 for line in lines: line = line.strip() - if line.startswith(''): + if line.startswith(""): line = line[3:] # Line should be the data provider if line_count == 1: @@ -1077,13 +1245,13 @@ def get_buoy_metadata(station_number: str): elif line_count == 2: data["type"] = line # Special case look for lat/long - elif re.match(r'\d+\.\d+\s+[NS]\s+\d+\.\d+\s+[EW]', line): - lat, lon = line.split(' ', 3)[0:3:2] + elif re.match(r"\d+\.\d+\s+[NS]\s+\d+\.\d+\s+[EW]", line): + lat, lon = line.split(" ", 3)[0:3:2] data["lat"] = lat.strip() data["lon"] = lon.strip() # Split key value pairs on colon - elif ':' in line: - key, value = line.split(':', 1) + elif ":" in line: + key, value = line.split(":", 1) data[key.strip()] = value.strip() # Catch all other lines as keys with empty values elif line: diff --git a/mhkit/wave/io/swan.py b/mhkit/wave/io/swan.py index c71a1a514..c344561d0 100644 --- a/mhkit/wave/io/swan.py +++ b/mhkit/wave/io/swan.py @@ -1,295 +1,355 @@ from scipy.io import loadmat from os.path import isfile import pandas as pd +import xarray as xr import numpy as np -import re - +import re +from mhkit.utils import convert_to_dataset, convert_nested_dict_and_pandas -def read_table(swan_file): - ''' + +def read_table(swan_file, to_pandas=True): + """ Reads in SWAN table format output - + Parameters ---------- swan_file: str filename to import - + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. + Returns ------- - swan_data: DataFrame + swan_data: pandas DataFrame or xarray Dataset Dataframe of swan output metaDict: Dictionary Dictionary of metaData - ''' - assert isinstance(swan_file, str), 'swan_file must be of type str' - assert isfile(swan_file)==True, f'File not found: {swan_file}' - - f = open(swan_file,'r') + """ + if not isinstance(swan_file, str): + raise TypeError(f"swan_file must be of type str. Got: {type(swan_file)}") + if not isfile(swan_file): + raise ValueError(f"File not found: {swan_file}") + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + f = open(swan_file, "r") header_line_number = 4 - for i in range(header_line_number+2): + for i in range(header_line_number + 2): line = f.readline() - if line.startswith('% Run'): + if line.startswith("% Run"): metaDict = _parse_line_metadata(line) - if metaDict['Table'].endswith('SWAN'): - metaDict['Table'] = metaDict['Table'].split(' SWAN')[:-1] - if i == header_line_number: - header = re.split("\s+",line.rstrip().strip('%').lstrip()) - metaDict['header'] = header - if i == header_line_number+1: - units = re.split('\s+',line.strip(' %\n').replace('[','').replace(']','')) - metaDict['units'] = units - f.close() - - swan_data = pd.read_csv(swan_file, sep='\s+', comment='%', - names=metaDict['header']) - return swan_data, metaDict - - -def read_block(swan_file): - ''' - Reads in SWAN block output with headers and creates a dictionary - of DataFrames for each SWAN output variable in the output file. - + if metaDict["Table"].endswith("SWAN"): + metaDict["Table"] = metaDict["Table"].split(" SWAN")[:-1] + if i == header_line_number: + header = re.split("\s+", line.rstrip().strip("%").lstrip()) + metaDict["header"] = header + if i == header_line_number + 1: + units = re.split( + "\s+", line.strip(" %\n").replace("[", "").replace("]", "") + ) + metaDict["units"] = units + f.close() + + swan_data = pd.read_csv(swan_file, sep="\s+", comment="%", names=metaDict["header"]) + + if not to_pandas: + swan_data = convert_to_dataset(swan_data) + + return swan_data, metaDict + + +def read_block(swan_file, to_pandas=True): + """ + Reads in SWAN block output with headers and creates a dictionary + of DataFrames or Datasets for each SWAN output variable in the output file. + Parameters ---------- swan_file: str swan block file to import - + to_pandas: bool (optional) + Flag to output a dictionary of pandas objects instead of a dictionary + of xarray objects. Default = True. + Returns ------- data: Dictionary - Dictionary of DataFrame of swan output variables + Dictionary of DataFrames or Datasets of swan output variables metaDict: Dictionary - Dictionary of metaData dependent on file type - ''' - assert isinstance(swan_file, str), 'swan_file must be of type str' - assert isfile(swan_file)==True, f'File not found: {swan_file}' - - extension = swan_file.split('.')[1].lower() - if extension == 'mat': + Dictionary of metaData dependent on file type + """ + if not isinstance(swan_file, str): + raise TypeError(f"swan_file must be of type str. Got: {type(swan_file)}") + if not isfile(swan_file): + raise ValueError(f"File not found: {swan_file}") + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + extension = swan_file.split(".")[1].lower() + if extension == "mat": dataDict = _read_block_mat(swan_file) - metaData = {'filetype': 'mat', - 'variables': [var for var in dataDict.keys()]} + metaData = {"filetype": "mat", "variables": [var for var in dataDict.keys()]} else: dataDict, metaData = _read_block_txt(swan_file) + + if not to_pandas: + dataDict = convert_nested_dict_and_pandas(dataDict) + return dataDict, metaData - + def _read_block_txt(swan_file): - ''' - Reads in SWAN block output with headers and creates a dictionary + """ + Reads in SWAN block output with headers and creates a dictionary of DataFrames for each SWAN output variable in the output file. - + Parameters ---------- swan_file: str swan block file to import (must be written with headers) - + Returns ------- dataDict: Dictionary Dictionary of DataFrame of swan output variables metaDict: Dictionary - Dictionary of metaData dependent on file type - ''' - assert isinstance(swan_file, str), 'swan_file must be of type str' - assert isfile(swan_file)==True, f'File not found: {swan_file}' - - f = open(swan_file) - runLines=[] + Dictionary of metaData dependent on file type + """ + if not isinstance(swan_file, str): + raise TypeError(f"swan_file must be of type str. Got: {type(swan_file)}") + if not isfile(swan_file): + raise ValueError(f"File not found: {swan_file}") + + f = open(swan_file) + runLines = [] metaDict = {} column_position = None - dataDict={} + dataDict = {} for position, line in enumerate(f): - - if line.startswith('% Run'): + if line.startswith("% Run"): varPosition = position runLines.extend([position]) - column_position = position + 5 - varDict = _parse_line_metadata(line) - varDict['unitMultiplier'] = float(varDict['Unit'].split(' ')[0]) - - metaDict[varPosition] = varDict - variable = varDict['vars'] + column_position = position + 5 + varDict = _parse_line_metadata(line) + varDict["unitMultiplier"] = float(varDict["Unit"].split(" ")[0]) + + metaDict[varPosition] = varDict + variable = varDict["vars"] dataDict[variable] = {} - - if position==column_position and column_position!=None: - columns = line.strip('% \n').split() - metaDict[varPosition]['cols'] = columns - N_columns = len(columns) - columns_position = None - - - if not line.startswith('%'): - raw_data = ' '.join(re.split(' |\.', line.strip(' \n'))).split() + + if position == column_position and column_position != None: + columns = line.strip("% \n").split() + metaDict[varPosition]["cols"] = columns + N_columns = len(columns) + columns_position = None + + if not line.startswith("%"): + raw_data = " ".join(re.split(" |\.", line.strip(" \n"))).split() index_number = int(raw_data[0]) columns_data = raw_data[1:] - data=[] - possibleNaNs = ['****'] + data = [] + possibleNaNs = ["****"] NNaNsTotal = sum([line.count(nanVal) for nanVal in possibleNaNs]) - - if NNaNsTotal>0: + + if NNaNsTotal > 0: for vals in columns_data: - NNaNs = 0 + NNaNs = 0 for nanVal in possibleNaNs: NNaNs += vals.count(nanVal) if NNaNs > 0: for i in range(NNaNs): - data.extend([np.nan]) + data.extend([np.nan]) else: data.extend([float(vals)]) - else: - data.extend([float(val) for val in columns_data]) - + else: + data.extend([float(val) for val in columns_data]) + dataDict[variable][index_number] = data - - metaData = pd.DataFrame(metaDict).T + + metaData = pd.DataFrame(metaDict).T f.close() - - for var in metaData.vars.values: - df = pd.DataFrame(dataDict[var]).T - varCols = metaData[metaData.vars == var].cols.values.tolist()[0] + + for var in metaData.vars.values: + df = pd.DataFrame(dataDict[var]).T + varCols = metaData[metaData.vars == var].cols.values.tolist()[0] colsDict = dict(zip(df.columns.values.tolist(), varCols)) df.rename(columns=colsDict) unitMultiplier = metaData[metaData.vars == var].unitMultiplier.values[0] - dataDict[var] = df * unitMultiplier - - metaData.pop('cols') - metaData = metaData.set_index('vars').T.to_dict() - return dataDict, metaData - + dataDict[var] = df * unitMultiplier + + metaData.pop("cols") + metaData = metaData.set_index("vars").T.to_dict() + return dataDict, metaData + def _read_block_mat(swan_file): - ''' + """ Reads in SWAN matlab output and creates a dictionary of DataFrames for each swan output variable. - + Parameters ---------- swan_file: str filename to import - + Returns ------- dataDict: Dictionary Dictionary of DataFrame of swan output variables - ''' - assert isinstance(swan_file, str), 'swan_file must be of type str' - assert isfile(swan_file)==True, f'File not found: {swan_file}' - + """ + if not isinstance(swan_file, str): + raise TypeError(f"swan_file must be of type str. Got: {type(swan_file)}") + if not isfile(swan_file): + raise ValueError(f"File not found: {swan_file}") + dataDict = loadmat(swan_file, struct_as_record=False, squeeze_me=True) - removeKeys = ['__header__', '__version__', '__globals__'] + removeKeys = ["__header__", "__version__", "__globals__"] for key in removeKeys: dataDict.pop(key, None) for key in dataDict.keys(): dataDict[key] = pd.DataFrame(dataDict[key]) return dataDict - - + + def _parse_line_metadata(line): - ''' + """ Parses the variable metadata into a dictionary - + Parameters ---------- line: str line from block swan data to parse - + Returns ------- metaDict: Dictionary Dictionary of variable metadata - ''' - assert isinstance(line, str), 'line must be of type str' - - metaDict={} - meta=re.sub('\s+', " ", line.replace(',', ' ').strip('% \n').replace('**', 'vars:')) - mList = meta.split(':') - elms = [elm.split(' ') for elm in mList] + """ + if not isinstance(line, str): + raise TypeError(f"line must be of type str. Got: {type(line)}") + + metaDict = {} + meta = re.sub( + "\s+", " ", line.replace(",", " ").strip("% \n").replace("**", "vars:") + ) + mList = meta.split(":") + elms = [elm.split(" ") for elm in mList] for elm in elms: try: - elm.remove('') + elm.remove("") except: - pass - for i in range(len(elms)-1): + pass + for i in range(len(elms) - 1): elm = elms[i] key = elm[-1] - val = ' '.join(elms[i+1][:-1]) + val = " ".join(elms[i + 1][:-1]) metaDict[key] = val - metaDict[key] = ' '.join(elms[-1]) - - return metaDict + metaDict[key] = " ".join(elms[-1]) + return metaDict + + +def dictionary_of_block_to_table(dictionary_of_DataFrames, names=None, to_pandas=True): + """ + Converts a dictionary of structured 2D grid SWAN block format + x (columns),y (index) to SWAN table format x (column),y (column), + values (column) DataFrame or Dataset. -def dictionary_of_block_to_table(dictionary_of_DataFrames, names=None): - ''' - Converts a dictionary of structured 2D grid SWAN block format - x (columns),y (index) to SWAN table format x (column),y (column), - values (column) DataFrame. - Parameters ---------- - dictionary_of_DataFrames: Dictionary + dictionary_of_DataFrames: Dictionary Dictionary of DataFrames in with columns as X indicie and Y as index. names: List (Optional) Name of data column in returned table. Default=Dictionary.keys() + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. + Returns ------- - swanTables: DataFrame - DataFrame with columns x,y,values where values = Dictionary.keys() - or names - ''' - assert isinstance(dictionary_of_DataFrames, dict), ( - 'dictionary_of_DataFrames must be of type Dict') - assert bool(dictionary_of_DataFrames), 'dictionary_of_DataFrames is empty' - for key in dictionary_of_DataFrames: - assert isinstance(dictionary_of_DataFrames[key],pd.DataFrame), ( - f'Dictionary key:{key} must be of type pd.DataFrame') + swanTables: pandas DataFrame or xarray Dataset + DataFrame/Dataset with columns x,y,values where values = Dictionary.keys() + or names + """ + if not isinstance(dictionary_of_DataFrames, dict): + raise TypeError( + f"dictionary_of_DataFrames must be of type dict. Got: {type(dictionary_of_DataFrames)}" + ) + if not bool(dictionary_of_DataFrames): + raise ValueError( + f"dictionary_of_DataFrames is empty. Got: {dictionary_of_DataFrames}" + ) + for key in dictionary_of_DataFrames: + if not isinstance(dictionary_of_DataFrames[key], pd.DataFrame): + raise TypeError( + f"Dictionary key:{key} must be of type pd.DataFrame. Got: {type(dictionary_of_DataFrames[key])}" + ) if not isinstance(names, type(None)): - assert isinstance(names, list), ( - 'If specified names must be of type list') - assert all([isinstance(elm, str) for elm in names]), ( - 'If specified all elements in names must be of type string') - assert len(names) == len(dictionary_of_DataFrames), ( - 'If specified names must the same length as dictionary_of_DataFrames') - + if not isinstance(names, list): + raise TypeError( + f"If specified, names must be of type list. Got: {type(names)}" + ) + if not all([isinstance(elm, str) for elm in names]): + raise ValueError( + f"If specified, all elements in names must be of type string. Got: {names}" + ) + if not len(names) == len(dictionary_of_DataFrames): + raise ValueError( + "If specified, names must the same length as dictionary_of_DataFrames" + ) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + if names == None: - variables = [var for var in dictionary_of_DataFrames.keys() ] + variables = [var for var in dictionary_of_DataFrames.keys()] else: variables = names - + var0 = variables[0] swanTables = block_to_table(dictionary_of_DataFrames[var0], name=var0) - for var in variables[1:]: + for var in variables[1:]: tmp_dat = block_to_table(dictionary_of_DataFrames[var], name=var) swanTables[var] = tmp_dat[var] - + + if not to_pandas: + swanTables = convert_to_dataset(swanTables) + return swanTables - -def block_to_table(data, name='values'): - ''' - Converts structured 2D grid SWAN block format x (columns), y (index) - to SWAN table format x (column),y (column), values (column) + +def block_to_table(data, name="values", to_pandas=True): + """ + Converts structured 2D grid SWAN block format x (columns), y (index) + to SWAN table format x (column),y (column), values (column) DataFrame. - + Parameters ---------- - data: DataFrame + data: pandas DataFrame or xarray Dataset DataFrame in with columns as X indicie and Y as index. name: string (Optional) Name of data column in returned table. Default='values' + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. + Returns ------- - table: DataFrame - DataFrame with columns x,y,values - ''' - assert isinstance(data,pd.DataFrame), 'data must be of type pd.DataFrame' - assert isinstance(name, str), 'Name must be of type str' - + table: pandas DataFrame or xarray Dataset + DataFrame with columns x,y,values + """ + if isinstance(data, xr.Dataset): + data = data.to_pandas() + if not isinstance(data, pd.DataFrame): + raise TypeError(f"data must be of type pd.DataFrame. Got: {type(data)}") + if not isinstance(name, str): + raise TypeError(f"If specified, name must be of type str. Got: {type(name)}") + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + table = data.unstack().reset_index(name=name) - table = table.rename(columns={'level_0':'x', 'level_1': 'y'}) - table.sort_values(['x', 'y'], ascending=[True, True], inplace=True) + table = table.rename(columns={"level_0": "x", "level_1": "y"}) + table.sort_values(["x", "y"], ascending=[True, True], inplace=True) - return table + if not to_pandas: + table = convert_to_dataset(table) + return table diff --git a/mhkit/wave/io/wecsim.py b/mhkit/wave/io/wecsim.py index 65ce071cf..78298a475 100644 --- a/mhkit/wave/io/wecsim.py +++ b/mhkit/wave/io/wecsim.py @@ -1,31 +1,41 @@ import pandas as pd import numpy as np import scipy.io as sio +from os.path import isfile +from mhkit.utils import convert_nested_dict_and_pandas -def read_output(file_name): +def read_output(file_name, to_pandas=True): """ - Loads the wecSim response class once 'output' has been saved to a `.mat` - structure. - - NOTE: Python is unable to import MATLAB objects. - MATLAB must be used to save the wecSim object as a structure. - + Loads the wecSim response class once 'output' has been saved to a `.mat` + structure. + + NOTE: Python is unable to import MATLAB objects. + MATLAB must be used to save the wecSim object as a structure. + Parameters ------------ file_name: string Name of wecSim output file saved as a `.mat` structure - - + to_pandas: bool (optional) + Flag to output a dictionary of pandas objects instead of a dictionary + of xarray objects. Default = True. + Returns --------- - ws_output: dict - Dictionary of pandas DataFrames, indexed by time (s) - + ws_output: dict + Dictionary of pandas DataFrames or xarray Datasets, indexed by time (s) + """ - + if not isinstance(file_name, str): + raise TypeError(f"file_name must be of type str. Got: {type(file_name)}") + if not isfile(file_name): + raise ValueError(f"File not found: {file_name}") + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + ws_data = sio.loadmat(file_name) - output = ws_data['output'] + output = ws_data["output"] ###################################### ## import wecSim wave class @@ -33,25 +43,24 @@ def read_output(file_name): # time: [iterations x 1 double] # elevation: [iterations x 1 double] ###################################### - try: - wave = output['wave'] - wave_type = wave[0][0][0][0][0][0] - time = wave[0][0]['time'][0][0].squeeze() - elevation = wave[0][0]['elevation'][0][0].squeeze() - + try: + wave = output["wave"] + wave_type = wave[0][0][0][0][0][0] + time = wave[0][0]["time"][0][0].squeeze() + elevation = wave[0][0]["elevation"][0][0].squeeze() + ###################################### ## create wave_output DataFrame ###################################### - wave_output = pd.DataFrame(data = time,columns=['time']) - wave_output = wave_output.set_index('time') - wave_output['elevation'] = elevation + wave_output = pd.DataFrame(data=time, columns=["time"]) + wave_output = wave_output.set_index("time") + wave_output["elevation"] = elevation wave_output.name = wave_type - + except: - print("wave class not used") - wave_output = [] - - + print("wave class not used") + wave_output = [] + ###################################### ## import wecSim body class # name: '' @@ -66,11 +75,11 @@ def read_output(file_name): # forceRestoring: [iterations x 6 double] # forceMorisonAndViscous: [iterations x 6 double] # forceLinearDamping: [iterations x 6 double] - ###################################### + ###################################### try: - bodies = output['bodies'] - num_bodies = len(bodies[0][0]['name'][0]) - name = [] + bodies = output["bodies"] + num_bodies = len(bodies[0][0]["name"][0]) + name = [] time = [] position = [] velocity = [] @@ -83,57 +92,66 @@ def read_output(file_name): forceMorisonAndViscous = [] forceLinearDamping = [] for body in range(num_bodies): - name.append(bodies[0][0]['name'][0][body][0]) - time.append(bodies[0][0]['time'][0][body]) - position.append(bodies[0][0]['position'][0][body]) - velocity.append(bodies[0][0]['velocity'][0][body]) - acceleration.append(bodies[0][0]['acceleration'][0][body]) - forceTotal.append(bodies[0][0]['forceTotal'][0][body]) - forceExcitation.append(bodies[0][0]['forceExcitation'][0][body]) - forceRadiationDamping.append(bodies[0][0]['forceRadiationDamping'][0][body]) - forceAddedMass.append(bodies[0][0]['forceAddedMass'][0][body]) - forceRestoring.append(bodies[0][0]['forceRestoring'][0][body]) + name.append(bodies[0][0]["name"][0][body][0]) + time.append(bodies[0][0]["time"][0][body]) + position.append(bodies[0][0]["position"][0][body]) + velocity.append(bodies[0][0]["velocity"][0][body]) + acceleration.append(bodies[0][0]["acceleration"][0][body]) + forceTotal.append(bodies[0][0]["forceTotal"][0][body]) + forceExcitation.append(bodies[0][0]["forceExcitation"][0][body]) + forceRadiationDamping.append(bodies[0][0]["forceRadiationDamping"][0][body]) + forceAddedMass.append(bodies[0][0]["forceAddedMass"][0][body]) + forceRestoring.append(bodies[0][0]["forceRestoring"][0][body]) try: - # Format in WEC-Sim responseClass >= v4.2 - forceMorisonAndViscous.append(bodies[0][0]['forceMorisonAndViscous'][0][body]) + # Format in WEC-Sim responseClass >= v4.2 + forceMorisonAndViscous.append( + bodies[0][0]["forceMorisonAndViscous"][0][body] + ) except: # Format in WEC-Sim responseClass <= v4.1 - forceMorisonAndViscous.append(bodies[0][0]['forceMorrisonAndViscous'][0][body]) - forceLinearDamping.append(bodies[0][0]['forceLinearDamping'][0][body]) + forceMorisonAndViscous.append( + bodies[0][0]["forceMorrisonAndViscous"][0][body] + ) + forceLinearDamping.append(bodies[0][0]["forceLinearDamping"][0][body]) except: - num_bodies = 0 - + num_bodies = 0 + ###################################### ## create body_output DataFrame - ###################################### + ###################################### def _write_body_output(body): - for dof in range(6): - tmp_body[f'position_dof{dof+1}'] = position[body][:,dof] - tmp_body[f'velocity_dof{dof+1}'] = velocity[body][:,dof] - tmp_body[f'acceleration_dof{dof+1}'] = acceleration[body][:,dof] - tmp_body[f'forceTotal_dof{dof+1}'] = forceTotal[body][:,dof] - tmp_body[f'forceExcitation_dof{dof+1}'] = forceExcitation[body][:,dof] - tmp_body[f'forceRadiationDamping_dof{dof+1}'] = forceRadiationDamping[body][:,dof] - tmp_body[f'forceAddedMass_dof{dof+1}'] = forceAddedMass[body][:,dof] - tmp_body[f'forceRestoring_dof{dof+1}'] = forceRestoring[body][:,dof] - tmp_body[f'forceMorisonAndViscous_dof{dof+1}'] = forceMorisonAndViscous[body][:,dof] - tmp_body[f'forceLinearDamping_dof{dof+1}'] = forceLinearDamping[body][:,dof] + for dof in range(6): + tmp_body[f"position_dof{dof+1}"] = position[body][:, dof] + tmp_body[f"velocity_dof{dof+1}"] = velocity[body][:, dof] + tmp_body[f"acceleration_dof{dof+1}"] = acceleration[body][:, dof] + tmp_body[f"forceTotal_dof{dof+1}"] = forceTotal[body][:, dof] + tmp_body[f"forceExcitation_dof{dof+1}"] = forceExcitation[body][:, dof] + tmp_body[f"forceRadiationDamping_dof{dof+1}"] = forceRadiationDamping[body][ + :, dof + ] + tmp_body[f"forceAddedMass_dof{dof+1}"] = forceAddedMass[body][:, dof] + tmp_body[f"forceRestoring_dof{dof+1}"] = forceRestoring[body][:, dof] + tmp_body[f"forceMorisonAndViscous_dof{dof+1}"] = forceMorisonAndViscous[ + body + ][:, dof] + tmp_body[f"forceLinearDamping_dof{dof+1}"] = forceLinearDamping[body][ + :, dof + ] return tmp_body if num_bodies >= 1: body_output = {} for body in range(num_bodies): - tmp_body = pd.DataFrame(data = time[0],columns=['time']) - tmp_body = tmp_body.set_index('time') + tmp_body = pd.DataFrame(data=time[0], columns=["time"]) + tmp_body = tmp_body.set_index("time") tmp_body.name = name[body] if num_bodies == 1: body_output = _write_body_output(body) elif num_bodies > 1: - body_output[f'body{body+1}'] = _write_body_output(body) + body_output[f"body{body+1}"] = _write_body_output(body) else: - print("body class not used") - body_output = [] - + print("body class not used") + body_output = [] ###################################### ## import wecSim pto class @@ -149,9 +167,9 @@ def _write_body_output(body): # powerInternalMechanics: [iterations x 6 double] ###################################### try: - ptos = output['ptos'] - num_ptos = len(ptos[0][0]['name'][0]) - name = [] + ptos = output["ptos"] + num_ptos = len(ptos[0][0]["name"][0]) + name = [] time = [] position = [] velocity = [] @@ -160,110 +178,118 @@ def _write_body_output(body): forceActuation = [] forceConstraint = [] forceInternalMechanics = [] - powerInternalMechanics= [] + powerInternalMechanics = [] for pto in range(num_ptos): - name.append(ptos[0][0]['name'][0][pto][0]) - time.append(ptos[0][0]['time'][0][pto]) - position.append(ptos[0][0]['position'][0][pto]) - velocity.append(ptos[0][0]['velocity'][0][pto]) - acceleration.append(ptos[0][0]['acceleration'][0][pto]) - forceTotal.append(ptos[0][0]['forceTotal'][0][pto]) - forceActuation.append(ptos[0][0]['forceActuation'][0][pto]) - forceConstraint.append(ptos[0][0]['forceConstraint'][0][pto]) - forceInternalMechanics.append(ptos[0][0]['forceInternalMechanics'][0][pto]) - powerInternalMechanics.append(ptos[0][0]['powerInternalMechanics'][0][pto]) + name.append(ptos[0][0]["name"][0][pto][0]) + time.append(ptos[0][0]["time"][0][pto]) + position.append(ptos[0][0]["position"][0][pto]) + velocity.append(ptos[0][0]["velocity"][0][pto]) + acceleration.append(ptos[0][0]["acceleration"][0][pto]) + forceTotal.append(ptos[0][0]["forceTotal"][0][pto]) + forceActuation.append(ptos[0][0]["forceActuation"][0][pto]) + forceConstraint.append(ptos[0][0]["forceConstraint"][0][pto]) + forceInternalMechanics.append(ptos[0][0]["forceInternalMechanics"][0][pto]) + powerInternalMechanics.append(ptos[0][0]["powerInternalMechanics"][0][pto]) except: - num_ptos = 0 - + num_ptos = 0 + ###################################### ## create pto_output DataFrame - ###################################### + ###################################### def _write_pto_output(pto): - for dof in range(6): - tmp_pto[f'position_dof{dof+1}'] = position[pto][:,dof] - tmp_pto[f'velocity_dof{dof+1}'] = velocity[pto][:,dof] - tmp_pto[f'acceleration_dof{dof+1}'] = acceleration[pto][:,dof] - tmp_pto[f'forceTotal_dof{dof+1}'] = forceTotal[pto][:,dof] - tmp_pto[f'forceTotal_dof{dof+1}'] = forceTotal[pto][:,dof] - tmp_pto[f'forceActuation_dof{dof+1}'] = forceActuation[pto][:,dof] - tmp_pto[f'forceConstraint_dof{dof+1}'] = forceConstraint[pto][:,dof] - tmp_pto[f'forceInternalMechanics_dof{dof+1}'] = forceInternalMechanics[pto][:,dof] - tmp_pto[f'powerInternalMechanics_dof{dof+1}'] = powerInternalMechanics[pto][:,dof] + for dof in range(6): + tmp_pto[f"position_dof{dof+1}"] = position[pto][:, dof] + tmp_pto[f"velocity_dof{dof+1}"] = velocity[pto][:, dof] + tmp_pto[f"acceleration_dof{dof+1}"] = acceleration[pto][:, dof] + tmp_pto[f"forceTotal_dof{dof+1}"] = forceTotal[pto][:, dof] + tmp_pto[f"forceTotal_dof{dof+1}"] = forceTotal[pto][:, dof] + tmp_pto[f"forceActuation_dof{dof+1}"] = forceActuation[pto][:, dof] + tmp_pto[f"forceConstraint_dof{dof+1}"] = forceConstraint[pto][:, dof] + tmp_pto[f"forceInternalMechanics_dof{dof+1}"] = forceInternalMechanics[pto][ + :, dof + ] + tmp_pto[f"powerInternalMechanics_dof{dof+1}"] = powerInternalMechanics[pto][ + :, dof + ] return tmp_pto if num_ptos >= 1: - pto_output = {} + pto_output = {} for pto in range(num_ptos): - tmp_pto = pd.DataFrame(data = time[0],columns=['time']) - tmp_pto = tmp_pto.set_index('time') + tmp_pto = pd.DataFrame(data=time[0], columns=["time"]) + tmp_pto = tmp_pto.set_index("time") tmp_pto.name = name[pto] - if num_ptos == 1: + if num_ptos == 1: pto_output = _write_pto_output(pto) elif num_ptos > 1: - pto_output[f'pto{pto+1}'] = _write_pto_output(pto) + pto_output[f"pto{pto+1}"] = _write_pto_output(pto) else: - print("pto class not used") + print("pto class not used") pto_output = [] - ###################################### ## import wecSim constraint class - # + # # name: '' # time: [iterations x 1 double] # position: [iterations x 6 double] # velocity: [iterations x 6 double] # acceleration: [iterations x 6 double] # forceConstraint: [iterations x 6 double] - ###################################### + ###################################### try: - constraints = output['constraints'] - num_constraints = len(constraints[0][0]['name'][0]) - name = [] + constraints = output["constraints"] + num_constraints = len(constraints[0][0]["name"][0]) + name = [] time = [] position = [] velocity = [] acceleration = [] forceConstraint = [] for constraint in range(num_constraints): - name.append(constraints[0][0]['name'][0][constraint][0]) - time.append(constraints[0][0]['time'][0][constraint]) - position.append(constraints[0][0]['position'][0][constraint]) - velocity.append(constraints[0][0]['velocity'][0][constraint]) - acceleration.append(constraints[0][0]['acceleration'][0][constraint]) - forceConstraint.append(constraints[0][0]['forceConstraint'][0][constraint]) + name.append(constraints[0][0]["name"][0][constraint][0]) + time.append(constraints[0][0]["time"][0][constraint]) + position.append(constraints[0][0]["position"][0][constraint]) + velocity.append(constraints[0][0]["velocity"][0][constraint]) + acceleration.append(constraints[0][0]["acceleration"][0][constraint]) + forceConstraint.append(constraints[0][0]["forceConstraint"][0][constraint]) except: - num_constraints = 0 - + num_constraints = 0 + ###################################### ## create constraint_output DataFrame - ###################################### + ###################################### def _write_constraint_output(constraint): - for dof in range(6): - tmp_constraint[f'position_dof{dof+1}'] = position[constraint][:,dof] - tmp_constraint[f'velocity_dof{dof+1}'] = velocity[constraint][:,dof] - tmp_constraint[f'acceleration_dof{dof+1}'] = acceleration[constraint][:,dof] - tmp_constraint[f'forceConstraint_dof{dof+1}'] = forceConstraint[constraint][:,dof] + for dof in range(6): + tmp_constraint[f"position_dof{dof+1}"] = position[constraint][:, dof] + tmp_constraint[f"velocity_dof{dof+1}"] = velocity[constraint][:, dof] + tmp_constraint[f"acceleration_dof{dof+1}"] = acceleration[constraint][ + :, dof + ] + tmp_constraint[f"forceConstraint_dof{dof+1}"] = forceConstraint[constraint][ + :, dof + ] return tmp_constraint if num_constraints >= 1: constraint_output = {} for constraint in range(num_constraints): - tmp_constraint = pd.DataFrame(data = time[0],columns=['time']) - tmp_constraint = tmp_constraint.set_index('time') + tmp_constraint = pd.DataFrame(data=time[0], columns=["time"]) + tmp_constraint = tmp_constraint.set_index("time") tmp_constraint.name = name[constraint] if num_constraints == 1: constraint_output = _write_constraint_output(constraint) elif num_constraints > 1: - constraint_output[f'constraint{constraint+1}'] = _write_constraint_output(constraint) + constraint_output[f"constraint{constraint+1}"] = ( + _write_constraint_output(constraint) + ) else: - print("constraint class not used") + print("constraint class not used") constraint_output = [] - ###################################### ## import wecSim mooring class - # + # # name: '' # time: [iterations x 1 double] # position: [iterations x 6 double] @@ -271,47 +297,46 @@ def _write_constraint_output(constraint): # forceMooring: [iterations x 6 double] ###################################### try: - moorings = output['mooring'] - num_moorings = len(moorings[0][0]['name'][0]) - name = [] + moorings = output["mooring"] + num_moorings = len(moorings[0][0]["name"][0]) + name = [] time = [] position = [] velocity = [] forceMooring = [] for mooring in range(num_moorings): - name.append(moorings[0][0]['name'][0][mooring][0]) - time.append(moorings[0][0]['time'][0][mooring]) - position.append(moorings[0][0]['position'][0][mooring]) - velocity.append(moorings[0][0]['velocity'][0][mooring]) - forceMooring.append(moorings[0][0]['forceMooring'][0][mooring]) + name.append(moorings[0][0]["name"][0][mooring][0]) + time.append(moorings[0][0]["time"][0][mooring]) + position.append(moorings[0][0]["position"][0][mooring]) + velocity.append(moorings[0][0]["velocity"][0][mooring]) + forceMooring.append(moorings[0][0]["forceMooring"][0][mooring]) except: - num_moorings = 0 + num_moorings = 0 ###################################### ## create mooring_output DataFrame - ###################################### + ###################################### def _write_mooring_output(mooring): - for dof in range(6): - tmp_mooring[f'position_dof{dof+1}'] = position[mooring][:,dof] - tmp_mooring[f'velocity_dof{dof+1}'] = velocity[mooring][:,dof] - tmp_mooring[f'forceMooring_dof{dof+1}'] = forceMooring[mooring][:,dof] + for dof in range(6): + tmp_mooring[f"position_dof{dof+1}"] = position[mooring][:, dof] + tmp_mooring[f"velocity_dof{dof+1}"] = velocity[mooring][:, dof] + tmp_mooring[f"forceMooring_dof{dof+1}"] = forceMooring[mooring][:, dof] return tmp_mooring - if num_moorings >= 1: + if num_moorings >= 1: mooring_output = {} for mooring in range(num_moorings): - tmp_mooring = pd.DataFrame(data = time[0],columns=['time']) - tmp_mooring = tmp_mooring.set_index('time') + tmp_mooring = pd.DataFrame(data=time[0], columns=["time"]) + tmp_mooring = tmp_mooring.set_index("time") tmp_mooring.name = name[mooring] - if num_moorings == 1: + if num_moorings == 1: mooring_output = _write_mooring_output(mooring) - elif num_moorings > 1: - mooring_output[f'mooring{mooring+1}'] = _write_mooring_output(mooring) + elif num_moorings > 1: + mooring_output[f"mooring{mooring+1}"] = _write_mooring_output(mooring) else: - print("mooring class not used") + print("mooring class not used") mooring_output = [] - - + ###################################### ## import wecSim moorDyn class # @@ -321,46 +346,45 @@ def _write_mooring_output(mooring): # Line3: [1×1 struct] # Line4: [1×1 struct] # Line5: [1×1 struct] - # Line6: [1×1 struct] + # Line6: [1×1 struct] ###################################### try: - moorDyn = output['moorDyn'] - num_lines = len(moorDyn[0][0][0].dtype) - 1 # number of moorDyn lines - - Lines = moorDyn[0][0]['Lines'][0][0][0] + moorDyn = output["moorDyn"] + num_lines = len(moorDyn[0][0][0].dtype) - 1 # number of moorDyn lines + + Lines = moorDyn[0][0]["Lines"][0][0][0] signals = Lines.dtype.names num_signals = len(Lines.dtype.names) - data = Lines[0] + data = Lines[0] time = data[0] - Lines = pd.DataFrame(data = time,columns=['time']) - Lines = Lines.set_index('time') - for signal in range(1,num_signals): - Lines[signals[signal]] = data[signal] - moorDyn_output= {'Lines': Lines} - - Line_num_output = {} - for line_num in range(1,num_lines+1): - tmp_moordyn = moorDyn[0][0][f'Line{line_num}'][0][0][0] - signals = tmp_moordyn.dtype.names - num_signals = len(tmp_moordyn.dtype.names) - data = tmp_moordyn[0] - time = data[0] - tmp_moordyn = pd.DataFrame(data = time,columns=['time']) - tmp_moordyn = tmp_moordyn.set_index('time') - for signal in range(1,num_signals): - tmp_moordyn[signals[signal]] = data[signal] - Line_num_output[f'Line{line_num}'] = tmp_moordyn - + Lines = pd.DataFrame(data=time, columns=["time"]) + Lines = Lines.set_index("time") + for signal in range(1, num_signals): + Lines[signals[signal]] = data[signal] + moorDyn_output = {"Lines": Lines} + + Line_num_output = {} + for line_num in range(1, num_lines + 1): + tmp_moordyn = moorDyn[0][0][f"Line{line_num}"][0][0][0] + signals = tmp_moordyn.dtype.names + num_signals = len(tmp_moordyn.dtype.names) + data = tmp_moordyn[0] + time = data[0] + tmp_moordyn = pd.DataFrame(data=time, columns=["time"]) + tmp_moordyn = tmp_moordyn.set_index("time") + for signal in range(1, num_signals): + tmp_moordyn[signals[signal]] = data[signal] + Line_num_output[f"Line{line_num}"] = tmp_moordyn + moorDyn_output.update(Line_num_output) - + except: - print("moorDyn class not used") + print("moorDyn class not used") moorDyn_output = [] - ###################################### ## import wecSim ptosim class - # + # # name: '' # pistonCF: [1×1 struct] # pistonNCF: [1×1 struct] @@ -372,19 +396,18 @@ def _write_mooring_output(mooring): # pmLinearGenerator: [1×1 struct] # pmRotaryGenerator: [1×1 struct] # motionMechanism: [1×1 struct] - ###################################### + ###################################### try: - ptosim = output['ptosim'] - num_ptosim = len(ptosim[0][0]['name'][0]) # number of ptosim - print("ptosim class output not supported at this time") + ptosim = output["ptosim"] + num_ptosim = len(ptosim[0][0]["name"][0]) # number of ptosim + print("ptosim class output not supported at this time") except: - print("ptosim class not used") + print("ptosim class not used") ptosim_output = [] - - + ###################################### ## import wecSim cable class - # + # # name: '' # time: [iterations x 1 double] # position: [iterations x 6 double] @@ -392,9 +415,9 @@ def _write_mooring_output(mooring): # forcecable: [iterations x 6 double] ###################################### try: - cables = output['cables'] - num_cables = len(cables[0][0]['name'][0]) - name = [] + cables = output["cables"] + num_cables = len(cables[0][0]["name"][0]) + name = [] time = [] position = [] velocity = [] @@ -403,56 +426,59 @@ def _write_mooring_output(mooring): forceactuation = [] forceconstraint = [] for cable in range(num_cables): - name.append(cables[0][0]['name'][0][cable][0]) - time.append(cables[0][0]['time'][0][cable]) - position.append(cables[0][0]['position'][0][cable]) - velocity.append(cables[0][0]['velocity'][0][cable]) - acceleration.append(cables[0][0]['acceleration'][0][cable]) - forcetotal.append(cables[0][0]['forceTotal'][0][cable]) - forceactuation.append(cables[0][0]['forceActuation'][0][cable]) - forceconstraint.append(cables[0][0]['forceConstraint'][0][cable]) + name.append(cables[0][0]["name"][0][cable][0]) + time.append(cables[0][0]["time"][0][cable]) + position.append(cables[0][0]["position"][0][cable]) + velocity.append(cables[0][0]["velocity"][0][cable]) + acceleration.append(cables[0][0]["acceleration"][0][cable]) + forcetotal.append(cables[0][0]["forceTotal"][0][cable]) + forceactuation.append(cables[0][0]["forceActuation"][0][cable]) + forceconstraint.append(cables[0][0]["forceConstraint"][0][cable]) except: - num_cables = 0 + num_cables = 0 ###################################### ## create cable_output DataFrame - ###################################### + ###################################### def _write_cable_output(cable): - for dof in range(6): - tmp_cable[f'position_dof{dof+1}'] = position[cable][:,dof] - tmp_cable[f'velocity_dof{dof+1}'] = velocity[cable][:,dof] - tmp_cable[f'acceleration_dof{dof+1}'] = acceleration[cable][:,dof] - tmp_cable[f'forcetotal_dof{dof+1}'] = forcetotal[cable][:,dof] - tmp_cable[f'forceactuation_dof{dof+1}'] = forceactuation[cable][:,dof] - tmp_cable[f'forceconstraint_dof{dof+1}'] = forceconstraint[cable][:,dof] + for dof in range(6): + tmp_cable[f"position_dof{dof+1}"] = position[cable][:, dof] + tmp_cable[f"velocity_dof{dof+1}"] = velocity[cable][:, dof] + tmp_cable[f"acceleration_dof{dof+1}"] = acceleration[cable][:, dof] + tmp_cable[f"forcetotal_dof{dof+1}"] = forcetotal[cable][:, dof] + tmp_cable[f"forceactuation_dof{dof+1}"] = forceactuation[cable][:, dof] + tmp_cable[f"forceconstraint_dof{dof+1}"] = forceconstraint[cable][:, dof] return tmp_cable - if num_cables >= 1: + if num_cables >= 1: cable_output = {} for cable in range(num_cables): - tmp_cable = pd.DataFrame(data = time[0],columns=['time']) - tmp_cable = tmp_cable.set_index('time') + tmp_cable = pd.DataFrame(data=time[0], columns=["time"]) + tmp_cable = tmp_cable.set_index("time") tmp_cable.name = name[cable] - if num_cables == 1: + if num_cables == 1: cable_output = _write_cable_output(cable) - elif num_cables > 1: - cable_output[f'cable{cable+1}'] = _write_cable_output(cable) + elif num_cables > 1: + cable_output[f"cable{cable+1}"] = _write_cable_output(cable) else: - print("cable class not used") + print("cable class not used") cable_output = [] + ############################################ + ## create wecSim output - Dict of DataFrames + ############################################ + ws_output = { + "wave": wave_output, + "bodies": body_output, + "ptos": pto_output, + "constraints": constraint_output, + "mooring": mooring_output, + "moorDyn": moorDyn_output, + "ptosim": ptosim_output, + "cables": cable_output, + } + if not to_pandas: + ws_output = convert_nested_dict_and_pandas(ws_output) - ###################################### - ## create wecSim output DataFrame of Dict - ###################################### - ws_output = {'wave' : wave_output, - 'bodies' : body_output, - 'ptos' : pto_output, - 'constraints' : constraint_output, - 'mooring' : mooring_output, - 'moorDyn': moorDyn_output, - 'ptosim' : ptosim_output, - 'cables': cable_output - } - return ws_output + return ws_output diff --git a/mhkit/wave/performance.py b/mhkit/wave/performance.py index 2b96809a9..02cf1670a 100644 --- a/mhkit/wave/performance.py +++ b/mhkit/wave/performance.py @@ -1,37 +1,47 @@ import numpy as np import pandas as pd -import xarray +import xarray as xr import types from scipy.stats import binned_statistic_2d as _binned_statistic_2d from mhkit import wave import matplotlib.pylab as plt from os.path import join +from mhkit.utils import convert_to_dataarray, convert_to_dataset -def capture_length(P, J): + +def capture_length(P, J, to_pandas=True): """ Calculates the capture length (often called capture width). Parameters ------------ - P: numpy array or pandas Series + P: numpy array, pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset Power [W] - J: numpy array or pandas Series + J: numpy array, pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset Omnidirectional wave energy flux [W/m] + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns --------- - L: numpy array or pandas Series + L: pandas Series or xarray DataArray Capture length [m] """ - assert isinstance(P, (np.ndarray, pd.Series)), 'P must be of type np.ndarray or pd.Series' - assert isinstance(J, (np.ndarray, pd.Series)), 'J must be of type np.ndarray or pd.Series' + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + P = convert_to_dataarray(P) + J = convert_to_dataarray(J) - L = P/J + L = P / J + + if to_pandas: + L = L.to_pandas() return L -def statistics(X): +def statistics(X, to_pandas=True): """ Calculates statistics, including count, mean, standard deviation (std), min, percentiles (25%, 50%, 75%), and max. @@ -41,18 +51,35 @@ def statistics(X): Parameters ------------ - X: numpy array or pandas Series + X: numpy array, pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset Data + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns --------- - stats: pandas Series + stats: pandas Series or xarray DataArray Statistics """ - assert isinstance(X, (np.ndarray, pd.Series)), 'X must be of type np.ndarray or pd.Series' + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + X = convert_to_dataarray(X) - stats = pd.Series(X).describe() - stats['std'] = _std_ddof1(X) + count = X.count().item() + mean = X.mean().item() + std = _std_ddof1(X) + q = X.quantile([0.0, 0.25, 0.5, 0.75, 1.0]).values + variables = ["count", "mean", "std", "min", "25%", "50%", "75%", "max"] + + stats = xr.DataArray( + data=[count, mean, std, q[0], q[1], q[2], q[3], q[4]], + dims="index", + coords={"index": variables}, + ) + + if to_pandas: + stats = stats.to_pandas() return stats @@ -71,33 +98,39 @@ def _performance_matrix(X, Y, Z, statistic, x_centers, y_centers): # General performance matrix function # Convert bin centers to edges - xi = [np.mean([x_centers[i], x_centers[i+1]]) for i in range(len(x_centers)-1)] - xi.insert(0,-np.inf) + xi = [np.mean([x_centers[i], x_centers[i + 1]]) for i in range(len(x_centers) - 1)] + xi.insert(0, -np.inf) xi.append(np.inf) - yi = [np.mean([y_centers[i], y_centers[i+1]]) for i in range(len(y_centers)-1)] - yi.insert(0,-np.inf) + yi = [np.mean([y_centers[i], y_centers[i + 1]]) for i in range(len(y_centers) - 1)] + yi.insert(0, -np.inf) yi.append(np.inf) # Override standard deviation with degree of freedom equal to 1 - if statistic == 'std': + if statistic == "std": statistic = _std_ddof1 # Provide function to compute frequency def _frequency(a): - return len(a)/len(Z) - if statistic == 'frequency': + return len(a) / len(Z) + + if statistic == "frequency": statistic = _frequency - zi, x_edge, y_edge, binnumber = _binned_statistic_2d(X, Y, Z, statistic, - bins=[xi,yi], expand_binnumbers=False) + zi, x_edge, y_edge, binnumber = _binned_statistic_2d( + X, Y, Z, statistic, bins=[xi, yi], expand_binnumbers=False + ) - M = pd.DataFrame(zi, index=x_centers, columns=y_centers) + M = xr.DataArray( + data=zi, + dims=["x_centers", "y_centers"], + coords={"x_centers": x_centers, "y_centers": y_centers}, + ) return M -def capture_length_matrix(Hm0, Te, L, statistic, Hm0_bins, Te_bins): +def capture_length_matrix(Hm0, Te, L, statistic, Hm0_bins, Te_bins, to_pandas=True): """ Generates a capture length matrix for a given statistic @@ -106,11 +139,11 @@ def capture_length_matrix(Hm0, Te, L, statistic, Hm0_bins, Te_bins): Parameters ------------ - Hm0: numpy array or pandas Series + Hm0: numpy array, pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset Significant wave height from spectra [m] - Te: numpy array or pandas Series + Te: numpy array, pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset Energy period from spectra [s] - L : numpy array or pandas Series + L : numpy array, pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset Capture length [m] statistic: string Statistic for each bin, options include: 'mean', 'std', 'median', @@ -120,37 +153,50 @@ def capture_length_matrix(Hm0, Te, L, statistic, Hm0_bins, Te_bins): Bin centers for Hm0 [m] Te_bins: numpy array Bin centers for Te [s] + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns --------- - LM: pandas DataFrames + LM: pandas DataFrame or xarray DataArray Capture length matrix with index equal to Hm0_bins and columns equal to Te_bins """ - assert isinstance(Hm0, (np.ndarray, pd.Series)), 'Hm0 must be of type np.ndarray or pd.Series' - assert isinstance(Te, (np.ndarray, pd.Series)), 'Te must be of type np.ndarray or pd.Series' - assert isinstance(L, (np.ndarray, pd.Series)), 'L must be of type np.ndarray or pd.Series' - assert isinstance(statistic, (str, types.FunctionType)), 'statistic must be of type str or callable' - assert isinstance(Hm0_bins, np.ndarray), 'Hm0_bins must be of type np.ndarray' - assert isinstance(Te_bins, np.ndarray), 'Te_bins must be of type np.ndarray' + Hm0 = convert_to_dataarray(Hm0) + Te = convert_to_dataarray(Te) + L = convert_to_dataarray(L) + + if not isinstance(statistic, (str, types.FunctionType)): + raise TypeError( + f"statistic must be of type str or callable. Got: {type(statistic)}" + ) + if not isinstance(Hm0_bins, np.ndarray): + raise TypeError(f"Hm0_bins must be of type np.ndarray. Got: {type(Hm0_bins)}") + if not isinstance(Te_bins, np.ndarray): + raise TypeError(f"Te_bins must be of type np.ndarray. Got: {type(Te_bins)}") + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") LM = _performance_matrix(Hm0, Te, L, statistic, Hm0_bins, Te_bins) + if to_pandas: + LM = LM.to_pandas() + return LM -def wave_energy_flux_matrix(Hm0, Te, J, statistic, Hm0_bins, Te_bins): +def wave_energy_flux_matrix(Hm0, Te, J, statistic, Hm0_bins, Te_bins, to_pandas=True): """ Generates a wave energy flux matrix for a given statistic Parameters ------------ - Hm0: numpy array or pandas Series + Hm0: numpy array, pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset Significant wave height from spectra [m] - Te: numpy array or pandas Series + Te: numpy array, pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset Energy period from spectra [s] - J : numpy array or pandas Series + J : numpy array, pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset Wave energy flux from spectra [W/m] statistic: string Statistic for each bin, options include: 'mean', 'std', 'median', @@ -160,25 +206,38 @@ def wave_energy_flux_matrix(Hm0, Te, J, statistic, Hm0_bins, Te_bins): Bin centers for Hm0 [m] Te_bins: numpy array Bin centers for Te [s] + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns --------- - JM: pandas DataFrames + JM: pandas DataFrame or xarray DataArray Wave energy flux matrix with index equal to Hm0_bins and columns equal to Te_bins """ - assert isinstance(Hm0, (np.ndarray, pd.Series)), 'Hm0 must be of type np.ndarray or pd.Series' - assert isinstance(Te, (np.ndarray, pd.Series)), 'Te must be of type np.ndarray or pd.Series' - assert isinstance(J, (np.ndarray, pd.Series)), 'J must be of type np.ndarray or pd.Series' - assert isinstance(statistic, (str, callable)), 'statistic must be of type str or callable' - assert isinstance(Hm0_bins, np.ndarray), 'Hm0_bins must be of type np.ndarray' - assert isinstance(Te_bins, np.ndarray), 'Te_bins must be of type np.ndarray' + Hm0 = convert_to_dataarray(Hm0) + Te = convert_to_dataarray(Te) + J = convert_to_dataarray(J) + if not isinstance(statistic, (str, callable)): + raise TypeError( + f"statistic must be of type str or callable. Got: {type(statistic)}" + ) + if not isinstance(Hm0_bins, np.ndarray): + raise TypeError(f"Hm0_bins must be of type np.ndarray. Got: {type(Hm0_bins)}") + if not isinstance(Te_bins, np.ndarray): + raise TypeError(f"Te_bins must be of type np.ndarray. Got: {type(Te_bins)}") + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") JM = _performance_matrix(Hm0, Te, J, statistic, Hm0_bins, Te_bins) + if to_pandas: + JM = JM.to_pandas() + return JM + def power_matrix(LM, JM): """ Generates a power matrix from a capture length matrix and wave energy @@ -186,33 +245,40 @@ def power_matrix(LM, JM): Parameters ------------ - LM: pandas DataFrame + LM: pandas DataFrame or xarray Dataset Capture length matrix - JM: pandas DataFrame + JM: pandas DataFrame or xarray Dataset Wave energy flux matrix Returns --------- - PM: pandas DataFrames + PM: pandas DataFrame or xarray Dataset Power matrix """ - assert isinstance(LM, pd.DataFrame), 'LM must be of type pd.DataFrame' - assert isinstance(JM, pd.DataFrame), 'JM must be of type pd.DataFrame' + if not isinstance(LM, (pd.DataFrame, xr.Dataset)): + raise TypeError( + f"LM must be of type pd.DataFrame or xr.Dataset. Got: {type(LM)}" + ) + if not isinstance(JM, (pd.DataFrame, xr.Dataset)): + raise TypeError( + f"JM must be of type pd.DataFrame or xr.Dataset. Got: {type(JM)}" + ) - PM = LM*JM + PM = LM * JM return PM + def mean_annual_energy_production_timeseries(L, J): """ Calculates mean annual energy production (MAEP) from time-series Parameters ------------ - L: numpy array or pandas Series + L: numpy array, pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset Capture length - J: numpy array or pandas Series + J: numpy array, pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset Wave energy flux Returns @@ -221,16 +287,17 @@ def mean_annual_energy_production_timeseries(L, J): Mean annual energy production """ - assert isinstance(L, (np.ndarray, pd.Series)), 'L must be of type np.ndarray or pd.Series' - assert isinstance(J, (np.ndarray, pd.Series)), 'J must be of type np.ndarray or pd.Series' + L = convert_to_dataarray(L) + J = convert_to_dataarray(J) - T = 8766 # Average length of a year (h) + T = 8766 # Average length of a year (h) n = len(L) - maep = T/n * np.sum(L * J) + maep = T / n * (L * J).sum().item() return maep + def mean_annual_energy_production_matrix(LM, JM, frequency): """ Calculates mean annual energy production (MAEP) from matrix data @@ -238,11 +305,11 @@ def mean_annual_energy_production_matrix(LM, JM, frequency): Parameters ------------ - LM: pandas DataFrame + LM: pandas DataFrame or xarray Dataset Capture length - JM: pandas DataFrame + JM: pandas DataFrame or xarray Dataset Wave energy flux - frequency: pandas DataFrame + frequency: pandas DataFrame or xarray Dataset Data frequency for each bin Returns @@ -251,29 +318,45 @@ def mean_annual_energy_production_matrix(LM, JM, frequency): Mean annual energy production """ - assert isinstance(LM, pd.DataFrame), 'LM must be of type pd.DataFrame' - assert isinstance(JM, pd.DataFrame), 'JM must be of type pd.DataFrame' - assert isinstance(frequency, pd.DataFrame), 'frequency must be of type pd.DataFrame' - assert LM.shape == JM.shape == frequency.shape, 'LM, JM, and frequency must be of the same size' - #assert frequency.sum().sum() == 1 + LM = convert_to_dataarray(LM) + JM = convert_to_dataarray(JM) + frequency = convert_to_dataarray(frequency) + + if not LM.shape == JM.shape == frequency.shape: + raise ValueError("LM, JM, and frequency must be of the same size") + if not np.abs(frequency.sum() - 1) < 1e-6: + raise ValueError("Frequency components must sum to one.") - T = 8766 # Average length of a year (h) + T = 8766 # Average length of a year (h) maep = T * np.nansum(LM * JM * frequency) return maep -def power_performance_workflow(S, h, P, statistic, frequency_bins=None, deep=False, rho=1205, g=9.80665, ratio=2, show_values=False, savepath=""): + +def power_performance_workflow( + S, + h, + P, + statistic, + frequency_bins=None, + deep=False, + rho=1205, + g=9.80665, + ratio=2, + show_values=False, + savepath="", +): """ High-level function to compute power performance quantities of interest following IEC TS 62600-100 for given wave spectra. Parameters ------------ - S: pandas DataFrame or Series + S: pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset Spectral density [m^2/Hz] indexed by frequency [Hz] h: float Water depth [m] - P: numpy array or pandas Series + P: numpy ndarray, pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Power [W] statistic: string or list of strings Statistics for plotting capture length matrices, @@ -309,59 +392,95 @@ def power_performance_workflow(S, h, P, statistic, frequency_bins=None, deep=Fal maep_matrix: float Mean annual energy production """ - assert isinstance(S, (pd.DataFrame,pd.Series)), 'S must be of type pd.DataFrame or pd.Series' - assert isinstance(h, (int,float)), 'h must be of type int or float' - assert isinstance(P, (np.ndarray, pd.Series)), 'P must be of type np.ndarray or pd.Series' - assert isinstance(deep, bool), 'deep must be of type bool' - assert isinstance(rho, (int,float)), 'rho must be of type int or float' - assert isinstance(g, (int,float)), 'g must be of type int or float' - assert isinstance(ratio, (int,float)), 'ratio must be of type int or float' + S = convert_to_dataset(S) + if not isinstance(h, (int, float)): + raise TypeError(f"h must be of type int or float. Got: {type(h)}") + P = convert_to_dataarray(P) + if not isinstance(deep, bool): + raise TypeError(f"deep must be of type bool. Got: {type(deep)}") + if not isinstance(rho, (int, float)): + raise TypeError(f"rho must be of type int or float. Got: {type(rho)}") + if not isinstance(g, (int, float)): + raise TypeError(f"g must be of type int or float. Got: {type(g)}") + if not isinstance(ratio, (int, float)): + raise TypeError(f"ratio must be of type int or float. Got: {type(ratio)}") # Compute the enegy periods from the spectra data - Te = wave.resource.energy_period(S, frequency_bins=frequency_bins) - Te = Te['Te'] + Te = wave.resource.energy_period(S, frequency_bins=frequency_bins, to_pandas=False) + Te = Te["Te"] # Compute the significant wave height from the NDBC spectra data - Hm0 = wave.resource.significant_wave_height(S, frequency_bins=frequency_bins) - Hm0 = Hm0['Hm0'] + Hm0 = wave.resource.significant_wave_height( + S, frequency_bins=frequency_bins, to_pandas=False + ) + Hm0 = Hm0["Hm0"] # Compute the energy flux from spectra data and water depth - J = wave.resource.energy_flux(S, h, deep=deep, rho=rho, g=g, ratio=ratio) - J = J['J'] + J = wave.resource.energy_flux( + S, h, deep=deep, rho=rho, g=g, ratio=ratio, to_pandas=False + ) + J = J["J"] # Calculate capture length from power and energy flux - L = wave.performance.capture_length(P,J) + L = wave.performance.capture_length(P, J, to_pandas=False) # Generate bins for Hm0 and Te, input format (start, stop, step_size) - Hm0_bins = np.arange(0, Hm0.values.max() + .5, .5) + Hm0_bins = np.arange(0, Hm0.values.max() + 0.5, 0.5) Te_bins = np.arange(0, Te.values.max() + 1, 1) # Create capture length matrices for each statistic based on IEC/TS 62600-100 # Median, sum, frequency additionally provided - LM = xarray.Dataset() - LM['mean'] = wave.performance.capture_length_matrix(Hm0, Te, L, 'mean', Hm0_bins, Te_bins) - LM['std'] = wave.performance.capture_length_matrix(Hm0, Te, L, 'std', Hm0_bins, Te_bins) - LM['median'] = wave.performance.capture_length_matrix(Hm0, Te, L, 'median', Hm0_bins, Te_bins) - LM['count'] = wave.performance.capture_length_matrix(Hm0, Te, L, 'count', Hm0_bins, Te_bins) - LM['sum'] = wave.performance.capture_length_matrix(Hm0, Te, L, 'sum', Hm0_bins, Te_bins) - LM['min'] = wave.performance.capture_length_matrix(Hm0, Te, L, 'min', Hm0_bins, Te_bins) - LM['max'] = wave.performance.capture_length_matrix(Hm0, Te, L, 'max', Hm0_bins, Te_bins) - LM['freq'] = wave.performance.capture_length_matrix(Hm0, Te, L,'frequency', Hm0_bins, Te_bins) + LM = xr.Dataset() + LM["mean"] = wave.performance.capture_length_matrix( + Hm0, Te, L, "mean", Hm0_bins, Te_bins, to_pandas=False + ) + LM["std"] = wave.performance.capture_length_matrix( + Hm0, Te, L, "std", Hm0_bins, Te_bins, to_pandas=False + ) + LM["median"] = wave.performance.capture_length_matrix( + Hm0, Te, L, "median", Hm0_bins, Te_bins, to_pandas=False + ) + LM["count"] = wave.performance.capture_length_matrix( + Hm0, Te, L, "count", Hm0_bins, Te_bins, to_pandas=False + ) + LM["sum"] = wave.performance.capture_length_matrix( + Hm0, Te, L, "sum", Hm0_bins, Te_bins, to_pandas=False + ) + LM["min"] = wave.performance.capture_length_matrix( + Hm0, Te, L, "min", Hm0_bins, Te_bins, to_pandas=False + ) + LM["max"] = wave.performance.capture_length_matrix( + Hm0, Te, L, "max", Hm0_bins, Te_bins, to_pandas=False + ) + LM["freq"] = wave.performance.capture_length_matrix( + Hm0, Te, L, "frequency", Hm0_bins, Te_bins, to_pandas=False + ) # Create wave energy flux matrix using mean - JM = wave.performance.wave_energy_flux_matrix(Hm0, Te, J, 'mean', Hm0_bins, Te_bins) + JM = wave.performance.wave_energy_flux_matrix( + Hm0, Te, J, "mean", Hm0_bins, Te_bins, to_pandas=False + ) # Calculate maep from matrix - maep_matrix = wave.performance.mean_annual_energy_production_matrix(LM['mean'].to_pandas(), JM, LM['freq'].to_pandas()) + maep_matrix = wave.performance.mean_annual_energy_production_matrix( + LM["mean"], JM, LM["freq"] + ) # Plot capture length matrices using statistic for str in statistic: if str not in list(LM.data_vars): - print('ERROR: Invalid Statistics passed') + print("ERROR: Invalid Statistics passed") continue - plt.figure(figsize=(12,12), num='Capture Length Matrix ' + str) + plt.figure(figsize=(12, 12), num="Capture Length Matrix " + str) ax = plt.gca() - wave.graphics.plot_matrix(LM[str].to_pandas(), xlabel='Te (s)', ylabel='Hm0 (m)', zlabel= str + ' of Capture Length', show_values=show_values, ax=ax) - plt.savefig(join(savepath,'Capture Length Matrix ' + str + '.png')) + wave.graphics.plot_matrix( + LM[str], + xlabel="Te (s)", + ylabel="Hm0 (m)", + zlabel=str + " of Capture Length", + show_values=show_values, + ax=ax, + ) + plt.savefig(join(savepath, "Capture Length Matrix " + str + ".png")) return LM, maep_matrix diff --git a/mhkit/wave/resource.py b/mhkit/wave/resource.py index 5e6f54790..e38214eeb 100644 --- a/mhkit/wave/resource.py +++ b/mhkit/wave/resource.py @@ -1,18 +1,28 @@ from scipy.optimize import fsolve as _fsolve from scipy import signal as _signal import pandas as pd +import xarray as xr import numpy as np -from scipy import stats +from mhkit.utils import to_numeric_array, convert_to_dataarray, convert_to_dataset + ### Spectrum -def elevation_spectrum(eta, sample_rate, nnft, window='hann', - detrend=True, noverlap=None): +def elevation_spectrum( + eta, + sample_rate, + nnft, + window="hann", + detrend=True, + noverlap=None, + time_dimension="", + to_pandas=True, +): """ Calculates the wave energy spectrum from wave elevation time-series Parameters ------------ - eta: pandas DataFrame + eta: pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Wave surface elevation [m] indexed by time [datetime or s] sample_rate: float Data frequency [Hz] @@ -27,69 +37,110 @@ def elevation_spectrum(eta, sample_rate, nnft, window='hann', noverlap: int, optional Number of points to overlap between segments. If None, ``noverlap = nperseg / 2``. Defaults to None. + time_dimension: string (optional) + Name of the xarray dimension corresponding to time. If not supplied, + defaults to the first dimension. Does not affect pandas input. + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns --------- - S: pandas DataFrame + S: pandas DataFrame or xr.Dataset Spectral density [m^2/Hz] indexed by frequency [Hz] """ # TODO: Add confidence intervals, equal energy frequency spacing, and NDBC # frequency spacing - # TODO: may need an assert for the length of nnft- signal.welch breaks when nfft is too short - # TODO: check for uniform sampling - assert isinstance(eta, pd.DataFrame), 'eta must be of type pd.DataFrame' - assert isinstance(sample_rate, (float,int)), 'sample_rate must be of type int or float' - assert isinstance(nnft, int), 'nnft must be of type int' - assert isinstance(window, str), 'window must be of type str' - assert isinstance(detrend, bool), 'detrend must be of type bool' - assert nnft > 0, 'nnft must be > 0' - assert sample_rate > 0, 'sample_rate must be > 0' - - S = pd.DataFrame() - for col in eta.columns: - data = eta[col] + # TODO: may need to raise an error for the length of nnft- signal.welch breaks when nfft is too short + eta = convert_to_dataset(eta) + if not isinstance(sample_rate, (float, int)): + raise TypeError( + f"sample_rate must be of type int or float. Got: {type(sample_rate)}" + ) + if not isinstance(nnft, int): + raise TypeError(f"nnft must be of type int. Got: {type(nnft)}") + if not isinstance(window, str): + raise TypeError(f"window must be of type str. Got: {type(window)}") + if not isinstance(detrend, bool): + raise TypeError(f"detrend must be of type bool. Got: {type(detrend)}") + if not nnft > 0: + raise ValueError(f"nnft must be > 0. Got: {nnft}") + if not sample_rate > 0: + raise ValueError(f"sample_rate must be > 0. Got: {sample_rate}") + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + if time_dimension == "": + time_dimension = list(eta.dims)[0] + else: + if time_dimension not in list(eta.dims): + raise ValueError( + f"time_dimension is not a dimension of eta ({list(eta.dims)}). Got: {time_dimension}." + ) + time = eta[time_dimension] + delta_t = time.values[1] - time.values[0] + if not np.allclose(time.diff(dim=time_dimension)[1:], delta_t): + raise ValueError( + "Time bins are not evenly spaced. Create a constant " + + "temporal spacing for eta." + ) + + S = xr.Dataset() + for var in eta.data_vars: + data = eta[var] if detrend: - data = _signal.detrend(data.dropna(), axis=-1, type='linear', bp=0) - [f, wave_spec_measured] = _signal.welch(data, fs=sample_rate, window=window, - nperseg=nnft, nfft=nnft, noverlap=noverlap) - S[col] = wave_spec_measured - S.index=f - S.columns = eta.columns + data = _signal.detrend( + data.dropna(dim=time_dimension), axis=-1, type="linear", bp=0 + ) + [f, wave_spec_measured] = _signal.welch( + data, + fs=sample_rate, + window=window, + nperseg=nnft, + nfft=nnft, + noverlap=noverlap, + ) + S[var] = (["Frequency"], wave_spec_measured) + S = S.assign_coords({"Frequency": f}) + + if to_pandas: + S = S.to_dataframe() return S -def pierson_moskowitz_spectrum(f, Tp, Hs): +def pierson_moskowitz_spectrum(f, Tp, Hs, to_pandas=True): """ Calculates Pierson-Moskowitz Spectrum from IEC TS 62600-2 ED2 Annex C.2 (2019) Parameters ------------ - f: numpy array + f: list, np.ndarray, pd.Series, xr.DataArray Frequency [Hz] Tp: float/int Peak period [s] Hs: float/int Significant wave height [m] + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns --------- - S: pandas DataFrame + S: xarray Dataset Spectral density [m^2/Hz] indexed frequency [Hz] """ - try: - f = np.array(f) - except: - pass - assert isinstance(f, np.ndarray), 'f must be of type np.ndarray' - assert isinstance(Tp, (int,float)), 'Tp must be of type int or float' - assert isinstance(Hs, (int,float)), 'Hs must be of type int or float' + f = to_numeric_array(f, "f") + if not isinstance(Tp, (int, float)): + raise TypeError(f"Tp must be of type int or float. Got: {type(Tp)}") + if not isinstance(Hs, (int, float)): + raise TypeError(f"Hs must be of type int or float. Got: {type(Hs)}") + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") f.sort() - B_PM = (5/4)*(1/Tp)**4 - A_PM = B_PM*(Hs/2)**2 + B_PM = (5 / 4) * (1 / Tp) ** 4 + A_PM = B_PM * (Hs / 2) ** 2 # Avoid a divide by zero if the 0 frequency is provided # The zero frequency should always have 0 amplitude, otherwise @@ -99,22 +150,25 @@ def pierson_moskowitz_spectrum(f, Tp, Hs): inds = range(1, f.size) else: inds = range(0, f.size) - - Sf[inds] = A_PM*f[inds]**(-5)*np.exp(-B_PM*f[inds]**(-4)) - col_name = 'Pierson-Moskowitz ('+str(Tp)+'s)' - S = pd.DataFrame(Sf, index=f, columns=[col_name]) + Sf[inds] = A_PM * f[inds] ** (-5) * np.exp(-B_PM * f[inds] ** (-4)) + + name = "Pierson-Moskowitz (" + str(Tp) + "s)" + S = xr.Dataset(data_vars={name: (["Frequency"], Sf)}, coords={"Frequency": f}) + + if to_pandas: + S = S.to_pandas() return S -def jonswap_spectrum(f, Tp, Hs, gamma=None): +def jonswap_spectrum(f, Tp, Hs, gamma=None, to_pandas=True): """ Calculates JONSWAP Spectrum from IEC TS 62600-2 ED2 Annex C.2 (2019) Parameters ------------ - f: numpy array + f: list, np.ndarray, pd.Series, xr.DataArray Frequency [Hz] Tp: float/int Peak period [s] @@ -122,26 +176,29 @@ def jonswap_spectrum(f, Tp, Hs, gamma=None): Significant wave height [m] gamma: float (optional) Gamma + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns --------- - S: pandas DataFrame + S: pandas Series or xarray DataArray Spectral density [m^2/Hz] indexed frequency [Hz] """ - - try: - f = np.array(f) - except: - pass - assert isinstance(f, np.ndarray), 'f must be of type np.ndarray' - assert isinstance(Tp, (int,float)), 'Tp must be of type int or float' - assert isinstance(Hs, (int,float)), 'Hs must be of type int or float' - assert isinstance(gamma, (int,float, type(None))), \ - 'gamma must be of type int or float' + f = to_numeric_array(f, "f") + if not isinstance(Tp, (int, float)): + raise TypeError(f"Tp must be of type int or float. Got: {type(Tp)}") + if not isinstance(Hs, (int, float)): + raise TypeError(f"Hs must be of type int or float. Got: {type(Hs)}") + if not isinstance(gamma, (int, float, type(None))): + raise TypeError( + f"If specified, gamma must be of type int or float. Got: {type(gamma)}" + ) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") f.sort() - B_PM = (5/4)*(1/Tp)**4 - A_PM = B_PM*(Hs/2)**2 + B_PM = (5 / 4) * (1 / Tp) ** 4 + A_PM = B_PM * (Hs / 2) ** 2 # Avoid a divide by zero if the 0 frequency is provided # The zero frequency should always have 0 amplitude, otherwise @@ -152,52 +209,65 @@ def jonswap_spectrum(f, Tp, Hs, gamma=None): else: inds = range(0, f.size) - S_f[inds] = A_PM*f[inds]**(-5)*np.exp(-B_PM*f[inds]**(-4)) + S_f[inds] = A_PM * f[inds] ** (-5) * np.exp(-B_PM * f[inds] ** (-4)) if not gamma: - TpsqrtHs = Tp/np.sqrt(Hs); + TpsqrtHs = Tp / np.sqrt(Hs) if TpsqrtHs <= 3.6: - gamma = 5; + gamma = 5 elif TpsqrtHs > 5: - gamma = 1; + gamma = 1 else: - gamma = np.exp(5.75 - 1.15*TpsqrtHs); + gamma = np.exp(5.75 - 1.15 * TpsqrtHs) # Cutoff frequencies for gamma function siga = 0.07 sigb = 0.09 - fp = 1/Tp # peak frequency - lind = np.where(f<=fp) - hind = np.where(f>fp) + fp = 1 / Tp # peak frequency + lind = np.where(f <= fp) + hind = np.where(f > fp) Gf = np.zeros(f.shape) - Gf[lind] = gamma**np.exp(-(f[lind]-fp)**2/(2*siga**2*fp**2)) - Gf[hind] = gamma**np.exp(-(f[hind]-fp)**2/(2*sigb**2*fp**2)) - C = 1- 0.287*np.log(gamma) - Sf = C*S_f*Gf + Gf[lind] = gamma ** np.exp(-((f[lind] - fp) ** 2) / (2 * siga**2 * fp**2)) + Gf[hind] = gamma ** np.exp(-((f[hind] - fp) ** 2) / (2 * sigb**2 * fp**2)) + C = 1 - 0.287 * np.log(gamma) + Sf = C * S_f * Gf + + name = "JONSWAP (" + str(Hs) + "m," + str(Tp) + "s)" + S = xr.Dataset(data_vars={name: (["Frequency"], Sf)}, coords={"Frequency": f}) - col_name = 'JONSWAP ('+str(Hs)+'m,'+str(Tp)+'s)' - S = pd.DataFrame(Sf, index=f, columns=[col_name]) + if to_pandas: + S = S.to_pandas() return S + ### Metrics -def surface_elevation(S, time_index, seed=None, frequency_bins=None, phases=None, method='ifft'): +def surface_elevation( + S, + time_index, + seed=None, + frequency_bins=None, + phases=None, + method="ifft", + frequency_dimension="", + to_pandas=True, +): """ Calculates wave elevation time-series from spectrum Parameters ------------ - S: pandas DataFrame + S: pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Spectral density [m^2/Hz] indexed by frequency [Hz] time_index: numpy array Time used to create the wave elevation time-series [s], for example, time = np.arange(0,100,0.01) seed: int (optional) Random seed - frequency_bins: numpy array or pandas DataFrame (optional) + frequency_bins: numpy array, pandas Series, or xarray DataArray (optional) Bin widths for frequency of S. Required for unevenly sized bins - phases: numpy array or pandas DataFrame (optional) + phases: pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Explicit phases for frequency components (overrides seed) for example, phases = np.random.rand(len(S)) * 2 * np.pi method: str (optional) @@ -207,372 +277,524 @@ def surface_elevation(S, time_index, seed=None, frequency_bins=None, phases=None 'sum_of_sines' explicitly sums each frequency component and used by default if frequency_bins are provided. The 'ifft' method is significantly faster. + frequency_dimension: string (optional) + Name of the xarray dimension corresponding to frequency. If not supplied, + defaults to the first dimension. Does not affect pandas input. + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns --------- - eta: pandas DataFrame + eta: pandas DataFrame or xarray Dataset Wave surface elevation [m] indexed by time [s] """ - time_index = np.array(time_index) - assert isinstance(S, pd.DataFrame), 'S must be of type pd.DataFrame' - assert isinstance(time_index, np.ndarray), ('time_index must be of type' - 'np.ndarray') - assert isinstance(seed, (type(None),int)), 'seed must be of type int' - assert isinstance(frequency_bins, (type(None), np.ndarray, pd.DataFrame)),( - "frequency_bins must be of type None, np.ndarray, or pd,DataFrame") - assert isinstance(phases, (type(None), np.ndarray, pd.DataFrame)), ( - 'phases must be of type None, np.ndarray, or pd,DataFrame') - assert isinstance(method, str) - + time_index = to_numeric_array(time_index, "time_index") + S = convert_to_dataset(S) + if not isinstance(seed, (type(None), int)): + raise TypeError(f"If specified, seed must be of type int. Got: {type(seed)}") + if not isinstance(phases, type(None)): + phases = convert_to_dataset(phases) + if not isinstance(method, str): + raise TypeError(f"method must be of type str. Got: {type(method)}") + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + if frequency_dimension == "": + frequency_dimension = list(S.coords)[0] + elif frequency_dimension not in list(S.dims): + raise ValueError( + f"frequency_dimension is not a dimension of S ({list(S.dims)}). Got: {frequency_dimension}." + ) + f = S[frequency_dimension] + + if not isinstance(frequency_bins, (type(None), np.ndarray)): + frequency_bins = convert_to_dataarray(frequency_bins) + elif isinstance(frequency_bins, np.ndarray): + frequency_bins = xr.DataArray( + data=frequency_bins, + dims=frequency_dimension, + coords={frequency_dimension: f}, + ) if frequency_bins is not None: - assert frequency_bins.squeeze().shape == (S.squeeze().shape[0],),( - 'shape of frequency_bins must match shape of S') + if not frequency_bins.squeeze().shape == f.shape: + raise ValueError( + "shape of frequency_bins must match shape of the frequency dimension of S" + ) if phases is not None: - assert phases.squeeze().shape == S.squeeze().shape,( - 'shape of phases must match shape of S') - + if not list(phases.data_vars) == list(S.data_vars): + raise ValueError("phases must have the same variable names as S") + for var in phases.data_vars: + if not phases[var].shape == S[var].shape: + raise ValueError( + "shape of variables in phases must match shape of variables in S" + ) if method is not None: - assert method == 'ifft' or method == 'sum_of_sines',( - f"unknown method {method}, options are 'ifft' or 'sum_of_sines'") - - if method == 'ifft': - assert S.index.values[0] == 0, ('ifft method must have zero frequency defined') - - f = pd.Series(S.index) - f.index = f + if not (method == "ifft" or method == "sum_of_sines"): + raise ValueError(f"Method must be 'ifft' or 'sum_of_sines'. Got: {method}") + + if method == "ifft": + if not f[0] == 0: + raise ValueError( + f"ifft method must have zero frequency defined. Lowest frequency is: {S.index.values[0]}" + ) + if frequency_bins is None: - delta_f = f.values[1]-f.values[0] - assert np.allclose(f.diff()[1:], delta_f) - elif isinstance(frequency_bins, np.ndarray): - delta_f = pd.Series(frequency_bins, index=S.index) - method = 'sum_of_sines' - elif isinstance(frequency_bins, pd.DataFrame): - assert len(frequency_bins.columns) == 1, ('frequency_bins must only' - 'contain 1 column') - delta_f = frequency_bins.squeeze() - method = 'sum_of_sines' - - if phases is None: - np.random.seed(seed) - phase = pd.DataFrame(2*np.pi*np.random.rand(S.shape[0], S.shape[1]), - index=S.index, columns=S.columns) - elif isinstance(phases, np.ndarray): - phase = pd.DataFrame(phases, index=S.index, columns=S.columns) - elif isinstance(phases, pd.DataFrame): - phase = phases - - omega = pd.Series(2*np.pi*f) - omega.index = f - - # Wave amplitude times delta f - A = 2*S - A = A.multiply(delta_f, axis=0) - A = np.sqrt(A) - - if method == 'ifft': - A_cmplx = A * (np.cos(phase) + 1j*np.sin(phase)) - - def func(v): - eta = np.fft.irfft(0.5 * v.values.squeeze() * time_index.size, time_index.size) - return pd.Series(data=eta, index=time_index) - - eta = A_cmplx.apply(func) - - elif method == 'sum_of_sines': - # Product of omega and time - B = np.outer(time_index, omega) - B = B.reshape((len(time_index), len(omega))) - B = pd.DataFrame(B, index=time_index, columns=omega.index) - - # wave elevation - eta = pd.DataFrame(columns=S.columns, index=time_index) - for mcol in eta.columns: - C = np.cos(B+phase[mcol]) - C = pd.DataFrame(C, index=time_index, columns=omega.index) - eta[mcol] = (C*A[mcol]).sum(axis=1) - + delta_f = f.values[1] - f.values[0] + if not np.allclose(f.diff(dim=frequency_dimension)[1:], delta_f): + raise ValueError( + "Frequency bins are not evenly spaced. " + + "Define 'frequency_bins' or create a constant " + + "frequency spacing for S." + ) + else: + if not len(frequency_bins.squeeze().shape) == 1: + raise ValueError("frequency_bins must only contain 1 column") + delta_f = frequency_bins + method = "sum_of_sines" + + omega = xr.DataArray( + data=2 * np.pi * f, dims=frequency_dimension, coords={frequency_dimension: f} + ) + + eta = xr.Dataset() + for var in S.data_vars: + if phases is None: + np.random.seed(seed) + phase = xr.DataArray( + data=2 * np.pi * np.random.rand(S[var].size), + dims="Frequency", + coords={"Frequency": f}, + ) + else: + phase = phases[var] + + # Wave amplitude times delta f + A = 2 * S[var] + A = A * delta_f + A = np.sqrt(A) + + if method == "ifft": + A_cmplx = A * (np.cos(phase) + 1j * np.sin(phase)) + eta_tmp = np.fft.irfft( + 0.5 * A_cmplx.values * time_index.size, time_index.size + ) + eta[var] = xr.DataArray( + data=eta_tmp, dims="Time", coords={"Time": time_index} + ) + + elif method == "sum_of_sines": + # Product of omega and time + B = np.outer(time_index, omega) + B = B.reshape((len(time_index), len(omega))) + B = xr.DataArray( + data=B, + dims=["Time", "Frequency"], + coords={"Time": time_index, "Frequency": f}, + ) + + # wave elevation + # eta = xr.DataArray(columns=S.columns, index=time_index) + # for mcol in eta.columns: + C = np.cos(B + phase) + # C = xr.DataArray(data=C, index=time_index, columns=omega.index) + eta[var] = (C * A).sum(axis=1) + + if to_pandas: + eta = eta.to_dataframe() + return eta -def frequency_moment(S, N, frequency_bins=None): +def frequency_moment(S, N, frequency_bins=None, frequency_dimension="", to_pandas=True): """ Calculates the Nth frequency moment of the spectrum Parameters ----------- - S: pandas DataFrame + S: pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Spectral density [m^2/Hz] indexed by frequency [Hz] N: int Moment (0 for 0th, 1 for 1st ....) frequency_bins: numpy array or pandas Series (optional) Bin widths for frequency of S. Required for unevenly sized bins + frequency_dimension: string (optional) + Name of the xarray dimension corresponding to frequency. If not supplied, + defaults to the first dimension. Does not affect pandas input. + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns ------- - m: pandas DataFrame + m: pandas DataFrame or xarray Dataset Nth Frequency Moment indexed by S.columns """ - assert isinstance(S, (pd.Series,pd.DataFrame)), 'S must be of type pd.DataFrame or pd.Series' - assert isinstance(N, int), 'N must be of type int' + S = convert_to_dataset(S) + if not isinstance(N, int): + raise TypeError(f"N must be of type int. Got: {type(N)}") + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + if frequency_dimension == "": + frequency_dimension = list(S.coords)[0] + elif frequency_dimension not in list(S.dims): + raise ValueError( + f"frequency_dimension is not a dimension of S ({list(S.dims)}). Got: {frequency_dimension}." + ) + f = S[frequency_dimension] # Eq 8 in IEC 62600-101 - spec = S[S.index > 0] # omit frequency of 0 + S = S.sel({frequency_dimension: slice(1e-12, f.max())}) # omit frequency of 0 + f = S[frequency_dimension] # reset frequency_dimension without the 0 frequency - f = spec.index fn = np.power(f, N) if frequency_bins is None: - delta_f = pd.Series(f).diff() - delta_f[0] = f[1]-f[0] + delta_f = f.diff(dim=frequency_dimension) + delta_f0 = f[1] - f[0] + delta_f0 = delta_f0.assign_coords({frequency_dimension: f[0]}) + delta_f = xr.concat([delta_f0, delta_f], dim=frequency_dimension) else: + delta_f = xr.DataArray( + data=convert_to_dataarray(frequency_bins), + dims=frequency_dimension, + coords={frequency_dimension: f}, + ) - assert isinstance(frequency_bins, (np.ndarray,pd.Series,pd.DataFrame)),( - 'frequency_bins must be of type np.ndarray or pd.Series') - delta_f = pd.Series(frequency_bins) + m = S * fn * delta_f + m = m.sum(dim=frequency_dimension) - delta_f.index = f + m = _transform_dataset(m, "m" + str(N)) - m = spec.multiply(fn,axis=0).multiply(delta_f,axis=0) - m = m.sum(axis=0) - if isinstance(S,pd.Series): - m = pd.DataFrame(m, index=[0], columns = ['m'+str(N)]) - else: - m = pd.DataFrame(m, index=S.columns, columns = ['m'+str(N)]) + if to_pandas: + m = m.to_dataframe() return m -def significant_wave_height(S, frequency_bins=None): +def significant_wave_height(S, frequency_bins=None, to_pandas=True): """ Calculates wave height from spectra Parameters ------------ - S: pandas DataFrame + S: pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Spectral density [m^2/Hz] indexed by frequency [Hz] frequency_bins: numpy array or pandas Series (optional) Bin widths for frequency of S. Required for unevenly sized bins + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns --------- - Hm0: pandas DataFrame + Hm0: pandas DataFrame or xarray Dataset Significant wave height [m] index by S.columns """ - assert isinstance(S, (pd.Series,pd.DataFrame)), 'S must be of type pd.DataFrame or pd.Series' + S = convert_to_dataset(S) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") # Eq 12 in IEC 62600-101 + m0 = frequency_moment(S, 0, frequency_bins=frequency_bins, to_pandas=False).rename( + {"m0": "Hm0"} + ) + Hm0 = 4 * np.sqrt(m0) - Hm0 = 4*np.sqrt(frequency_moment(S,0,frequency_bins=frequency_bins)) - Hm0.columns = ['Hm0'] + if to_pandas: + Hm0 = Hm0.to_dataframe() return Hm0 -def average_zero_crossing_period(S,frequency_bins=None): +def average_zero_crossing_period(S, frequency_bins=None, to_pandas=True): """ Calculates wave average zero crossing period from spectra Parameters ------------ - S: pandas DataFrame + S: pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Spectral density [m^2/Hz] indexed by frequency [Hz] frequency_bins: numpy array or pandas Series (optional) Bin widths for frequency of S. Required for unevenly sized bins + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns --------- - Tz: pandas DataFrame + Tz: pandas DataFrame or xarray Dataset Average zero crossing period [s] indexed by S.columns """ - assert isinstance(S, pd.DataFrame), 'S must be of type pd.DataFrame' + S = convert_to_dataset(S) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") # Eq 15 in IEC 62600-101 - m0 = frequency_moment(S,0,frequency_bins=frequency_bins).squeeze() # convert to Series for calculation - m2 = frequency_moment(S,2,frequency_bins=frequency_bins).squeeze() + m0 = frequency_moment(S, 0, frequency_bins=frequency_bins, to_pandas=False).rename( + {"m0": "Tz"} + ) + m2 = frequency_moment(S, 2, frequency_bins=frequency_bins, to_pandas=False).rename( + {"m2": "Tz"} + ) + + Tz = np.sqrt(m0 / m2) - Tz = np.sqrt(m0/m2) - Tz = pd.DataFrame(Tz, index=S.columns, columns = ['Tz']) + if to_pandas: + Tz = Tz.to_dataframe() return Tz -def average_crest_period(S,frequency_bins=None): +def average_crest_period(S, frequency_bins=None, to_pandas=True): """ Calculates wave average crest period from spectra Parameters ------------ - S: pandas DataFrame + S: pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Spectral density [m^2/Hz] indexed by frequency [Hz] frequency_bins: numpy array or pandas Series (optional) Bin widths for frequency of S. Required for unevenly sized bins + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns --------- - Tavg: pandas DataFrame + Tavg: pandas DataFrame or xarray Dataset Average wave period [s] indexed by S.columns """ - assert isinstance(S, pd.DataFrame), 'S must be of type pd.DataFrame' + S = convert_to_dataset(S) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + m2 = frequency_moment(S, 2, frequency_bins=frequency_bins, to_pandas=False).rename( + {"m2": "Tavg"} + ) + m4 = frequency_moment(S, 4, frequency_bins=frequency_bins, to_pandas=False).rename( + {"m4": "Tavg"} + ) - m2 = frequency_moment(S,2,frequency_bins=frequency_bins).squeeze() # convert to Series for calculation - m4 = frequency_moment(S,4,frequency_bins=frequency_bins).squeeze() + Tavg = np.sqrt(m2 / m4) - Tavg = np.sqrt(m2/m4) - Tavg = pd.DataFrame(Tavg, index=S.columns, columns=['Tavg']) + if to_pandas: + Tavg = Tavg.to_dataframe() return Tavg -def average_wave_period(S,frequency_bins=None): +def average_wave_period(S, frequency_bins=None, to_pandas=True): """ Calculates mean wave period from spectra Parameters ------------ - S: pandas DataFrame + S: pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Spectral density [m^2/Hz] indexed by frequency [Hz] frequency_bins: numpy array or pandas Series (optional) Bin widths for frequency of S. Required for unevenly sized bins + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns --------- - Tm: pandas DataFrame + Tm: pandas DataFrame or xarray Dataset Mean wave period [s] indexed by S.columns """ - assert isinstance(S, pd.DataFrame), 'S must be of type pd.DataFrame' + S = convert_to_dataset(S) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") - m0 = frequency_moment(S,0,frequency_bins=frequency_bins).squeeze() # convert to Series for calculation - m1 = frequency_moment(S,1,frequency_bins=frequency_bins).squeeze() + m0 = frequency_moment(S, 0, frequency_bins=frequency_bins, to_pandas=False).rename( + {"m0": "Tm"} + ) + m1 = frequency_moment(S, 1, frequency_bins=frequency_bins, to_pandas=False).rename( + {"m1": "Tm"} + ) - Tm = np.sqrt(m0/m1) - Tm = pd.DataFrame(Tm, index=S.columns, columns=['Tm']) + Tm = np.sqrt(m0 / m1) + + if to_pandas: + Tm = Tm.to_dataframe() return Tm -def peak_period(S): +def peak_period(S, frequency_dimension="", to_pandas=True): """ Calculates wave peak period from spectra Parameters ------------ - S: pandas DataFrame + S: pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Spectral density [m^2/Hz] indexed by frequency [Hz] + frequency_dimension: string (optional) + Name of the xarray dimension corresponding to frequency. If not supplied, + defaults to the first dimension. Does not affect pandas input. + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns --------- - Tp: pandas DataFrame + Tp: pandas DataFrame or xarray Dataset Wave peak period [s] indexed by S.columns """ - assert isinstance(S, pd.DataFrame), 'S must be of type pd.DataFrame' + S = convert_to_dataset(S) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + if frequency_dimension == "": + frequency_dimension = list(S.coords)[0] + elif frequency_dimension not in list(S.dims): + raise ValueError( + f"frequency_dimension is not a dimension of S ({list(S.dims)}). Got: {frequency_dimension}." + ) # Eq 14 in IEC 62600-101 - fp = S.idxmax(axis=0) # Hz + fp = S.idxmax(dim=frequency_dimension) # Hz + Tp = 1 / fp + + Tp = _transform_dataset(Tp, "Tp") - Tp = 1/fp - Tp = pd.DataFrame(Tp, index=S.columns, columns=["Tp"]) + if to_pandas: + Tp = Tp.to_dataframe() return Tp -def energy_period(S,frequency_bins=None): +def energy_period(S, frequency_bins=None, to_pandas=True): """ Calculates wave energy period from spectra Parameters ------------ - S: pandas DataFrame + S: pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Spectral density [m^2/Hz] indexed by frequency [Hz] frequency_bins: numpy array or pandas Series (optional) Bin widths for frequency of S. Required for unevenly sized bins + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns --------- - Te: pandas DataFrame + Te: pandas DataFrame or xarray Dataset Wave energy period [s] indexed by S.columns """ + S = convert_to_dataset(S) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") - assert isinstance(S, (pd.Series,pd.DataFrame)), 'S must be of type pd.DataFrame or pd.Series' - - mn1 = frequency_moment(S,-1,frequency_bins=frequency_bins).squeeze() # convert to Series for calculation - m0 = frequency_moment(S,0,frequency_bins=frequency_bins).squeeze() + mn1 = frequency_moment( + S, -1, frequency_bins=frequency_bins, to_pandas=False + ).rename({"m-1": "Te"}) + m0 = frequency_moment(S, 0, frequency_bins=frequency_bins, to_pandas=False).rename( + {"m0": "Te"} + ) # Eq 13 in IEC 62600-101 - Te = mn1/m0 - if isinstance(S,pd.Series): - Te = pd.DataFrame(Te, index=[0], columns=['Te']) - else: - Te = pd.DataFrame(Te, S.columns, columns=['Te']) + Te = mn1 / m0 + if to_pandas: + Te = Te.to_dataframe() return Te -def spectral_bandwidth(S,frequency_bins=None): +def spectral_bandwidth(S, frequency_bins=None, to_pandas=True): """ Calculates bandwidth from spectra Parameters ------------ - S: pandas DataFrame + S: pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Spectral density [m^2/Hz] indexed by frequency [Hz] frequency_bins: numpy array or pandas Series (optional) Bin widths for frequency of S. Required for unevenly sized bins + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns --------- - e: pandas DataFrame + e: pandas DataFrame or xarray Dataset Spectral bandwidth [s] indexed by S.columns """ - assert isinstance(S, pd.DataFrame), 'S must be of type pd.DataFrame' + S = convert_to_dataset(S) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") - m2 = frequency_moment(S,2,frequency_bins=frequency_bins).squeeze() # convert to Series for calculation - m0 = frequency_moment(S,0,frequency_bins=frequency_bins).squeeze() - m4 = frequency_moment(S,4,frequency_bins=frequency_bins).squeeze() + m2 = frequency_moment(S, 2, frequency_bins=frequency_bins, to_pandas=False).rename( + {"m2": "e"} + ) + m0 = frequency_moment(S, 0, frequency_bins=frequency_bins, to_pandas=False).rename( + {"m0": "e"} + ) + m4 = frequency_moment(S, 4, frequency_bins=frequency_bins, to_pandas=False).rename( + {"m4": "e"} + ) - e = np.sqrt(1- (m2**2)/(m0/m4)) - e = pd.DataFrame(e, index=S.columns, columns=['e']) + e = np.sqrt(1 - (m2**2) / (m0 / m4)) + + if to_pandas: + e = e.to_dataframe() return e -def spectral_width(S,frequency_bins=None): +def spectral_width(S, frequency_bins=None, to_pandas=True): """ Calculates wave spectral width from spectra Parameters ------------ - S: pandas DataFrame + S: pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Spectral density [m^2/Hz] indexed by frequency [Hz] frequency_bins: numpy array or pandas Series (optional) Bin widths for frequency of S. Required for unevenly sized bins + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns --------- - v: pandas DataFrame + v: pandas DataFrame or xarray Dataset Spectral width [m] indexed by S.columns """ - assert isinstance(S, pd.DataFrame), 'S must be of type pd.DataFrame' - - mn2 = frequency_moment(S,-2,frequency_bins=frequency_bins).squeeze() # convert to Series for calculation - m0 = frequency_moment(S,0,frequency_bins=frequency_bins).squeeze() - mn1 = frequency_moment(S,-1,frequency_bins=frequency_bins).squeeze() + S = convert_to_dataset(S) + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + mn2 = frequency_moment( + S, -2, frequency_bins=frequency_bins, to_pandas=False + ).rename({"m-2": "v"}) + m0 = frequency_moment(S, 0, frequency_bins=frequency_bins, to_pandas=False).rename( + {"m0": "v"} + ) + mn1 = frequency_moment( + S, -1, frequency_bins=frequency_bins, to_pandas=False + ).rename({"m-1": "v"}) # Eq 16 in IEC 62600-101 - v = np.sqrt((m0*mn2/np.power(mn1,2))-1) - v = pd.DataFrame(v, index=S.columns, columns=['v']) + v = np.sqrt((m0 * mn2 / np.power(mn1, 2)) - 1) + + if to_pandas: + v = v.to_dataframe() return v -def energy_flux(S, h, deep=False, rho=1025, g=9.80665, ratio=2): +def energy_flux( + S, + h, + deep=False, + rho=1025, + g=9.80665, + ratio=2, + frequency_dimension="", + to_pandas=True, +): """ Calculates the omnidirectional wave energy flux of the spectra Parameters ----------- - S: pandas DataFrame or Series + S: pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Spectral density [m^2/Hz] indexed by frequency [Hz] h: float Water depth [m] @@ -588,55 +810,70 @@ def energy_flux(S, h, deep=False, rho=1025, g=9.80665, ratio=2): ratio: float or int (optional) Only applied if depth=False. If h/l > ratio, water depth will be set to deep. Default ratio = 2. + frequency_dimension: string (optional) + Name of the xarray dimension corresponding to frequency. If not supplied, + defaults to the first dimension. Does not affect pandas input. + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns ------- - J: pandas DataFrame + J: pandas DataFrame or xarray Dataset Omni-directional wave energy flux [W/m] indexed by S.columns """ - assert isinstance(S, (pd.Series,pd.DataFrame)), 'S must be of type pd.DataFrame or pd.Series' - assert isinstance(h, (int,float)), 'h must be of type int or float' - assert isinstance(deep, bool), 'deep must be of type bool' - assert isinstance(rho, (int,float)), 'rho must be of type int or float' - assert isinstance(g, (int,float)), 'g must be of type int or float' - assert isinstance(ratio, (int,float)), 'ratio must be of type int or float' + S = convert_to_dataset(S) + if not isinstance(h, (int, float)): + raise TypeError(f"h must be of type int or float. Got: {type(h)}") + if not isinstance(deep, bool): + raise TypeError(f"deep must be of type bool. Got: {type(deep)}") + if not isinstance(rho, (int, float)): + raise TypeError(f"rho must be of type int or float. Got: {type(rho)}") + if not isinstance(g, (int, float)): + raise TypeError(f"g must be of type int or float. Got: {type(g)}") + if not isinstance(ratio, (int, float)): + raise TypeError(f"ratio must be of type int or float. Got: {type(ratio)}") + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + if frequency_dimension == "": + frequency_dimension = list(S.coords)[0] + elif frequency_dimension not in list(S.dims): + raise ValueError( + f"frequency_dimension is not a dimension of S ({list(S.dims)}). Got: {frequency_dimension}." + ) + f = S[frequency_dimension] if deep: - # Eq 8 in IEC 62600-100, deep water simpilification - Te = energy_period(S) - Hm0 = significant_wave_height(S) + # Eq 8 in IEC 62600-100, deep water simplification + Te = energy_period(S, to_pandas=False).rename({"Te": "J"}) + Hm0 = significant_wave_height(S, to_pandas=False).rename({"Hm0": "J"}) - coeff = rho*(g**2)/(64*np.pi) - - J = coeff*(Hm0.squeeze()**2)*Te.squeeze() - if isinstance(S,pd.Series): - J = pd.DataFrame(J, index=[0], columns=["J"]) - else: - J = pd.DataFrame(J, S.columns, columns=["J"]) + coeff = rho * (g**2) / (64 * np.pi) + J = coeff * (Hm0**2) * Te else: # deep water flag is false - f = S.index - - k = wave_number(f, h, rho, g) + k = wave_number(f, h, rho, g, to_pandas=False) # wave celerity (group velocity) - Cg = wave_celerity(k, h, g, depth_check=True, ratio=ratio).squeeze() + Cg = wave_celerity(k, h, g, depth_check=True, ratio=ratio, to_pandas=False)[ + "Cg" + ] # Calculating the wave energy flux, Eq 9 in IEC 62600-101 - delta_f = pd.Series(f).diff() - delta_f.index = f - delta_f[f[0]] = delta_f[f[1]] # fill the initial NaN + delta_f = f.diff(dim=frequency_dimension) + delta_f0 = f[1] - f[0] + delta_f0 = delta_f0.assign_coords({frequency_dimension: f[0]}) + delta_f = xr.concat([delta_f0, delta_f], dim=frequency_dimension) - CgSdelF = S.multiply(delta_f, axis=0).multiply(Cg, axis=0) + CgSdelF = S * delta_f * Cg - J = rho * g * CgSdelF.sum(axis=0) + J = rho * g * CgSdelF.sum(dim=frequency_dimension) + J = _transform_dataset(J, "J") - if isinstance(S,pd.Series): - J = pd.DataFrame(J, index=[0], columns=["J"]) - else: - J = pd.DataFrame(J, S.columns, columns=["J"]) + if to_pandas: + J = J.to_dataframe() return J @@ -651,8 +888,7 @@ def energy_period_to_peak_period(Te, gamma): Parameters ---------- - Te: float or array - Spectral energy period [s] + Te: int, float, np.ndarray, pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset gamma: float or int Peak enhancement factor for JONSWAP spectrum @@ -661,21 +897,33 @@ def energy_period_to_peak_period(Te, gamma): Tp: float or array Spectral peak period [s] """ - assert isinstance(Te, (float, np.ndarray)), 'Te must be a float or a ndarray' - assert isinstance(gamma, (float, int)), 'gamma must be of type float or int' + if not isinstance( + Te, (int, float, np.ndarray, pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset) + ): + raise TypeError( + f"Te must be an int, float, np.ndarray, pd.Series, pd.DataFrame, xr.DataArray or xr.Dataset. Got: {type(Te)}" + ) + if not isinstance(gamma, (float, int)): + raise TypeError(f"gamma must be of type float or int. Got: {type(gamma)}") + + factor = 0.8255 + 0.03852 * gamma - 0.005537 * gamma**2 + 0.0003154 * gamma**3 - factor = 0.8255 + 0.03852*gamma - 0.005537*gamma**2 + 0.0003154*gamma**3 + Tp = Te / factor + if isinstance(Tp, xr.Dataset): + Tp.rename({"Te": "Tp"}) - return Te / factor + return Tp -def wave_celerity(k, h, g=9.80665, depth_check=False, ratio=2): +def wave_celerity( + k, h, g=9.80665, depth_check=False, ratio=2, frequency_dimension="", to_pandas=True +): """ Calculates wave celerity (group velocity) Parameters ---------- - k: pandas DataFrame or Series + k: pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Wave number [1/m] indexed by frequency [Hz] h: float Water depth [m] @@ -686,22 +934,36 @@ def wave_celerity(k, h, g=9.80665, depth_check=False, ratio=2): ratio: float or int (optional) Only applied if depth_check=True. If h/l > ratio, water depth will be set to deep. Default ratio = 2 + frequency_dimension: string (optional) + Name of the xarray dimension corresponding to frequency. If not supplied, + defaults to the first dimension. Does not affect pandas input. + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns ------- - Cg: pandas DataFrame + Cg: pandas DataFrame or xarray Dataset Water celerity [m/s] indexed by frequency [Hz] """ - if isinstance(k, pd.DataFrame): - k = k.squeeze() - - assert isinstance(k, pd.Series), 'S must be of type pd.Series' - assert isinstance(h, (int,float)), 'h must be of type int or float' - assert isinstance(g, (int,float)), 'g must be of type int or float' - assert isinstance(depth_check, bool), 'depth_check must be of type bool' - assert isinstance(ratio, (int,float)), 'ratio must be of type int or float' - - f = k.index + k = convert_to_dataarray(k) + if not isinstance(h, (int, float)): + raise TypeError(f"h must be of type int or float. Got: {type(h)}") + if not isinstance(g, (int, float)): + raise TypeError(f"g must be of type int or float. Got: {type(g)}") + if not isinstance(depth_check, bool): + raise TypeError(f"depth_check must be of type bool. Got: {type(depth_check)}") + if not isinstance(ratio, (int, float)): + raise TypeError(f"ratio must be of type int or float. Got: {type(ratio)}") + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + if frequency_dimension == "": + frequency_dimension = list(k.coords)[0] + elif frequency_dimension not in list(k.dims): + raise ValueError( + f"frequency_dimension is not a dimension of k ({list(k.dims)}). Got: {frequency_dimension}." + ) + f = k[frequency_dimension] k = k.values if depth_check: @@ -715,21 +977,36 @@ def wave_celerity(k, h, g=9.80665, depth_check=False, ratio=2): dk = k[dr] # deep water approximation - dCg = (np.pi * df / dk) - dCg = pd.DataFrame(dCg, index=df, columns=["Cg"]) + dCg = np.pi * df / dk + dCg = xr.DataArray( + data=dCg, dims=frequency_dimension, coords={frequency_dimension: df} + ) + dCg.name = "Cg" # shallow frequencies sf = f[~dr] sk = k[~dr] sCg = (np.pi * sf / sk) * (1 + (2 * h * sk) / np.sinh(2 * h * sk)) - sCg = pd.DataFrame(sCg, index = sf, columns = ["Cg"]) + sCg = xr.DataArray( + data=sCg, dims=frequency_dimension, coords={frequency_dimension: sf} + ) + sCg.name = "Cg" - Cg = pd.concat([dCg, sCg]).sort_index() + Cg = xr.concat([dCg, sCg], dim=frequency_dimension).sortby(frequency_dimension) + Cg.name = "Cg" else: # Eq 10 in IEC 62600-101 Cg = (np.pi * f / k) * (1 + (2 * h * k) / np.sinh(2 * h * k)) - Cg = pd.DataFrame(Cg, index=f, columns=["Cg"]) + Cg = xr.DataArray( + data=Cg, dims=frequency_dimension, coords={frequency_dimension: f} + ) + Cg.name = "Cg" + + Cg = Cg.to_dataset() + + if to_pandas: + Cg = Cg.to_dataframe() return Cg @@ -741,29 +1018,27 @@ def wave_length(k): Parameters ------------- - k: pandas Dataframe + k: int, float, numpy ndarray, pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset Wave number [1/m] indexed by frequency Returns --------- - l: float or array - Wave length [m] indexed by frequency + l: int, float, numpy ndarray, pandas Series, pandas DataFrame, xarray DataArray, or xarray Dataset + Wave length [m] indexed by frequency. Output type is identical to the type of k. """ - if isinstance(k, (int, float, list)): - k = np.array(k) - elif isinstance(k, pd.DataFrame): - k = k.squeeze().values - elif isinstance(k, pd.Series): - k = k.values - - assert isinstance(k, np.ndarray), 'k must be array-like' + if not isinstance( + k, (int, float, np.ndarray, pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset) + ): + raise TypeError( + f"k must be an int, float, np.ndarray, pd.Series, pd.DataFrame, xr.DataArray or xr.Dataset. Got: {type(k)}" + ) - l = 2*np.pi/k + l = 2 * np.pi / k return l -def wave_number(f, h, rho=1025, g=9.80665): +def wave_number(f, h, rho=1025, g=9.80665, to_pandas=True): """ Calculates wave number @@ -772,7 +1047,7 @@ def wave_number(f, h, rho=1025, g=9.80665): Parameters ----------- - f: numpy array + f: int, float, numpy ndarray, pandas DataFrame, pandas Series, xarray DataArray, or xarray Dataset Frequency [Hz] h: float Water depth [m] @@ -780,29 +1055,34 @@ def wave_number(f, h, rho=1025, g=9.80665): Water density [kg/m^3] g: float (optional) Gravitational acceleration [m/s^2] + to_pandas: bool (optional) + Flag to output pandas instead of xarray. Default = True. Returns ------- - k: pandas DataFrame + k: pandas DataFrame or xarray Dataset Wave number [1/m] indexed by frequency [Hz] """ - try: - f = np.atleast_1d(np.array(f)) - except: - pass - assert isinstance(f, np.ndarray), 'f must be of type np.ndarray' - assert isinstance(h, (int,float)), 'h must be of type int or float' - assert isinstance(rho, (int,float)), 'rho must be of type int or float' - assert isinstance(g, (int,float)), 'g must be of type int or float' - - w = 2*np.pi*f # angular frequency - xi = w/np.sqrt(g/h) # note: =h*wa/sqrt(h*g/h) - yi = xi*xi/np.power(1.0-np.exp(-np.power(xi,2.4908)),0.4015) - k0 = yi/h # Initial guess without current-wave interaction + if isinstance(f, (int, float)): + f = np.asarray([f]) + f = convert_to_dataarray(f) + if not isinstance(h, (int, float)): + raise TypeError(f"h must be of type int or float. Got: {type(h)}") + if not isinstance(rho, (int, float)): + raise TypeError(f"rho must be of type int or float. Got: {type(rho)}") + if not isinstance(g, (int, float)): + raise TypeError(f"g must be of type int or float. Got: {type(g)}") + if not isinstance(to_pandas, bool): + raise TypeError(f"to_pandas must be of type bool. Got: {type(to_pandas)}") + + w = 2 * np.pi * f # angular frequency + xi = w / np.sqrt(g / h) # note: =h*wa/sqrt(h*g/h) + yi = xi * xi / np.power(1.0 - np.exp(-np.power(xi, 2.4908)), 0.4015) + k0 = yi / h # Initial guess without current-wave interaction # Eq 11 in IEC 62600-101 using initial guess from Guo (2002) def func(kk): - val = np.power(w,2) - g*kk*np.tanh(kk*h) + val = np.power(w, 2) - g * kk * np.tanh(kk * h) return val mask = np.abs(func(k0)) > 1e-9 @@ -811,16 +1091,21 @@ def func(kk): w = w[mask] k, info, ier, mesg = _fsolve(func, k0_mask, full_output=True) - assert ier == 1, 'Wave number not found. ' + mesg + if not ier == 1: + raise ValueError("Wave number not found. " + mesg) k0[mask] = k - k = pd.DataFrame(k0, index=f, columns=['k']) + k0.name = "k" + k = k0.to_dataset() + + if to_pandas: + k = k.to_dataframe() return k def depth_regime(l, h, ratio=2): - ''' + """ Calculates the depth regime based on wavelength and height Deep water: h/l > ratio This function exists so sinh in wave celerity doesn't blow @@ -833,7 +1118,7 @@ def depth_regime(l, h, ratio=2): Parameters ---------- - l: array-like + l: int, float, np.ndarray, pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset wavelength [m] h: float or int water column depth [m] @@ -842,20 +1127,29 @@ def depth_regime(l, h, ratio=2): Returns ------- - depth_reg: boolean or boolean array + depth_reg: boolean or boolean array-like Boolean True if deep water, False otherwise - ''' - - if isinstance(l, (int, float, list)): - l = np.array(l) - elif isinstance(l, pd.DataFrame): - l = l.squeeze().values - elif isinstance(l, pd.Series): - l = l.values - - assert isinstance(l, (np.ndarray)), "l must be array-like" - assert isinstance(h, (int, float)), "h must be of type int or float" - - depth_reg = h/l > ratio - - return depth_reg + """ + if not isinstance( + l, (int, float, np.ndarray, pd.Series, pd.DataFrame, xr.DataArray, xr.Dataset) + ): + raise TypeError( + f"l must be of type int, float, np.ndarray, pd.DataFrame, pd.Series, xr.DataArray, or xr.Dataset. Got: {type(l)}" + ) + if not isinstance(h, (int, float)): + raise TypeError(f"h must be of type int or float. Got: {type(h)}") + + depth_reg = h / l > ratio + + return depth_reg + + +def _transform_dataset(data, name): + # Converting data from a Dataset into a DataArray will turn the variables + # columns into a 'variable' dimension. + # Converting it back to a dataset will keep this concise variable dimension + # but in the expected xr.Dataset/pd.DataFrame format + data = data.to_array() + data = convert_to_dataset(data, name=name) + data = data.rename({"variable": "index"}) + return data diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 000000000..83e60c9dd --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,4 @@ +# requirements-dev.txt +black +pylint +pytest diff --git a/requirements.txt b/requirements.txt index 01dcce300..b4f8bbe98 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,18 +1,18 @@ -pandas>=1.0.0, <=1.5.0 +pandas>=1.0.0 numpy>=1.21.0 scipy matplotlib requests -pecos>=0.1.9 +pecos>=0.3.0 fatpack lxml scikit-learn NREL-rex>=0.2.63 six>=1.13.0 h5py>=3.6.0 -h5pyd>=0.7.0, <=0.10.3 +h5pyd>=0.7.0 netCDF4>=1.5.8 -xarray<=2022.9.0 +xarray statsmodels bottleneck beautifulsoup4 diff --git a/setup.py b/setup.py index e68d1ef20..1c62eca5e 100644 --- a/setup.py +++ b/setup.py @@ -1,41 +1,43 @@ -from setuptools import setup, find_packages -from distutils.core import Extension import os import re +from setuptools import setup, find_packages -DISTNAME = 'mhkit' +DISTNAME = "mhkit" PACKAGES = find_packages() EXTENSIONS = [] -DESCRIPTION = 'Marine and Hydrokinetic Toolkit' -AUTHOR = 'MHKiT developers' -MAINTAINER_EMAIL = '' -LICENSE = 'Revised BSD' -URL = 'https://github.com/MHKiT-Software/mhkit-python' -CLASSIFIERS = ['Development Status :: 3 - Alpha', - 'Programming Language :: Python :: 3', - 'Topic :: Scientific/Engineering', - 'Intended Audience :: Science/Research', - 'Operating System :: OS Independent', - ] -DEPENDENCIES = ['pandas>=1.0.0, <=1.5.0', - 'numpy>=1.21.0', - 'scipy', - 'matplotlib', - 'requests', - 'pecos>=0.1.9', - 'fatpack', - 'lxml', - 'scikit-learn', - 'NREL-rex>=0.2.63', - 'six>=1.13.0', - 'h5py>=3.6.0', - 'h5pyd >=0.7.0, <=0.10.3', - 'netCDF4<=1.5.8', - 'xarray<=2022.9.0', - 'statsmodels', - 'pytz', - 'bottleneck', - 'beautifulsoup4',] +DESCRIPTION = "Marine and Hydrokinetic Toolkit" +AUTHOR = "MHKiT developers" +MAINTAINER_EMAIL = "" +LICENSE = "Revised BSD" +URL = "https://github.com/MHKiT-Software/mhkit-python" +CLASSIFIERS = [ + "Development Status :: 3 - Alpha", + "Programming Language :: Python :: 3", + "Topic :: Scientific/Engineering", + "Intended Audience :: Science/Research", + "Operating System :: OS Independent", +] +DEPENDENCIES = [ + "pandas>=1.0.0", + "numpy>=1.21.0", + "scipy", + "matplotlib", + "requests", + "pecos>=0.3.0", + "fatpack", + "lxml", + "scikit-learn", + "NREL-rex>=0.2.63", + "six>=1.13.0", + "h5py>=3.6.0", + "h5pyd >=0.7.0", + "netCDF4", + "xarray", + "statsmodels", + "pytz", + "bottleneck", + "beautifulsoup4", +] LONG_DESCRIPTION = """ MHKiT-Python is a Python package designed for marine renewable energy applications to assist in @@ -70,29 +72,29 @@ # get version from __init__.py file_dir = os.path.abspath(os.path.dirname(__file__)) -with open(os.path.join(file_dir, 'mhkit', '__init__.py')) as f: +with open(os.path.join(file_dir, "mhkit", "__init__.py")) as f: version_file = f.read() - version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", - version_file, re.M) + version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", version_file, re.M) if version_match: VERSION = version_match.group(1) else: raise RuntimeError("Unable to find version string.") -setup(name=DISTNAME, - version=VERSION, - packages=PACKAGES, - ext_modules=EXTENSIONS, - description=DESCRIPTION, - long_description_content_type="text/markdown", - long_description=LONG_DESCRIPTION, - author=AUTHOR, - maintainer_email=MAINTAINER_EMAIL, - license=LICENSE, - url=URL, - classifiers=CLASSIFIERS, - zip_safe=False, - install_requires=DEPENDENCIES, - scripts=[], - include_package_data=True - ) +setup( + name=DISTNAME, + version=VERSION, + packages=PACKAGES, + ext_modules=EXTENSIONS, + description=DESCRIPTION, + long_description_content_type="text/markdown", + long_description=LONG_DESCRIPTION, + author=AUTHOR, + maintainer_email=MAINTAINER_EMAIL, + license=LICENSE, + url=URL, + classifiers=CLASSIFIERS, + zip_safe=False, + install_requires=DEPENDENCIES, + scripts=[], + include_package_data=True, +)