### Curves

The curve file describes the time series attribute curves that are referenced by the features and products files. The curve file contains three fields: CURVE, X, Y. The file is an ordered list of curve inflection points that describe the numerical relationship between time on the `X` axis and attribute value on the `Y` axis.

See Table 10, “Curve file format description” for a detailed description of the curve file format.

Table 10. Curve file format description

Field nameData typeDescription
CURVEString An alphanumeric identifier that uniquely identifies each curve definition.
Xfloat The `X`-value of a single inflection point on a curve.
Yfloat The `Y`-value of a single inflection point on a curve.

In the example below, three curves are shown (curves `4`, `5` and `6`. Curves are composed of one or more points. Curves are always used to obtain an attribute value (`Y`) for a given time value (`X`).

Example 13. Sample curve file records

```  CURVE,   X,       Y
...
4,       0,       0.49
...
9,        0,      1
9,       25,      1
9,       26,      0
...
```

A simple linear interpolation is used to obtain attributes for `X` values that fall between two vertices. Extrapolation of values below the minimum (or above the maximum) are simply assigned the first (or last) `Y` value. This means that a flat line may be represented by only one `X`,`Y` pair!. Curve `4` is represented by only one record in the `curves.csv` file. This record defines a single point with the `x`,`y` pair `(0,0.49)`. Static attributes, such as stratification codes are represented by curves with a single vertex at `(0,1)` to indicate that 100% of the block is classified as that particular stratum through time.

Note For example, a static curve could represent an unmanaged riparian buffer, the classification of which will not change over time. When multiplied by the appropriate block area, this attribute will describe the area that is in the riparian buffer.

Curve `9` on the other hand contains a number of inflection points to describe a shape that changes through time. There is a straight line interpolation between inflection points, and extrapolation of first and last values beyond the minimum and maximum values. Note that curve 9 could be further simplified by excluding the initial point at (0, 1) with no change to the shape of the curve. Curve definitions can be shared by one or more features. For example, a single yield curve might describe the growing stock attribute and also the clearcut harvest volume attribute. When building a track database there are significant opportunities for data set compression by sharing common curve definitions.

Important The curve file contains sets of curves that have the same identifying label. Records with the same curve label must be grouped together.
Important Records within a curve must be in increasing order of the X-value with no diplicated X-values.