Extract Remote Sensing Vegetation Phenology
Overview
The merits of 'TIMESAT' and 'phenopix' are adopted. Besides, a simple and growing season dividing method and a practical snow elimination method based on Whittaker were proposed. 7 curve fitting methods and 4 phenology extraction methods were provided. Parameters boundary are considered for every curve fitting methods according to their ecological meaning. And 'optimx' is used to select best optimization method for different curve fitting methods. Reference: Kong, D., (2020). R package: A state-of-the-art Vegetation Phenology extraction package, phenofit version 0.3.1, doi:10.5281/zenodo.5150204; 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. doi:10.1029/2020JG005636; 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; 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. doi:10.1016/j.agrformet.2017.10.026.
Install
Health
ERRORtestsr-devel-windows-x86_64
Running 'testthat.R' [55s]
Running the tests in 'tests/testthat.R' failed.
Complete output:
> library(testthat)
> library(phenofit)
>
> test_check("phenofit")
Attaching package: 'data.table'
The following object is masked from 'package:base':
%notin%
Saving _problems/test-PhenoExtract-25.R
List of 5
$ AG : tibble [6 × 8] (S3: tbl_df/tbl/data.frame)
$ Beck : tibble [6 × 7] (S3: tbl_df/tbl/data.frame)
$ Elmore: tibble [6 × 8] (S3: tbl_df/tbl/data.frame)
$ Gu : tibble [6 × 10] (S3: tbl_df/tbl/data.frame)
$ Zhang : tibble [6 × 8] (S3: tbl_df/tbl/data.frame)
NULL
# A tibble: 6 × 8
flag t0 mn mx rsp a3 rau a5
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1999_1 -135. 0.201 0.636 0.00932 2.85 0.00852 2
2 2000_1 189. 0.238 0.635 0.0126 2.47 0.00801 3.21
3 2001_1 569. 0.252 0.626 0.0108 2.96 0.00950 2.96
4 2002_1 892. 0.253 0.614 0.0159 2 0.00724 3.08
5 2003_1 126
...[truncated]...
is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is close to singular; rcond: 3.31005e-17; attempting approx solution
[ FAIL 2 | WARN 2 | SKIP 0 | PASS 68 ]
══ Failed tests ════════════════════════════════════════════════════════════════
── Failure ('test-PhenoExtract.R:23:1'): (code run outside of `test_that()`) ───
Expected `{ ... }` to run silently.
Actual noise: warnings.
── Failure ('test-PhenoExtract.R:50:5'): get_pheno.fFIT works ──────────────────
Expected `{ ... }` to run silently.
Actual noise: warnings.
[ FAIL 2 | WARN 2 | SKIP 0 | PASS 68 ]
Error:
! Test failures.
Execution halted- ERROR12 OK, 1 ERROR2026-09-18
- OK13 OK2026-08-05
- NOTE12 OK, 1 NOTE2026-08-01
- OK12 OK, 1 FAILURE2026-06-08
- NOTE12 OK, 1 NOTE2026-06-07
Show 3 earlier changesHide 3 earlier changes
- OK14 OK2026-04-22
- ERROR13 OK, 1 ERROR2026-04-18
- OK14 OK2026-03-10
Documentation
- Help pages
- 71 (34 internal)includes a package overview page
- Examples that run
- 96%45 run in a plain check · 1 never run · 1 hold no code
- Exported functions with examples
- 73%
- Documented parameters
- 86%
- Return-value docs
- 49%
- Help pages citing references
- 25%
Downloads
Repository
- PRs merged (all time)
- 100%
- Median days to close, 50 most recently updated closed issues
- 1
- Median days to close, 50 most recently updated closed PRs
- 0
Stars over time
Forks over time
12 development-tooling and community-health practices detected across 6 families in the upstream repository
Checks run against github.com/eco-hydro/phenofit on 2026-10-22.
The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel
GitHub Pages site last deployed 2026-07-09 · The repository has a site deploy workflow
Show all practicesHide 2 practices
Dependencies
Installing phenofit adds 41 packages (22 with compiled code, 42 MB of source tarballs). Heaviest: stringi 11 MB, ggplot2 6.0 MB, data.table 5.7 MB.
Code & Tests
Datasets
People & History
Pick two releases to compare their code metrics.
- RR 4.6.0 released · 2026-04-24
- unarchivedReturned to CRAN2026-01-23
- 0.3.11Latest
- archivedRemoved from CRAN2025-12-13issues were not corrected despite reminders
- 0.3.102025-05-25 · diff ↗
- RR 4.5.0 released · 2025-04-11
- RR 4.4.0 released · 2024-04-24
- 0.3.92024-01-23 · diff ↗
- RR 4.3.0 released · 2023-04-21
- 0.3.82023-02-15 · diff ↗
- 0.3.72022-11-07 · diff ↗
- 0.3.62022-11-03 · diff ↗ ·
removed 13 exports
.Greenup, backval, cheak_season_list, get_GOF.fFITs, get_fitting.fFITs, get_param.fFITs, get_pheno.fFITs, julia_setup, lambda_cv_jl, lambda_vcurve_jl, opt_nlminb_julia, opt_season, rough_fittingadded 17 exports
brks2rfit, check_season_list, curvefit0, curvefits_LocalModel, date2doy, doy2date, init_AG, init_AG2, init_Beck, init_Elmore, init_Gu, init_Klos, init_Zhang, merge_LocalModels, qc_sentinel2, roughFit, season_input - RR 4.2.0 released · 2022-04-22
- 0.3.22021-10-15 · diff ↗ ·
removed 5 exports
check_season, julia_init, phenofit_plot, tidyFitPheno, tidy_MOD13.geeadded 27 exports
%<-%, %<>%, %>%, FitDL.AG2, doubleLog.AG2, find_season.default, find_season.peaks, get_options, julia_setup, lambda_cv_jl, lambda_vcurve, lambda_vcurve_jl, make_date, melt_list, opt_season, plot_curvefits, process_phenofit, process_season, qc_colors, qc_levels, qc_shapes, rcpp_season_filter, removeClosedExtreme, rough_fitting, set_options, tidy_MOD13, tidy_pheno - RR 4.1.0 released · 2021-05-18
- RR 4.0.0 released · 2020-04-24
Show 11 earlier eventsHide 11 earlier events
- unarchivedReturned to CRAN2020-04-02
- 0.2.72020-04-02 · diff ↗ ·
removed 8 exports
FitAG, doubleAG, phenofit_loaddata, phenofit_shiny, smooth_SG, wHANTS, wSG, wWHITadded 22 exports
FitDL.AG, cheak_season_list, check_season, check_season_dt, doubleLog.AG, doubleLog_AG, doubleLog_Beck, doubleLog_Elmore, doubleLog_Gu, doubleLog_Klos, doubleLog_Zhang, f_goal2, julia_init, logistic, opt_nlminb_julia, qc_FparLai, qc_SPOT, rcpp_SG, rcpp_wSG, smooth_wHANTS, smooth_wWHIT, wBisquare0 - archivedRemoved from CRAN2020-03-30check problems were not corrected in time Misuse of 'strptime' causing array overruns in 3.x
- unarchivedReturned to CRAN2019-06-07
- 0.2.5-22019-06-07 · diff ↗
- archivedRemoved from CRAN2019-06-05check issues not corrected despite reminders
- 0.2.42019-05-24 · diff ↗
- 0.2.32019-05-23 · diff ↗ ·
removed 14 exports
add_dn, check_fit, contain, fprintf, ifelse2, list.cbind, list.rbind, listk, melt_list, merge_pdf, obj.size, reorder_name, rm_empty, runningIdadded 9 exports
check_ylu, movmean, phenofit_loaddata, phenofit_plot, phenofit_shiny, qc_NDVI3g, smooth_SG, smooth_wSG, wKong - RR 3.6.0 released · 2019-04-26
- 0.2.02019-02-18
- RR 3.5.0 released · 2018-04-23
Package metadata
- First published
- 2019-02-18
- Total releases
- 12 / 7 yrs
- License
- GPL-2 | file LICENSE OSI
- Minimum R
- ≥ 3.1
- Bundled data
- 86 KB / 3 files
- Download size
- 415 KB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("phenofit")This package has no citation file, so citation() returns this entry built from DESCRIPTION.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-25, which the citation names so these numbers can be found later. More on citing and the projects behind them.