From c4ef44cbadde1bc5bc6f1ab4f28b2a0bb2f2bd86 Mon Sep 17 00:00:00 2001 From: Paul van Genuchten Date: Sat, 20 Jun 2026 19:14:09 +0200 Subject: [PATCH 1/4] option to run workshop locally --- README.md | 33 +++++++++++++++++++++++++++---- web/docs/index.md | 32 +++++++++++++++++++++++++++--- workshop/jupyter/requirements.txt | 2 ++ 3 files changed, 60 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 43b2744..059c250 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,15 @@ See Workshop entry doc https://geopython.github.io/geopython-workshop. ### Requirements -The workshop requires [Docker](https://docker.com) -and [Docker Compose](https://docs.docker.com/compose/) on your system +The workshop uses Jupyter Notebooks. [Jupyter](https://jupyter.org/) is an interactive development environment suitable for documenting and reproducing workflows using live code. + +As the installation of all dependencies on all platforms (Windows, Mac, Linux) can be quite involved and complex this workshop provides all components within a Docker Image. + +In addition, geospatial web services like pygeoapi and pycsw in this workshop are provided by Docker images. + +The core requirement is to have Docker and Docker Compose installed on the system. Once you have Docker and Docker Compose installed you will be able to install and run the workshop without any other dependencies. + +Alternatively, if you're confident with python development, you can run the notebook in a local anaconda or python environment. [Read more about running locally](#running-locally) ### Docker Images @@ -55,8 +62,6 @@ bash ./geopython-workshop-ctl.sh url bash ./geopython-workshop-ctl.sh stop ``` - - NB [Jupyter notebook](https://en.wikipedia.org/wiki/Project_Jupyter) needs a **token**. The token is displayed in the jupyter container logs on startup: `http://127.0.0.1:8888/?token=`. @@ -81,6 +86,26 @@ cd geopython-workshop.git/workshop/jupyter - by default the web services pygeoapi and pycsw are not required for the regular workshop like FOSS4G - if you use pygeoapi: there is an issue with MacOS Monterey where the port 5000 is already used and therefore conflicting with that one used by pygeoapi. If you are facing this error `OSError: [Errno 48] Address already in use` then your machine is affected. To overcome the issue you can disable the *Airplay Receiver* from `System Preferences->Sharing` of your MacOS (detailed description in this blog [post](https://progressstory.com/tech/port-5000-already-in-use-macos-monterey-issue/)). +### Running locally + +If you're confident with python development, consider to run the jupyter notebook locally. The operations below require a [anaconda](https://www.anaconda.com/) or [(micro)mamba](https://mamba.readthedocs.io/en/latest/user_guide/mamba.html) environment. + +```bash +# clone the workshop repository +git clone https://github.com/geopython/geopython-workshop +cd geopython-workshop/ +# create virtual environment +micromamba create -n pyworkshop python=3.12 jupyterlab -y +micromamba activate pyworkshop +# install conda workshop requirements +micromamba install -n pyworkshop -c conda-forge gdal notebook +cd workshop/jupyter +# install python workshop requirements +pip install -r requirements.txt +# Run the notebook, copy url (with token) to browser if browser does not open automatically +jupyter notebook +``` + ### Bugs and Issues All bugs, enhancements and issues are managed diff --git a/web/docs/index.md b/web/docs/index.md index 792dd12..972ed8b 100644 --- a/web/docs/index.md +++ b/web/docs/index.md @@ -25,6 +25,11 @@ able to install and run the workshop without any other dependencies. More information on installing Docker can also be found [here](./docker.md). +Alternatively, if you're confident with python development, you can run the notebook +in a local anaconda or python environment. [Read more about running locally](#running-locally). +Or run the notebook in the cloud, using `Jupyter Binder`. [Read more about +running in binder](#run-notebook-in-the-cloud). + ### Optional requirements Users may optionally install [QGIS](https://qgis.org) as a GIS data viewer. @@ -183,12 +188,33 @@ In that case you could also try `http://0.0.0.0:8888?token=`. There is an issue with MacOS Monterey where the port 5000 is already used and therefore conflicting with that one used by pygeoapi. If you are facing this error `OSError: [Errno 48] Address already in use` then your machine is affected. To overcome the issue you can disable the *Airplay Receiver* from `System Preferences->Sharing` of your MacOS (detailed description in this blog [post](https://progressstory.com/tech/port-5000-already-in-use-macos-monterey-issue/)). -## No Docker Installed? +## Running locally + +If you're confident with python development, consider to run the jupyter notebook locally. The operations below require a [anaconda](https://www.anaconda.com/) or [(micro)mamba](https://mamba.readthedocs.io/en/latest/user_guide/mamba.html) environment. + +```bash +# clone the workshop repository +git clone https://github.com/geopython/geopython-workshop +cd geopython-workshop/ +# create virtual environment +micromamba create -n pyworkshop python=3.12 jupyterlab -y +micromamba activate pyworkshop +# install conda workshop requirements +micromamba install -n pyworkshop -c conda-forge gdal notebook +cd workshop/jupyter +# install python workshop requirements +pip install -r requirements.txt +# Run the notebook, copy url (with token) to browser if browser does not open automatically +jupyter notebook +``` + +## Run notebook in the cloud If you somehow were not able to install Docker: -there is a Cloud version of the Jupyter-Notebook-part of the workshop via "Jupyter Binder". +there is a Cloud version of the Jupyter-Notebook-part of the workshop, +available via [Jupyter Binder](https://jupyter.org/binder). -With some limits (e.g. no local geo-services, no data publication), you can follow most of the workshop using a remote Docker instance within your browser via "Jupyter Binder". Click on the button below +With some limits (e.g. no local geo-services, no data publication), you can follow most of the workshop using a remote Docker instance within your browser via `Jupyter Binder`. Click on the button below to launch the Workshop Binder Instance. Startup takes a while, be patient... [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/geopython/geopython-workshop/master?filepath=workshop%2Fjupyter%2Fcontent%2Fnotebooks%2F01-introduction.ipynb) diff --git a/workshop/jupyter/requirements.txt b/workshop/jupyter/requirements.txt index cbab6b2..00c1dbd 100644 --- a/workshop/jupyter/requirements.txt +++ b/workshop/jupyter/requirements.txt @@ -11,3 +11,5 @@ ipyleaflet pydeck pygeometa # >0.7 removed by Just matplotlib +fiona +rasterio From 69b4966db73c80c828f5f861850945969cecdb94 Mon Sep 17 00:00:00 2001 From: Tom Kralidis Date: Sat, 20 Jun 2026 21:34:03 -0400 Subject: [PATCH 2/4] Update index.md --- web/docs/index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/web/docs/index.md b/web/docs/index.md index 972ed8b..982a51e 100644 --- a/web/docs/index.md +++ b/web/docs/index.md @@ -25,8 +25,8 @@ able to install and run the workshop without any other dependencies. More information on installing Docker can also be found [here](./docker.md). -Alternatively, if you're confident with python development, you can run the notebook -in a local anaconda or python environment. [Read more about running locally](#running-locally). +Alternatively, if you're confident with Python development, you can run the notebook +in a local Anaconda or Python environment. [Read more about running locally](#running-locally). Or run the notebook in the cloud, using `Jupyter Binder`. [Read more about running in binder](#run-notebook-in-the-cloud). @@ -190,11 +190,11 @@ There is an issue with MacOS Monterey where the port 5000 is already used and th ## Running locally -If you're confident with python development, consider to run the jupyter notebook locally. The operations below require a [anaconda](https://www.anaconda.com/) or [(micro)mamba](https://mamba.readthedocs.io/en/latest/user_guide/mamba.html) environment. +If you're confident with python development, consider to run the Jupyter notebook locally. The operations below require a [anaconda](https://www.anaconda.com/) or [(micro)mamba](https://mamba.readthedocs.io/en/latest/user_guide/mamba.html) environment. ```bash # clone the workshop repository -git clone https://github.com/geopython/geopython-workshop +git clone https://github.com/geopython/geopython-workshop.git cd geopython-workshop/ # create virtual environment micromamba create -n pyworkshop python=3.12 jupyterlab -y @@ -204,7 +204,7 @@ micromamba install -n pyworkshop -c conda-forge gdal notebook cd workshop/jupyter # install python workshop requirements pip install -r requirements.txt -# Run the notebook, copy url (with token) to browser if browser does not open automatically +# Run the notebook, copy URL (with token) to browser if browser does not open automatically jupyter notebook ``` From edd7a1c1776628ebcad20d7f2bbb0550febbc589 Mon Sep 17 00:00:00 2001 From: Tom Kralidis Date: Sat, 20 Jun 2026 21:35:59 -0400 Subject: [PATCH 3/4] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 059c250..ff67c96 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ In addition, geospatial web services like pygeoapi and pycsw in this workshop ar The core requirement is to have Docker and Docker Compose installed on the system. Once you have Docker and Docker Compose installed you will be able to install and run the workshop without any other dependencies. -Alternatively, if you're confident with python development, you can run the notebook in a local anaconda or python environment. [Read more about running locally](#running-locally) +Alternatively, if you're confident with Python development, you can run the notebook in a local Anaconda or Python environment. [Read more about running locally](#running-locally) ### Docker Images @@ -88,11 +88,11 @@ cd geopython-workshop.git/workshop/jupyter ### Running locally -If you're confident with python development, consider to run the jupyter notebook locally. The operations below require a [anaconda](https://www.anaconda.com/) or [(micro)mamba](https://mamba.readthedocs.io/en/latest/user_guide/mamba.html) environment. +If you're confident with Python development, consider to run the Jupyter notebook locally. The operations below require a [anaconda](https://www.anaconda.com/) or [(micro)mamba](https://mamba.readthedocs.io/en/latest/user_guide/mamba.html) environment. ```bash # clone the workshop repository -git clone https://github.com/geopython/geopython-workshop +git clone https://github.com/geopython/geopython-workshop.git cd geopython-workshop/ # create virtual environment micromamba create -n pyworkshop python=3.12 jupyterlab -y @@ -101,7 +101,7 @@ micromamba activate pyworkshop micromamba install -n pyworkshop -c conda-forge gdal notebook cd workshop/jupyter # install python workshop requirements -pip install -r requirements.txt +pip3 install -r requirements.txt # Run the notebook, copy url (with token) to browser if browser does not open automatically jupyter notebook ``` From 0986503aab21fd311be66c9cb07c3848bf452f2f Mon Sep 17 00:00:00 2001 From: Tom Kralidis Date: Sat, 20 Jun 2026 21:36:14 -0400 Subject: [PATCH 4/4] Update index.md --- web/docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/docs/index.md b/web/docs/index.md index 982a51e..94e84c1 100644 --- a/web/docs/index.md +++ b/web/docs/index.md @@ -203,7 +203,7 @@ micromamba activate pyworkshop micromamba install -n pyworkshop -c conda-forge gdal notebook cd workshop/jupyter # install python workshop requirements -pip install -r requirements.txt +pip3 install -r requirements.txt # Run the notebook, copy URL (with token) to browser if browser does not open automatically jupyter notebook ```