Skip to content

generate masks from Landsat and MODIS land product QA band

License

Notifications You must be signed in to change notification settings

haoliangyu/pymasker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pymasker

Pymasker is a python package to generate various masks from the Landsat Quality Assessment band and MODIS land products.

Installation

The package can be shipped to your computer using pip.

pip install pymasker

Or just install it with the source code.

python setup.py install

This package depends on numpy and GDAL.

An ArcMap python toolbox based on this package could be find here.

Use Example

Python

For Landsat pre-collection and collection-1 Quality Accessment band

from pymasker import LandsatMasker
from pymasker import LandsatConfidence

# load the QA band directly
#
# The "collection" parameter is required for landsat to specify the collection
# number. Acceptable number: 0 (pre-collection), 1 (collection-1)
#
masker = LandsatMasker('LC80170302014272LGN00_BQA.TIF', collection=0)

# algorithm has high confidence that this condition exists
# (67-100 percent confidence)
conf = LandsatConfidence.high

# Get mask indicating cloud pixels with high confidence
mask = masker.get_cloud_mask(conf)

# save the result
masker.save_tif(mask, 'result.tif')

For MODIS land products

from pymasker import ModisMasker
from pymasker import ModisQuality

# load the QA band directly
masker = ModisMasker('MOD09GQ.A2015025.h12v04.005.2015027064556.hdf')

# Corrected product produced at ideal quality for all bands.
quality = ModisQuality.high

# Create a MODIS QA masker
mask = masker.get_qa_mask(quality)

# save the result
masker.save_tif(mask, 'result.tif')

Command Line

pymasker [source] [input.tif] [output.tif] [options...]

Required arguments:

source SOURCE
  source type: landsat, modis

input INPUT
  input image file path

output OUTPUT
  output raster path

Landsat arguments:

-C, --collection  LANDSAT COLLECTION NUMBER
  collection number of input image: 0 (pre-collection), 1

-c, --confidence CONFIDENCE
  level of confidence that a condition exists in a landsat image:
  high, medium, low, undefined, none

-cv, --confidence_value CONFIDENCE VALUE
   confidence values: -1, 0, 1, 2, 3

-m, --mask MASK
  pre-collection mask: fill, cloud, cirrus, water, snow
  collection-1 mask: fill, no_cloud, cloud, cloud_shadow, cirrus, snow

MODIS arguments:

-q, --quality QUALITY
  Level of data quality of MODIS land products at each pixel:
  high, medium, low, low_cloud

More Detail

The following two articles explains the mechanism behind the tool in detail.

For JavaScript Developer

node-qa-masker provides the same masking functionality in NodeJS.