Skip to content

Outputs

Justin Braaten edited this page Apr 22, 2016 · 12 revisions

Fitted Outputs

Example of a 3-band/RGB display of a LandTrendr fitted time series output (tasselled cap brightness index):

tcb_change_oly_pen.jpg

The image is a compressed example of the change occurring between three time periods (1984, 1998, 2012), as represented by write function memory insertion. It renders land that has changed from one period to the next with color, and areas that have not, with grayscale. The image subset is from an interesting area on the Olympic Peninsula (WA) that shows variation in forest management practices in private, state, Forest Service, and National Park Service land. Tan colors represent forest recovery over the entire 28-year period (disturbed prior to 1984), shades of blue/green are disturbances that have occurred more recently, and purplish colors indicate older disturbances that happened between the mid-eighties and early nineties. Take note of the differences in disturbance shape, size, continuity, and location over the landscape, and through time, as indicated by the color.

Expanded definition of segmentation process outputs:

  • _distrec.bsq: disturbance – recovery ratio

    • band 1: largest single disturbance
    • band 2: largest single recovery
    • band 3: Scaled ratio between disturbance and recovery -1000 is all recovery, 0 is a balance, 1000 is all disturbance (-1500 = no change during time series)
  • _durs.bsq: duration of each segment (in image years between vertex points) Each band refers to the vertex point Example: Band1: 24 === an undisturbed trend with no intermediate points between start and end of image series Band1: 10, Band2: 10, Band 3: 4 ======a trend with 3 vertex points where there is a change in trend at image 10, image 20, and image 24.

    • band 1: Vertex 1
    • band 2: Vertex 2
    • band 3: Vertex 3
    • band 4: Vertex 4
    • band 5: Vertex 5
    • band 6: Vertex 6
  • _mags.bsq: magnitude of trend change (ie. wetness is negative if disturbed or positive if growth)

    • band 1: Difference between trend vertex 1 and 2
    • band 2: Difference between trend vertex 2 and 3
    • band 3: Difference between trend vertex 3 and 4
    • band 4: Difference between trend vertex 4 and 5
    • band 5: Difference between trend vertex 5 and 6
    • band 6: Difference between trend vertex 6 and 7
  • _stats.bsq: statistics for the entire fit

    • band 1: P of f
    • band 2: f_stat
    • band 3: ms_regr
    • band 4: ms_resid
    • band 5: 1=direct 2=interpolated
    • band 6: n_segments
    • band 7: first non-masked year for the pixel
    • band 8: number of non-masked years
    • band 9: The x offset for the pixel from which this pixel's values were taken if this pixel was interpolated.
    • band10: The y offset for the pixel from which this pixel's values were taken if this pixel was interpolated.
      Layer 7 is now filled with the first non-masked year for the pixel. If there are clouds in the first few years, for example, the first year will be different from the earliest year of imagery. Layer 8 is now filled with the number of non-masked years. If some areas of the landscape have consistent cloud cover, this number may be significantly lower than the number of years in the whole series, so this may help in evaluating the outputs
  • _vertvals.bsq: trend vertex values

    • band 1: Index value of first point in trend
    • band 2: Index value of second point
    • band 3: Index value of third point
    • band 4: Index value of fourth point
    • band 5: Index value of fifth point
    • band 6: Index value of sixth point
    • band 7: Index value of seventh point
  • _vertyrs.bsq: important years describing the trend (usually this is the year of disturbance or recovery); There are 7 bands because of the parameters set to find 6 vertices plus the first year (change this parameter to describe the trend with more or less vertices).

    • band 1: First year of stack/trend line
    • band 2: year of second point
    • band 3: year of third point
    • band 4: year of fourth point
    • band 5: year of fifth point
    • band 6: year of sixth point
    • band 7: year of seventh point
  • _segmean.bsq: the mean spectral value for the segment

    • band 1: Mean spectral value for the years in the first segment
    • band 2: Mean spectral value for the years in the second segment, if it exists.
    • etc.
  • _segmse.bsq: segment mean-square error image The mean-square error is simply the sum of each year's spectral value in a segment minus the mean spectral value of the segment, squared. Segments with more variability will show much higher values in this image.

    • band 1: MSE of the first segment
    • band 2: MSE of the second segment, if it exists.
    • etc. up to Band 6. Right now, the MSE layers are not behaving well if the original index is large – the number range wraps around and negative values result.
  • _source.bsq: source spectral data sent to the segmentation algorithm

  • _fitted.bsq: the spectral data that comes out of the segmentation fitting

    • band # = image year of stack
    • band 1: the spectral value (source or fitted) for the first year in the stack
    • band 2: the spectral value for the second year, etc.
    • etc. There are as many layers to each of these images as there are years in your stack of input imagery.

Labeled Outputs

Labeled Outputs

Each class code gets a separate output file, with layers describing the key characteristics of the segments matching that code’s pattern. The file name will include the class name, and will be placed in a subdirectory of the outpus/index/ directory. For example:

/scenes/045029/outputs/nbr/nbr_lt_label/LT_v2.00_nbr_045029_paramset01_20130620_023954_greatest_fast_disturbance.bsq

These are ENVI format files. Each file has four layers to describe each segment identified in the class syntax. If you specify only one segment in your class, the output file for that class will have four layers. Typically, however, we specify a focal segment, and then a successor placeholder segment after so we can track what happens after the event of interest. Thus, the standard change label files typically include 8 layers.

The following figure and table describe how the bands correspond to the segments:

label_output_diagram.png

Figure Reference Band Definition
1 Band 1 Year of event onset for focal segment
2 Band 2 Magnitude of event for focal segment
3 Band 3 Duration of event for focal segment
4 Band 4 Pre-event vertex value for focal segment
5 Band 5 Post-event segment start year
6 Band 6 Post-event segment magnitude
7 Band 7 Post-event segment duration
8 Band 8 Post-event vertex value

Year of onset: The year that the segment first shows evidence of having changed. Note that this does NOT correspond to the vertex year of the segment. The vertex year at the beginning of the segment is the condition just before the event. We are interested in the first year when the change is detectable, not in the year before the event has occurred. In other words, the reported year of onset is the first year after the starting vertex. For the single-year case, this is intuitive, but for longer-duration disturbances, it is equally applicable.

Magnitude: Magnitude is the total change from the start to the end of the segment, expressed in terms of percent cover. Percent cover is defined using the model defined in the label parameters file (see above!).

Duration: The duration in years of the segment. This is the total length of the segment, defined as the start minus the end year, with a minimum of 1.

Pre-event vertex value: This the index value of the segment starting point. This is expressed in units of the original index.

Spatial filtering Once an image with a given class has been constructed, we can identify pixels adjacent in space that experienced an event at the same time. These are grouped together into a single patch. This has three benefits: First, few phenomena occur nicely fall into a single pixel, so this approach allows us to find the footprint of the change phenomenon. Second, by counting the number of pixels in each patch, we can eliminate patches that are too small. “Too small” is defined both by the user needs and the desire to validate the change – events smaller than a few pixels may be very difficult to validate, and thus it may be more truthful to create a map that only includes patches large enough for claims of accuracy to be meaningful. Third, by filling in holes in otherwise complete patches, we can compensate for places where the algorithm might have missed something in the fitting process.

But making patches turns out to be tricky in some cases. Do all pixels need to be affected in exactly the same year to be considered a patch? What happens if the phenomenon of interest is harder to pin down temporally? We’d still want adjacent pixels to be grouped together. But for some phenomena, we don’t want any slop – if a pixels is off by a year, it’s a different event. One could imagine the case where development is occurring in blocks rapidly from year to year, and it is important to keep each year’s patches together, even if they are immediately adjacent.

Thus, we have two types of spatial filtering. “Tight” filtering is hardnosed and allows no slop. “Loose” filtering allows pixels in a patch to have variability. You set the degree of slop with a parameter for year of detection offset. See the examples below.

Figure Reference Band Definition
4 Band 1 Pre-event TC brightness for focal segment
4 Band 2 Pre-event TC greenness for focal segment
4 Band 3 Pre-event TC wetness for focal segment
2 Band 4 TC brightness delta for focal segment
2 Band 5 TC greenness delta for focal segment
2 Band 6 TC wetness delta for focal segment
8 Band 7 Post-event TC brightness
8 Band 8 Post-event TC greenness
8 Band 9 Post-event TC wetness
6 Band 12 TC brightness delta for post-event segment
6 Band 11 TC greenness delta for post-event segment
6 Band 12 TC wetness delta for post- event segment