{"id":13734976,"url":"https://github.com/Element84/cng-workshop","last_synced_at":"2025-05-08T11:31:42.399Z","repository":{"id":204738830,"uuid":"707424934","full_name":"Element84/cng-workshop","owner":"Element84","description":"Intro to cloud-native geospatial workshop","archived":false,"fork":false,"pushed_at":"2023-11-01T18:27:15.000Z","size":43,"stargazers_count":2,"open_issues_count":1,"forks_count":2,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-08-03T03:04:15.668Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Element84.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-10-19T21:48:33.000Z","updated_at":"2023-11-01T18:21:42.000Z","dependencies_parsed_at":"2024-03-26T00:31:19.763Z","dependency_job_id":null,"html_url":"https://github.com/Element84/cng-workshop","commit_stats":null,"previous_names":["element84/cng-workshop"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Element84%2Fcng-workshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Element84%2Fcng-workshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Element84%2Fcng-workshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Element84%2Fcng-workshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Element84","download_url":"https://codeload.github.com/Element84/cng-workshop/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224727173,"owners_count":17359532,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T03:01:01.741Z","updated_at":"2024-11-15T03:31:20.402Z","avatar_url":"https://github.com/Element84.png","language":"Jupyter Notebook","funding_links":[],"categories":["`Python` processing of optical imagery (non deep learning)"],"sub_categories":["Cloud Native Geospatial"],"readme":"# Introduction to Cloud Native Geospatial\n\nThis repository includes the container environment build scripts and notebooks\nfor use in the Element 84 workshop \"Introduction to Cloud Native Geospatial\".\n\nFor more context on Cloud Native Geospatial please see [the workshop slide\ndeck](https://docs.google.com/presentation/d/1iSAwpxt6nSkiq3EXwxK4DgW0MMLdJqzDh7lj1mC119Y/edit#slide=id.p).\n\n## Setting up local environment\n\nTo run the notebooks with coiled one first needs to setup a local environment\nwith coiled. The easiest way to do this is typically using a python virtual\nenvironment and `pip`:\n\n```cmdline\n# create a local working directory and change into it\n❯ mkdir cng-workshop\n❯ cd cng-workshop\n\n# create a python virtual env (at time of writing python 3.7-3.11 supported)\n❯ python -m venv .venv\n\n# activate the virtual environment\n❯ source .venv/bin/activate\n\n# install coiled\n❯ pip install coiled\n\n# login to coiled\n❯ coiled login\n```\n\nFeel free to use any other prefered python environment/package managers (like\nconda/mamba) to setup a virtual environment and/or install coiled.\n\n## Running a notebook with coiled\n\nCoiled allows launching jupyter on an ephemeral cloud machine with a\npre-configured software environment. The included Dockerfile defines a\ngeospatial container image and python environment suitable for running the\nnotebooks in the repo; this is published as a public image to AWS ECR with the\nimage `public.ecr.aws/q2i2x3t4/e84-sandbox/coiled-demo:latest`. We can use this\ncontainer image with a coiled software environment (the included script\n`./scripts/create-software-env.py`) can be run to setup a software environment\ncalled `cng-workshop` if it does not already exist in your coiled context).\n\nUnderstanding this, all we need to do to run our jupyter server is the following:\n\n```cmdline\n❯ coiled notebook start --software cng-workshop --account element84-demo-workspace\n```\n\nRunning this command will trigger coiled to spin up a new instance to run the\nserver, and it will open a borswer tab for jupyter lab once it is running. The\nnotebooks and AOIs from this repo are built into the image, so simply browse to\nthe desired notebook in the file explorer and open it.\n\n## Building the container image\n\nIf wanting to build the container image for oneself, simply (requires the\ndocker cli and a docker daemon to be running):\n\n```cmdline\n❯ docker build .\n```\n\nFor Element 84 maintainers, `./scripts/build.bash` is provided to automate\nbuilding the image for both linux/amd64 and linux/arm64 and pushing those\nimages to the ECR repo, tagged as latest. Note that AWS credentials with write\naccess to that ECR repo in the sandbox account are requried.\n\n`git` is built into the image, and can be a useful when testing changes to the\nnotebooks or loading notebooks from other sources without having to build them\ninto the image. For example, to clone this repo into the environment to test\nchanges, open a terminal in jupyter lab and run the following command:\n\n```cmdline\n❯ git clone https://github.com/Element84/cng-workshop\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FElement84%2Fcng-workshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FElement84%2Fcng-workshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FElement84%2Fcng-workshop/lists"}