diff --git a/docs/source/index.md b/docs/source/index.md
index 3cbd33092180976519db45e7126595b4cf4d58a8..d115fce504cc18fbad1e2309a6895de940a72394 100755
--- a/docs/source/index.md
+++ b/docs/source/index.md
@@ -68,6 +68,8 @@ classification/extract_random_points
 zonal_stats/index
 
 composite/composites
+
+other/reclassify_by_interval
 ```
 
 
diff --git a/docs/source/other/reclassify_by_interval.ipynb b/docs/source/other/reclassify_by_interval.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..9774bc698ad84ca196da5d552da33278cca027a2
--- /dev/null
+++ b/docs/source/other/reclassify_by_interval.ipynb
@@ -0,0 +1,233 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Reclassify raster by defined intervals"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 63,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "All libraries successfully imported!\n"
+     ]
+    }
+   ],
+   "source": [
+    "import rasterio\n",
+    "import numpy as np\n",
+    "import os\n",
+    "\n",
+    "print('All libraries successfully imported!')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Set directory"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 64,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "computer_path = '/export/miro/ndeffense/LBRAT2104/'\n",
+    "grp_letter    = 'X'\n",
+    "\n",
+    "# Directory for all work files\n",
+    "work_path = f'{computer_path}GROUP_{grp_letter}/WORK/'\n",
+    "\n",
+    "input_file = f'{work_path}NDVI/T31UFS_20200417T104021_NDVI.tif'\n",
+    "\n",
+    "output_file = f'{input_file[:-4]}_reclassified.tif'"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Set parameters"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 65,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[-1, -0.5, 0, 0.5, 1]\n"
+     ]
+    }
+   ],
+   "source": [
+    "nodata_val = -10000\n",
+    "\n",
+    "# User must defined intervals\n",
+    "interval = [-1,-0.5,0,0.5,1]\n",
+    "\n",
+    "dtype_out = 'int16'\n",
+    "\n",
+    "print(interval)\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Reclassify raster by defined intervals\n",
+    "\n",
+    "Return the indices of the bins to which each value in input array belongs.\n",
+    "\n",
+    "\n",
+    "| `right` |   **order of bins** |  **returned index `i` satisfies** |\n",
+    "| --- | --- |  --- |\n",
+    "|``False``|increasing | ``bins[i-1] <= x < bins[i]`` |\n",
+    "|``True``| increasing | ``bins[i-1] < x <= bins[i]`` |\n",
+    "|``False``|  decreasing | ``bins[i-1] > x >= bins[i]`` |\n",
+    "|``True``|   decreasing | ``bins[i-1] >= x > bins[i]`` |\n",
+    "\n",
+    "\n",
+    "By default, `right` = False\n",
+    "\n",
+    "If values in `x` are beyond the bounds of `bins`, 0 or ``len(bins)`` is returned as appropriate.\n",
+    "\n",
+    "https://numpy.org/doc/stable/reference/generated/numpy.digitize.html"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Example"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 66,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Original continuous values : [ 1.2 10.  12.4 15.5 20. ]\n",
+      "Interval : [ 0  5 10 15 20]\n",
+      "Reclassified discrete values : \n",
+      "[1 2 3 4 4]\n",
+      "[1 3 3 4 5]\n"
+     ]
+    }
+   ],
+   "source": [
+    "x = np.array([1.2, 10.0, 12.4, 15.5, 20.])\n",
+    "bins = np.array([0, 5, 10, 15, 20])\n",
+    "\n",
+    "inds_right_true = np.digitize(x,bins,right=True)\n",
+    "inds_right_false = np.digitize(x,bins,right=False)\n",
+    "\n",
+    "print(f'Original continuous values : {x}')\n",
+    "print(f'Interval : {bins}')\n",
+    "print('Reclassified discrete values : ')\n",
+    "print(inds_right_true)\n",
+    "print(inds_right_false)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 67,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "data type = int16\n",
+      "[[[4 4 4 ... 4 4 4]\n",
+      "  [4 4 4 ... 4 4 3]\n",
+      "  [4 4 4 ... 4 3 3]\n",
+      "  ...\n",
+      "  [4 4 4 ... 3 3 3]\n",
+      "  [4 4 4 ... 3 3 3]\n",
+      "  [4 4 4 ... 3 3 3]]]\n"
+     ]
+    }
+   ],
+   "source": [
+    "src = rasterio.open(input_file, 'r')\n",
+    "im_arr = src.read()\n",
+    "\n",
+    "# Update the dtype in raster metadata (= profile)\n",
+    "profile = src.profile\n",
+    "profile.update(dtype = dtype_out)\n",
+    "\n",
+    "\n",
+    "# Replace -10000 by np.nan\n",
+    "im_arr[im_arr==nodata_val] = np.nan\n",
+    "\n",
+    "# Create a mask with all no data value\n",
+    "mask = np.isnan(im_arr)\n",
+    "\n",
+    "# Convert interval into array\n",
+    "bins = np.array(interval)\n",
+    "\n",
+    "# Return the indices of the bins to which each value in input array belongs\n",
+    "im_arr_reclass = np.digitize(im_arr, bins, right=False)\n",
+    "\n",
+    "# Apply mask on reclassified raster\n",
+    "im_arr_reclass = np.where(mask, nodata_val, im_arr_reclass)\n",
+    "\n",
+    "# Change dtype of raster to match the dtype of profile\n",
+    "im_arr_reclass = im_arr_reclass.astype(dtype_out)\n",
+    "\n",
+    "print(f'data type = {im_arr_reclass.dtype}')\n",
+    "\n",
+    "print(im_arr_reclass)\n",
+    "\n",
+    "# Write output file\n",
+    "dst = rasterio.open(output_file, \"w\", **profile)\n",
+    "dst.write(im_arr_reclass)\n",
+    "\n",
+    "src.close()\n",
+    "dst.close()"
+   ]
+  }
+ ],
+ "metadata": {
+  "interpreter": {
+   "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6"
+  },
+  "kernelspec": {
+   "display_name": "Python 3.6.12 64-bit",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.6.12"
+  },
+  "orig_nbformat": 4
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}