A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

phenofit

A state-of-the-art remote sensing vegetation phenology extraction package.
https://github.com/eco-hydro/phenofit

Category: Biosphere
Sub Category: Plants and Vegetation

Keywords

phenology remote-sensing

Last synced: about 9 hours ago
JSON representation

Repository metadata

R package: A state-of-the-art Vegetation Phenology extraction package, phenofit

README.Rmd

          ---
output: github_document
---

```{r, echo = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#",
  fig.width = 10, fig.height = 5,
  fig.align = "center",
  fig.path  = "man/Figure/",
  dev = 'svg'
)
```
# phenofit  
[![R-CMD-check](https://github.com/eco-hydro/phenofit/workflows/R-CMD-check/badge.svg)](https://github.com/eco-hydro/phenofit/actions)
[![codecov](https://codecov.io/gh/eco-hydro/phenofit/branch/master/graph/badge.svg)](https://app.codecov.io/gh/eco-hydro/phenofit)
[![License](https://img.shields.io/badge/license-GPL%20%28%3E=%202%29-brightgreen.svg?style=flat)](http://www.gnu.org/licenses/gpl-2.0.html)
[![CRAN](https://www.r-pkg.org/badges/version/phenofit)](https://cran.r-project.org/package=phenofit)
[![total](https://cranlogs.r-pkg.org/badges/grand-total/phenofit)](https://cran.r-project.org/package=phenofit)
[![monthly](https://cranlogs.r-pkg.org/badges/phenofit)](https://cran.r-project.org/package=phenofit)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5150204.svg)](https://doi.org/10.5281/zenodo.5150204)

A state-of-the-art **remote sensing vegetation phenology** extraction package: `phenofit`

- `phenofit` combine merits of TIMESAT and phenopix
- A simple and stable growing season dividing methods was proposed
- Provide a practical snow elimination method, based on Whittaker
- 7 curve fitting methods and 4 phenology extraction methods
- We add parameters boundary for every curve fitting methods according to their ecological meaning.
- `optimx` is used to select best optimization method for different curve fitting methods.


***Task lists***

- [x] Test the performance of `phenofit` in multiple growing season regions (e.g. the North China Plain);
- [ ] Uncertainty analysis of curve fitting and phenological metrics;
- [x] shiny app has been moved to [phenofit.shiny](https://github.com/eco-hydro/phenofit.shiny);
- [x] Complete script automatic generating module in shinyapp;
- [x] `Rcpp` improve double logistics optimization efficiency by 60%;
- [x] Support spatial analysis;
- [x] Support annual season in curve fitting;
- [x] flexible fine fitting input ( original time-series or smoothed time-series by rough fitting).
- [x] Asymmetric of Threshold method



# Installation

You can install phenofit from github with:

```{r gh-installation, eval = FALSE}
# install.packages("remotes")
remotes::install_github("eco-hydro/phenofit")
```

# Note

Users can through the following options to improve the performance of phenofit in multiple growing 
season regions:

- Users can decrease those three parameters `nextend`, `minExtendMonth` and
  `maxExtendMonth` to a relative low value, by setting option 
  `set_options(fitting = list(nextend = 1, minExtendMonth = 0, maxExtendMonth = 0.5))`.

- Use `wHANTS` as the rough fitting function. Due to nature of fourier functions,
  `wHANTS` is more stable for multiple growing seasons, but it is less flexible
  than `wWHIT.` `wHANTS` is suitable for regions with the static growing season
  pattern accoss multiple years, `wWHIT` is more suitable for regions with the
  dynamic growing season pattern. 
  Dynamic growing season pattern is the most challenging task, which also means
  that large uncertainty might be exists.

- Use only one iteration in fine fitting procedure.

# **References** 

> [1] Kong, D., McVicar, T. R., Xiao, M., Zhang, Y., Peña-Arancibia, J. L., Filippa, G., Xie, Y., Gu, X. (2022). phenofit: An R package for extracting vegetation phenology from time series remote sensing. *Methods in Ecology and Evolution*, 13, 1508-1527. https://doi.org/10.1111/2041-210X.13870

> [2] Kong, D., Zhang, Y., Wang, D., Chen, J., & Gu, X. (2020). Photoperiod Explains the Asynchronization Between Vegetation Carbon Phenology and Vegetation Greenness Phenology. *Journal of Geophysical Research: Biogeosciences*, 125(8), e2020JG005636. https://doi.org/10.1029/2020JG005636
>
> [3] Kong, D., Zhang, Y., Gu, X., & Wang, D. (2019). A robust method for reconstructing global MODIS EVI time series on the Google Earth Engine. *ISPRS Journal of Photogrammetry and Remote Sensing*, 155, 13–24.
>
> [4] Kong, D., (2020). R package: A state-of-the-art Vegetation Phenology extraction package, `phenofit` version 0.3.1, 
>
> [5] Zhang, Q., Kong, D., Shi, P., Singh, V.P., Sun, P., 2018. Vegetation phenology on the Qinghai-Tibetan Plateau and its response to climate change (1982–2013). Agric. For. Meteorol. 248, 408–417. 

# Acknowledgements

Keep in mind that this repository is released under a GPL2 license, which permits commercial use but requires that the source code (of derivatives) is always open even if hosted as a web service.

        

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 7 days ago

Total Commits: 221
Total Committers: 2
Avg Commits per committer: 110.5
Development Distribution Score (DDS): 0.009

Commits in past year: 4
Committers in past year: 2
Avg Commits per committer in past year: 2.0
Development Distribution Score (DDS) in past year: 0.5

Name Email Commits
Dongdong Kong k****d 219
Dirk Eddelbuettel e****d@d****g 2

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 9
Total pull requests: 12
Average time to close issues: 1 day
Average time to close pull requests: 1 day
Total issue authors: 9
Total pull request authors: 3
Average comments per issue: 1.44
Average comments per pull request: 0.5
Merged pull request: 12
Bot issues: 0
Bot pull requests: 0

Past year issues: 3
Past year pull requests: 2
Past year average time to close issues: N/A
Past year average time to close pull requests: 9 minutes
Past year issue authors: 3
Past year pull request authors: 1
Past year average comments per issue: 0.67
Past year average comments per pull request: 1.0
Past year merged pull request: 2
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/eco-hydro/phenofit

Top Issue Authors

  • suffenjoy (1)
  • Hisschao (1)
  • weichow12318 (1)
  • andreattad (1)
  • liuh1995 (1)
  • kalibera (1)
  • dkwang1017 (1)
  • SveBuch (1)
  • Gaohq123 (1)

Top Pull Request Authors

  • kongdd (9)
  • eddelbuettel (2)
  • lionel- (1)

Top Issue Labels

Top Pull Request Labels


Package metadata

cran.r-project.org: phenofit

Extract Remote Sensing Vegetation Phenology

  • Homepage: https://github.com/eco-hydro/phenofit
  • Documentation: http://cran.r-project.org/web/packages/phenofit/phenofit.pdf
  • Licenses: GPL-2 | file LICENSE
  • Latest release: 0.3.9 (published over 1 year ago)
  • Last Synced: 2025-04-27T12:34:46.191Z (about 9 hours ago)
  • Versions: 10
  • Dependent Packages: 0
  • Dependent Repositories: 2
  • Downloads: 582 Last month
  • Rankings:
    • Forks count: 2.669%
    • Stargazers count: 5.573%
    • Average: 14.34%
    • Downloads: 16.057%
    • Dependent repos count: 19.546%
    • Dependent packages count: 27.852%
  • Maintainers (1)

Dependencies

DESCRIPTION cran
  • R >= 3.1 depends
  • JuliaCall * imports
  • Rcpp * imports
  • data.table * imports
  • dplyr * imports
  • ggplot2 * imports
  • gridExtra * imports
  • lubridate * imports
  • magrittr * imports
  • methods * imports
  • numDeriv * imports
  • optimx * imports
  • purrr * imports
  • stringr * imports
  • ucminf * imports
  • zeallot * imports
  • zoo * imports
  • knitr * suggests
  • reshape2 * suggests
  • rmarkdown * suggests
  • spam * suggests
  • testthat >= 2.1.0 suggests
.github/workflows/R-CMD-check.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/check-r-package v2 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/pkgdown.yaml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
.github/workflows/test-coverage.yaml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v3 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite

Score: 11.446785662465683