{ "info": { "author": "Charles Morton", "author_email": "charles.morton@dri.edu", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3.6" ], "description": "======================\nOpenET - NDVI ET Model\n======================\n\n|version| |build| |codecov|\n\n**WARNING: This code is in development, is being provided without support, and is subject to change at any time without notification**\n\nThis repository provides an Earth Engine Python API based implementation of a simple model for computing evapotranspiration (ET) as a linear function of the normalized difference vegetation index (NDVI). In this model, the fraction of reference ET (ETf) is computed as:\n\n.. math::\n\n ETf = m * NDVI + b\n\nwhere m and b have defaults of 1.25 and 0.0 respectively. The actual ET is computed as:\n\n.. math::\n\n ET = ETf * ETr\n\nInput Collections\n=================\n\nThe NDVI ET model is currently implemented for the following Earth Engine image collections:\n\nLandsat TOA\n * LANDSAT/LC08/C01/T1_TOA or LANDSAT/LC08/C01/T1_RT_TOA\n * LANDSAT/LE07/C01/T1_TOA or LANDSAT/LE07/C01/T1_RT_TOA\n * LANDSAT/LT05/C01/T1_TOA\n * LANDSAT/LT04/C01/T1_TOA\nLandsat SR\n * LANDSAT/LC08/C01/T1_SR\n * LANDSAT/LE07/C01/T1_SR\n * LANDSAT/LT05/C01/T1_SR\n * LANDSAT/LT04/C01/T1_SR\nSentinel 2 TOA\n * COPERNICUS/S2\n\nModel Structure\n===============\n\nThe primary way of interact with the NDVI-ET model are through the \"Collection\" and \"Image\" classes.\n\nCollection\n==========\n\nThe Collection class should be used to generate image collections of ET (and and other model `Variables`_). These collections can be for image \"overpass\" dates only or interpolated to daily, monthly, or annual time steps. The collections can be built for multiple input collections types, such as merging Landsat 8 and Sentinel 2.\n\nThe Collection class is built based on a list of input collections ID's, a date range, and a study area geometry.\n\nRequired Inputs\n---------------\n\ncollections\n List of Earth Engine collection IDs (see `Input Collections`_).\nstart_date\n ISO format start date string (i.e. YYYY-MM-DD) that is passed directly to the collection .filterDate() calls.\nend_date\n ISO format end date string that is passed directly to .filterDate() calls. The end date must be exclusive (i.e. data will go up to this date but not include it).\ngeometry\n ee.Geometry() that is passed to the collection .filterBounds() calls.\n All images with a footprint that intersects the geometry will be included.\n\nOptional Inputs\n---------------\n\netr_source\n Reference ET source collection ID.\n Optional, the default is 'IDAHO_EPSCOR/GRIDMET'.\netr_band\n Reference ET source band name.\n Optional, the default is 'etr'.\ncloud_cover_max\n Maximum cloud cover percentage.\n The input collections will be filtered to images with a cloud cover percentage less than this value.\n Optional, the default is 70 (%).\nfilter_args\n Custom filter arguments for teh input collections.\n This parameter is not yet fully implemented.\nmodel_args\n A dictionary of argument to pass through to the Image class initialization.\n This parameter is not yet fully implemented.\n\nOverpass Method\n---------------\n\nvariables\n List of variables to calculate/return.\n\nInterpolate Method\n------------------\n\nvariables\n List of variables to calculate/return.\nt_interval\n Time interval over which to interpolate and aggregate values.\n Choices: 'daily', 'monthly', 'annual', 'custom'\n Optional, the default is 'custom'.\ninterp_method\n Interpolation method.\n Choices: 'linear'\n Optional, the default is 'linear'.\ninterp_days\n Number of extra days before the start date and after the end date to include in the interpolation calculation.\n Optional, the default is 32.\n\nCollection Examples\n-------------------\n\n.. code-block:: python\n\n import openet.ndvi as ndvi_et\n\n overpass_coll = ndvi_et.Collection(\n collections=['LANDSAT/LC08/C01/T1_TOA'],\n start_date='2017-06-01',\n end_date='2017-09-01',\n geometry=ee.Geometry.Point(-121.5265, 38.7399),\n etr_source='IDAHO_EPSCOR/GRIDMET',\n etr_band='etr') \\\n .overpass(variables=['et', 'etr', 'etf'])\n\n monthly_coll = ndvi_et.Collection(\n collections=['LANDSAT/LC08/C01/T1_TOA'],\n start_date='2017-06-01',\n end_date='2017-09-01',\n geometry=ee.Geometry.Point(-121.5265, 38.7399),\n etr_source='IDAHO_EPSCOR/GRIDMET',\n etr_band='etr') \\\n .interpolate(variables=['et', 'etr', 'etf'] t_interval='monthly')\n\nImage\n=====\n\nThe Image class should be used to process a single image, an image collection with custom filtering, or to apply custom parameters to each image in a collection.\n\nTypically the NDVI-ET Image is initialized using one of the collection/sensor specific helper methods listed below (see below). These methods rename the bands to a common naming scheme, apply basic cloud masking, and .\n\nImage collections can be built by mapping one of the helper methods over an image collection. Please see the `Image Mapping `__ example notebook for more details.\n\nThe Image class can also be initialized using any Earth Engine image with an 'ndvi' band and a 'system:time_start' property.\n\nLandsat Collection 1 Top-of-Atmosphere (TOA) Input Image\n--------------------------------------------------------\n\nTo instantiate the class for a Landsat Collection 1 TOA image, use the Image.from_landsat_c1_toa() method.\n\nThe input Landsat image must have the following bands and properties:\n\n================= =============================================\nSPACECRAFT_ID Band Names\n================= =============================================\nLANDSAT_4 B1, B2, B3, B4, B5, B7, B6, BQA\nLANDSAT_5 B1, B2, B3, B4, B5, B7, B6, BQA\nLANDSAT_7 B1, B2, B3, B4, B5, B7, B6_VCID_1, BQA\nLANDSAT_8 B2, B3, B4, B5, B6, B7, B10, BQA\n================= =============================================\n\n================= =============================================\nProperty Description\n================= =============================================\nsystem:index - Landsat Scene ID\n - Must be in the Earth Engine format (e.g. LC08_044033_20170716)\nsystem:time_start Image datetime in milliseconds since 1970\nSPACECRAFT_ID - Used to determine which Landsat type (for band renaming)\n - Must be: LANDSAT_4, LANDSAT_5, LANDSAT_7, or LANDSAT_8\n================= =============================================\n\nLandsat Collection 1 Surface Reflectance (SR) Input Image\n---------------------------------------------------------\n\nTo instantiate the class for a Landsat Collection 1 SR image, use the Image.from_landsat_c1_sr() method.\n\nThe input Landsat image must have the following bands and properties:\n\n================= =============================================\nSATELLITE Band Names\n================= =============================================\nLANDSAT_4 B1, B2, B3, B4, B5, B7, B6, pixel_qa\nLANDSAT_5 B1, B2, B3, B4, B5, B7, B6, pixel_qa\nLANDSAT_7 B1, B2, B3, B4, B5, B7, B6, pixel_qa\nLANDSAT_8 B2, B3, B4, B5, B6, B7, B10, pixel_qa\n================= =============================================\n\n================= =============================================\nProperty Description\n================= =============================================\nsystem:index - Landsat Scene ID\n - Must be in the Earth Engine format (e.g. LC08_044033_20170716)\nsystem:time_start Image datetime in milliseconds since 1970\nSATELLITE - Used to determine which Landsat type (for band renaming)\n - Must be: LANDSAT_4, LANDSAT_5, LANDSAT_7, or LANDSAT_8\n================= =============================================\n\nSentinel 2 TOA Input Image\n--------------------------\n\nTo instantiate the class for a Landsat Collection 1 TOA image, use the Image.from_sentinel2_toa() method.\n\nThe input Landsat image must have the following bands and properties:\n\n================= =============================================\nSPACECRAFT_NAME Band Names\n================= =============================================\nSentinel-2A B2, B3, B4, B8, B11, B12, QA60\nSentinel-2B B2, B3, B4, B8, B11, B12, QA60\n================= =============================================\n\n================= =============================================\nProperty Description\n================= =============================================\nsystem:index - Sentinel 2 Scene ID\n - Must be in the Earth Engine format (e.g. 20180716T183929_20180716T185042_T10SGJ)\nsystem:time_start Image datetime in milliseconds since 1970\nSPACECRAFT_NAME - Used to determine which Sentinel 2 type\n - Must be: Sentinel-2A or Sentinel-2B\n - Not currently used or checked\n================= =============================================\n\nImage Example\n-------------\n\n.. code-block:: python\n\n import openet.ndvi as ndvi_et\n landsat_img = ee.Image('LANDSAT/LC08/C01/T1_TOA/LC08_044033_20170716')\n et_img = ndvi_et.Image.from_landsat_c1_toa(\n landsat_img, etr_source='IDAHO_EPSCOR/GRIDMET', etr_band='etr).et\n\nVariables\n=========\n\nThe NDVI-ET model can compute the following variables:\n\nndvi\n Normalized difference vegetation index [unitless]\netf\n Fraction of reference ET [unitless]\netr\n Reference ET (alfalfa) [mm]\net\n Actual ET [mm]\n\nThere is also a more general \"calculate\" method that can be used to return a multiband image of multiple variables (see example...)\n\nReference ET\n============\n\nThe reference ET data source is controlled using the \"etr_source\" and \"etr_band\" parameters.\n\nThe model is expecting an alfalfa reference ET (ETr) and will not return valid results if a grass reference ET (ETo) is used.\n\nReference ET Sources\n--------------------\n\nGRIDMET\n | Collection ID: IDAHO_EPSCOR/GRIDMET\n | http://www.climatologylab.org/gridmet.html\nSpatial CIMIS\n | Collection ID: projects/openet/cimis/daily\n | https://cimis.water.ca.gov/SpatialData.aspx\n\nExample Notebooks\n=================\n\nDetailed Jupyter Notebooks of the various approaches for calling the OpenET NDVI ET model are provided in the \"examples\" folder.\n\n * `Computing daily ET for a single Landsat image `__\n * `Computing a collection of \"overpass\" ET images `__\n * `Computing a collection of interpolated monthly ET images `__\n\nInstallation\n============\n\nThe python OpenET NDVI based ET module can be installed via pip:\n\n.. code-block:: console\n\n pip install openet-ndvi\n\nDependencies\n============\n\n * `earthengine-api `__\n * `openet-core `__\n\nOpenET Namespace Package\n========================\n\nEach OpenET model is stored in the \"openet\" folder (namespace). The model can then be imported as a \"dot\" submodule of the main openet module.\n\n.. code-block:: console\n\n import openet.ndvi as ndvi_et\n\nDevelopment and Testing\n=======================\n\nPlease see the `CONTRIBUTING.rst `__.\n\nReferences\n==========\n\n\n\n.. |build| image:: https://travis-ci.org/Open-ET/openet-ndvi-beta.svg?branch=master\n :alt: Build status\n :target: https://travis-ci.org/Open-ET/openet-ndvi-beta\n.. |version| image:: https://badge.fury.io/py/openet-ndvi.svg\n :alt: Latest version on PyPI\n :target: https://badge.fury.io/py/openet-ndvi\n.. |codecov| image:: https://codecov.io/gh/Open-ET/openet-ndvi-beta/branch/master/graphs/badge.svg\n :alt: Coverage Status\n :target: https://codecov.io/gh/Open-ET/openet-ndvi-beta", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/Open-ET/openet-ndvi-beta/archive/v0.0.9.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Open-ET/openet-ndvi-beta", "keywords": "NDVI OpenET Evapotranspiration Earth Engine", "license": "Apache", "maintainer": "", "maintainer_email": "", "name": "openet-ndvi", "package_url": "https://pypi.org/project/openet-ndvi/", "platform": "", "project_url": "https://pypi.org/project/openet-ndvi/", "project_urls": { "Download": "https://github.com/Open-ET/openet-ndvi-beta/archive/v0.0.9.tar.gz", "Homepage": "https://github.com/Open-ET/openet-ndvi-beta" }, "release_url": "https://pypi.org/project/openet-ndvi/0.0.9/", "requires_dist": null, "requires_python": "", "summary": "Earth Engine based NDVI ET Model", "version": "0.0.9" }, "last_serial": 4872052, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "c3f053f6d2b439cd028a623086457894", "sha256": "a92c2e3e4e55750ee9ddb712bd9e0d8c401f69e54bc82292dd21898d7932ac33" }, "downloads": -1, "filename": "openet-ndvi-0.0.1.tar.gz", "has_sig": false, "md5_digest": "c3f053f6d2b439cd028a623086457894", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11447, "upload_time": "2018-08-30T17:57:58", "url": "https://files.pythonhosted.org/packages/02/9f/57f3d22f186d61a9887eedd4402699a51dc8066dd2e3f4b51193a2c9f783/openet-ndvi-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "3cb2945b042822cbbf350170b8faf53a", "sha256": "a4597d0db4bc837411fbc46ddd17a5ea58436a2ecebc17cce2e72aeeac10da48" }, "downloads": -1, "filename": "openet-ndvi-0.0.2.tar.gz", "has_sig": false, "md5_digest": "3cb2945b042822cbbf350170b8faf53a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11439, "upload_time": "2018-08-30T22:32:25", "url": "https://files.pythonhosted.org/packages/5d/60/a6e9f80bfbff5d1fa05fd952647bfded6c1bf5af83b03f3485cb741e3f5d/openet-ndvi-0.0.2.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "7e0b2a70e51140a55ce76ed42d83aec6", "sha256": "4b12394728352f4a5c75c86d2df0f88b508d9176a27065094fe06f540a0d2baf" }, "downloads": -1, "filename": "openet-ndvi-0.0.4.tar.gz", "has_sig": false, "md5_digest": "7e0b2a70e51140a55ce76ed42d83aec6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11876, "upload_time": "2018-11-21T16:16:34", "url": "https://files.pythonhosted.org/packages/29/fb/e3bbbc08152632e281191f2a6c2ada0c2cdddff231a0f31f97b580c7c7a2/openet-ndvi-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "55f9e843a4fc36e89698c63b471df826", "sha256": "1c98dc970eab85c600e363704a9ed8a5ee05a96f8477d19403ef290e2a73867d" }, "downloads": -1, "filename": "openet-ndvi-0.0.5.tar.gz", "has_sig": false, "md5_digest": "55f9e843a4fc36e89698c63b471df826", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11879, "upload_time": "2018-11-21T16:30:35", "url": "https://files.pythonhosted.org/packages/11/14/00d02e3d03e14005dd625f888dac150f4247d73af6af7314111fed6e4228/openet-ndvi-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "4fb785df84dcf0c79b885251e772d50f", "sha256": "ac35542f30ccbeccedd7931cb3b9a532324e7aaf96e3daae93340637658ead18" }, "downloads": -1, "filename": "openet-ndvi-0.0.6.tar.gz", "has_sig": false, "md5_digest": "4fb785df84dcf0c79b885251e772d50f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11914, "upload_time": "2018-11-22T20:17:36", "url": "https://files.pythonhosted.org/packages/43/66/1fbc1aaf10ffa2548b237a8bc94d1bb86861c02784a10937a039e488f965/openet-ndvi-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "058deeb1612f4390683de37c81d5d451", "sha256": "74af7e04d7f44c02e02ac410fbbd8ca4493554eb56fd6722d2c7fed5448e709c" }, "downloads": -1, "filename": "openet-ndvi-0.0.7.tar.gz", "has_sig": false, "md5_digest": "058deeb1612f4390683de37c81d5d451", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23293, "upload_time": "2019-02-21T01:17:57", "url": "https://files.pythonhosted.org/packages/00/e8/346bbd23856a4a309358a7fbac0273fa96bf56f950ffd5bcfc4b26894a3f/openet-ndvi-0.0.7.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "eded14febd40ab6cc29acd1c476e5085", "sha256": "904d38bbcefd11339a0c520782a831be28b86dd66b3531f04f9dbceabab8ab62" }, "downloads": -1, "filename": "openet-ndvi-0.0.9.tar.gz", "has_sig": false, "md5_digest": "eded14febd40ab6cc29acd1c476e5085", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26597, "upload_time": "2019-02-27T00:24:48", "url": "https://files.pythonhosted.org/packages/0e/53/636fa4aba03d513b7dea13761ad02621fc73e0064916f3607a61538b3126/openet-ndvi-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "eded14febd40ab6cc29acd1c476e5085", "sha256": "904d38bbcefd11339a0c520782a831be28b86dd66b3531f04f9dbceabab8ab62" }, "downloads": -1, "filename": "openet-ndvi-0.0.9.tar.gz", "has_sig": false, "md5_digest": "eded14febd40ab6cc29acd1c476e5085", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26597, "upload_time": "2019-02-27T00:24:48", "url": "https://files.pythonhosted.org/packages/0e/53/636fa4aba03d513b7dea13761ad02621fc73e0064916f3607a61538b3126/openet-ndvi-0.0.9.tar.gz" } ] }