CurvesΒΆ
The library chinet uses the class Curve to save and operate on the data of a model. One dimensional
models derive from the Curve class. A Curve object has properties for the x-values, the y-values, and
the errors of the x- and y-values.
import chinet as flm
import numpy as np
curve = flm.Curve()
x = np.linspace(0, 6, 100)
y = np.sin(x)
curve.set_x(x)
curve.set_y(y)
(y == curve.get_y())
(x == curve.get_x())
Curve objects have the methods add, mul, div, and sub to add, multiply, divide and subtract
and that take either Curve objects or floating point numbers as arguments. These operations act element-wise on
the y-axis values of the Curve objects. In addition to these elementary operations, the content of a Curve
object can be freely shifted with respect to the x-axis. For non-integer shifts the y-values are linearly interpolated.
By default, if no error is provided for the y-values the error is initialized with ones.
import chinet as flm
import numpy as np
import pylab as p
curve = flm.Curve()
x = np.linspace(0, 6, 100)
y = np.sin(x)
curve.set_x(x)
curve.set_y(y)
p.plot(curve.get_x(), curve.get_y())
curve.shift(1.5)
p.plot(curve.get_x(), curve.get_y())
curve.add(curve)
p.plot(curve.get_x(), curve.get_y())
curve.mul(3.1)
p.plot(curve.get_x(), curve.get_y())
p.show()
Above, shifting, addition, and multiplication are illustrated for a curve. Note, the multiplication operation can also be used with two curves.
Curve objects can be saved and loaded using the methods save and from_json
import chinet as flm
import numpy as np
curve = flm.Curve()
x = np.linspace(0, 6, 100)
y = np.sin(x)
curve.set_x(x)
curve.set_y(y)
curve.save("test.json")
c = flm.Curve()
c.from_json("test.json")
A