GithubHelp home page GithubHelp logo

grseb9s / rio-cloudmask Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mapbox/rio-cloudmask

0.0 1.0 0.0 7.44 MB

Rasterio plugin for identifying clouds in multi-spectral satellite imagery

License: MIT License

Python 100.00%

rio-cloudmask's Introduction

Build Status Coverage Status

rio-cloudmask

Rasterio plugin for identifying clouds in multi-spectral satellite imagery.

This project is based laregely on the research by Zhu and Woodcock

as well as the subsequent fmask and cfmask software implementations.

Why build our own? The CFmask software produces excellent results but is designed to be part of a larger USGS processing framework, thus bringing with it some implementation overhead and assumptions that prevent easy integration with other systems. In short, we need a pip installable, numpy-based tool that works with GDAL raster formats and integrates well with Rasterio data processing pipelines.

Example

Given this input data from Landsat 8 (LC80130312015295LGN00)

rgb

Assuming we've already derived Top of Atmosphere (TOA) reflectance and brightness temperatures using rio-toa, we can use those to create a uint8 mask suitable for use as an alpha band in an RGBA image:

rio cloudmask LC8*_B[2-7]_toa.tif LC8*_B9_toa.tif LC8*_B10_toa.tif -o test.tif

mask

Status

The first iteration of the cloudmask algorithm implements the potential cloud layer

Still to do...

  • cloud shadow and snow detection (section 3.1 in Zhu, Woodcock 2012 with subsequent changes from 2015 paper) for Landsat 8.

  • Landsat 4-7 (TM/ETM+) sensors lack the cirrus band which is a critical component to high-quality cloud masks. However, the algorithm could be adjusted in the future by optionally ommiting the cirrus tests.

  • Sentinel 2 does not include a thermal band which is heavily used by this implementation. In the future, we may adjust the algorithm (per Zhu, Woodcock 2015, section 2.2.2) to account for this and allow for use with Sentinel 2 data.

  • The object-based cloud and show matching may be implemented at a later time if needed. (per Zhu, Woodcock 2012, section 3.2)

See also

Another Python implementation: Python Fmask

rio-cloudmask's People

Contributors

perrygeo avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.