Skip to content

Commit

Permalink
Add JOSS paper draft (#71)
Browse files Browse the repository at this point in the history
* Add JOSS paper draft

* Update GitHub Actions verison

* Add summary

* Update citations

* Update citations

* Update Statement of Need

* Add figures

* Update text

* Add introduction

* Update changelog

* Make date format consistent

* Add examples overview page

* Add overview page to docs

* Fix typo

* Update installation and contribution guide

* Update usage examples

* Add Acknowledgement
  • Loading branch information
giswqs authored Jul 7, 2024
1 parent c4e15aa commit 73d92ba
Show file tree
Hide file tree
Showing 15 changed files with 987 additions and 35 deletions.
24 changes: 24 additions & 0 deletions .github/workflows/draft-pdf.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Draft PDF
on: [push]

jobs:
paper:
runs-on: ubuntu-latest
name: Paper Draft
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build draft PDF
uses: openjournals/openjournals-draft-action@master
with:
journal: joss
# This should be the path to the paper within your repo.
paper-path: paper/paper.md
- name: Upload
uses: actions/upload-artifact@v4
with:
name: paper
# This is the output path where Pandoc will write the compiled
# PDF. Note, this should be the same directory as the input
# paper.md
path: paper/paper.pdf
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ private/
*.py[cod]
*$py.class
*.nc
changelog_update.md

# C extensions
*.so
Expand Down
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,16 @@

- Free software: MIT License
- Documentation: <https://hypercoast.org>
-

## Introduction

HyperCoast is a Python package designed to provide an accessible and comprehensive set of tools for visualizing and analyzing hyperspectral data in coastal regions. Building on the capabilities of popular packages like [Leafmap](https://leafmap.org) and [PyVista](https://pyvista.org), HyperCoast streamlines the process of exploring and interpreting complex remote sensing data. This enables researchers and environmental managers to gain deeper insights into the dynamic processes occurring in coastal environments.

HyperCoast supports the reading and visualization of hyperspectral data from various NASA airborne and satellite missions, such as [AVIRIS](https://aviris.jpl.nasa.gov), [NEON](https://data.neonscience.org/data-products/DP3.30006.001), [PACE](https://pace.gsfc.nasa.gov), and [EMIT](https://earth.jpl.nasa.gov/emit), along with other datasets like [DESIS](https://www.earthdata.nasa.gov/s3fs-public/imported/DESIS_TCloud_Mar0421.pdf) and [ECOSTRESS](https://ecostress.jpl.nasa.gov). Users can interactively explore hyperspectral data, extract spectral signatures, change band combinations and colormaps, visualize data in 3D, and perform interactive slicing and thresholding operations (see Figure 1). Additionally, leveraging the earthaccess package, HyperCoast offers tools for searching NASA hyperspectral data interactively. This makes it a versatile and powerful tool for working with hyperspectral data globally, with a particular focus on coastal regions.

![EMIT](https://assets.gishub.org/images/EMIT-demo.png)
**Figure 1.** An example of visualizing NASA EMIT hyperspectral data using HyperCoast.

## Features

Expand Down
223 changes: 218 additions & 5 deletions docs/changelog.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,224 @@
# Changelog

## v0.0.1 - Date
## v0.6.3 - Jul 01, 2024

**Improvement**:
**What's Changed**

- TBD
- Update pace_chla_to_image_function by @giswqs in [#69](https://github.com/opengeos/HyperCoast/pull/69)

**New Features**:
**Full Changelog**: [v0.6.2...v0.6.3](https://github.com/opengeos/HyperCoast/compare/v0.6.2...v0.6.3)

- TBD
## v0.6.2 - Jun 30, 2024

**What's Changed**

- Add search_datasets function and improve notebook example by @giswqs in [#66](https://github.com/opengeos/HyperCoast/pull/66)
- Add PACE OCI Level-1 notebook example by @giswqs in [#67](https://github.com/opengeos/HyperCoast/pull/67)
- Add PACE pixel location function by @giswqs in [#68](https://github.com/opengeos/HyperCoast/pull/68)

**Full Changelog**: [v0.6.1...v0.6.2](https://github.com/opengeos/HyperCoast/compare/v0.6.1...v0.6.2)

## v0.6.1 - Jun 30, 2024

**What's Changed**

- Add more demos to docs by @giswqs in [#63](https://github.com/opengeos/HyperCoast/pull/63)
- Fix typos by @giswqs in [#64](https://github.com/opengeos/HyperCoast/pull/64)
- Add support for reading PACE OCI L2 data by @giswqs in [#65](https://github.com/opengeos/HyperCoast/pull/65)

**Full Changelog**: [v0.6.0...v0.6.1](https://github.com/opengeos/HyperCoast/compare/v0.6.0...v0.6.1)

## v0.6.0 - Jun 26, 2024

**What's Changed**

- Add support for PACE Chlorophyll data by @giswqs in [#62](https://github.com/opengeos/HyperCoast/pull/62)

**Full Changelog**: [v0.5.5...v0.6.0](https://github.com/opengeos/HyperCoast/compare/v0.5.5...v0.6.0)

## v0.5.5 - Jun 25, 2024

**What's Changed**

- Add image slicing demos to docs by @giswqs in [#56](https://github.com/opengeos/HyperCoast/pull/56)
- Add dependabot by @giswqs in [#58](https://github.com/opengeos/HyperCoast/pull/58)
- Bump nwtgck/actions-netlify from 2.0 to 3.0 by @dependabot in [#59](https://github.com/opengeos/HyperCoast/pull/59)
- Bump conda-incubator/setup-miniconda from 2 to 3 by @dependabot in [#60](https://github.com/opengeos/HyperCoast/pull/60)
- Add ERA5 temperature data notebook by @giswqs in [#61](https://github.com/opengeos/HyperCoast/pull/61)

**New Contributors**

- @dependabot made their first contribution in [#59](https://github.com/opengeos/HyperCoast/pull/59)

**Full Changelog**: [v0.5.4...v0.5.5](https://github.com/opengeos/HyperCoast/compare/v0.5.4...v0.5.5)

## v0.5.4 - Jun 14, 2024

**What's Changed**

- Add support for interactive slicing by @giswqs in [#54](https://github.com/opengeos/HyperCoast/pull/54)
- Add image slicing notebook example by @giswqs in [#55](https://github.com/opengeos/HyperCoast/pull/55)

**Full Changelog**: [v0.5.3...v0.5.4](https://github.com/opengeos/HyperCoast/compare/v0.5.3...v0.5.4)

## v0.5.3 - Jun 12, 2024

**What's Changed**

- Add EMIT image cube example by @giswqs in [#51](https://github.com/opengeos/HyperCoast/pull/51)
- Refactor read_neon() function to support generalized NEON data reading by @gponce-ars in [#52](https://github.com/opengeos/HyperCoast/pull/52)

**New Contributors**

- @gponce-ars made their first contribution in [#52](https://github.com/opengeos/HyperCoast/pull/52)

**Full Changelog**: [v0.5.2...v0.5.3](https://github.com/opengeos/HyperCoast/compare/v0.5.2...v0.5.3)

## v0.5.2 - Jun 11, 2024

**What's Changed**

- Fix RGB image reshape bug for image cube by @giswqs in [#49](https://github.com/opengeos/HyperCoast/pull/49)

**Full Changelog**: [v0.5.1...v0.5.2](https://github.com/opengeos/HyperCoast/compare/v0.5.1...v0.5.2)

## v0.5.1 - Jun 11, 2024

**What's Changed**

- Add support for 3D visualization by @giswqs in [#47](https://github.com/opengeos/HyperCoast/pull/47)
- Add image cube demo to docs by @giswqs in [#48](https://github.com/opengeos/HyperCoast/pull/48)

**Full Changelog**: [v0.5.0...v0.5.1](https://github.com/opengeos/HyperCoast/compare/v0.5.0...v0.5.1)

## v0.5.0 - Jun 10, 2024

**What's Changed**

- Add support for NEON AOP data by @giswqs in [#43](https://github.com/opengeos/HyperCoast/pull/43)
- Add support for AVIRIS data by @giswqs in [#44](https://github.com/opengeos/HyperCoast/pull/44)
- Add support for changing band combinations and colormaps interactively by @giswqs in [#46](https://github.com/opengeos/HyperCoast/pull/46)

**Full Changelog**: [v0.4.0...v0.5.0](https://github.com/opengeos/HyperCoast/compare/v0.4.0...v0.5.0)

## v0.4.0 - Jun 03, 2024

**What's Changed**

- Add support for searching and downloading ECOSTRESS data by @giswqs in [#37](https://github.com/opengeos/HyperCoast/pull/37)
- Add support for visualizing DESIS hyperspectral data by @giswqs in [#38](https://github.com/opengeos/HyperCoast/pull/38)

**Full Changelog**: [v0.3.3...v0.4.0](https://github.com/opengeos/HyperCoast/compare/v0.3.3...v0.4.0)

## v0.3.3 - May 19, 2024

**What's Changed**

- Add functions for searching PACE and EMIT data by @giswqs in [#34](https://github.com/opengeos/HyperCoast/pull/34)
- Add stacking for spectral signatures by @giswqs in [#35](https://github.com/opengeos/HyperCoast/pull/35)

**Full Changelog**: [v0.3.2...v0.3.3](https://github.com/opengeos/HyperCoast/compare/v0.3.2...v0.3.3)

## v0.3.2 - May 10, 2024

**What's Changed**

- Fix wavelength bug by @giswqs in [#27](https://github.com/opengeos/HyperCoast/pull/27)
- Pin xarray version by @giswqs in [#28](https://github.com/opengeos/HyperCoast/pull/28)
- Fix xr merge error by @giswqs in [#29](https://github.com/opengeos/HyperCoast/pull/29)

**Full Changelog**: [v0.3.1...v0.3.2](https://github.com/opengeos/HyperCoast/compare/v0.3.1...v0.3.2)

## v0.3.1 - May 09, 2024

**Full Changelog**: [v0.3.0...v0.3.1](https://github.com/opengeos/HyperCoast/compare/v0.3.0...v0.3.1)

## v0.3.0 - May 08, 2024

**What's Changed**

- Add filter_pace function by @giswqs in [#21](https://github.com/opengeos/HyperCoast/pull/21)
- Add grid pace function by @giswqs in [#22](https://github.com/opengeos/HyperCoast/pull/22)
- Add fetch depth for docs by @giswqs in [#23](https://github.com/opengeos/HyperCoast/pull/23)
- Add support for multi-band visualization by @giswqs in [#24](https://github.com/opengeos/HyperCoast/pull/24)
- Add extract_pace function by @giswqs in [#25](https://github.com/opengeos/HyperCoast/pull/25)
- Add spectral signature viz for PACE data by @giswqs in [#26](https://github.com/opengeos/HyperCoast/pull/26)

**Full Changelog**: [v0.2.0...v0.3.0](https://github.com/opengeos/HyperCoast/compare/v0.2.0...v0.3.0)

## v0.2.0 - May 05, 2024

**What's Changed**

- Add support for reading and visualizing PACE data by @giswqs in [#20](https://github.com/opengeos/HyperCoast/pull/20)

**Full Changelog**: [v0.1.3...v0.2.0](https://github.com/opengeos/HyperCoast/compare/v0.1.3...v0.2.0)

## v0.1.3 - Apr 30, 2024

**What's Changed**

- Move hvplot import into functions by @giswqs in [#18](https://github.com/opengeos/HyperCoast/pull/18)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in [#17](https://github.com/opengeos/HyperCoast/pull/17)
- Add pace module by @giswqs in [#19](https://github.com/opengeos/HyperCoast/pull/19)

**Full Changelog**: [v0.1.2...v0.1.3](https://github.com/opengeos/HyperCoast/compare/v0.1.2...v0.1.3)

## v0.1.2 - Apr 25, 2024

**What's Changed**

- Add demo gif by @bingqing-liu in [#15](https://github.com/opengeos/HyperCoast/pull/15)
- Fix typos and add method bug by @giswqs in [#16](https://github.com/opengeos/HyperCoast/pull/16)

**Full Changelog**: [v0.1.1...v0.1.2](https://github.com/opengeos/HyperCoast/compare/v0.1.1...v0.1.2)

## v0.1.1 - Apr 22, 2024

**What's Changed**

- Add an EMIT notebook by @giswqs in [#13](https://github.com/opengeos/HyperCoast/pull/13)
- Fix dependency issue by @giswqs in [#14](https://github.com/opengeos/HyperCoast/pull/14)

**Full Changelog**: [v0.1.0...v0.1.1](https://github.com/opengeos/HyperCoast/compare/v0.1.0...v0.1.1)

## v0.1.0 - Apr 21, 2024

**What's Changed**

- Improve support for visualizing EMIT data by @giswqs in [#10](https://github.com/opengeos/HyperCoast/pull/10)
- Add ui module by @giswqs in [#11](https://github.com/opengeos/HyperCoast/pull/11)
- Add support for displaying spectral signature interactively by @giswqs in [#12](https://github.com/opengeos/HyperCoast/pull/12)

**Full Changelog**: [v0.0.3...v0.1.0](https://github.com/opengeos/HyperCoast/compare/v0.0.3...v0.1.0)

## v0.0.3 - Apr 20, 2024

**What's Changed**

- Fix typos by @giswqs in [#7](https://github.com/opengeos/HyperCoast/pull/7)
- Add conda-forge installation instructions by @giswqs in [#8](https://github.com/opengeos/HyperCoast/pull/8)
- Add support for visualizing EMIT data by @giswqs in [#9](https://github.com/opengeos/HyperCoast/pull/9)

**Full Changelog**: [v0.0.2...v0.0.3](https://github.com/opengeos/HyperCoast/compare/v0.0.2...v0.0.3)

## v0.0.2 - Apr 18, 2024

**What's Changed**

- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in [#4](https://github.com/opengeos/HyperCoast/pull/4)
- Update readme by @Bingqing9027 in [#5](https://github.com/opengeos/HyperCoast/pull/5)
- Add Map class by @giswqs in [#6](https://github.com/opengeos/HyperCoast/pull/6)

**New Contributors**

- @pre-commit-ci made their first contribution in [#4](https://github.com/opengeos/HyperCoast/pull/4)
- @Bingqing9027 made their first contribution in [#5](https://github.com/opengeos/HyperCoast/pull/5)
- @giswqs made their first contribution in [#6](https://github.com/opengeos/HyperCoast/pull/6)

**Full Changelog**: [v0.0.1...v0.0.2](https://github.com/opengeos/HyperCoast/compare/v0.0.1...v0.0.2)

## v0.0.1 - Apr 08, 2024

**What's Changed**
**Full Changelog**: [v0.0.1](https://github.com/giswqs/HyperCoast/commits/v0.0.1)
43 changes: 43 additions & 0 deletions docs/changelog_update.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import re

# Copy the release notes from the GitHub release page
markdown_text = """
## What's Changed
* Update pace_chla_to_image_function by @giswqs in https://github.com/opengeos/HyperCoast/pull/69
**Full Changelog**: https://github.com/opengeos/HyperCoast/compare/v0.6.2...v0.6.3
"""

# Regular expression pattern to match the Markdown hyperlinks
pattern = r"https://github\.com/opengeos/HyperCoast/pull/(\d+)"


# Function to replace matched URLs with the desired format
def replace_url(match):
pr_number = match.group(1)
return f"[#{pr_number}](https://github.com/opengeos/HyperCoast/pull/{pr_number})"


# Use re.sub to replace URLs with the desired format
formatted_text = re.sub(pattern, replace_url, markdown_text)

for line in formatted_text.splitlines():
if "Full Changelog" in line:
prefix = line.split(": ")[0]
link = line.split(": ")[1]
version = line.split("/")[-1]
formatted_text = (
formatted_text.replace(line, f"{prefix}: [{version}]({link})")
.replace("## What's Changed", "**What's Changed**")
.replace("## New Contributors", "**New Contributors**")
)


with open("docs/changelog_update.md", "w") as f:
f.write(formatted_text)

# Print the formatted text
print(formatted_text)

# Copy the formatted text and paste it to the CHANGELOG.md file
46 changes: 21 additions & 25 deletions docs/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,17 +53,21 @@ Ready to contribute? Here's how to set up HyperCoast for local development.
2. Clone your fork locally:

```shell
$ git clone git@github.com:your_name_here/HyperCoast.git
$ git clone https://github.com/<YOUR-GITHUB-USERNAME>/HyperCoast.git
```

3. Install your local copy into a virtualenv. Assuming you have
virtualenvwrapper installed, this is how you set up your fork for
local development:
3. Create a new conda environment to install HyperCoast and its dependencies. Assuming you have
[Anaconda](https://www.anaconda.com/distribution/#download-section) or
[Miniconda](https://docs.conda.io/en/latest/miniconda.html) installed,
this is how you set up your fork for local development:

```shell
$ mkvirtualenv HyperCoast
$ conda install -n base mamba -c conda-forge
$ conda create -n hyper python=3.11
$ conda activate hyper
$ mamba install -c conda-forge hypercoast cartopy earthaccess mapclassify pyvista
$ cd HyperCoast/
$ python setup.py develop
$ pip install -e .
```

4. Create a branch for local development:
Expand All @@ -74,17 +78,16 @@ Ready to contribute? Here's how to set up HyperCoast for local development.

Now you can make your changes locally.

5. When you're done making changes, check that your changes pass flake8
and the tests, including testing other Python versions with tox:
5. When you're done making changes, check that your changes pass
[pre-commit](https://pre-commit.com/) and the tests:
```shell
$ flake8 HyperCoast tests
$ python setup.py test or pytest
$ tox
$ pip install pre-commit
$ pre-commit install
$ pre-commit run --all-files
$ python -m unittest discover tests/
```
To get flake8 and tox, just pip install them into your virtualenv.
6. Commit your changes and push your branch to GitHub:
```shell
Expand All @@ -94,15 +97,8 @@ Ready to contribute? Here's how to set up HyperCoast for local development.
```
7. Submit a pull request through the GitHub website.
## Pull Request Guidelines
Before you submit a pull request, check that it meets these guidelines:
1. The pull request should include tests.
2. If the pull request adds functionality, the docs should be updated.
Put your new functionality into a function with a docstring, and add
the feature to the list in README.rst.
3. The pull request should work for Python 3.8 and later, and
for PyPy. Check <https://github.com/opengeos/HyperCoast/pull_requests> and make sure that the tests pass for all
supported Python versions.
8. Check the status of your pull request on GitHub and make sure
that the tests for the pull request pass for all supported Python versions.
9. Commit more changes to your branch to fix the text errors if necessary.
10. Wait for the pull request to be reviewed by the maintainers.
11. Congratulations! You've made your contribution to HyperCoast!
Loading

0 comments on commit 73d92ba

Please sign in to comment.