diff --git a/02-schedule.md b/02-schedule.md index 092f0fd..a81c90a 100644 --- a/02-schedule.md +++ b/02-schedule.md @@ -1,27 +1,43 @@ # ⌚ Schedule :::{attention} 🏗️ Under development +:icon: false + These materials are under development and subject to change all the way until AGU! ::: -## Morning +## 🌅 Morning (8:30 - 12:00) | Time | Duration | Topic | Presenter(s) | |-----------|-------------|-------------------------------------------------------------------------------------|-------------------| -| 8:30 AM | 10 minutes | Meet the instructors | All | -| 8:40 AM | 45 minutes | [](04-materials/01-working-in-jupyterhub/CryoCloud_demo.ipynb) | Tasha | -| 9:25 AM | ?? minutes | ................................................................................... | ................. | -| ....... | .......... | ................................................................................... | ................. | +| 8:30 AM | 10 minutes | [Meet the instructors](00-instructors.md) | All | +| 8:40 AM | 45 minutes | [](materials/01-working-in-jupyterhub/index.md) | Tasha | +| 9:25 AM | 10 minutes | **Break** | | +| 9:35 AM | 60 minutes | [](materials/02-interactive-viz/index.md) | Qiusheng | +| 10:35 AM | 10 minutes | **Break** | | +| 10:45 AM | 60 minutes | [](materials/03-integrating-ai/index.md) | Qiusheng | +| 11:45 AM | 15 minutes | **Q&A** | All | + +## 🍽️ Lunch! (12:00 - 1:30) -## 🍽️ Lunch! (?? - ??) +:::{important} +AGU does not provide lunch. + +We may do a group order for food delivery. +::: -## Afternoon +## 🌇 Afternoon (1:30 - 5:00) | Time | Duration | Topic | Presenter(s) | |-----------|-------------|-----------------------------------------------------------------------------------|-------------------| -| ....... | .......... | ................................................................................. | ................. | -| 5:00 PM | | End of day | | +| 1:30 PM | 60 minutes | [](materials/04-data-in-the-cloud/index.md) | Max | +| 2:30 PM | 10 minutes | **Break** | | +| 2:40 PM | 60 minutes | [](materials/05-sharing-and-publishing/index.md) | Fernando & Matt | +| 3:40 PM | 10 minutes | **Break** | | +| 3:50 PM | 55 minutes | [](materials/06-geojupyter/index.md) | Fernando & Matt | +| 4:45 PM | 15 minutes | **Closing Q&A** | All | +| 5:00 PM | | **End of day** | | diff --git a/04-materials/00-slides.md b/04-materials/00-slides.md deleted file mode 100644 index 675e8d7..0000000 --- a/04-materials/00-slides.md +++ /dev/null @@ -1,3 +0,0 @@ -# 🛝 Slides - - diff --git a/04-materials/01-working-in-jupyterhub/CryoCloud_demo.ipynb b/04-materials/01-working-in-jupyterhub/CryoCloud_demo.ipynb deleted file mode 100644 index 88eb5bd..0000000 --- a/04-materials/01-working-in-jupyterhub/CryoCloud_demo.ipynb +++ /dev/null @@ -1,209 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "bf9d3dd7-7252-42d7-87df-1fcf430bc1f2", - "metadata": {}, - "source": [ - "---\n", - "title: ❄️ 1 - Working in JupyterHub with CryoCloud\n", - "date: 2025-09-11\n", - "github: https://github.com/cryointhecloud/CryocloudWebsite\n", - "subject: Tutorial\n", - "authors:\n", - " - name: Tasha Snow\n", - " affiliations:\n", - " - University of Maryland\n", - " - NASA Goddard Space Flight Center\n", - " - Colorado School of Mines\n", - " email: tsnow03@umd.edu\n", - " orcid: 0000-0001-5697-5470\n", - " github: tsnow03\n", - "license: MIT\n", - "---" - ] - }, - { - "cell_type": "markdown", - "id": "suffering-union", - "metadata": {}, - "source": [ - "::::{admonition} Learning Objectives\n", - ":class: tip\n", - "- Learn how to access and use CryoCloud\n", - "- Open CryoCloud and clone the CryoCloud website\n", - "::::" - ] - }, - { - "cell_type": "markdown", - "id": "3d1f23da-bf31-476f-86b2-780f90d13982", - "metadata": {}, - "source": [ - "## Access the [CryoCloud powerpoint](https://docs.google.com/presentation/d/1sj5oSAnHQ5Le0zMNqy55T-esZqro-WjVOPJdv_BR08M/edit?usp=sharing) whenever you need to reference it\n", - "Open the powerpoint by directly clicking on the hyperlink above or to open it in the CryoCloud Linux Desktop web browser as follows:\n", - "- Copy this hyperlink: `https://docs.google.com/presentation/d/1sj5oSAnHQ5Le0zMNqy55T-esZqro-WjVOPJdv_BR08M/edit?usp=sharing`\n", - "- Click on the plus (`+`) sign in the `File Browser` to the left to open a `Launcher` window \n", - "- Under Notebooks, click on `Desktop` to access the Linux Desktop. This will open a new tab.\n", - "- Click on the `Web Browser` tool (globe) at the bottom of the screen\n", - "- Paste the url into the search bar" - ] - }, - { - "cell_type": "markdown", - "id": "2970ead2-4efa-41c8-9920-c14f9eb3365c", - "metadata": {}, - "source": [ - "```{figure} slides.png\n", - ":width: 80%\n", - ":align: center" - ] - }, - { - "cell_type": "markdown", - "id": "649d863c-5ad1-4b9f-9fa0-416ff04396a4", - "metadata": {}, - "source": [ - "## Open CryoCloud\n", - "\n", - "1) Scroll through the languages. Choose the Python programming language.\n", - "\n", - "2) Scroll through the server sizes. Choose the 7 Gb server. \n", - "\n", - "::::{admonition} Tip\n", - "**Be realistic about the max memory you will need. The amount you select, you are guaranteed, but if you use more you risk crashing your server and having to rerun your analysis.**\n", - "\n", - "**Check your memory usage at the bottom middle of the screen.**\n", - "::::\n", - "\n", - "3) Sit back and learn about each of the tools!\n", - " - JupyterHub options and viewing setup\n", - " - Github\n", - " - Virtual Linux desktop\n", - " - SyncThing\n", - " - Viewing and editing of different files" - ] - }, - { - "cell_type": "markdown", - "id": "71e8e9bf-a844-4eb7-b8df-3b02f44e9030", - "metadata": { - "tags": [], - "user_expressions": [] - }, - "source": [ - "Now after the demo..." - ] - }, - { - "cell_type": "markdown", - "id": "d73344a2-f797-4218-a99f-a9db0338f002", - "metadata": { - "tags": [], - "user_expressions": [] - }, - "source": [ - "## Task: Clone the CryoCloud jupyterbook\n", - "\n", - "We will import the [CryoCloud Website Github repository](https://github.com/CryoInTheCloud/CryoCloudWebsite.git).\n", - "\n", - "To do this: \n", - "1. Select the plus (`+`) sign above the `File Browser` to the left, which will bring up a `Launcher` window. \n", - "\n", - "2. Click the `terminal` button under Other to open it. This is your command line like you would have on any computer. \n", - "\n", - "Before cloning the repo, you have the option to switch to another file folder using the _change directory_ terminal command: `cd folder` if you do not want the Hackweek repo in your current directory (you can check which directory you are currently in using _print working directory_ command: `pwd`).\n", - "```\n", - "cd yourfoldername\n", - "```\n", - "\n", - "3. Now clone the hackweek code into your current directory: \n", - "```\n", - "https://github.com/CryoInTheCloud/CryoCloudWebsite.git\n", - "```\n", - "\n", - "4. You will see the folder pop into your `File Browser` on the left if you have the current directory open. Click on the folder to navigate through the files. \n", - "\n", - "5. To open this tutorial, click on the `book` subdirectory > `tutorials` and double click on `CryoCloud`. This should open up this tutorial in case you want to review it in the future. \n" - ] - }, - { - "cell_type": "markdown", - "id": "5b99d916-deb8-4af0-9fce-1e38e5c18d87", - "metadata": {}, - "source": [ - "## Shutting down your JupyterHub\n", - "\n", - "```{admonition} TIP\n", - "**Best Practice: Shut down the CryoCloud server when you are done to save us money.**\n", - "\n", - "**If you only close your tab or click log out, your server will continue running for 90 minutes.**\n", - "```\n", - "\n", - "Whenever you are done, it is best to shut down your server when you sign out to save on money for CryoCloud. Time on the JupyterHub costs money and there are systems in place to make sure your server doesn't run indefinitely if you forget about it. After 90 minutes of no use, it will shut down. We prefer you shut down the server when so we save that 90 minutes of computing cost. To do so:\n", - "\n", - "- In upper left, click on `File` > `Hub Control Panel`, which will open another tab\n", - "- Click the `Stop Server` button. Once this button disappears after you clicked it, your server is off. \n", - "- Click `Log Out` in the top right of your screen and you will be logged out, or you can start a new server\n", - "- You can now close this tab and the other tab where you were just working" - ] - }, - { - "cell_type": "markdown", - "id": "8e200eb4-6534-4bf4-9b13-cd299aeb33a4", - "metadata": { - "tags": [] - }, - "source": [ - "```{figure} stop_server.png\n", - ":width: 80%\n", - ":align: center" - ] - }, - { - "cell_type": "markdown", - "id": "surrounded-amateur", - "metadata": { - "user_expressions": [] - }, - "source": [ - "## Summary\n", - "\n", - " 🎉 Congratulations! You've completed this tutorial and have seen how we can access and use CryoCloud.\n" - ] - }, - { - "cell_type": "markdown", - "id": "749f5c79-19d7-48ac-9421-852c3c83cc5f", - "metadata": {}, - "source": [ - "## References\n", - "\n", - "To learn more about CryoCloud, gain code for NASA data access, and find other Cryosphere tutorials check out this other documentation:\n", - "\n", - "* [CryoCloud JupyterBook](https://book.cryointhecloud.com)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.11" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/index.md b/index.md index 3863366..e2ace7f 100644 --- a/index.md +++ b/index.md @@ -1,4 +1,31 @@ :::{attention} 🏗️ Under development +:icon: false + These materials are under development and subject to change all the way until AGU! ::: + +In an era where cutting-edge research demands flexibility, collaboration, and +reproducibility, having the right set of tools is imperative. +This workshop propels you into the future with modern, cloud-based workflows for +geospatial data analysis, exploration, visualization, storytelling, and sharing, all +leveraging open source tools and services. +Whether you are just starting or looking to enhance your skills , this hands-on workshop +is designed for you. +Join us to stay ahead in the evolving field of geospatial. + +Participants will learn to work on an open cloud platform with JupyterHub; +analyze and explore data with tools like JupyterGIS and leafmap; +work in a fully collaborative environment with Jupyter Notebooks and JupyterGIS; +author technical content with MyST and Jupyter Book; +and share their research outcomes, including journal publications, websites, blog posts, +dashboards, and software packages. + +Participants can expect a combination of guided instruction, live demonstrations, and +hands-on exercises, all using tools that are freely available as open source software. +We expect this workshop to be particularly valuable for practitioners seeking to +collaborate across teams, domains, or institutions and to advance their capacity to +perform reproducible research. + +This workshop is designed for those with familiarity and a basic understanding of +geospatial data (e.g. raster vs. vector) and practical Python programming experience. diff --git a/materials/01-working-in-jupyterhub/index.md b/materials/01-working-in-jupyterhub/index.md new file mode 100644 index 0000000..3bd3ad8 --- /dev/null +++ b/materials/01-working-in-jupyterhub/index.md @@ -0,0 +1,141 @@ +--- +authors: + - name: "Tasha Snow" + affiliations: + - "University of Maryland" + - "NASA Goddard Space Flight Center" + - "Colorado School of Mines" + email: "tsnow03@umd.edu" + orcid: "0000-0001-5697-5470" + github: "tsnow03" +--- + +# ❄️ 1 - Working in JupyterHub with CryoCloud + +:::{note} 🛝 Slides +:icon: false +:class: dropdown + + +::: + +:::{tip} Learning Objectives +- Learn how to access and use CryoCloud +- Start a Jupyter server in CryoCloud +- Clone the repository for this workshop website +::: + + +## Access the [CryoCloud powerpoint](https://docs.google.com/presentation/d/1sj5oSAnHQ5Le0zMNqy55T-esZqro-WjVOPJdv_BR08M/edit?usp=sharing) whenever you need to reference it + +Open the powerpoint by directly clicking on the hyperlink above or to open it in the CryoCloud Linux Desktop web browser as follows: + +- Copy this hyperlink: `https://docs.google.com/presentation/d/1sj5oSAnHQ5Le0zMNqy55T-esZqro-WjVOPJdv_BR08M/edit?usp=sharing` +- Click on the plus (`+`) sign in the `File Browser` to the left to open a `Launcher` window +- Under Notebooks, click on `Desktop` to access the Linux Desktop. This will open a new tab. +- Click on the `Web Browser` tool (globe) at the bottom of the screen +- Paste the url into the search bar + +![](./slides.png) + + +## Open CryoCloud + +1) Scroll through the languages. + Choose the Python programming language. + +2) Scroll through the server sizes. Choose the 7 Gb server. + +:::{tip} +**Be realistic about the max memory you will need. +The amount you select, you are guaranteed, but if you use more you risk crashing your +server and having to rerun your analysis.** + +**Check your memory usage at the bottom middle of the screen.** +::: + +3) Sit back and learn about each of the tools! + - JupyterHub options and viewing setup + - Github + - Virtual Linux desktop + - SyncThing + - Viewing and editing of different files + +Now after the demo... + + +## Task: Clone the CryoCloud jupyterbook + +We will import the [CryoCloud Website Github repository](https://github.com/CryoInTheCloud/CryoCloudWebsite.git). + +To do this: +1. Select the plus (`+`) sign above the `File Browser` to the left, which will bring up a `Launcher` window. + +2. Click the `terminal` button under Other to open it. + This is your command line like you would have on any computer. + + Before cloning the repo, you have the option to switch to another file folder using + the _change directory_ terminal command: `cd folder` if you do not want the Hackweek + repo in your current directory (you can check which directory you are currently in + using _print working directory_ command: `pwd`). + + ``` + cd yourfoldername + ``` + +3. Now clone the hackweek code into your current directory: + + ``` + https://github.com/CryoInTheCloud/CryoCloudWebsite.git + ``` + +4. You will see the folder pop into your `File Browser` on the left if you have the current directory open. + Click on the folder to navigate through the files. + +5. To open this tutorial, click on the `book` subdirectory > `tutorials` and double + click on `CryoCloud`. + This should open up this tutorial in case you want to review it in the future. + + +## Shutting down your JupyterHub + +```{tip} +**Best Practice: Shut down the CryoCloud server when you are done to save us money.** + +**If you only close your tab or click log out, your server will continue running for 90 minutes.** +``` + +Whenever you are done, it is best to shut down your server when you sign out to save on money for CryoCloud. +Time on the JupyterHub costs money and there are systems in place to make sure your server doesn't run indefinitely if you forget about it. +After 90 minutes of no use, it will shut down. +We prefer you shut down the server when so we save that 90 minutes of computing cost. + +To do so: + +- In upper left, click on `File` > `Hub Control Panel`, which will open another tab +- Click the `Stop Server` button. Once this button disappears after you clicked it, your server is off. +- Click `Log Out` in the top right of your screen and you will be logged out, or you can start a new server +- You can now close this tab and the other tab where you were just working + +![](./stop_server.png) + + +## Summary + +🎉 Congratulations! +You've completed this tutorial and have seen how we can access and use CryoCloud. + + +## References + +To learn more about CryoCloud, gain code for NASA data access, and find other Cryosphere tutorials check out this other documentation: + +* [CryoCloud JupyterBook](https://book.cryointhecloud.com) diff --git a/04-materials/01-working-in-jupyterhub/slides.png b/materials/01-working-in-jupyterhub/slides.png similarity index 100% rename from 04-materials/01-working-in-jupyterhub/slides.png rename to materials/01-working-in-jupyterhub/slides.png diff --git a/04-materials/01-working-in-jupyterhub/stop_server.png b/materials/01-working-in-jupyterhub/stop_server.png similarity index 100% rename from 04-materials/01-working-in-jupyterhub/stop_server.png rename to materials/01-working-in-jupyterhub/stop_server.png diff --git a/materials/02-interactive-viz/index.md b/materials/02-interactive-viz/index.md new file mode 100644 index 0000000..16483bb --- /dev/null +++ b/materials/02-interactive-viz/index.md @@ -0,0 +1,26 @@ +--- +authors: + - name: "Qiusheng Wu" + affiliations: + - "University of Tennessee, Knoxville" + email: "qwu18@utk.edu" + orcid: "0000-0001-5437-4073" + github: "giswqs" +--- + +# 👁️ 2 - Interactive visualization of raster and vector data + +:::{note} 🛝 Slides +:icon: false +:class: dropdown + + +::: diff --git a/materials/03-integrating-ai/index.md b/materials/03-integrating-ai/index.md new file mode 100644 index 0000000..f36cdbc --- /dev/null +++ b/materials/03-integrating-ai/index.md @@ -0,0 +1,26 @@ +--- +authors: + - name: "Qiusheng Wu" + affiliations: + - "University of Tennessee, Knoxville" + email: "qwu18@utk.edu" + orcid: "0000-0001-5437-4073" + github: "giswqs" +--- + +# 🤖 3 - Integrating artificial intelligence (AI) with geospatial data analysis with [GeoAI](https://geoai.gishub.org/) + +:::{note} 🛝 Slides +:icon: false +:class: dropdown + + +::: diff --git a/materials/04-data-in-the-cloud/index.md b/materials/04-data-in-the-cloud/index.md new file mode 100644 index 0000000..0bbc4e3 --- /dev/null +++ b/materials/04-data-in-the-cloud/index.md @@ -0,0 +1,26 @@ +--- +authors: + - name: "Max Jones" + affiliations: + - "Development Seed" + email: "max@developmentseed.org" + orcid: "0000-0003-0180-8928" + github: "maxrjones" +--- + +# ☁️ 4 - Data in the Cloud 101 + +:::{note} 🛝 Slides +:icon: false +:class: dropdown + + +::: diff --git a/materials/05-sharing-and-publishing/index.md b/materials/05-sharing-and-publishing/index.md new file mode 100644 index 0000000..b86b25f --- /dev/null +++ b/materials/05-sharing-and-publishing/index.md @@ -0,0 +1,34 @@ +--- +authors: + - name: "Fernando Perez" + affiliations: + - "University of California, Berkeley" + - "Schmidt Center for Data Science and Environment" + email: "fernando.perez@berkeley.edu" + orcid: "0000-0002-1725-9815" + github: "fperez" + - name: "Matt Fisher" + affiliations: + - "University of California, Berkeley" + - "Schmidt Center for Data Science and Environment" + email: "matt.fisher@berkeley.edu" + orcid: "0000-0003-3260-5445" + github: "mfisher87" +--- + +# 📢 5 - Sharing & Publishing Your Work + +:::{note} 🛝 Slides +:icon: false +:class: dropdown + + +::: diff --git a/materials/06-geojupyter/index.md b/materials/06-geojupyter/index.md new file mode 100644 index 0000000..06708d3 --- /dev/null +++ b/materials/06-geojupyter/index.md @@ -0,0 +1,34 @@ +--- +authors: + - name: "Fernando Perez" + affiliations: + - "University of California, Berkeley" + - "Schmidt Center for Data Science and Environment" + email: "fernando.perez@berkeley.edu" + orcid: "0000-0002-1725-9815" + github: "fperez" + - name: "Matt Fisher" + affiliations: + - "University of California, Berkeley" + - "Schmidt Center for Data Science and Environment" + email: "matt.fisher@berkeley.edu" + orcid: "0000-0003-3260-5445" + github: "mfisher87" +--- + +# 🪐 6 - GeoJupyter + +:::{note} 🛝 Slides +:icon: false +:class: dropdown + + +::: diff --git a/myst.yml b/myst.yml index 8dcd8a0..70a949f 100644 --- a/myst.yml +++ b/myst.yml @@ -15,7 +15,7 @@ project: - pattern: "0*.md" - title: "Materials" children: - - file: "04-materials/01-working-in-jupyterhub/CryoCloud_demo.ipynb" + - pattern: "materials/0*/index.md" site: