Skip to content

Commit

Permalink
Merge pull request #561 from icesat2py/development
Browse files Browse the repository at this point in the history
version 1.2.0 release
  • Loading branch information
JessicaS11 authored Aug 14, 2024
2 parents 102405b + c85baec commit f2ad0a8
Show file tree
Hide file tree
Showing 42 changed files with 893 additions and 726 deletions.
1 change: 0 additions & 1 deletion .coveragerc
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,4 @@
branch = True
source = icepyx
omit =
setup.py
doc/*
41 changes: 0 additions & 41 deletions .flake8

This file was deleted.

13 changes: 7 additions & 6 deletions .github/workflows/linter_actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run black linter
uses: psf/black@stable
# use the flake8 linter to annotate improperly formatted code
# note linter arguments are supplied via the .flake8 config file
- name: Annotate PR after running flake8
uses: TrueBrain/actions-flake8@v2

# Use the Ruff linter to annotate code style / best-practice issues
# NOTE: More config provided in pyproject.toml
- name: Lint and annotate PR
uses: chartboost/ruff-action@v1
with:
args: "check . --output-format github"
2 changes: 1 addition & 1 deletion .github/workflows/publish_to_pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
# Change setuptools-scm local_scheme to "no-local-version" so the
# local part of the version isn't included, making the version string
# compatible with PyPI.
sed --in-place "s/node-and-date/no-local-version/g" setup.py
sed --in-place "s/node-and-date/no-local-version/g" pyproject.toml
- name: Build source and wheel distributions
run: |
Expand Down
24 changes: 14 additions & 10 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
repos:
- repo: https://github.com/psf/black
rev: 24.4.2
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
hooks:
- id: black
- id: check-toml
- id: check-yaml
- id: check-added-large-files
args: ["--maxkb=5000"]
- id: end-of-file-fixer
- id: trailing-whitespace
args: [--markdown-linebreak-ext=md]

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0 # Use the ref you want to point at
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.5.7
hooks:
- id: check-added-large-files
args: ["--maxkb=5000"]
- id: end-of-file-fixer
- id: trailing-whitespace
args: [--markdown-linebreak-ext=md]
- id: ruff
args: ["--fix", "--show-fixes"]
- id: ruff-format

ci:
autoupdate_schedule: monthly
Expand Down
10 changes: 8 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ icepyx

**Python tools for obtaining and working with ICESat-2 data**

|GitHub license| |Conda install| |Pypi install| |Contributors| |JOSS|
|Contributors| |GitHub license| |Conda install| |Pypi install|

|JOSS| |Zenodo-all|

Latest release (main branch): |Docs Status main| |Travis main Build Status| |Code Coverage main|

Expand All @@ -18,14 +20,18 @@ Current development version (development branch): |Docs Status dev| |Travis dev
.. |Pypi install| image:: https://badge.fury.io/py/icepyx.svg
:target: https://pypi.org/project/icepyx

.. |Contributors| image:: https://img.shields.io/badge/all_contributors-40-orange.svg?style=flat-square
.. |Contributors| image:: https://img.shields.io/github/all-contributors/icesat2py/icepyx?color=ee8449&style=flat-square(#contributors)
:alt: All Contributors
:target: https://github.com/icesat2py/icepyx/blob/main/CONTRIBUTORS.rst

.. |JOSS| image:: https://joss.theoj.org/papers/10.21105/joss.04912/status.svg
:alt: JOSS publication link and DOI
:target: https://doi.org/10.21105/joss.04912

.. |Zenodo-all| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.7729175.svg
:alt: Zenodo all-versions DOI for icepyx
:target: https://doi.org/10.5281/zenodo.7729175

.. |Docs Status main| image:: https://readthedocs.org/projects/icepyx/badge/?version=latest
:target: http://icepyx.readthedocs.io/?badge=latest

Expand Down
31 changes: 22 additions & 9 deletions doc/source/community/resources.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,34 @@ Other Ways to Access ICESat-2 Data
----------------------------------
icepyx aims to provide intuitive, object-based methods for finding, obtaining, visualizing, and analyzing ICESat-2 data as part of an open,
reproducible workflow that leverages existing tools wherever possible (see :ref:`Complementary GitHub Repositories <complementary_GH_repos_label>`)
and can be run locally, using high performance computing, or in the cloud using Pangeo.
and can be run locally, using high performance computing, or in the cloud.
A few other options available for querying, visualizing, and downloading ICESat-2 data files are:

- `earthaccess Python library <https://earthaccess.readthedocs.io>`_

- A powerful tool for querying and downloading NASA datasets.
- Seamlessly handles authentication and cloud tokening.
- Under active development to expand functionality,
including adding icepyx as a plugin to enable subsetting services for ICESat-2 data.

- `NSIDC (DAAC) Data Access <https://nsidc.org/data/icesat-2>`_

- Select “ICESat-2 Data Sets” from the left hand menu. Choose your dataset (ATL##). Then, use the spatial and temporal filters to narrow your list of granules available for download.
- Select “Data from the right hand menu.
Choose your dataset (ATL##).
Then, use the spatial and temporal filters to narrow your list of granules available for download.

- `OpenAltimetry <https://openaltimetry.org/>`_
- `OpenAltimetry <https://openaltimetry.earthdatacloud.nasa.gov>`_

- Collaboration between NSIDC, Scripps, and San Diego Supercomputer Center
- A web tool to visualize and download ICESat and ICESat-2 surface heights
- Data may be subsetted by data product, reference ground track (RGT), and beam
- Currently available ICESat-2 datasets are: ATL06 (land ice height), ATL07 (sea ice height), ATL08 (land/vegetation height), ATL13 (water surface height)
- Collaboration between NSIDC, Scripps, and San Diego Supercomputer Center.
- A web tool to visualize and download ICESat and ICESat-2 surface heights.
- Data may be subsetted by data product, reference ground track (RGT), and beam.
- Currently available ICESat-2 datasets are: ATL06 (land ice height), ATL07 (sea ice height),
ATL08 (land/vegetation height), ATL10 (sea ice freeboard), ATL12 (ocean surface height), ATL13 (water surface height).

Software Packages for Working with ICESat-2 Data
------------------------------------------------
icepyx is but one of several software packages designed to improve user experience with ICESat-2 data. The links below highlight other packages active in the community.
icepyx is but one of several software packages designed to improve user experience with ICESat-2 data.
The links below highlight other packages active in the community.

.. toctree::
:maxdepth: 2
Expand All @@ -40,11 +51,13 @@ icepyx is but one of several software packages designed to improve user experien

Resources Developed For and During Hackweeks
--------------------------------------------
Previous hackweeks gave participants the opportunity to develop codes to help download and/or analyze ICESat-2 data. Many of these projects are inactive, but they may provide useful workflows for users to work with.
Hackweeks give participants the opportunity to develop code to help download and/or analyze ICESat-2 data.
Many of these projects become inactive following the event, but they may provide useful workflows for users to work with.

.. toctree::
:maxdepth: 2

resources/2019_IS2_HW
resources/2020_IS2_HW
resources/2022_IS2_HW
resources/2023_IS2_HW
22 changes: 11 additions & 11 deletions doc/source/community/resources/2020_IS2_HW.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,17 @@ The published tutorial repo also includes links to presentation slides and video
Tutorial Topics:

1. Introductory Session
1. ICESat-2 Mission: Satellite, Sensor, and Data
1. Git and GitHub
1. Jupyter and iPython
1. Geospatial Analysis with Python
1. Introduction to ICESat-2 Sea Ice and Land Ice Products and Data Access
1. Programmatic ICESat-2 data access
1. Introduction to HDF5 and ICESat-2 data files
1. Land ice applications
1. Sea ice applications
1. Science data generation
1. Machine learning
2. ICESat-2 Mission: Satellite, Sensor, and Data
3. Git and GitHub
4. Jupyter and iPython
5. Geospatial Analysis with Python
6. Introduction to ICESat-2 Sea Ice and Land Ice Products and Data Access
7. Programmatic ICESat-2 data access
8. Introduction to HDF5 and ICESat-2 data files
9. Land ice applications
10. Sea ice applications
11. Science data generation
12. Machine learning

Projects
^^^^^^^^
Expand Down
52 changes: 43 additions & 9 deletions doc/source/community/resources/2022_IS2_HW.rst
Original file line number Diff line number Diff line change
@@ -1,17 +1,51 @@
.. _resource_IS2HW_2022:

Third ICESat-2 Hackweek Facilitated by the University of Washington eScience Institute
--------------------------------------------------------------------------------------
This event is currently being planned, and will take place 21-25 March 2022.
Please see the `event website <https://icesat-2.hackweek.io/>`_ for more information.
Third [Virtual] ICESat-2 Cloud Computing Hackweek Facilitated by the University of Washington eScience Institute
----------------------------------------------------------------------------------------------------------------
This March 2022 event produced a series of `tutorials <https://icesat-2-2022.hackweek.io/tutorials/index.html>`_,
developed by volunteer instructors and presented during the event.
A key focus of the event was on transitioning to cloud-based environments and
building skills around accessing ICESat-2 data in the cloud.
During the Hackweek, teams of attendees worked on
`projects <https://icesat-2-2022.hackweek.io/projects/list_of_projects.html>`_
related to their domain interests and learning goals.

.. |Zenodo badge| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.6462479.svg
:target: https://doi.org/10.5281/zenodo.6462479

Tutorials
^^^^^^^^^
The tutorials for this event will be available to download for interactive use as well as pre-rendered on the event's website.
The website will be linked here once it is live, and final information posted here after the event.
Tutorials |Zenodo badge|
^^^^^^^^^^^^^^^^^^^^^^^^
The tutorials from this event live within a dedicated `GitHub repository <https://github.com/ICESAT-2HackWeek/website2022>`_
and are published on `Zenodo <https://doi.org/10.5281/zenodo.6462479>`_.
The published tutorial repo also includes links to presentation materials and videos of the recorded presentations.

Tutorial Topics:

1. Open Science Tools
2. About ICESat-2 Data
3. ICESat-2 Data Access
4. Object-oriented Programming
5. Geospatial Transforms
6. Data Integration (Part I)
7. Data Visualization 2D
8. Cloud Computing Tools
9. Data Integration (Part II)
10. Data Integration (Part III)

Projects
^^^^^^^^
Projects will be listed here after the event.
These `project repositories <https://icesat-2-2022.hackweek.io/projects/list_of_projects.html>`_
often provide useful starting points to develop effective disciplinary
workflows.
Links to project GitHub repositories and presentation videos are at the above link.

Project Names:

- Polynyas
- Icebergs
- Coastal
- Sea ice floes
- Antarctic Ripples
- Snow DEM
- Ice discharge
- Strong Beams
54 changes: 54 additions & 0 deletions doc/source/community/resources/2023_IS2_HW.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
.. _resource_IS2HW_2023:

Fourth ICESat-2 Cloud Computing Hackweek at the University of Washington eScience Institute
-------------------------------------------------------------------------------------------
This August 2023 event produced a series of `tutorials <https://icesat-2-2023.hackweek.io/tutorials/index.html>`_,
developed by volunteer instructors and presented during the event.
A continuing focus of the event was considerations for cloud-native workflows
(such as cloud-optimized data) and
building skills around accessing ICESat-2 data in the cloud.
During the Hackweek, teams of attendees worked on
`projects <https://github.com/ICESAT-2HackWeek/ICESat-2-Hackweek-2023/tree/main/book/projects/project_readmes>`_
related to their domain interests and learning goals.

.. |Zenodo badge| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.10519966.svg
:target: https://doi.org/10.5281/zenodo.10519966

Tutorials |Zenodo badge|
^^^^^^^^^^^^^^^^^^^^^^^^
The tutorials from this event live within a dedicated `Jupyter Book <https://icesat-2-2023.hackweek.io/intro.html>`_
and are published on `Zenodo <https://zenodo.org/records/10519966>`_.
You can run the tutorials by following the instructions
`here <https://github.com/ICESAT-2HackWeek/2020_ICESat-2_Hackweek_Tutorials#re-create-the-icesat-2-hackweek-jupyterlab-environment-with-binder>`_.
The published tutorial repo also includes links to presentation slides and videos of the recorded presentations.

Tutorial Topics:

1. CryoCloud
2. ICESat-2 Mission Overview and Data
3. Open source development/Object Oriented Programming
4. Cloud data access and data formats
5. Best Practices for Collaborative development
6. Application: snow depth
7. Application: bathymetry
8. Application: Visualization and Integration
9. Application: inland hydrology
10. Application: sea ice
11. Application: ICESat-2 integration with GrIMP data

Projects
^^^^^^^^
In an effort to improve learning outcomes, we asked participants
to summarize their accomplishments in a structured
`project readme <https://github.com/ICESAT-2HackWeek/ICESat-2-Hackweek-2023/blob/main/book/projects/list_of_projects.md>`_,
some of which are drafts, and did not record the final presentations.

Project titles:

- 3D Lakes
- surfit
- dzdt
- grounding zones
- h5cloud
- Everything Anywhere All At Once
- seabath
25 changes: 12 additions & 13 deletions doc/source/community/resources/IS2_software.rst
Original file line number Diff line number Diff line change
@@ -1,23 +1,17 @@
Open-Source Packages
--------------------
ICESat-2 can be tricky to process for the first time, especially if working with the ATL03 data. Software packages have been developed to make ICESat-2 data analysis easier for new and experienced users.
Here, we highlight some commonly-used software packages developed by the science community. Most of these can be used alongside Icepyx to facilitate ICESat-2 data processing.
Here, we highlight some commonly-used software packages developed by the science community. Most of these can be used alongside icepyx to facilitate ICESat-2 data processing.
Most of these packages are callable through Python, though others may require access to other software. Keep this in mind before attempting to use any package or plugin.

* `SlideRule <https://github.com/ICESat2-SlideRule/sliderule-icesat2>`_
* `SlideRule <https://slideruleearth.io/>`_

- collaboration between the ICESat-2 science team and University of Washington
- A Python client to process ICESat-2 ATL03 data prior to download.
- Aggregates ATL03 data into line segments of user-defined length, creating a customized form of the ATL06 product.
- Create customized versions of ATL06 (land ice), ATL08 (vegetation), and ATL24(bathymetry) products.
Ideal for situations where a given algorithm is not run or is too coarse for a particular application.
- Data may also be subsetted based on spatial bounds and photon classification.

* `IceFlow <https://github.com/nsidc/NSIDC-Data-Tutorials/tree/main/notebooks/iceflow>`_

- by National Snow and Ice Data Center (NSIDC)
- A Python library designed to simplify the co-registration of cryospheric datasets.
- Matches georeferencing parameters across data sets, allowing a user to derive a time series across multiple datasets for a given region.
- Currently valid datasets include ICESat, ICESat-2, and Operation IceBridge.

* `PhoREAL <https://github.com/icesat-2UT/PhoREAL>`_

- by Applied Research Laboratories, University of Texas at Austin
Expand All @@ -34,10 +28,10 @@ Here we describe a selection of publicly available Python code posted on GitHub
This includes repositories that are more broadly designed for working with LiDAR/point cloud datasets in general.
These repositories represent independent but complimentary projects that we hope to make easily interoperable within icepyx in order to maximize capabilities and minimize duplication of efforts.
Conversations about how to best accomplish this have been ongoing since the conception of icepyx, and we welcome everyone to join the conversation (please see our :ref:`contact page<contact_ref_label>`).
Some of these repositories may not be actively maintained.

*Note: This list is a compilation of publicly available GitHub repositories and includes some annotations to reflect how they relate to icepyx.
Please check each repository's licensing information before using or modifying their code.
Additional resources having to do specifically with obtaining ICESat-2 data are noted in the last section of this document.*
Please check each repository's licensing information before using or modifying their code.*

* `captoolkit <https://github.com/fspaolo/captoolkit>`_

Expand All @@ -59,7 +53,12 @@ Additional resources having to do specifically with obtaining ICESat-2 data are
- Retrieve IceBridge, ICESat, and ICESat-2 data using the NSIDC subsetter API
- Command line tool
- Download data and convert it into a georeferenced format (e.g. geojson, kml, or shapefile)
- We envision use of Nsidc-subsetter to improve interoperability between icepyx and the NSIDC subsetter API. Currently, icepyx has very limited subsetting capabilities that are not easy to access or find more information about.

* `read-ICESat-2 <https://github.com/tsutterley/read-ICESat-2>`_

- by Tyler Sutterley
- Read selected ICESat-2 products into memory.


* `pointCollection <https://github.com/SmithB/pointCollection>`_

Expand Down
Loading

0 comments on commit f2ad0a8

Please sign in to comment.