Skip to main content

rindcalc

Raster Index Calculator

rind calc is a python package created to allow raster index calculation using Landsat-8 using gdal and numpy. Landsat bands are pulled directly from file downloaded from USGS containing all bands in landsat scene. Since rindcalc only requires the file in which Landsat-8 bands are contained instead of each individual band to be specified, it allows for easy, quick, and seamless index calculations from Landsat-8 imagery.

Indices: AWEIsh, AWEInsh, NDMI, MNDWI, NDVI, GNDVI, SAVI, NDBI, NDBaI, NBLI, EBBI, UI, NBRI

K means unsupervised classification module utilizes sci-kit learn's MiniBatchKMeans which provides significantly faster computation times than the standard K-means algorithm, but with slightly worse result [1]. 'No Data' values are populated with the median value of the array as the classification algorithm does not work with numpy arrays that contain 'nan' values.

Dependencies

  • GDAL (v 3.0.0 or greater)
  • numpy (v 1.0.0 or greater)
  • sci-kit learn ( v (0.22.1 or greater))

Installation

Windows

pip install rindcalc

For Windows installation gdal wheels must be installed first.

Modules

Index Modules

  • AWEIsh(landsat_dir, aweish_out)
  • AWEInsh(landsat_dir, aweinsh_out)
  • NDMI(landsat_dir, ndmi_out)
  • MNDWI(landsat_dir, mndwi_out)
  • NDVI(landsat_dir, ndvi_out)
  • GNDVI(landsat_dir)
  • SAVI(landsat_dir, soil_brightness, savi_out)
  • NDBI(landsat_dir, ndbi_out)
  • NDBaI(landsat_dir, ndbai_out)
  • NBLI(landsat_dir, nbli_out)
  • EBBI(landsat_dir, ebbi_out)
  • UI(landsat_dir, ui_out )
  • NBRI(landsat_dir, nbri_out)

landsat_dir = Landsat-8 folder that contains all bands

*_out = out file raster will be saved as

i.e. Landsat-8 folder structure:

.
|--LC08_L1TP_091086_20191222_20191223_01_RT                     Landsat Folder ex. #1
|   |-- LC08_L1TP_091086_20191222_20191223_01_RT_B1.TIF
|   |-- LC08_L1TP_091086_20191222_20191223_01_RT_B2.TIF
|   |-- LC08_L1TP_091086_20191222_20191223_01_RT_B3.TIF
|   |-- ...
|-- 2019_12_22                                                  Landsat Folder ex. #2
|   |-- LC08_L1TP_091086_20191222_20191223_01_RT_B1.TIF
|   |-- LC08_L1TP_091086_20191222_20191223_01_RT_B2.TIF
|   |-- LC08_L1TP_091086_20191222_20191223_01_RT_B3.TIF
|   |-- ...

K Means Classification Module

  • k_means(input_raster, out_raster, clusters, itr, batch_size)

clusters = Number of classes wanted

itr = Number of iterations to perform

batch_size = Size of mini batches

EX:

import rindcalc as rc
landsat_dir = 'C:/.../.../LC08_L1TP_091086_20191222_20191223_01_RT'
ndvi_out = 'C:/.../.../NDVI_1.tif'
rc.NDVI(landsat_dir, ndvi_out)

OR:

import rindcalc as rc
rc.NDVI(landsat_dir = 'C:/.../.../2019_12_22', ndvi_out = 'C:/.../.../NDVI_2.tif')

KMEANS EX:

import rindcalc as rc
input_raster = 'C:/.../.../NDVI.tif'
out_raster = 'C:/.../.../NDVI_K.TIF'
clusters = 2
itr = 10
batch_size = 50
rc.k_means(input_raster, out_raster, clusters, itr, batch_size)

Landsat-8 Bands

Band Number Name µm Resolution
1 Coastal/Aerosal 0.433–0.453 30 m
2 Blue 0.450–0.515 30 m
3 Green 0.525–0.600 30 m
4 Red 0.630–0.680 30 m
5 NIR 0.845–0.885 30 m
6 SWIR 1 1.560–1.660 30 m
7 SWIR 2 2.100–2.300 30 m
8 Panchromatic 0.500–0.680 15 m
9 Cirrus 1.360–1.390 30 m
10 TIR 1 10.6-11.2 100 m
11 TIR 2 11.5-12.5 100 m

Indices

Water

  • AWEIsh = ((Blue + 2.5 * Green - 1.5 * (NIR + SWIR1) - 0.25 * SWIR2)) / (Blue + Green + NIR + SWIR1 + SWIR2)

  • AWEInsh = ((4 * (green_band - swir1_band) - (0.25 * nir_band + 2.75 * swir1_band)) / (green_band + swir1_band + nir_band))

  • NDWI = ((nir_band - swir1_band) / (nir_band + swir1_band))

  • MNDWI = ((Green - SWIR1) / (Green + SWIR1))

Moisture

  • NDMI = ((NIR - SWIR1) / (NIR + SWIR1))

Vegetation

  • NDVI = ((NIR - Red) / (NIR + Red))

  • Green NDVI (GNDVI) = ((nir_band - green_band) / (nir_band + green_band))

  • SAVI = ((NIR - Red) / (NIR + Red + L)) x (1 + L)

    • L = Soil Brightness Factor
  • MSAVI2 = (((2 * nir_band + 1) - (np.sqrt(((2 * nir_band + 1)**2) - 8 * (nir_band - red_band)))) / 2)

Urban/Landscape

  • NDBI = (SWIR1 - NIR) / (SWIR1 + NIR)

  • NDBaI = ((SWIR1 - TIR) / (SWIR1 + TIR))

  • NBLI = ((Red - TIR) / (Red + TIR))

  • EBBI = ((swir1_band - nir_band) / (10 * (np.sqrt(swir1_band + tir_band))))

  • UI = ((swir2_band - nir_band) / (swir2_band + nir_band))

Fire

  • NBRI = ((nir_band - swir2_band) / (nir_band + swir2_band))

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rindcalc-1.1.1.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rindcalc-1.1.1-py3-none-any.whl (27.2 kB view details)

Uploaded Python 3

File details

Details for the file rindcalc-1.1.1.tar.gz.

File metadata

  • Download URL: rindcalc-1.1.1.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for rindcalc-1.1.1.tar.gz
Algorithm Hash digest
SHA256 8e8faf35fbc4367b81cd03f255dfd2d108a7b0efeb615d3437df29f2dc4c0404
MD5 a40ff4e9bb6fb66d7503e1a6d3b75ae5
BLAKE2b-256 debd58e2aaa66b63662c8f75da9d2f9982c0234d8ebc4ffae42005fd4e2ac037

See more details on using hashes here.

File details

Details for the file rindcalc-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: rindcalc-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 27.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for rindcalc-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ac5f0482851cd174c7b7ef63ab2459d35f43e33ea0158fd89850ace94962c06e
MD5 b46bddb6c479acffb6cb910054097087
BLAKE2b-256 e9b08cc06b500168f0c958e8aa0a741567911557fea7f689bf930a23864d775a

See more details on using hashes here.

Release history Release notifications | RSS feed

3.0.0

2 files

2.0.5

2 files

2.0.4

2 files

2.0.3

2 files

2.0.2

2 files

2.0.1

2 files

2.0.0

1 file

1.2.9

2 files

1.2.8

2 files

1.2.7

2 files

1.2.6

2 files

1.2.5

2 files

1.2.4

2 files

1.2.3

2 files

1.2.2

2 files

1.2.1

2 files

1.2.0

2 files

1.1.5

2 files

1.1.4

2 files

1.1.3

2 files

1.1.2

2 files

This release

1.1.1 This release

2 files

1.1.0

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page