Learn R Programming

⚠️There's a newer version (0.3.9) of this package.Take me there.

phenofit

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

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

Installation

You can install phenofit from github with:

# install.packages("devtools")
devtools::install_github("eco-hydro/phenofit")

References

[1] 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

[2] 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.

[3] Kong, D., (2020). R package: A state-of-the-art Vegetation Phenology extraction package, phenofit version 0.3.1, https://doi.org/10.5281/zenodo.5150204

[4] 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. https://doi.org/10.1016/j.agrformet.2017.10.026

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.

Copy Link

Version

Install

install.packages('phenofit')

Monthly Downloads

638

Version

0.3.2

License

GPL-2 | file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Dongdong Kong

Last Published

October 15th, 2021

Functions in phenofit (0.3.2)

MOD13A1

MOD13A1
PhenoExtractMeth

Phenology Extraction methods
R2_sign

Critical value of determined correlation
CA_NS6

MOD13A1 EVI observations at flux site CA-NS6
D

D
I_optim

Interface of unified optimization functions.
GOF

GOF
FitDL

Fine fitting
backval

backval
add_HeadTail

Add one year data in the head and tail
check_ylu

check_ylu
curvefit

Fine curve fitting
get_fitting

getFittings
get_param

Get parameters from curve fitting result
cv_coef

weighted CV
curvefits

Fine Curve fitting
f_goal

Goal function of fine curve fitting methods
f_goal2

objective function of double logistics
init_param

init_param
getRealDate

getRealDate
get_GOF

get_GOF
get_pheno

get_pheno
kurtosis

skewness and kurtosis
lambda_vcurve

lambda_vcurve
check_GS_HeadTail

Check growing season head and tail minimum values
init_lambda

Initial lambda value of Whittaker smoother
phenofit

phenofit
check_input

check_input
plot_curvefits

plot_curvefits
season_mov

Moving growing season division
wSELF

Weight updating functions
set_options

set and get phenofit option
whit2

Weighted Whittaker smoothing with a second order finite difference penalty
opt_nlminb_julia

Optimization using PORT routines
opt_FUN

Unified optimization function
opt_season

Growing season division (unstable version)
find_season.peaks

find_season
julia_setup

julia_init
optim_pheno

optim_pheno
findpeaks

findpeaks
plot_input

Plot INPUT returned by check_input
plot_phenofit

plot_phenofit
removeClosedExtreme

rm too closed peaks or troughs
rcpp_wSG

Weighted Savitzky-Golay written in RcppArmadillo
Logistic

Double logistics functions
movmean

movmean
reexports

Objects exported from other packages
fFITs

S3 class of multiple fine curve fittings object.
melt_list

melt_list
fFIT

S3 class of fine curve fitting object.
plot_season

plot_season
logistic

Double logistics in Rcpp
process_season

divide_seasons
getBits

Initial weights according to qc
rcpp_season_filter

season_filter
smooth_wHANTS

Weighted HANTS SMOOTH
qc_levels

qc level, color and shape
smooth_wSG

Weighted Savitzky-Golay
season

Growing season division
smooth_wWHIT

Weigthed Whittaker Smoother
tidy_MOD13

tidy_MOD13
v_curve

v_curve
process_phenofit

Extract Vegetation Phenology at site scale
tidy_pheno

tidy_pheno