Skip to content

Commit

Permalink
Merge pull request #417 from icesat2py/development
Browse files Browse the repository at this point in the history
release 0.7.0
  • Loading branch information
JessicaS11 committed Mar 21, 2023
2 parents 6d7dde9 + 41fecf2 commit 13c9e12
Show file tree
Hide file tree
Showing 47 changed files with 8,265 additions and 7,344 deletions.
21 changes: 20 additions & 1 deletion .all-contributorsrc
Original file line number Diff line number Diff line change
Expand Up @@ -404,12 +404,31 @@
"test",
"talk"
]
},
{
"login": "ravindraK08",
"name": "ravindraK08",
"avatar_url": "https://avatars.githubusercontent.com/u/124502384?v=4",
"profile": "https://github.com/ravindraK08",
"contributions": [
"review"
]
},
{
"login": "wsauthoff",
"name": "Wilson Sauthoff",
"avatar_url": "https://avatars.githubusercontent.com/u/63430469?v=4",
"profile": "http://wsauthoff.github.io",
"contributions": [
"review"
]
}
],
"contributorsPerLine": 7,
"projectName": "icepyx",
"projectOwner": "icesat2py",
"repoType": "github",
"repoHost": "https://github.com",
"skipCi": true
"skipCi": true,
"commitConvention": "angular"
}
7 changes: 4 additions & 3 deletions .github/workflows/get_pypi_stats.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,20 @@ jobs:
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
ref: "traffic"

# Calculates pypi stats and clones and stores in CSV file
- name: Update pypi stats files
run: |
pip install -r requirements.txt pypistats
pip install -U pip
pip install -r requirements.txt --upgrade pypistats
python ./doc/source/tracking/pypistats/get_pypi_stats.py
# Commits files to repository
- name: Commit changes
uses: EndBug/add-and-commit@v8
uses: EndBug/add-and-commit@v9
with:
author_name: learn2phoenix
message: "Pypi stats auto-update"
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/publish_to_pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v2.3.4
uses: actions/checkout@v3
with:
# fetch all history so that setuptools-scm works
fetch-depth: 0

- name: Set up Python
uses: actions/setup-python@v2.2.1
uses: actions/setup-python@v4
with:
python-version: 3.9

Expand All @@ -50,13 +50,13 @@ jobs:
ls -lh dist/
- name: Publish to Test PyPI
uses: pypa/gh-action-pypi-publish@v1.4.2
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
repository_url: https://test.pypi.org/legacy/

- name: Publish to PyPI
if: startsWith(github.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@v1.4.2
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_API_TOKEN }}
6 changes: 3 additions & 3 deletions .github/workflows/traffic_action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
ref: "traffic"

Expand All @@ -30,12 +30,12 @@ jobs:
# Custom steps to move files to another dir and format plot
- name: Move files
run: |
pip install -r requirements.txt
pip install matplotlib pandas
python ./doc/source/tracking/traffic/traffic_data_mgmt.py
# Commits files to repository
- name: Commit changes
uses: EndBug/add-and-commit@v8
uses: EndBug/add-and-commit@v9
with:
author_name: Jessica Scheick
message: "GitHub traffic auto-update"
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/uml_action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.ref }}
- name: set up environment
run: |
pip install -U pip
pip install -r requirements.txt
pip install icepyx pylint
sudo apt-get install graphviz
Expand All @@ -25,7 +26,7 @@ jobs:
rm ./packages_dev_uml.svg
mv ./*.svg ./doc/source/user_guide/documentation/
- name: Commit changes
uses: EndBug/add-and-commit@v8
uses: EndBug/add-and-commit@v9
with:
author_name: GitHub Action
message: "GitHub action UML generation auto-update"
Expand Down
3 changes: 1 addition & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,8 @@ before_install:
- conda info -a

install:
- conda create --name icepyx-env --channel conda-forge python=3.7 proj geos
- conda create --name icepyx-env --channel conda-forge python=3.10 proj geos earthaccess
- source activate icepyx-env

- pip install -r requirements.txt -r requirements-dev.txt
- pip install -e .[complete]

Expand Down
108 changes: 57 additions & 51 deletions CONTRIBUTORS.rst

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
BSD 3-Clause License

Copyright (c) 2019, University of Washington ICESat-2 Hack Week
Copyright (c) 2019-2023, icepyx Development Team
All rights reserved.

Redistribution and use in source and binary forms, with or without
Expand Down
16 changes: 10 additions & 6 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ icepyx

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

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

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

Expand All @@ -12,7 +12,7 @@ Current development version (development branch): |Docs Status dev| |Travis dev
.. |GitHub license| image:: https://img.shields.io/badge/License-BSD%203--Clause-blue.svg
:target: https://opensource.org/licenses/BSD-3-Clause

.. |Conda install| image:: https://anaconda.org/conda-forge/icepyx/badges/installer/conda.svg
.. |Conda install| image:: https://anaconda.org/conda-forge/icepyx/badges/version.svg
:target: https://anaconda.org/conda-forge/icepyx

.. |Pypi install| image:: https://badge.fury.io/py/icepyx.svg
Expand All @@ -22,6 +22,10 @@ Current development version (development branch): |Docs Status dev| |Travis dev
:alt: All Contributors
:target: https://github.com/icesat2py/icepyx/blob/main/CONTRIBUTORS.rst

.. |JOSS| image:: https://joss.theoj.org/papers/a355344b24ffa5fda7a04a5067e8be1f/status.svg
:alt: JOSS publication status
:target: https://joss.theoj.org/papers/a355344b24ffa5fda7a04a5067e8be1f

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

Expand All @@ -47,10 +51,10 @@ icepyx is both a software library and a community composed of ICESat-2 data user

icepyx aims to provide a clearinghouse for code, functionality to improve interoperability, documentation, examples, and educational resources that tackle disciplinary research questions while minimizing the amount of repeated effort across groups utilizing similar datasets. icepyx also hopes to foster collaboration, open-science, and reproducible workflows by integrating and sharing resources.

Many of these tools began as Jupyter Notebooks developed for and during the cryosphere themed ICESat-2 Hackweek
at the University of Washington in June 2019 or as scripts written and used by the ICESat-2 Science Team members.
This project combines and generalizes these scripts into a unified framework, making them accessible for everyone.

Many of the underlying tools from which icepyx was developed began as Jupyter Notebooks developed for and during the cryosphere-themed ICESat-2 Hackweek at the University of Washington in June 2019 or as scripts written and used by the ICESat-2 Science Team members.
Originally called icesat2py, the project combined and generalized these scripts into a unified framework, adding examples, documentation, and testing where necessary and making them accessible for everyone.
icepyx is now a domain-agnostic, standalone software package and community (under the broader `icesat2py GitHub organization <https://github.com/icesat2py>`_) that continues to build functionality for obtaining and working with ICESat-2 data products locally and in the cloud.
It also improves interoperability for ICESat-2 datasets with other open-source tools.

.. _`zipped file`: https://github.com/icesat2py/icepyx/archive/main.zip
.. _`Fiona`: https://pypi.org/project/Fiona/
Expand Down
32 changes: 17 additions & 15 deletions doc/source/community/contact.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,28 @@
Contact Us
==========

The best way to contact us depends on what information you're looking for.

* Need help installing, running, or using `icepyx`? Add a new topic to ask for help on `Discourse <https://discourse.pangeo.io/c/science/icesat-2/16>`_ (after reviewing the documentation and existing topics, of course, to see if they answer your question!) or attend one of our regular virtual meetings (details below).
* Found a bug or have a feature request? Post an issue on `GitHub <https://github.com/icesat2py/icepyx/issues>`_!
* Have an idea you'd like to discuss? Start a conversation on `Discourse <https://discourse.pangeo.io/c/science/icesat-2/16>`_ or attend one of our regular virtual meetings (details below).
* Need help installing, running, or using `icepyx`? Ask for help on `Discourse <https://discourse.pangeo.io/c/science/icesat-2/16>`_ or `GitHub Discussions <https://github.com/icesat2py/icepyx/discussions>`_.
* Found a bug? Post an issue on `GitHub <https://github.com/icesat2py/icepyx/issues>`_!
* Want to request or contribute a feature? Share your idea on `GitHub Discussions <https://github.com/icesat2py/icepyx/discussions>`_.
* Have a question or want to know more? Join us for a virtual meeting (see below).
* Want to get involved? Do one or more of the above, or reach out to one of the dev team members individually. We're excited to hear your thoughts and provide help!

Absolutely NO software development is necessary to join and contribute to our community.
We look forward to meeting you!

Regular Meeting Schedule
------------------------
Our team (developers, users, scientists, educators) meets regularly via Zoom to provide support, troubleshoot issues, and plan development.
We meet on:

* the second Tuesday of the month at 4pm GMT (12pm Eastern, 9am Pacific)
* the fourth Monday of the month at 8pm GMT (4pm Eastern, 1pm Pacific)
Virtual Meetings
----------------
Our team (developers, users, scientists, educators) consists primarily of volunteers.
We meet on an as-needed basis via Zoom to provide support, troubleshoot issues, and plan development and collaboration efforts.

Additional information about logging in to the meetings can be found on `this Discourse post <https://discourse.pangeo.io/t/icepyx-team-meetings/722/2?u=jessicas11>`_.
Our meetings are open to all, with upcoming meeting information available via `Discourse <https://discourse.pangeo.io/c/science/icesat-2/16>`_, `GitHub Discussions <https://github.com/icesat2py/icepyx/discussions>`_, or by request.
The :ref:`QUEST (Query Unify Explore SpatioTemporal) <api_quest_ref>` team meets weekly on Mondays to co-work on integrating additional sensors into the icepyx workflow.
Please contact us if you are interested in joining the QUEST team.

Absolutely NO previous software development experience is necessary to attend any meeting. Think of them more like coffee hour mixed with office hours than a conference call. We look forward to seeing you there!

Ongoing Efforts
----------------
In addition to the ongoing development of icepyx itself, the ICESat-2 Cryosphere community continues to grow through a number of workshops and events.
In addition to the ongoing development of icepyx itself, the ICESat-2 community continues to grow through a number of related initiatives, workshops, and events:

* `CryoCloud <https://cryointhecloud.com/>`_
* `ICESat-2 Hackweeks <https://icesat-2.hackweek.io/>`_
2 changes: 1 addition & 1 deletion doc/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

project = "icepyx"
year = datetime.date.today().year
copyright = "2019-{}, The icepyx Developers".format(year)
copyright = "2019-{}, The icepyx Development Team".format(year)

# -- General configuration ---------------------------------------------------

Expand Down
41 changes: 11 additions & 30 deletions doc/source/example_notebooks/IS2_cloud_data_access.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"1. ICESat-2 data became publicly available on the cloud on 29 September 2022. Thus, access methods and example workflows are still being developed by NSIDC, and the underlying code in icepyx will need to be updated now that these data (and the associated metadata) are available. We appreciate your patience and contributions (e.g. reporting bugs, sharing your code, etc.) during this transition!\n",
"2. This example and the code it describes are part of ongoing development. Current limitations to using these features are described throughout the example, as appropriate.\n",
"3. You **MUST** be working within an AWS instance. Otherwise, you will get a permissions error.\n",
"4. Authentication is still more steps than we'd like. We're working to address this - let us know if you'd like to join the conversation!"
"4. Cloud authentication is still more user-involved than we'd like. We're working to address this - let us know if you'd like to join the conversation!"
]
},
{
Expand All @@ -20,6 +20,7 @@
"metadata": {},
"outputs": [],
"source": [
"import earthaccess\n",
"import icepyx as ipx"
]
},
Expand Down Expand Up @@ -78,7 +79,7 @@
"## Log in to Earthdata and generate an s3 token\n",
"You can use icepyx's existing login functionality to generate your s3 data access token, which will be valid for *one* hour.\n",
"\n",
"We currently do not have this set up to automatically renew, but [earthaccess](), which icepyx will soon be adopting for authentication, is working on handling the limits imposed by expiring s3 tokens. If you're interested in working on helping icepyx and NSIDC (and DAACs more broadly) address these challenges, please get in touch or submit a PR. Documentation/example testers are always appreciated (so you don't have to understand the code)!"
"We currently do not have this set up to automatically renew, but [earthaccess](https://nsidc.github.io/earthaccess/), which icepyx uses under the hood for authentication, is working on handling the limits imposed by expiring s3 tokens. If you're interested in working on helping icepyx and earthaccess address these challenges, please get in touch or submit a PR. Documentation/example testers are always appreciated (so you don't have to understand the code)!"
]
},
{
Expand All @@ -89,32 +90,14 @@
},
"outputs": [],
"source": [
"reg.earthdata_login(\"icepyx_devteam\",\"icepyx_dev@gmail.com\", s3token=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"credentials = reg._s3login_credentials"
"reg.earthdata_login(s3token=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Set up your s3 access using your credentials"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import s3fs"
"## Set up your s3 file system using your credentials"
]
},
{
Expand All @@ -123,17 +106,15 @@
"metadata": {},
"outputs": [],
"source": [
"s3 = s3fs.S3FileSystem(key=credentials['accessKeyId'],\n",
" secret=credentials['secretAccessKey'],\n",
" token=credentials['sessionToken'])"
"s3 = earthaccess.get_s3fs_session(daac='NSIDC', provider=reg._s3login_credentials)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Select an s3 url and access the data\n",
"Data read in capabilities for cloud data are coming soon in icepyx (targeted Winter 2022-2023). Stay tuned and we'd love for you to join us and contribute!\n",
"Data read in capabilities for cloud data are coming soon in icepyx (targeted Spring 2023). Stay tuned and we'd love for you to join us and contribute!\n",
"\n",
"**Note: If you get a PermissionDenied Error when trying to read in the data, you may not be sending your request from an AWS hub in us-west2. We're currently working on how to alert users if they will not be able to access ICESat-2 data in the cloud for this reason**"
]
Expand Down Expand Up @@ -175,15 +156,15 @@
"source": [
"#### Credits\n",
"* notebook by: Jessica Scheick\n",
"* source material: [is2-nsidc-cloud.py](https://gist.github.com/bradlipovsky/80ab6a7aff3d3524b9616a9fc176065e#file-is2-nsidc-cloud-py-L28) by Brad Lipovsky"
"* historic source material: [is2-nsidc-cloud.py](https://gist.github.com/bradlipovsky/80ab6a7aff3d3524b9616a9fc176065e#file-is2-nsidc-cloud-py-L28) by Brad Lipovsky"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:notebook] *",
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "conda-env-notebook-py"
"name": "python3"
},
"language_info": {
"codemirror_mode": {
Expand All @@ -195,7 +176,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.6"
"version": "3.10.8"
}
},
"nbformat": 4,
Expand Down

0 comments on commit 13c9e12

Please sign in to comment.