{"id":32175392,"url":"https://github.com/kaust-halo/geeet","last_synced_at":"2026-02-18T22:02:15.360Z","repository":{"id":43486127,"uuid":"345270585","full_name":"kaust-halo/geeet","owner":"kaust-halo","description":"Evapotranspiration (ET) models for use in python and with integration into Google Earth Engine","archived":false,"fork":false,"pushed_at":"2025-04-23T09:30:56.000Z","size":55296,"stargazers_count":64,"open_issues_count":3,"forks_count":16,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-10-21T19:40:55.514Z","etag":null,"topics":["evaporation","evapotranspiration","gee","google-earth-engine","remote-sensing","satellite-data","tseb"],"latest_commit_sha":null,"homepage":"https://kaust-halo.github.io/geeet/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kaust-halo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-03-07T05:59:02.000Z","updated_at":"2025-10-09T06:24:06.000Z","dependencies_parsed_at":"2025-04-23T10:39:43.943Z","dependency_job_id":null,"html_url":"https://github.com/kaust-halo/geeet","commit_stats":{"total_commits":51,"total_committers":3,"mean_commits":17.0,"dds":0.2941176470588235,"last_synced_commit":"447146ee8dbc02cc0386624aa95432a981c4bf87"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/kaust-halo/geeet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaust-halo%2Fgeeet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaust-halo%2Fgeeet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaust-halo%2Fgeeet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaust-halo%2Fgeeet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kaust-halo","download_url":"https://codeload.github.com/kaust-halo/geeet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaust-halo%2Fgeeet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29596329,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T20:59:56.587Z","status":"ssl_error","status_checked_at":"2026-02-18T20:58:41.434Z","response_time":162,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["evaporation","evapotranspiration","gee","google-earth-engine","remote-sensing","satellite-data","tseb"],"created_at":"2025-10-21T19:35:08.579Z","updated_at":"2026-02-18T22:02:15.355Z","avatar_url":"https://github.com/kaust-halo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# geeet\n\n[![image](https://img.shields.io/pypi/v/geeet.svg)](https://pypi.python.org/pypi/geeet)\n[![image](https://static.pepy.tech/badge/geeet)](https://pepy.tech/project/geeet)\n[![image](https://img.shields.io/conda/vn/conda-forge/geeet.svg)](https://anaconda.org/conda-forge/geeet)\n![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/geeet.svg)\n[![image](https://github.com/kaust-halo/geeet/workflows/Linux%20build/badge.svg)](https://github.com/kaust-halo/geeet/actions)\n[![image](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n**Evapotranspiration (ET) models for use in python and with integration into Google Earth Engine.**\n\n*geeet* provides hybrid evapotranspiration (ET) models that work with numerical values and with Google Earth Engine images.\n\n- GitHub repo: https://github.com/kaust-halo/geeet\n- PyPI: https://pypi.org/project/geeet/\n- Conda-forge: https://anaconda.org/conda-forge/geeet\n- Free software: MIT license\n\nInputs to geeet models can be given as [numpy arrays](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html), an [xarray.Dataset](https://docs.xarray.dev/en/stable/generated/xarray.Dataset.html), or a [ee.Image](https://developers.google.com/earth-engine/apidocs/ee-image).\n\n## Introduction\n\n*geeet* is a Python package providing a common set of building blocks for estimating evapotranspiration (ET) from remote sensing observations. It also features complete ET models such as [PT-JPL](https://doi.org/10.1016/j.rse.2007.06.025) and [TSEB](https://doi.org/10.1016/0168-1923(95)02265-Y). All modules in *geeet* are designed to work with input data provided in two formats: (1) as [numpy ndarrays](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html) and (2) as [Google Earth Engine](https://earthengine.google.com/) (GEE) [images](https://developers.google.com/earth-engine/apidocs/ee-image). GEE is a cloud-based platform dedicated to Earth observation research that offers a [multi-petabyte catalogue](https://developers.google.com/earth-engine/datasets/) of geospatial data. Importantly, GEE offers cloud computing capabilities, which means that a user can interact with this geospatial data directly without having to download or process any data on premises. Access to these cloud-based services requires [signing up for a GEE account](https://earthengine.google.com/signup/). The *geeet* Python package was created to offer ET modeling tools that work for any user, whether they have a GEE account or not. For this reason, numpy is the only requirement for *geeet*.\n\n\u003e Integration of geeet with xarray and especially lazy evaluation using dask is currently under development, with the goal of estimating ET using cloud-based assets (e.g., Cloud Optimized Geotiffs through a Spatio Temporal Asset Catalog (STAC)).\n\n## Installation\n\n*geeet* is available on the [Python Package Index (pip)](https://pypi.org/project/geeet/). To install *geeet* using pip, run this command:\n\n```bash\npip install geeet\n```\n\nIf you want to install the latest development version hosted on github, run this command:\n\n```bash\npip install git+https://github.com/kaust-halo/geeet\n```\n\n*geeet* is also available on [conda-forge](https://anaconda.org/conda-forge/geeet). To install *geeet* using conda, run this command:\n\n```bash\nconda install -c conda-forge geeet\n```\n\nThe only requirement is a modern python installation (e.g. \u003e3.7) and [numpy](https://numpy.org/). However, to test any of the *GEE* capabilities of *geeet* you will need to install the Python earthengine API (available through [pip](https://pypi.org/project/earthengine-api/) and [conda](https://anaconda.org/conda-forge/earthengine-api)), and have a [GEE account](https://earthengine.google.com/signup/).\n\n## Quick start\n\nIf you have a GEE account and the earthengine API installed, we recommend first taking a look at [this notebook](https://github.com/kaust-halo/geeet/blob/main/examples/notebooks/01_geeet.ipynb) demonstrating the basic use of the hybrid ET models with a simple toy example. In a nutshell, running one of the pre-built models can be done in two lines of code, e.g.:\n\n```python\nfrom geeet.tseb import import tseb_series\net_tseb = tseb_series(img = sample_tseb_inputs) \n```\n\nwhere `sample_tseb_inputs` is either a `ee.Image` or `xarray.Dataset` containing all the necessary inputs for the TSEB model.\n\n*geeet* models can also be mapped to an [`ee.ImageCollection`](https://developers.google.com/earth-engine/guides/ic_creating), e.g.:\n\n```python\nfrom geeet.ptjpl import ptjpl_arid\net_outputs = et_inputs.map(ptjpl_arid)\n```\n\nwhere `et_inputs` is an `ee.ImageCollection` with the required inputs.\n\n## PT-JPL model for arid environments (as described in [Aragon et al., 2018](http://dx.doi.org/10.3390/rs10121867))\n\nThis [notebook](./examples/notebooks/02_demo_using_GEE_data.ipynb) is a self-contained example that demonstrates the use of real GEE datasets with this PT-JPL model.\n\nYou can preview a pre-processed output of this example [here](https://code.earthengine.google.com/?scriptPath=users%2Flopezvoliver%2Fgeeet%3Aptjpl_sample_outputs_coarse) (requires a GEE account).  \n\n## Two-source Energy Balance model ([TSEB](https://doi.org/10.1016/0168-1923(95)02265-Y))\n\n*geeet* includes a two-source energy balance model mostly based on the original parameterizations of [Norman et al., 1995](https://doi.org/10.1016/0168-1923(95)02265-Y). Specifically, it initializes the estimates of the temperatures of the soil and the canopy layers using a Priestley-Taylor equation. It then iteratively updates the temperatures, energy fluxes, and resistance values using the in-series resistance network parameterization.\n\nA pre-defined TSEB model with [Landsat](https://github.com/kaust-halo/geeet/blob/main/examples/notebooks/03_eepredefined_landsat_era5.ipynb) images and [ERA5 climate reanalysis data](https://github.com/kaust-halo/geeet/blob/main/examples/notebooks/03_eepredefined_landsat_era5.ipynb) is also available. Learn how to use this model [here](./examples/notebooks/03_eepredefined_landsat_era5.ipynb), specifically:\n\n1. Prepare a merged Landsat collection (Landsat 7, 8, and 9)\n2. Prepare a joint Landsat + ERA5 image collection\n3. Map TSEB onto the Landsat+ERA5 collection (see also [this example](./examples/notebooks/04_eepredefined_landsat_mapped_collection.ipynb))\n\n### Xarray and COG support\n\nThis [example](./examples/notebooks/05_xarray_landsat_era5.ipynb) demonstrates reading a Cloud-Optimized Geotiff (COG) using [rioxarray](https://corteva.github.io/rioxarray/stable/) and running the same TSEB model with this image.\n\n## References\n\nReferences for each model are found in [REFERENCES.txt](REFERENCES.txt). The source code for each module contains references for each function as well. Finally, each model contains two functions to display the references: `cite()` shows the main citation for the model, while `cite_all()` shows all the references for that model.\n\nIf you use this package for research, please cite the relevant model references. \n\n## Contributions\n\nContributions are welcome. Please [open an issue](https://github.com/kaust-halo/geeet/issues) to:\n\n- suggest a relevant ET model\n- report a bug\n- report an issue\n\nFeel free to submit a [pull request](https://github.com/kaust-halo/geeet/pulls) for suggesting code improvements.\n\n## Credits\n\nThis package was created with [Cookiecutter](https://github.com/cookiecutter/cookiecutter) and the [giswqs/pypackage](https://github.com/giswqs/pypackage) project template.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaust-halo%2Fgeeet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaust-halo%2Fgeeet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaust-halo%2Fgeeet/lists"}