vegindex 0.10.2
Python tools for generating vegetation index timeseries from PhenoCam images.
License: MIT
Keywords: phenology,phenocam,vegetation,index

========
vegindex
========

.. image:: https://img.shields.io/pypi/v/vegindex.svg
       :alt: PyPI Package latest release
       :target: https://pypi.org/project/vegindex

.. image:: https://github.com/tmilliman/python-vegindex/actions/workflows/ci.yml/badge.svg
       :target: https://github.com/tmilliman/python-vegindex/
       :alt: Github CI Action Status

.. image:: https://readthedocs.org/projects/python-vegindex/badge/?version=latest
       :target: https://python-vegindex.readthedocs.io/en/latest/?badge=latest
       :alt: Documentation Status

.. image:: https://img.shields.io/pypi/pyversions/vegindex.svg
       :target: https://pypi.org/project/vegindex
       :alt: Supported versions

Python tools for generating vegetation index timeseries from PhenoCam images.

* Free software: MIT license

Introduction
============

The PhenoCam Network is a project designed to study the patterns of
seasonal variation (phenology) of vegetation.  The project website is
at `https://phenocam.nau.edu/ <https://phenocam.nau.edu/webcam/>`_.  The
network consists of many cameras collecting images of various types of
vegetation.  By analysing the images we can quantify the seasonal
changes at a particular camera site.

A "vegetation index" refers to a quantity calculated using information
from various spectral bands of an image of a vegetated area.  The image is
typically obtained from a remote-sensing instrument on an earth
orbiting satellite. There are several vegetation index values in
common usage.  The most widely used are NDVI (Normalized Difference
Vegetation Index) and EVI (Enhanced Vegetation Index).  For the PhenoCam
project the Green Chromatic Coordinate or GCC is our standard vegetation
index.

For the PhenoCam network, the images are obtained from webcams (usually
installed on towers) looking across a vegetated landscape.  These
images are typically in JPEG format and have 3-bands (Red, Green, and
Blue).  For some cameras a separate image dominated by an IR (infrared)
band is collected.

The algorithms used in in this package have been discussed in numerous
publications.  You can find a list of publications for the PhenoCam
Network project `here <https://phenocam.nau.edu/webcam/publications/>`_.
The details of the calculation of GCC are presented in this
`jupyter notebook <https://nbviewer.org/github/tmilliman/phenocam_notebooks/blob/master/Standard_Processing_ROI_Stats/PhenoCam_ROI_stats.ipynb>`_
.

..
   Richardson, A.D., Hufkens, K., Milliman, T., Aubrecht, D.M.,
   Chen, M., Gray, J.M., Johnston, M.R., Keenan, T.F., Klosterman,
   S.T., Kosmala, M., Melaas, E.K., Friedl, M.A., Frolking, S. 2017.
   Vegetation Phenology from PhenoCam v1.0. ORNL DAAC, Oak Ridge, Tennessee,
   USA. https://doi.org/10.3334/ORNLDAAC/1358


After the package is installed several python scripts should be
available as commands:

* ``generate_roi_timeseries``
* ``update_roi_timeseries``
* ``plot_roistats``
* ``generate_summary_timeseries``
* ``generate_roi_ir_timeseries``
* ``update_roi_ir_timeseries``
* ``generate_ndvi_timeseries``
* ``generate_ndvi_summary_timeseries``

These scripts allow you to reproduce the PhenoCam network
"standard timeseries products" from downloaded data.  For a description
of the products see the project
`Tools Page <https://phenocam.nau.edu/webcam/tools/>`_.


Quick Installation
==================

From the command line type:

::

   pip install vegindex


Some of the packages that ``vegindex`` depends on may not install
automatically (using ``pip``) since they depend on system libraries.
If the above command does not work you can try:

::

   pip install Pillow
   pip install vegindex


The latest version of the documentation can be found at
`readthedocs.io <https://python-vegindex.readthedocs.io/en/latest/>`_

Changelog
=========
0.10.2 (2022-07-27)
* Fix bug in update_summary_timeseries
* change references to UNH to NAU
  
0.10.0 (2021-11-30)
-------------------
* Add 3.9 tox environment to tox.ini
* Add IR and camera NDVI processing scripts
* Drop support for python2

0.7.2 (2020-04-12)
------------------
* Add 3.8 tox environment to tox.ini

0.7.0 (2020-04-01)
------------------
* Add checks when reading an ROI List CSV file that the
  time ranges are in order and don't overlap

0.6.1 (2019-07-15)
------------------
* Update installation doc.
* Simple test for reading roistats file.

0.6.0 (2019-07-12)
------------------
* Add awbflag (auto white-balance) to roistats file

0.5.3 (2019-04-03)
------------------
* Update requirements for python 3.7
* Add prefix to regular expressions

0.5.2 (2018-04-09)
------------------
* Really fix bug in plot_roistats when no data are filtered.

0.5.1 (2018-04-09)
------------------
* Fix bug in plot_roistats when no data are filtered.
* Update docs

0.5.0 (2017-11-29)
--------------------
* Fix header on roistats.csv file
* Add plotting script (matplotlib library is now required)
* Remove timeout on requests query which was causing
  tests to fail.
* Update usage docs

0.4.0 (2017-11-27)
--------------------
* Add fallback to local site_info.csv file to get basic site metadata
* Update exception handling (removed bare exceptions)

0.3.1 (2017-10-06)
---------------------
* Change data product name from _roi_statistics.csv to _roistats.csv

0.3.0 (2017-09-12)
---------------------
* Added support for .meta files
* Change data product name from _timeseries.csv to _roi_statistics.csv

0.2.0rc1 (2017-06-14)
---------------------
* Added support for python3

0.1.1rc3 (2017-06-13)
----------------------
* First release on PyPI.