Skip to main content

NATURESCAPES shoreline analysis

Project description

NATURESCAPES shoreline Package

PyPI - Format

This is the repo for the Naturescapes shoreline package and research notebooks.

Utilities for ray casting, working with LineString resolution, and clipping rays have been organized as a Python package in the src directory. The main interface is provided by the ShorelineAnalyzer class.

The minimum supported Python version is Python 3.10.

Usage (see shoreline.ipynb for example)

from shoreline import ShorelineAnalyzer

# Create a new analyzer
analyzer = ShorelineAnalyzer()
sa = ShorelineAnalyzer(
    crs="EPSG:25829",
    shoreline="geodata/ireland/gadm36_IRL_shp/gadm36_IRL_0.shp",
    tideline="geodata/cleanup/Calculated Contours Backup/vorf_lat_simplified.gpkg",
    hat=2.09,
    lat=-2.44,
    wave_period=3.0,
    wave_height=2.0,
    ray_resolution=10
)
analysis = sa.evaluate()
# we now have a result object containing analysis metadata (.metadata), as well as geometries
# and summary stats
# call help(analysis) for more

# we can plot results if we're using a notebook. pl is a tuple of Matplotlib figures
pl = analysis.visualise_coastal_slopes()
# this gives us a (map, stats) tuple
pl[0].savefig("dublin.png", dpi=300, bbox_inches="tight")
# you can also call analysis.summary_stats()

Sample output from shoreline.ipynb

Dublin Bay

Sample output of a ray intersecting isobaths ray_slope.ipynb

Ray / Slope

Installation

uv add shoreline or pip install shoreline

Installing for local development

This project is developed using uv, but should work with just pip. The use of a virtualenv is advised.

uv venv
source .venv/bin/activate
uv sync --all-extras

uv add --dev ipykernel
uv run ipython kernel install --user --env VIRTUAL_ENV $(pwd)/.venv --name=shoreline
uv run --with jupyter jupyter lab

When creating a notebook, select the shoreline kernel from the dropdown. Then use e.g. !uv add pydantic to add pydantic to the project's dependencies, or !uv pip install pydantic to install pydantic into the project's virtual environment without persisting the change to the project pyproject.toml or uv.lock files. Either command will make import pydantic work within the notebook

Anaconda

For Anaconda users: you will probably have to pull the requirements out of pyproject.toml. Sorry!

Testing

The smoothing algorithm is relatively well covered by tests (see tests/test_utils.py). Run pytest in the root dir in order to test if you'd like to tinker with it.

Data

Are in the geodata folder.

Copyright

Stephan Hügel / Naturescapes, 2025

Funding

The NATURESCAPES project is funded by the European Union under Grant Agreement No 10108434

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shoreline-0.1.3.tar.gz (30.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shoreline-0.1.3-py3-none-any.whl (29.4 kB view details)

Uploaded Python 3

File details

Details for the file shoreline-0.1.3.tar.gz.

File metadata

  • Download URL: shoreline-0.1.3.tar.gz
  • Upload date:
  • Size: 30.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for shoreline-0.1.3.tar.gz
Algorithm Hash digest
SHA256 4ac1e83a54c363903239eec75ca6dc3b38ca5a10a963f46993cf8ad8bb0f8c0b
MD5 10afdfa84f8a1245d41cf009463c5bfa
BLAKE2b-256 c24519977d127c3b8b4a9aac091d9fac3f492b673b1616b78849f8b8bedeb4cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for shoreline-0.1.3.tar.gz:

Publisher: test.yml on urschrei/naturescapes

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shoreline-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: shoreline-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 29.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for shoreline-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 81088d440400f9838113fbbd9e9fc44596a0714a34a1cc54636cd2cf0cde7d94
MD5 d7159711b2cd4a17f436d6be6b561cf3
BLAKE2b-256 26092c22c0e465bc28ee65e87ad46bf1a2013a01586af625b02e6753a3b1762c

See more details on using hashes here.

Provenance

The following attestation bundles were made for shoreline-0.1.3-py3-none-any.whl:

Publisher: test.yml on urschrei/naturescapes

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page