{"id":13735724,"url":"https://github.com/sentinel-hub/sentinel2-cloud-detector","last_synced_at":"2025-04-10T04:55:34.930Z","repository":{"id":37733851,"uuid":"118460797","full_name":"sentinel-hub/sentinel2-cloud-detector","owner":"sentinel-hub","description":"Sentinel Hub Cloud Detector for Sentinel-2 images in Python","archived":false,"fork":false,"pushed_at":"2024-09-27T09:10:26.000Z","size":60638,"stargazers_count":450,"open_issues_count":2,"forks_count":95,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-04-03T02:54:36.209Z","etag":null,"topics":["classification","cloud-detector","python-library","sentinel-2","sentinel-hub"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sentinel-hub.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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,"publiccode":null,"codemeta":null}},"created_at":"2018-01-22T13:28:57.000Z","updated_at":"2025-04-02T15:04:35.000Z","dependencies_parsed_at":"2024-01-13T17:13:42.556Z","dependency_job_id":"123e8556-2bb0-49fa-be7c-4e0afc634f5c","html_url":"https://github.com/sentinel-hub/sentinel2-cloud-detector","commit_stats":{"total_commits":125,"total_committers":10,"mean_commits":12.5,"dds":0.368,"last_synced_commit":"29ad01790fab4695077820fec503a9a6f766761d"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentinel-hub%2Fsentinel2-cloud-detector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentinel-hub%2Fsentinel2-cloud-detector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentinel-hub%2Fsentinel2-cloud-detector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentinel-hub%2Fsentinel2-cloud-detector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sentinel-hub","download_url":"https://codeload.github.com/sentinel-hub/sentinel2-cloud-detector/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248161256,"owners_count":21057554,"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":["classification","cloud-detector","python-library","sentinel-2","sentinel-hub"],"created_at":"2024-08-03T03:01:10.241Z","updated_at":"2025-04-10T04:55:34.911Z","avatar_url":"https://github.com/sentinel-hub.png","language":"Python","funding_links":[],"categories":["`Python` processing of optical imagery (non deep learning)","Python","Tools","Geospatial and Earth Observation"],"sub_categories":["Company specific examples","Processing"],"readme":"[![Package version](https://badge.fury.io/py/s2cloudless.svg)](https://pypi.org/project/s2cloudless)\n[![Conda version](https://img.shields.io/conda/vn/conda-forge/s2cloudless.svg)](https://anaconda.org/conda-forge/s2cloudless)\n[![Supported Python versions](https://img.shields.io/pypi/pyversions/s2cloudless.svg?style=flat-square)](https://pypi.org/project/s2cloudless)\n[![Build Status](https://github.com/sentinel-hub/sentinel2-cloud-detector/actions/workflows/ci_action.yml/badge.svg?branch=master)](https://github.com/sentinel-hub/sentinel2-cloud-detector/actions)\n[![Overall downloads](https://pepy.tech/badge/s2cloudless)](https://pepy.tech/project/s2cloudless)\n[![Last month downloads](https://pepy.tech/badge/s2cloudless/month)](https://pepy.tech/project/s2cloudless)\n[![Code coverage](https://codecov.io/gh/sentinel-hub/sentinel2-cloud-detector/branch/master/graph/badge.svg)](https://codecov.io/gh/sentinel-hub/sentinel2-cloud-detector)\n\n# Sentinel Hub's cloud detector for Sentinel-2 imagery\n\n**NOTE: s2cloudless masks are now available as a precomputed layer within Sentinel Hub. Check the [announcement blog post](https://medium.com/sentinel-hub/cloud-masks-at-your-service-6e5b2cb2ce8a) and [technical documentation](https://docs.sentinel-hub.com/api/latest/#/API/data_access?id=cloud-masks-and-cloud-probabilities).**\n\nThe **s2cloudless** Python package provides automated cloud detection in\nSentinel-2 imagery. The classification is based on a *single-scene pixel-based cloud detector*\ndeveloped by Sentinel Hub's research team and is described in more detail\n[in this blog](https://medium.com/sentinel-hub/improving-cloud-detection-with-machine-learning-c09dc5d7cf13).\n\nThe **s2cloudless** algorithm was part of an international collaborative effort aimed at intercomparing cloud detection algorithms. The s2cloudless algorithm was validated together with 9 other algorithms on 4 different test datasets and in all cases found to be on the Pareto front. See [the paper](https://www.sciencedirect.com/science/article/pii/S0034425722001043?via%3Dihub)\n\n## Installation\n\nThe package requires a Python version \u003e= 3.8. The package is available on\nthe PyPI package manager and can be installed with\n\n```\n$ pip install s2cloudless\n```\n\nTo install the package manually, clone the repository and\n```\n$ pip install .\n```\n\nOne of `s2cloudless` dependencies is `lightgbm` package. If having problems during installation, please\ncheck the [LightGBM installation guide](https://lightgbm.readthedocs.io/en/latest/Installation-Guide.html).\n\nBefore installing `s2cloudless` on **Windows**, it is recommended to install package `shapely` from\n[Unofficial Windows wheels repository](https://www.lfd.uci.edu/~gohlke/pythonlibs/)\n\n## Input: Sentinel-2 scenes\n\nThe inputs to the cloud detector are Sentinel-2 images. In particular, the cloud detector requires the following 10 Sentinel-2 band reflectances: B01, B02, B04, B05, B08, B8A, B09, B10, B11, B12, which are obtained from raw reflectance values in the following way: `B_i/10000`. From product baseline `04.00` onward additional harmonization factors have to be applied to data according to [instructions from ESA](https://sentinels.copernicus.eu/en/web/sentinel/-/copernicus-sentinel-2-major-products-upgrade-upcoming).\n\nYou don't need to worry about any of this, if you are using Sentinel-2 data obtained from [Sentinel Hub Process API](https://docs.sentinel-hub.com/api/latest/api/process/). By default, the data is already harmonized according to [documentation](https://docs.sentinel-hub.com/api/latest/data/sentinel-2-l1c/#harmonize-values). The API is supported in Python with [sentinelhub-py](https://github.com/sentinel-hub/sentinelhub-py) package and used within `s2cloudless.CloudMaskRequest` class.\n\n## Examples\n\nA Jupyter notebook on how to use the cloud detector to produce cloud mask or cloud probability map\ncan be found in the [examples folder](https://github.com/sentinel-hub/sentinel2-cloud-detector/tree/master/examples).\n\n## License\n\n\u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\"\u003e\n\u003cimg alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-sa/4.0/88x31.png\" /\u003e\u003c/a\u003e\n\u003cbr /\u003e\nThis work is licensed under a \u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\"\u003eCreative Commons Attribution-ShareAlike 4.0 International License\u003c/a\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsentinel-hub%2Fsentinel2-cloud-detector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsentinel-hub%2Fsentinel2-cloud-detector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsentinel-hub%2Fsentinel2-cloud-detector/lists"}