Git Product home page Git Product logo

limnotools's Introduction

Travis-CI Build Status AppVeyor Build Status Coverage Status

limnotools package

limnotools is an R package that implements the split and merge algorithm to high resolution water column profile to identify water column structure, stratification and mixing patterns.

See: limnotools vignette

You can install the development version of limnotools from github with:

devtools::install_github("boshek/limnotools")

Important references

  • Pavlidis, T., and S. L. Horowitz, 1974: Segmentation of plan curves.IEEE Trans. Comput., C-23, 860โ€“870.
  • Thomson, R. and I. Fine. 2003. Estimating Mixed Layer Depth from Oceanic Profile Data. Journal of Atmospheric and Oceanic Technology. 20(2), 319-329.
  • Fiedler, Paul C. "Comparison of objective descriptions of the thermocline. Limnology and Oceanography: Methods 8.6 (2010): 313-325.

Releases

  • 0.9.0 Initial release
  • 0.9.1 Fixed a fatal bug in wtr_layer and wtr_segment that fed incorrect measurement values in the call to by_s_m and by_s_m3

limnotools's People

Contributors

boshek avatar dougcollinge avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

limnotools's Issues

Segment vs min_depth

Encountering some instances where the depth of the shallowest segment is shallower that the specified mean depth meaning the algorithm is extending beyond the specified depth range. Will add data to make this clear.

Remove FORTRAN code

I think we can remove the crufty old FORTRAN history from the R code. I'll take this on and submit a pull request, I guess.

Dummy Data Parameters

I want to write a fake data generator for testing and I want some advice on the parameters. I presume that the water stratifies into three zones: mixing zone, thermocline, and whatever is below that. The mixing zone has zero or small temperature change, the thermocline occurs at some depth and has a large temperature change across its extent, then the temperature changes more slowly down to the deepest sample. Here are the proposed parameters:

  • surface temperature
  • temperature at the center of the thermocline
  • slope of the thermocline in degrees/meter
  • slope of the temperature in the deeper water.
  • change of depth between samples
  • depth of deepest sample
    From these parameters I can work out the entire curve. Then I can add various random variabilities, like noise on the temperature and depth, slow fluctuations in the values using additional parameters to control them.

So that's what I think - how would you, the actual limnologist here, like to see it?

TODO, by_s_m.38 - error description?

The TODO suggests replacing an error signal return of -99 with a crash but I'm not sure that this is the right thing to do. I don't like the way it works now because -99 has no intrinsic meaning, it just shows up on the report and you the human reader are just supposed to intuit that "something went wrong" and ignore the rest of the report. That is seriously bogus, IMHO. What I think should actually happen here is that the report should just be replaced with a detailed explanation of why the report could not be produced. In order to accomplish this by_s_m needs to be modified to allow an exit that conveys the error message, whatever it is. Perhaps it should always return a list containing an error code, error explanation, and data, if no errors.

Original getxxnorm normalization process

original getxxnorm fortran code normalizes by the top and bottom values in the profile. This should likely be normalized by the max() and min() values of the profile removing the possibility of negative normalization coefficients.

Remove NN

change nn in higher functions from desired length of output to match the length of the input. The length of the output does not appear after a length of approximately 300. This would making any of these higher level functions throw an error is nn is lower than 300.
nn_loop

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.