{"id":34251674,"url":"https://github.com/eumetsat/learn-slstr","last_synced_at":"2026-04-19T20:33:32.662Z","repository":{"id":290752977,"uuid":"955230700","full_name":"eumetsat/learn-slstr","owner":"eumetsat","description":"Repository of python-based Jupyter Notebooks for learning about using the Copernicus Sentinel-3 SLSTR sensor for marine applications.","archived":false,"fork":false,"pushed_at":"2025-07-16T15:02:08.000Z","size":114557,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-19T20:31:32.270Z","etag":null,"topics":["copernicus","earth-observation","eumetsat","jupyter-notebooks","marine","ocean","python","remote-sensing","se-ice-surface-temperature","sea-surface-temperature","sentinel-3","slstr","sst","thermal-radiometry"],"latest_commit_sha":null,"homepage":"https://user.eumetsat.int/data/themes/marine","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eumetsat.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":"CONTRIBUTING.md","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":"AUTHORS.txt","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-26T10:12:12.000Z","updated_at":"2025-10-20T03:06:15.000Z","dependencies_parsed_at":"2025-04-30T12:13:06.324Z","dependency_job_id":"e095340f-a27e-4ee3-813c-d6765180ad3a","html_url":"https://github.com/eumetsat/learn-slstr","commit_stats":null,"previous_names":["eumetsat/learn-slstr"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/eumetsat/learn-slstr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eumetsat%2Flearn-slstr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eumetsat%2Flearn-slstr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eumetsat%2Flearn-slstr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eumetsat%2Flearn-slstr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eumetsat","download_url":"https://codeload.github.com/eumetsat/learn-slstr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eumetsat%2Flearn-slstr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32022123,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["copernicus","earth-observation","eumetsat","jupyter-notebooks","marine","ocean","python","remote-sensing","se-ice-surface-temperature","sea-surface-temperature","sentinel-3","slstr","sst","thermal-radiometry"],"created_at":"2025-12-16T10:01:24.112Z","updated_at":"2026-04-19T20:33:32.631Z","avatar_url":"https://github.com/eumetsat.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Learn SLSTR\n\n\u003chr\u003e\n\n[![Python](https://img.shields.io/badge/python%203.10-anaconda-green)](https://www.anaconda.com/products/distribution)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE.txt)\n[![EUMETLAB](https://img.shields.io/badge/open-EUMETLAB-E67E22.svg)](https://gitlab.eumetsat.int/eumetlab/oceans/ocean-training/sensors/learn-slstr)\n[![USER PORTAL](https://img.shields.io/badge/open-USER%20PORTAL-154360.svg)](https://user.eumetsat.int/data/themes/marine)\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.eumetsat.int%2Feumetlab%2Foceans%2Focean-training%2Fsensors%2Flearn-slstr/HEAD?labpath=Index.ipynb)\n[![WEkEO](https://img.shields.io/badge/launch-WEKEO-1a4696.svg)](https://jupyterhub.prod.wekeo2.eu/hub/user-redirect/lab/tree/public/wekeo4oceans/learn-slstr/Index.ipynb)\n[![DestinE](https://img.shields.io/badge/launch-DestinE-f43fd3.svg)](https://code.insula.destine.eu/hub/)\n\n\u003chr\u003e\n\n## Overview\n\nThis software was developed for EUMETSAT under contract EUM/CO/21/4600002620, funded by the \nEuropean Union under the Copernicus component of the EU Space Programme. \n\nThe **learn-slstr** module consists of a collection of Python-based Jupyter Notebooks  \ndesign to demonstrate the capability of the Sea and Land Surface Temperature \nRadiometer (SLSTR), carried by the Sentinel-3 satellites, and to help users begin \nto work with its data at level-1B and level-2. \n\nFor any questions about this repository, please contact ops@eumetsat.int.\n\n## Ownership\n\nThis software and all associated intellectual property rights (IPRs) are owned by the European Union.\n\n## License\n\nThis code is licensed under an MIT license. See file LICENSE.txt for details on \nthe usage and distribution terms. No dependencies are distributed as part of this \npackage. Copyright 2024 European Union.\n\nAll product names, logos, and brands are property of their respective owners. \nAll company, product and service names used in this website are for identification \npurposes only.\n\n## Authors\n\n* [**Ben Loveday**](mailto://ops@eumetsat.int) - [EUMETSAT](http://www.eumetsat.int)\n* [**Hayley Evers-King**](mailto://ops@eumetsat.int) - [EUMETSAT](http://www.eumetsat.int)\n\nPlease see the AUTHORS.txt file for more information on contributors.\n\n## Prerequisites\n\nYou will require `Jupyter Notebook` to run this code. We recommend that you install \nthe latest [Anaconda Python distribution](https://www.anaconda.com/) for your \noperating system. Anaconda Python distributions include Jupyter Notebook.\n\n## Dependencies\n\n|item|version|licence|package info|\n|---|---|---|---|\n|bokeh|3.2.1|BSD-3|https://anaconda.org/conda-forge/bokeh|\n|cartopy|0.23.0|LGPL-3|https://scitools.org.uk/cartopy/docs/latest/copyright.html|\n|cmocean|4.0.3|MIT|https://anaconda.org/conda-forge/cmocean|\n|dask|2024.6.0|BSD-3|https://anaconda.org/conda-forge/dask|\n|distributed|2024.6.0|BSD-3|https://anaconda.org/conda-forge/distributed/| \n|hda|2.16|Apache-2.0|https://pypi.org/project/hda|\n|ipywidgets|8.1.3|BSD-3|https://anaconda.org/conda-forge/ipywidgets|\n|jupyterlab|4.2.2|BSD-3|https://anaconda.org/conda-forge/jupyterlab|\n|matplotlib|3.8.4|PSFL|https://matplotlib.org/stable/users/project/license.html|\n|netcdf4|1.7.1|MIT|https://anaconda.org/conda-forge/netcdf4|\n|python|3.10.14|PSF|https://docs.python.org/3/license.html|\n|scipy|1.13.0|BSD-3|https://anaconda.org/conda-forge/scipy|\n|xarray|2024.6.0|Apache-2.0|https://anaconda.org/conda-forge/xarray|\n|eumartools|0.0.1|MIT|https://anaconda.org/cmts/eumartools|\n|eumdac|2.2.2|MIT|https://anaconda.org/eumetsat/eumdac|\n|scikit-image|0.22.0|BSD-3|https://anaconda.org/conda-forge/scikit-image|\n|shapely|2.0.3|BSD-3|https://anaconda.org/conda-forge/shapely|\n\n## Included components\n\nNone\n\n## Installation\n\nThe simplest and best way to install these packages is via Git. Users can clone this \nrepository by running the following commands from either their [terminal](https://tinyurl.com/2s44595a) \n(on Linux/OSx), or from the [Anaconda prompt](https://docs.anaconda.com/anaconda/user-guide/getting-started/). \n\nYou can usually find your terminal in the start menu of most Linux distributions \nand in the Applications/Utilities folder  on OSx. Alternatively, you should be \nable to find/open your Anaconda prompt from your start menu (or dock, or via running \nthe Anaconda Navigator). Once you have opened a terminal/prompt, you should navigate \nto the directory where you want to put the code. Once you are in the correct directory, \nyou should run the following command;\n\n`git clone --recurse-submodules --remote-submodules https://gitlab.eumetsat.int/eumetlab/oceans/ocean-training/sensors/learn-slstr.git`\n\nThis will make a local copy of all the relevant files.\n\n*Note: If you find that you are missing packages, you should check that you ran \n`git clone` with both the `--recurse-submodules` and `--remote-submodules` options.*\n\n*Note: if you are using an older version of git, you may find that your submodules are empty. \nIn this case, you need to remove the folder and re-run the line above with `--recursive` added to the end*\n\n*Note: in some rare Anaconda instances, Git is not installed by default. To correct \nthis, you can install Git using `conda install git` from the Anaconda prompt (Windows) \nor in your terminal (OSx/Linux).*\n\n## Usage\n\nThis collection supports Python 3.10. Although many options are possible, the \nauthors highly recommend that users install the appropriate Anaconda package \nfor their operating system. In order to ensure that you have all the required \ndependencies, we recommend that you build a suitable Python environment, as \ndiscussed below.\n\n### Python environments\n\nPython allows users to create specific environments that suit their applications. \nThis tutorials included in this collection require a number of non-standard \npackages - e.g. those that are not included by default in Anaconda. In this \ndirectory, users will find a *environment.yaml* file which can be used to \nconstruct an environment that will install all the required packages.\n\nTo construct the environment, you should open either **terminal** (Linux/OSx) \nor an **Anaconda prompt** window and navigate to repository folder you downloaded \nin the **Installation** section above. In this folder there is a file called \n**environment.yml**. This contains all the information we need to install the relevant \npackages.\n\nOlder versions of the conda package manager can be very slow, so we will install a new \"solver\" that \nspeeds things up. To do this, from the Anaconda prompt (Windows) or in the terminal (OSx/Linux) \nyou can run:\n\n`conda install -n base conda-libmamba-solver`\n\nOnce the line above is run, to create out Python environment, we run:\n\n`conda env create -f environment.yml --solver=libmamba`\n\nThis will create a Python environment called **cmts_learn_slstr**. The environment \nwon't be activated by default. To activate it, run:\n\n`conda activate cmts_learn_slstr`\n\nNow you are ready to go!\n\n*Note: remember that you may need to reactivate the environment in every \nnew window instance*\n\n*Note: if you get a warning that \"solver\" is not a valid conda argument, you can \nskip the libmamba install and run:* `conda env create -f environment.yml`\n\n*Note: as you need to install libmamba solver in the conda base environment, this may not always be\npossible on cloud systems.*\n\n### Running Jupyter Lab\n\nThis module is based around a series of [Jupyter Notebooks](https://jupyter.org/), designed to be run in Jupyter Lab. \nJupyter Notebooks support high-level interactive learning by allowing us to combine code, text description and data \nvisualisations. If you have not worked with `Jupyter Notebooks` before, please look at the [Introduction to Python \nand Project Jupyter](./working-with-python/Intro_to_Python_and_Jupyter.ipynb) module to get a short introduction to \ntheir usage and benefits.\n\nTo run Jupyter Notebook, open a terminal or Anaconda prompt and make sure you have activated \nthe correct environment. Again, navigate to the repository folder. Now you can run Jupyter using:\n\n`jupyter lab` or `jupyter-lab`, depending on your operating system.\n\nThis should open Jupyter Lab in a browser window. On occasion, Jupyter may not\nbe able to open a window and will give you a URL to past in your browser. Please do\nso, if required.\n\n*Note: Jupyter Lab is not able to find antyhing that is 'above' it in a directory \ntree, and you will unable to navigate to these. So make sure you run the line above \nfrom the correct directory!*\n\nNow you can run the notebooks! We recommend you start with the [Index](./Index.ipynb) module.\n\n### Running on cloud platforms\n\nIf you are running on a remote Jupyter Hub (e.g. WEkEO or Insula) you will need to perform some additional steps to \nensure that you have the right python environment loaded in your notebook. When running locally, as long you have activated \nthe correct environment, Jupyter will load it into your the \"kernel\" which runs your code by default. On cloud systems, we \nhave to add the kernel to the system and apply it manually when we run.\n\nTo add an environment to a kernel you should first build the environment and activate it as described above. Once you have \ndone this, you can add your environment to a kernel from the command line as follows:\n\n`python -m ipykernel install --name cmts_learn_slstr --user`\n\nYou should now be able to select the kernel from the menu bar in the top right hand side of any notebook you run.\n\n*Note: it sometimes takes a few seconds for the kernel to register in the notebook itself*\n\n*Note: the above does not apply to Binder, which will load the environment supplied with the Git repository*\n\n### Collaborating, contributing and issues\n\nIf you would like to collaborate on a part of this code base or contribute to it \nplease contact us on training@eumetsat.int. If you are have issues and \nneed help, or you have found something that doesn't work, then please contact us \nat ops@eumetsat.int. We welcome your feedback!\n\n\u003chr\u003e\n\u003chr\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feumetsat%2Flearn-slstr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feumetsat%2Flearn-slstr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feumetsat%2Flearn-slstr/lists"}