coastpy

Python tools for cloud-native coastal analytics

https://github.com/tudelft-citg/coastpy

Science Score: 75.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: sciencedirect.com
  • Academic email domains
  • Institutional organization owner
    Organization tudelft-citg has institutional domain (www.tudelft.nl)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.5%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Python tools for cloud-native coastal analytics

Basic Info
  • Host: GitHub
  • Owner: TUDelft-CITG
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 771 KB
Statistics
  • Stars: 20
  • Watchers: 4
  • Forks: 2
  • Open Issues: 3
  • Releases: 21
Created about 4 years ago · Last pushed 10 months ago
Metadata Files
Readme Changelog Contributing License Citation

README.md

CoastPy

Python tools for cloud-native coastal analytics.

Installation

You can install coastpy with pip in a Python environment where GDAL and pyproj are already installed.

bash pip install coastpy

However, if you start from scratch, it's probably easier to install with conda:

bash conda env create -f https://raw.githubusercontent.com/TUDelft-CITG/coastpy/refs/heads/main/environment.yaml

Data

Data Access Policy Update (Effective August 31, 2025)*

With the conclusion of the CoCliCo project and its associated cloud storage funding, all datasets hosted in the coclico Azure Storage account have been transitioned from public to private access.

To access the data, you will now need a Shared Access Signature (SAS) token. Tokens are available upon reasonable request from Deltares.

The data remains directly accessible from the cloud using the same tools and methods. Please see the tutorials and analytics sections for examples of how to use tools like Python and DuckDB with the required SAS token.

Global Coastal Transect System (GCTS)

Cross-shore coastal transects are essential to coastal monitoring, offering a consistent reference line to measure coastal change, while providing a robust foundation to map coastal characteristics and derive coastal statistics thereof.

The Global Coastal Transect System consists of more than 11 million cross-shore coastal transects uniformly spaced at 100-m intervals alongshore, for all OpenStreetMap coastlines that are longer than 5 kilometers.

```bash

Download all transects located in the United States.

duckdb -c "COPY (SELECT * FROM 'az://coclico.blob.core.windows.net/gcts/release/2024-08-02/*.parquet' AS gcts WHERE gcts.country = 'US') TO 'United_States.parquet' (FORMAT 'PARQUET')" ```

```bash

Download transects by bounding box.

duckdb -c "COPY (SELECT * FROM 'az://coclico.blob.core.windows.net/gcts/release/2024-08-02/*.parquet' AS gcts WHERE bbox.xmin <= 14.58 AND bbox.ymin <= -22.77 AND bbox.xmax >= 14.27 AND bbox.ymax >= -23.57) TO areaofinterest.parquet (FORMAT 'PARQUET')" ```

```bash

Or, download the data in bulk using AZ CLI

az storage blob download-batch \ --destination "./" \ --source "gcts" \ --pattern "release/2024-08-02/*.parquet" \ --account-name coclico ```

Coastal Grid

The Coastal Grid dataset provides a global tiling system for coastal analytics. It supports scalable data processing workflows by offering coastal tiles at varying zoom levels (5, 6, 7, 8, 9, 10) and buffer sizes (500 m, 1000 m, 2000 m, 5000 m, 10000 m, 15000 m).

Installation & usage instructions

Better installation and usage instructions will come when we build the documentation. For now, to run tutorials, analytics or scripts, you could consider proceeding as follows.

Installation

  1. Install Git or GitHub Desktop
  2. Clone CoastPy
  3. Install Miniforge
  4. Open a Miniforge prompt (finder/spotlight)
  5. Run the following commands:

```bash

Update conda if you already had miniforge installed

conda update --all --yes

Create the software environment

conda env create -f https://raw.githubusercontent.com/TUDelft-CITG/coastpy/refs/heads/main/environment.yaml ```

Usage

  1. Open Miniforge
  2. Change to the directory where CoastPy was cloned by using cd /path/to/coastpy
  3. Activate the software environment by mamba activate coastal
  4. Launch Jupyter lab by jupyter lab
  5. Navigate to the tutorials folder in Jupyter lab

Citation:

latex @article{CALKOEN2025106257, title = {Enabling coastal analytics at planetary scale}, journal = {Environmental Modelling & Software}, volume = {183}, pages = {106257}, year = {2025}, issn = {1364-8152}, doi = {https://doi.org/10.1016/j.envsoft.2024.106257}, url = {https://www.sciencedirect.com/science/article/pii/S1364815224003189}, }

Contributing

Interested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.

License

coastpy was created by Floris Calkoen. The software is licensed under the terms of the MIT license. Data licenses are typically CC-BY-4.0, and can be found in the respective STAC collection.

Owner

  • Name: TUDelft-CITG
  • Login: TUDelft-CITG
  • Kind: organization
  • Location: Delft, the Netherlands

Shared code repository for Civil Engineering and Geosciences

Citation (citation.cff)

cff-version: 1.2.0
message: "If you use this software, please cite the following work."
authors:
  - family-names: Calkoen
    given-names: Floris Reinier
  - family-names: Luijendijk
    given-names: Arjen Pieter
  - family-names: Vos
    given-names: Kilian
  - family-names: Kras
    given-names: Etiënne
  - family-names: Baart
    given-names: Fedor
title: "Enabling coastal analytics at planetary scale"
doi: 10.1016/j.envsoft.2024.106257
date-released: 2024-11-08
url: https://www.sciencedirect.com/science/article/pii/S1364815224003189
journal: "Environmental Modelling & Software"
volume: "183"
pages: "106257"
year: 2025
issn: "1364-8152"

GitHub Events

Total
  • Create event: 29
  • Issues event: 3
  • Release event: 10
  • Watch event: 11
  • Delete event: 17
  • Issue comment event: 15
  • Member event: 1
  • Push event: 149
  • Pull request event: 32
  • Fork event: 2
Last Year
  • Create event: 29
  • Issues event: 3
  • Release event: 10
  • Watch event: 11
  • Delete event: 17
  • Issue comment event: 15
  • Member event: 1
  • Push event: 149
  • Pull request event: 32
  • Fork event: 2

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 3
  • Total pull requests: 20
  • Average time to close issues: about 5 hours
  • Average time to close pull requests: 1 day
  • Total issue authors: 2
  • Total pull request authors: 3
  • Average comments per issue: 0.33
  • Average comments per pull request: 0.85
  • Merged pull requests: 20
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 2
  • Pull requests: 18
  • Average time to close issues: about 10 hours
  • Average time to close pull requests: 2 days
  • Issue authors: 2
  • Pull request authors: 3
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.89
  • Merged pull requests: 18
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • FlorisCalkoen (2)
  • JeWoerd (1)
Pull Request Authors
  • FlorisCalkoen (19)
  • evetion (1)
  • dependabot[bot] (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 62 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 23
  • Total maintainers: 1
pypi.org: coastpy

Python tools for cloud-native coastal analytics.

  • Versions: 23
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 62 Last month
Rankings
Dependent packages count: 10.0%
Average: 54.7%
Dependent repos count: 67.6%
Downloads: 86.6%
Maintainers (1)
Last synced: 10 months ago