SLEPLET

SLEPLET: Slepian Scale-Discretised Wavelets in Python - Published in JOSS (2023)

https://github.com/astro-informatics/sleplet

Science Score: 100.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 20 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
    1 of 7 committers (14.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

hacktoberfest manifolds python slepian-functions sphere wavelets

Keywords from Contributors

standardization pde meshing interpretability pypy simulations microscopy hydrology parallel correlation

Scientific Fields

Engineering Computer Science - 40% confidence
Last synced: 4 months ago · JSON representation ·

Repository

Slepian Scale-Discretised Wavelets in Python

Basic Info
Statistics
  • Stars: 9
  • Watchers: 3
  • Forks: 1
  • Open Issues: 3
  • Releases: 38
Topics
hacktoberfest manifolds python slepian-functions sphere wavelets
Created about 5 years ago · Last pushed 4 months ago
Metadata Files
Readme Contributing Code of conduct Citation Codemeta

README.md

SLEPLET

PyPI Zenodo Licence EffVer Versioning

Python repostatus Test Coverage Status CodeFactor

Documentation JOSS PyOpenSci Citation

SLEPLET is a Python package for the construction of Slepian wavelets in the spherical and manifold (via meshes) settings. The API of SLEPLET has been designed in an object-orientated manner and is easily extendable. Upon installation, SLEPLET comes with two command line interfaces - sphere and mesh - which allows one to easily generate plots on the sphere and a set of meshes using plotly.

To read more about Slepian wavelets please see the following publications

Sifting Convolution on the Sphere Slepian Scale-Discretised Wavelets on the Sphere Slepian Scale-Discretised Wavelets on Manifolds Slepian Wavelets for the Analysis of Incomplete Data on Manifolds

Installation

The recommended way to install SLEPLET is via pip

sh pip install sleplet

To install the latest development version of SLEPLET clone this repository and run

sh pip install -e .

This will install two scripts sphere and mesh which can be used to generate the figures in the associated papers.

Supported Platforms

SLEPLET has been tested with Python. Windows is not currently supported as SLEPLET relies on pyssht and pys2let which do not work on Windows. These may be replaced with s2fft and s2wav in the future when they are available on PyPI.

Example Usage

SLEPLET may be interacted with via the API or the CLIs.

API Usage

The following demonstrates the first wavelet (ignoring the scaling function) of the South America region on the sphere.

```python import sleplet

B, J, J_MIN, L = 3, 0, 2, 128

region = sleplet.slepian.Region(maskname="southamerica") f = sleplet.functions.SlepianWavelets(L, region=region, B=B, jmin=JMIN, j=J) fsphere = sleplet.slepianmethods.slepianinverse(f.coefficients, f.L, f.slepian) sleplet.plotting.PlotSphere( fsphere, f.L, f"slepianwaveletssouthamerica{B}B{JMIN}jmin{JMIN+J}j_L{L}", normalise=False, region=f.region, ).execute() ```

Slepian Wavelet j=2

CLI Usage

The demonstrates the first wavelet (ignoring the scaling function) of the head region of a Homer Simpson mesh for a per-vertex normals field.

sh mesh homer -e 3 2 0 -m slepian_wavelet_coefficients -u -z

Slepian Mesh Wavelet Coefficients j=2

Documentation

See here for the documentation. This includes demonstrations of the figures from the associated papers along with the API documentation. Further examples are included in the examples folder.

Community Guidelines

We'd love any contributions you may have, please see the contributing guidelines.

Citing

If you use SLEPLET in your research, please cite the paper.

bibtex @article{Roddy2023, title = {{SLEPLET: Slepian Scale-Discretised Wavelets in Python}}, author = {Roddy, Patrick J.}, year = 2023, journal = {Journal of Open Source Software}, volume = 8, number = 84, pages = 5221, doi = {10.21105/joss.05221}, }

Please also cite S2LET upon which SLEPLET is built, along with SSHT in the spherical setting or libigl in the mesh setting.

Owner

  • Name: AstroInfo Team @ UCL
  • Login: astro-informatics
  • Kind: organization
  • Location: United Kingdom

JOSS Publication

SLEPLET: Slepian Scale-Discretised Wavelets in Python
Published
April 20, 2023
Volume 8, Issue 84, Page 5221
Authors
Patrick J. Roddy ORCID
Advanced Research Computing, University College London, UK
Editor
Vissarion Fisikopoulos ORCID
Tags
manifolds python slepian-functions sphere wavelets

Citation (CITATION.cff)

cff-version: 1.2.0
authors:
  - family-names: Roddy
    given-names: Patrick J.
    orcid: https://orcid.org/0000-0002-6271-1700
doi: 10.5281/zenodo.7268074
message: >-
  If you use this software, please cite our article in the Journal of Open
  Source Software.
title: "SLEPLET: Slepian Scale-Discretised Wavelets in Python"
preferred-citation:
  authors:
    - family-names: Roddy
      given-names: Patrick J.
      orcid: https://orcid.org/0000-0002-6271-1700
  date-published: 2023-04-20
  doi: 10.21105/joss.05221
  issn: 2475-9066
  issue: 84
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 5221
  title: "SLEPLET: Slepian Scale-Discretised Wavelets in Python"
  type: article
  url: https://joss.theoj.org/papers/10.21105/joss.05221
  volume: 8

CodeMeta (codemeta.json)

{
  "@context": "https://w3id.org/codemeta/3.0",
  "applicationCategory": "Information Theory",
  "author": [
    {
      "affiliation": {
        "name": "Centre for Advanced Research Computing, University College London",
        "type": "Organization"
      },
      "email": "patrickjamesroddy@gmail.com",
      "familyName": "Roddy",
      "givenName": "Patrick J.",
      "id": "https://orcid.org/0000-0002-6271-1700",
      "type": "Person"
    }
  ],
  "codemeta:contIntegration": {
    "id": "https://github.com/astro-informatics/sleplet/actions"
  },
  "codeRepository": "https://github.com/astro-informatics/sleplet.git",
  "continuousIntegration": "https://github.com/astro-informatics/sleplet/actions",
  "dateCreated": "2017-10-21",
  "datePublished": "2022-10-31",
  "description": "SLEPLET is a Python package for the construction of Slepian wavelets in the spherical and manifold (via meshes) settings. The API of SLEPLET has been designed in an object-orientated manner and is easily extendable. Upon installation, SLEPLET comes with two command line interfaces — sphere and mesh — which allows one to easily generate plots on the sphere and a set of meshes using plotly.",
  "developmentStatus": "active",
  "identifier": "10.5281/zenodo.7268074",
  "issueTracker": "https://github.com/astro-informatics/sleplet/issues",
  "keywords": [
    "manifolds",
    "python",
    "slepian-functions",
    "sphere",
    "wavelets"
  ],
  "license": "https://spdx.org/licenses/BSD-3-Clause",
  "name": "SLEPLET",
  "operatingSystem": [
    "Linux",
    "macOS"
  ],
  "programmingLanguage": "Python 3",
  "referencePublication": "https://joss.theoj.org/papers/10.21105/joss.05221",
  "type": "SoftwareSourceCode"
}

GitHub Events

Total
  • Create event: 47
  • Release event: 7
  • Issues event: 1
  • Watch event: 2
  • Delete event: 41
  • Issue comment event: 24
  • Push event: 144
  • Pull request review comment event: 4
  • Pull request review event: 37
  • Pull request event: 72
Last Year
  • Create event: 48
  • Release event: 7
  • Issues event: 1
  • Watch event: 2
  • Delete event: 41
  • Issue comment event: 24
  • Push event: 145
  • Pull request review comment event: 4
  • Pull request review event: 37
  • Pull request event: 73

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 2,191
  • Total Committers: 7
  • Avg Commits per committer: 313.0
  • Development Distribution Score (DDS): 0.072
Past Year
  • Commits: 62
  • Committers: 3
  • Avg Commits per committer: 20.667
  • Development Distribution Score (DDS): 0.468
Top Committers
Name Email Commits
paddyroddy p****y@g****m 2,033
renovate[bot] 2****] 143
paddyroddy p****y@g****m 10
github-actions[bot] 4****] 2
github-actions g****s@g****m 1
dependabot[bot] 4****] 1
Daniel S. Katz d****z@i****g 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 21
  • Total pull requests: 464
  • Average time to close issues: 15 days
  • Average time to close pull requests: 4 days
  • Total issue authors: 4
  • Total pull request authors: 4
  • Average comments per issue: 1.05
  • Average comments per pull request: 0.32
  • Merged pull requests: 414
  • Bot issues: 1
  • Bot pull requests: 175
Past Year
  • Issues: 3
  • Pull requests: 98
  • Average time to close issues: 15 days
  • Average time to close pull requests: 5 days
  • Issue authors: 1
  • Pull request authors: 3
  • Average comments per issue: 0.67
  • Average comments per pull request: 0.52
  • Merged pull requests: 87
  • Bot issues: 0
  • Bot pull requests: 46
Top Authors
Issue Authors
  • paddyroddy (16)
  • klb2 (3)
  • renovate[bot] (1)
  • Saran-nns (1)
Pull Request Authors
  • paddyroddy (288)
  • renovate[bot] (171)
  • github-actions[bot] (4)
  • danielskatz (1)
Top Labels
Issue Labels
enhancement (9) bug (7) documentation (2) ci (1) question (1)
Pull Request Labels
renovate (104) enhancement (46) bug (33) ci (31) dependencies (24) documentation (16) critical (7)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 133 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 30
  • Total maintainers: 1
pypi.org: sleplet

Slepian Scale-Discretised Wavelets in Python

  • Versions: 30
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 133 Last month
Rankings
Dependent packages count: 7.0%
Forks count: 23.3%
Average: 25.1%
Dependent repos count: 30.5%
Stargazers count: 39.5%
Maintainers (1)
Last synced: 4 months ago

Dependencies

.github/workflows/linting.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • sourcery-ai/action v1 composite
.github/workflows/deploy.yml actions
  • actions/checkout 8ade135a41bc03ea155e62e844d188df1ea18608 composite
  • actions/setup-python v4 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/documentation.yml actions
  • actions/checkout 8ade135a41bc03ea155e62e844d188df1ea18608 composite
  • actions/setup-python v4 composite
  • peaceiris/actions-gh-pages v3 composite
.github/workflows/examples.yml actions
  • actions/cache v3 composite
  • actions/checkout 8ade135a41bc03ea155e62e844d188df1ea18608 composite
  • actions/setup-python v4 composite
.github/workflows/licence.yml actions
  • FantasticFiasco/action-update-license-year v3 composite
  • actions/checkout 8ade135a41bc03ea155e62e844d188df1ea18608 composite
.github/workflows/paper.yml actions
  • actions/checkout 8ade135a41bc03ea155e62e844d188df1ea18608 composite
  • actions/upload-artifact v3 composite
  • openjournals/openjournals-draft-action master composite
.github/workflows/test.yml actions
  • actions/cache v3 composite
  • actions/checkout 8ade135a41bc03ea155e62e844d188df1ea18608 composite
  • actions/setup-python v4 composite
  • coverallsapp/github-action v2 composite
pyproject.toml pypi
  • cmocean >=3.0.3
  • gmpy2 >=2.1.5
  • hypothesis >=6.70.2
  • jaxlib >=0.4.14
  • libigl >=2.4.1
  • matplotlib >=3.7.1
  • multiprocess >=0.70.14
  • numba >=0.56.4
  • numpy >=1.23.5
  • platformdirs >=3.2.0
  • plotly >=5.14.0
  • pooch >=1.7.0
  • pydantic >=2.3.0
  • pyssht >=1.5.2
  • s2wav @git+https://github.com/astro-informatics/s2wav.git@main#egg=s2wav
  • scipy >=1.10.1
  • seaborn >=0.12.2
  • tomli >=2.0.1
  • tqdm >=4.65.0