All Projects β†’ ropensci β†’ MtreeRing

ropensci / MtreeRing

Licence: other
A tool for measuring tree-ring width

Programming Languages

r
7636 projects

Projects that are alternatives of or similar to MtreeRing

foliage
πŸƒ Style your components with performance
Stars: ✭ 29 (+52.63%)
Mutual labels:  forest
shinydnd
Creating drag and drop elements in Shiny
Stars: ✭ 89 (+368.42%)
Mutual labels:  shiny-apps
antaresViz
ANTARES Visualizations
Stars: ✭ 19 (+0%)
Mutual labels:  shiny-apps
forest-software
A curated list of projects developed using the Forest quantum programming environment.
Stars: ✭ 39 (+105.26%)
Mutual labels:  forest
shiny-apps
Some of my Shiny apps for fun
Stars: ✭ 54 (+184.21%)
Mutual labels:  shiny-apps
polished example apps
Example Apps for Polished
Stars: ✭ 24 (+26.32%)
Mutual labels:  shiny-apps
forest-laravel
🌱 Laravel Liana for Forest Admin. This repo is no longer maintained. Please use laravel-forestadmin instead: https://github.com/ForestAdmin/laravel-forestadmin
Stars: ✭ 4 (-78.95%)
Mutual labels:  forest
PlotsOfData
Shiny App for comparison of samples
Stars: ✭ 47 (+147.37%)
Mutual labels:  shiny-apps
shiny crud
Example Shiny apps implementing CRUD database functionality
Stars: ✭ 88 (+363.16%)
Mutual labels:  shiny-apps
quilc
The optimizing Quil compiler.
Stars: ✭ 413 (+2073.68%)
Mutual labels:  forest
xplorerr
Shiny apps for interactive data analysis, visualization and modeling.
Stars: ✭ 33 (+73.68%)
Mutual labels:  shiny-apps
ForestCoverChange
Detecting and Predicting Forest Cover Change in Pakistani Areas Using Remote Sensing Imagery
Stars: ✭ 23 (+21.05%)
Mutual labels:  forest
conan-danmu
γ€ŠεδΎ¦ζŽ’ζŸ―ε—γ€‹Bη«™εΌΉεΉ•ζ΅θ§ˆε™¨
Stars: ✭ 37 (+94.74%)
Mutual labels:  shiny-apps
incendios
πŸ”₯ IncΓͺndios em Portugal
Stars: ✭ 13 (-31.58%)
Mutual labels:  forest
ipld-explorer-cli
πŸ”Ž Explore the IPLD directed acyclic graph with your keyboard
Stars: ✭ 22 (+15.79%)
Mutual labels:  forest
forest-benchmarking
A library for quantum characterization, verification, validation (QCVV), and benchmarking using pyQuil.
Stars: ✭ 41 (+115.79%)
Mutual labels:  forest
PSWinDocumentation.AD
PowerShell module delivering a lot of Active Directory Forest/Domain information
Stars: ✭ 110 (+478.95%)
Mutual labels:  forest
PlotTwist
PlotTwist - a web app for plotting and annotating time-series data
Stars: ✭ 21 (+10.53%)
Mutual labels:  shiny-apps
wopr
An R package and Shiny application to provide API access to the WorldPop Open Population Repository (WOPR)
Stars: ✭ 28 (+47.37%)
Mutual labels:  shiny-apps
brevifolia-gatsby-forestry
A simple starter blog built with Gatsby & Forestry
Stars: ✭ 54 (+184.21%)
Mutual labels:  forestry

MtreeRing

Authors: Jingning Shi, Wei Xiang
License: GPL3

TravisCI Build Status AppVeyor Build Status codecov ropensci cran checks Downloads

MtreeRing is a tool for automatically measuring tree-ring width using image processing techniques.

Installation

Install the stable version from CRAN

install.packages("MtreeRing")

or the development version from GitHub

# install.packages("devtools")
devtools::install_github("ropensci/MtreeRing")

Ring-width measurement

1. Read an image

library(MtreeRing)
## Read and plot a tree ring image
img.name <- system.file("001.png", package = "MtreeRing")
t1 <- ring_read(img = img.name, dpi = 1200, plot = TRUE)

ring_read supports commonly used image formats, including png, tiff, jpg and bmp.

2. Detect ring borders

After plotting the image, the automatic detection of ring borders can be performed using three alternative methods: (1) watershed algorithm; (2) Canny edge detector; (3) a linear detection algorithm from R package measuRing.

## Split a long core sample into 2 pieces to
## get better display performance and use the
## watershed algorithm to detect ring borders:
t2 <- ring_detect(ring.data = t1, seg = 2, method = 'watershed')

Figure 1. The automatic detection of ring borders

3. Calculate ring-width series

If all ring borders are correctly identified, you can generate a ring-width series in data frame format. Use write.rwl to export the ring-width series to an rwl file.

rw.df <- ring_calculate(ring.data = t2, seriesID = "940220")
library(dplR) # A dendrochronological analysis package
fn <- tempfile(fileext=".rwl")
write.rwl(rwl.df = rw.df, fname = fn, format = "tucson")

Shiny application

If you are not familiar with R and its command line interface, the shiny-based app is a good alternative.

MtreeRing::ring_app_launch()

This command allows to run a Shiny-based application within the system's default web browser. The app provides a beginner-friendly graphical interface and supports more flexible mouse-based interactions, allowing image files to be uploaded up to 150 MB in size.

The dashboard has three components: a header, sidebar and body, like this

A workflow for the Shiny app can be found at https://ropensci.github.io/MtreeRing/articles/app-MtreeRing.html. Most steps are demonstrated with a gif to make the workflow more understandable.

Ring width correction

If an increment borer is used to extract samples, it is well known that the auger sometimes fails to traverse the pith of the sampled tree but passes through one side of the pith at a certain distance. Tangent lines of rings close to the pith are therefore not perpendicular to the horizontal path, which may lead to considerable errors in ring widths.

Under such conditions, you can create two paths by setting the argument incline = TRUE, or by ticking the checkbox Inclined tree rings. See this example.

The line segment connecting two dots on the same ring should match the tangent of a tree ring border. The corrected ring width is estimated from the distance between adjacent rings and orientation of ring borders.

Support

Any feedback, bug reports or suggestions are welcomed. If you have a comment on MtreeRing, or you find a bug in the released or beta versions, please submit bugs and/or feature requests at https://github.com/ropensci/MtreeRing/issues. Include the package version, OS, and any command-line required to reproduce the problem.

Code of conduct

I will try to add new features based on user feedback. It is hoped that others will contribute additional useful features. Please note that the 'MtreeRing' project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

ropensci_footer

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].