diff --git a/bookdown/10-validation.Rmd b/bookdown/10-validation.Rmd
new file mode 100644
index 0000000..8054b85
--- /dev/null
+++ b/bookdown/10-validation.Rmd
@@ -0,0 +1,7 @@
+# Validation
+
+The traditional method for validation of LandTrendr segmentation and derived disturbance maps is the TimeSync application ([paper](https://larse.forestry.oregonstate.edu/sites/larse/files/pub_pdfs/Cohen_etal_2010.pdf)).
+
+Please see this GitHub [repository](https://github.com/eMapR/TimeSync-Legacy) for all the files and instructions you need to get source data from Google Earth Engine and run the desktop Legacy version of the application.
+
+
\ No newline at end of file
diff --git a/bookdown/10-faq.Rmd b/bookdown/11-faq.Rmd
similarity index 100%
rename from bookdown/10-faq.Rmd
rename to bookdown/11-faq.Rmd
diff --git a/bookdown/11-references.Rmd b/bookdown/12-references.Rmd
similarity index 82%
rename from bookdown/11-references.Rmd
rename to bookdown/12-references.Rmd
index 8001f05..020f7b1 100644
--- a/bookdown/11-references.Rmd
+++ b/bookdown/12-references.Rmd
@@ -1,5 +1,8 @@
# References
+
+>[Cohen, W. B., Yang, Z., & Kennedy, R. (2010). Detecting trends in forest disturbance and recovery using yearly Landsat time series: 2. TimeSync-Tools for calibration and validation. Remote Sensing of Environment, 114(12), 2911-2924.](https://larse.forestry.oregonstate.edu/sites/larse/files/pub_pdfs/Cohen_etal_2010.pdf)
+
>[Gorelick, N., Hancher, M., Dixon, M., Ilyushchenko, S., Thau, D., & Moore, R. (2017). Google Earth Engine: Planetary-scale geospatial analysis for everyone. Remote Sensing of Environment, 202, 18-27.](https://www.sciencedirect.com/science/article/pii/S0034425717302900)
>[Kennedy, R. E., Yang, Z., & Cohen, W. B. (2010). Detecting trends in forest disturbance and recovery using yearly Landsat time series: 1. LandTrendr—Temporal segmentation algorithms. Remote Sensing of Environment, 114(12), 2897-2910.](http://geotrendr.ceoas.oregonstate.edu/files/2015/05/Kennedy_etal2010.pdf)
diff --git a/bookdown/index.Rmd b/bookdown/index.Rmd
index 3041cfb..6d294dd 100644
--- a/bookdown/index.Rmd
+++ b/bookdown/index.Rmd
@@ -16,7 +16,11 @@ output:
css: style.css
---
-# LT-GEE {-}
+# LT-GEE Documentation{-}
+
+*By [Justin Braaten](https://github.com/jdbcode) and Oregon State University's [eMapR Lab](http://emapr.ceoas.oregonstate.edu/)*
+
+*2018/06/08*
#### LandTrendr (Landsat-based detection of trends in disturbance and recovery) implementation on the Google Earth Engine platform {-}
diff --git a/docs/example-scripts.html b/docs/example-scripts.html
index 127be45..3f9a0f3 100644
--- a/docs/example-scripts.html
+++ b/docs/example-scripts.html
@@ -101,7 +101,7 @@
Q: I have read or heard that for loops and client-side conditionals like if statements are GEE no-nos, yet you include them in your example scripts. What’s the deal?
A: We don’t mix server-side and client-side objects and operations, which, as we understand it, are the main issues. We are also not GEE wizards, so please, we are calling on everyone to help make better, more GEE-friendly template scripts to share.
@@ -180,7 +181,7 @@
10 FAQ
-
+
diff --git a/docs/imgs/timesync-legacy.jpg b/docs/imgs/timesync-legacy.jpg
new file mode 100644
index 0000000..0310c7a
Binary files /dev/null and b/docs/imgs/timesync-legacy.jpg differ
diff --git a/docs/imgs/timesync-legacy.png b/docs/imgs/timesync-legacy.png
new file mode 100644
index 0000000..d6b5765
Binary files /dev/null and b/docs/imgs/timesync-legacy.png differ
diff --git a/docs/index.html b/docs/index.html
index ec822fd..7cb89d0 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -101,7 +101,7 @@
diff --git a/docs/search_index.json b/docs/search_index.json
index 7532dcc..5366783 100644
--- a/docs/search_index.json
+++ b/docs/search_index.json
@@ -1,5 +1,5 @@
[
-["index.html", "LT-GEE", " LT-GEE LandTrendr (Landsat-based detection of trends in disturbance and recovery) implementation on the Google Earth Engine platform Please note that the provided example scripts are currently calling a non-public LT-GEE function, which is inaccessible without proper permission, so the scripts will fail if you try them now. Once the algorithm is publicly released you should have success. This documentation is under construction (6/8/18) "],
+["index.html", "LT-GEE Documentation", " LT-GEE Documentation By Justin Braaten and Oregon State University’s eMapR Lab 2018/06/08 LandTrendr (Landsat-based detection of trends in disturbance and recovery) implementation on the Google Earth Engine platform Please note that the provided example scripts are currently calling a non-public LT-GEE function, which is inaccessible without proper permission, so the scripts will fail if you try them now. Once the algorithm is publicly released you should have success. This documentation is under construction (6/8/18) "],
["introduction.html", "1 Introduction", " 1 Introduction LandTrendr (LT) is set of spectral-temporal segmentation algorithms that are useful for change detection in a time series of moderate resolution satellite imagery (primarily Landsat) and for generating trajectory-based spectral time series data largely absent of inter-annual signal noise. LandTrendr was originally implemented in IDL (Interactive Data Language), but with the help of engineers at Google, it has been ported to the Google Earth Engine (GEE) platform (porting paper; GEE overview; GEE paper). The GEE framework nearly eliminates the onerous data management and image-preprocessing aspects of the IDL implementation. It is also light-years faster than the IDL implementation, where computing time is measured in minutes instead of days. This guide is intended to introduce the basics of running LandTrendr in GEE. It describes the LandTrendr conceptual framework, what is required to run LT-GEE, how to run it, what the outputs are, and how they are formatted. It also provides three example scripts, a series of user interfaces to the LT operations, and a shortcut JavaScript library. It is assumed that you have a GEE account, that you are somewhat familiar with the GEE JavaScript API, and have a basic understanding of LandTrendr (method, application). "],
["landtrendr.html", "2 LandTrendr 2.1 Fit-to-Vertex Image Data 2.2 Epoch Information", " 2 LandTrendr Each pixel in an image time series has a story to tell, LandTrendr aims to tell them succinctly. Let’s look at an example; here we have a pixel intersecting Lon: -123.845, Lat: 45.889 (Fig 2.1) from a conifer-dominated, industrial forest region of the Pacific Northwest, USA. At the beginning of its record, it was a mature, second-growth conifer stand, and for 17 years, little changed. Then, between the summers of 2000 and 2001 a service road was built through it, removing some of its vegetation. Over the next year it experienced a clearcut harvest, removing all of its remaining vegetation. For the last 14 years it has been regenerating. Most recently it was a closed canopy, maturing, conifer stand. Fig 2.1. Every pixel tells a story. Landsat provides a historical record of the character of landscapes. By extracting a single pixel from a time series of Landsat imagery, it is possible to recount the state and change of the features composing the 1-hectare area of a pixel through time. In this example, we analyze the history of a conifer forest pixel from an industrial forest region of the Pacific Northwest (USA) that experiences a period of relative stability, a dramatic, rapid loss of vegetation, and subsequent regeneration. The description of this example pixel’s history is of course abridged, and only conveys a moderate resolution perspective of state and change in forest character. The unabridged version of this pixel’s story includes many other small changes in the forest stand it represents, but given the precision of the satellite sensor and methods in processing, the provided description is the type of pixel history interpretation we are confident are represented well in the image time series. LandTrendr is a brevity algorithm that listens to the annual, verbose, noisy detail of a pixel’s story and writes an abridged version. In practice, LandTrendr takes a single point-of-view from a pixel’s spectral history, like a band or an index, and goes through a process to identify breakpoints separating periods of durable change or stability in spectral trajectory, and records the year that changes occurred. These breakpoints, defined by year and spectral index value, allow us to represent the spectral history of a pixel as a series of vertices bounding line segments (Fig 2.2). Fig 2.2. LandTrendr pixel time series segmentation. Image data is reduced to a single band or spectral index and then divided into a series of straight line segments by breakpoint (vertex) identification. There are two neat features that result from this segmented view of spectral history. The ability to interpolate new values for years between vertices. Simple geometry calculations on line segments provide information about distinct spectral epochs 2.1 Fit-to-Vertex Image Data The ability to interpolate new values for years between vertices is very useful. It ensures that each observation is aligned to a trajectory consistent with where the pixel has been and where it is going. We can think of this as hindsight-enhanced image time series data. It has two practical utilities. It can fill in data from missing observations in the time series (masked because of cloud or shadow) and it maintains consistency in predictive mapping through time; e.g. an annual forest classification is not likely to bounce between mature and old-growth conifer because of minor differences in spectral reflectance from atmosphere or shadow difference (Fig 2.3). Fig 2.3. Hindsight-enhanced image time series data. Identification of time series breakpoints or vertices, allows the observations between vertices to be interpolated, removing extraneous information and placing each observation in the context of the trajectory it is part of. This is useful in filling missing observations because of cloud and shadow, and makes for more consistent annual map prediction. Since breakpoints or vertices are defined by a year we also have the ability to impose breakpoints identified in one spectral band or index on any other. For instance, we can segment a pixel time series cast as Normalized Burn Ratio (NBR: [NIR-SWIR]/[NIR+SWIR]) to identify vertices, and then segment a short-wave infrared (SWIR) band based on the NBR-identified vertices (Fig 2.4). Fig 2.4. Impose the segmentation structure of one spectral representation on another. Here we have identified four breakpoints or vertices for a pixel time series using NBR, and then used the year of those vertices to segment and interpolate the values of a SWIR band time series for the same pixel. This is useful because we can make the whole data space for a pixel’s time series consistent relative to a single perspective (Fig 2.5) and summarize starting, ending, and delta values for all spectral representations for the same temporal segments, which can be powerful predictors of land cover, agent of change, and state transitions. Fig 2.5. A stack of spectral representations can be standardized to the segmentation structure of a single spectral band or index. Here we are demonstrating the standardization of tasseled cap brightness, greenness, and wetness to the segmentation structure of NBR. This allows us to take advantage of multi-dimensional spectral space to describe the properties of spectral epochs and breakpoints to predict land cover, change process, and transitions from a consistent perspective (NBR). 2.2 Epoch Information The second neat feature of a segmented world view of spectral history is that simple geometry calculations can summarize attributes of spectral epochs (Fig 2.6). Temporal duration and spectral magnitude can be calculated for each segment based on the vertex time and spectral dimensions. These attributes allow us to easily query the data about when changes occur, how frequently they occur, on average how long do they last, what is the average magnitude of disturbance (or recovery) segments, etc. We can also query information about adjacent segments to focal segments. For instance, we can ask, what it the average rate of recovery following a disturbance segment, or what was the trajectory of a pixel time series prior to disturbance segments that we’ve attributed to fire. Fig 2.6. Diagram of segment attributes. From these attributes we can summarize and query change per pixel over the landscape. "],
["lt-gee-requirements.html", "3 LT-GEE Requirements 3.1 Image Collection 3.2 LT parameters", " 3 LT-GEE Requirements LT-GEE requires two things: An annual image collection A set of parameters to control segmentation 3.1 Image Collection The image data composing a collection needs to represent an observation that is consistent through time. It should not include noise from atmosphere, clouds and shadows, sensor differences, or other anomalies. The annual changes in a time series should be the result of changes in the physical features of a landscape. We recommend using the USGS Landsat Surface Reflectance Tier 1 datasets. These data have been atmospherically corrected, and include a cloud, shadow, water and snow mask produced using CFMASK. GEE ImageCollection IDs for USGS Landsat Surface Reflectance Landsat 5: LANDSAT/LT05/C01/T1_SR Landsat 7: LANDSAT/LE07/C01/T1_SR Landsat 8: LANDSAT/LC08/C01/T1_SR The collection must include only one observation per year. However, because clouds are often present in any given image, it is best to retrieve multiple images for a season, mask out clouds and cloud shadows from each, and then create a composite of those images so that you have reasonable annual spatial coverage of clear-view pixels. The best-pixel-compositing method you apply is up to you. We have used nearness to a target day-of-year and also medoid compositing, we prefer the later and include it in the provided examples. LandTrendr will segment the first band in the image collection and generate annual fitted-to-vertx (FTV) data for each subsequent band. Consequently, you need to manipulate your collection so that the band or spectral index you want segmented is the first band, and any additional bands you want fitted to vertices should follow. The band or index you select for segmentation should be based on an informed decision weighted by the sensitivity of it to change in the conditions of the landscape you are working with. The best spectral representation of change can be different for shrubs vs trees vs conifers vs deciduous etc. We have found SWIR bands, and indices leveraging them, to be generally quite sensitive to change, but we also know that it is highly variable. You should try segmenting on several bands or indices to see what works best. We also recommend trying a few different date windows and widths for generating annual composites. In the example scripts provided, we composite image dates for the northern hemisphere growing season (mid-June through mid-September), which seems to work pretty well for 25-50 degrees latitude. Folks working in the southern hemisphere will need to modify the example scripts if you are to include images from your growing season, since it crosses the new year: December 2016 through Feburary 2017, for example. You’ll also have to deal with how to label the year of the annual image composite - should it be the former or later year of the growing season composite? Two really important steps in image collection building include 1) masking cloud and cloud shadow pixels during annual image compositing and to 2) ensure that the spectral band or index that is to be segmented is oriented so that vegetation loss is represented by a positive delta. For instance, NBR in its native orientation results in a negative delta when vegetation is lost from one observation to the next. In this case, NBR must be multiplied by -1 before being segmented. Conversely, if Landsat TM band 5 (SWIR) is selected for segmentation, inversion of the spectral values is not required, since natively, vegetation loss is represented by a positive delta. 3.2 LT parameters The LT-GEE function takes 9 arguments: 8 control parameters that adjust how spectal-temporal segmentation is done, and the annual image collection. The original LandTrendr paper describes the effect and sensitivity of changing some of these argument values. We recommend trying variations in settings to see what works best for the environment you are working in. One of the great things about having LT in GEE is that parameter settings are easy and fast to iterate through to find a best set. Table 3.1: LandTrendr parameters Parameter Type Default Definition maxSegments Integer Maximum number of segments to be fitted on the time series spikeThreshold Float 0.9 Threshold for dampening the spikes (1.0 means no dampening) vertexCountOvershoot Integer 3 The inital model can overshoot the maxSegments + 1 vertices by this amount. Later, it will be prunned down to maxSegments + 1 preventOneYearRecovery Boolean false Prevent segments that represent one year recoveries recoveryThreshold Float 0.25 If a segment has a recovery rate faster than 1/recoveryThreshold (in years), then the segment is disallowed pvalThreshold Float 0.1 If the p-value of the fitted model exceeds this threshold, then the current model is discarded and another one is fitted using the Levenberg-Marquardt optimizer bestModelProportion Float 1.25 Takes the model with most vertices that has a p-value that is at most this proportion away from the model with lowest p-value minObservationsNeeded Integer 6 Min observations needed to perform output fitting timeSeries ImageCollection Collection from which to extract trends (it’s assumed that each image in the collection represents one year). The first band is used to find breakpoints, and all subsequent bands are fitted using those breakpoints "],
@@ -9,6 +9,7 @@
["example-scripts.html", "7 Example Scripts 7.1 Exploration and parameterization 7.2 Data generation 7.3 Change mapping", " 7 Example Scripts Three use case examples are provided, each of them begins with the same process of parameter definition and collection building and then varies on what is done with the results from the LT-GEE call. Keep in mind that these are simple building blocks to learn from. The parameter settings, methods for building collections, and the way we handle outputs in these examples are not intended to be standard protocol. We hope that the GEE community will help us develop better scripts and push what we can learn about our dynamic Earth using the LT-GEE tool. 7.1 Exploration and parameterization LandTrendr can be run in point mode to visualize the segmentation for a pixel. This is really useful for quickly testing the performance of various parameter settings and spectral indices, as well as simply viewing and interpreting change in the x-y space of time and spectral value for both the source and LandTrendr trajectory-fitted data. We recommend starting here to understand how best to set parameters for your mapping project. Example script GEE path: users/emaprlab/public:Scripts/LandTrendr Examples/LandTrendr Pixel Time Series Plotter 7.2 Data generation LandTrendr can be run in a data generation mode where every pixel time series within the bounds of a given region is segmented and a data cube containing the segmented line structure and trajectory-fitted time series stack is returned. The results are the basic building blocks for historical landscape state and change mapping. Before generating data cubes, it is best to explore and parameterize LT-GEE using the 1st example script. Example script GEE path: users/emaprlab/public:Scripts/LandTrendr Examples/LandTrendr Vertex and Fitted Data Generation 7.3 Change mapping Change events can be extracted and mapped from LandTrendr’s segmented line vertices. Information regarding the year of change event detection, magnitude of change, duration of change, and pre-change event spectral data can all be mapped. In this example we take the data cube generated in the previous example and extract the greatest disturbance per pixel in a region. Example script GEE path: users/emaprlab/public:Scripts/LandTrendr Examples/LandTrendr Greatest Disturbance Mapping "],
["ui-applications.html", "8 UI Applications 8.1 UI LandTrendr Pixel Time Series Plotter 8.2 UI LandTrendr Disturbance Mapper", " 8 UI Applications We have developed a few UI applications for exploring LT-GEE time series data. They can be found in our public GEE repository. To access the applications, visit this URL (https://code.earthengine.google.com/?accept_repo=users/emaprlab/public). It will add the users/emaprlab/public repository to your GEE account. Once added, it can be found within the Reader permission group of your GEE scripts library. 8.1 UI LandTrendr Pixel Time Series Plotter The UI LandTrendr Pixel Time Series Plotter will plot the Landsat surface reflectance source and LandTrendr-fitted index for a selected location. The script is useful for simply exploring and visualizing the spectral-temporal space of a pixel, for comparing the effectiveness of a series of indices for identifying landscape change, and for parameterizing LandTrendr to work best for your study region. 8.1.1 Steps Click on the script to load it and then click the Run button to initialize the application. Drag the map panel to the top of the page for better viewing. Define a year range over which to generate annual surface reflectance composites. Define the date range over which to generate annual composites. The format is (month-day) with two digits for both month and day. Note that if your study area is in the southern hemisphere and you want to include dates that cross the year boundary to capture the summer season, this is not possible yet - it is on our list! Select spectral indices and bands to view. You can select or or many. Optionally define a pixel coordinate set to view the time series of, alternatively you’ll simply click on the map. Note that the coordinates are in units of latitude and longitude formated as decimal degrees (WGS 84 EPSG:4326). Also note that when you click a point on the map, the coordinates of the point will populate these entry boxes. Define the LandTrendr segmentation parameters. See the LT Parameters section for definitions. Either click a location on the map or hit the Submit button. If you want to change anything about the run, but keep the coordinate that you clicked on, just make the changes and then hit the Submit button - the coordinates for the clicked location are saved to the pixel coordinates input boxes. Wait a minute or two and plots of source and LandTrendr-fitted time series data will appear for all the indices you selected. The next time you click a point or submit the inputs, any current plots will be cleared and the new set will be displayed. 8.1.2 Under the hood Collection building is same as that described in the example scripts above Landsat 8 is transformed to the properties of Landsat 7 using slopes and intercepts from reduced major axis regressions reported in Roy et al 2016 Table 2 Masking out clouds, cloud shadows, and snow using CFMASK product from USGS Medoid annual compositing 8.2 UI LandTrendr Disturbance Mapper The UI LandTrendr Disturbance Mapper will display map layers of disturbance attributes including: year of disturbance detection, magnitude of disturbance, duration of disturbance, and pre-disturbance spectral value. 8.2.1 Steps Click on the script to load it and then click the Run button to initialize the application. Drag the map panel to the top of the page for better viewing. Define a year range over which to identify disturbances - best to set this close to the maximum range, you can filter disturbances by year in a different setting below. Define the date range over which to generate annual composites. The format is (month-day) with two digits for both month and day Note that if your study area is in the southern hemisphere and you want to include dates that cross the year boundary to capture the summer season, this is not possible yet - it is on our list! Select spectral index or band to use for disturbance detection. Optionally define a pixel coordinate set to define the center of the disturbance map, alternatively you’ll simply click on the map. Note that the coordinates are in units of latitude and longitude formated as decimal degrees (WGS 84 EPSG:4326). Also note that when you click a point on the map, the coordinates of the point will populate these entry boxes. Define a buffer around the center point defined by a map click or provided in the latitude and longitude coordinate boxes from step 6. The units are in kilometers. It will draw and clip the map to the bounds of the square region created by the buffer around the point of interest. Define the disturbance type you are interested in - this applies only if there are multiple disturbances in a pixel time series. It is a relative qualifier among a series of disturbances for a pixel time series. Optionally filter disturbances by the year of detection. Adjust the sliders to constrain the results to a given range of years. The filter is only applied if the Filter by Year box is checked. Optionally filter disturbances by magnitude. Magnitude filtering is achieved by interpolation of a magnitude threshold from 1 year to 20 years. Define the magntiude threshold considered a disturbance for disturbances that are one year in duration and also 20 years in duration. If you want to apply the same threshold value across all durations, enter the same value in each box. The values should be the minimum spectral delta value that is considered a disturbance. They should be the absolute value and multiplied by 1000 for decimal-based surface reflectance bands and spectral indices (we multiply all the decimal-based data by 1000 so that we can convert the data type to signed 16-bit and retain some precision). The filter is only applied if the Filter by Magnitude box is checked. Optionally filter by pre-disturbance spectral value. This filter will limit the resulting disturbances by those that have a spectral value prior to the disturbance either greater/less then (depending on index) or equal to the defined value. The units are a of the spectral index selected for segmentation and should be scaled by 1000 (if you are you only want disturbances that had an NBR value of 0.4 prior to disturbance, you would set this parameter to 400). The filter is only applied if the Filter by Pre-Dist Value box is checked. Optionally filter by a minimum disturbance patch size, as defined by 8-neighbor connectivity of pixels having the same disturbance year of detection. The value is the minimum number of pixel in a patch. The filter is only applied if the Filter by MMU box is checked. Define the LandTrendr segmentation parameters. See the LT Parameters section for definitions. Inspector mode selector. In the center top of the map there is a check box for whether to interact with the map in Inspector mode or not. When inspector mode is activated, map clicks engage the GEE Inspector functionality so that you can explore map layer values for a point (see the Inspector tab). When deactivated, a map click will start mapping disturbances for the region surrounding the clicked point. 8.2.2 Under the hood Collection building is same as that described in the example scripts above Landsat 8 is transformed to the properties of Landsat 7 using slopes and intercepts from reduced major axis regressions reported in Roy et al 2016 Table 2 Masking out clouds, cloud shadows, and snow using CFMASK product from USGS Medoid annual compositing 8.2.3 ToDo Option to xxport the map layers Allow input of a user drawn area or import of a feature asset or fusion table auto stretch to different indices - right now it is defaulting stretch for NBR Force absolute value for magnitude filter inputs Handle input of unscaled decimal values for the pre-dist and magntiude filter parameters "],
["shortcut-functions.html", "9 Shortcut Functions 9.1 Functions", " 9 Shortcut Functions We have created a LandTrendr JavaScript module that contains several shortcut functions to run LandTrendr and deal with the outputs. To access these functions, you must visits this URL to add the eMapR public GEE repository We have developed a LandTrendr JavaScript module that contains several shortcut functions to build LandTrendr input collections, run LandTrendr, and deal with the outputs. The module be accessed from our public GEE repository. To include them in your applications, you must first visit this URL (https://code.earthengine.google.com/?accept_repo=users/emaprlab/public). It will add the users/emaprlab/public repository to your GEE account. Once added, it can be found within the Reader permission group of your GEE scripts library. You’ll find the LandTrendr module at Modules/LandTrendr.js. To use the shortcut functions, you must import the LandTrendr.js module into your script using the following line - place it at the top of the script. var ltgee = require('users/emaprlab/public:Modules/LandTrendr.js'); 9.1 Functions buildSRcollection: Builds an annual cloud and cloud shadow masked medoid composite of Landsat surface reflectance TM-equivalent bands 1,2,3,4,5,7. This collection can be useful outside of use by LandTrendr, but is also the base for creating the input collection for LandTrendr buildLTcollection: Builds a collection as input to LandTrendr. It will prepare a collection where the first band is the band to base spectral-temporal segmentation and the subsequent bands will be fitted to segmentation structure of the segmentation band runLT: Run LandTrendr given a set of parameters. A wrapper around buildSRcollection and buildLTcollection functions. getSegmentInfo: Generates an array of information about segments from the breakpoint vertices identified by LandTrendr. getFittedData: Generates an annual band stack for given index provided as ftvList indices to either buildLTcollection or runLT. Flattens the FTV array format to bands per given index. 9.1.1 buildSRcollection buildSRcollection(startYear, endYear, startDay, endDay, aoi) startYear (Integer): The minimum year in the desired range of annual collection endYear (Integer): The maximum year in the desired range of annual collection startDay (String | month day formatted as ‘mm-dd’): The minimum date in the desired seasonal range over which to generate annual composite. endDay (String | month day formatted as ‘mm-dd’): The maximum date in the desired seasonal range over which to generate annual composite. aoi (Geometry): The area-of-interest over which to mosaic images Example: var ltgee = require('users/emaprlab/public:Modules/LandTrendr.js'); var startYear = 1985; var endYear = 2017; var startDay = '06-20'; var endDay = '09-20'; var aoi = ee.Geometry.Point(-122.8848, 43.7929); Map.centerObject(aoi,10); Map.addLayer(aoi); var annualSRcollection = ltgee.buildSRcollection(startYear, endYear, startDay, endDay, aoi); print(annualSRcollection); 9.1.2 buildLTcollection buildLTcollection(collection, index, ftvList) collection (Image Collection): An annual surface reflectance collection generated by the buildSRcollection function. index (String): The index from the list in the ________ section to be segmented by LandTrendr. ftvList (List of strings): A list of one or more indices from the list in the ________ section to be fitted to the segmentation of the index parameter. Example: var ltgee = require('users/emaprlab/public:Modules/LandTrendr.js'); var startYear = 1985; var endYear = 2017; var startDay = '06-20'; var endDay = '09-20'; var aoi = ee.Geometry.Point(-122.8848, 43.7929); var index = 'NBR'; var ftvList = ['NDVI', 'B4', 'B3']; Map.centerObject(aoi,10); Map.addLayer(aoi); var annualSRcollection = ltgee.buildSRcollection(startYear, endYear, startDay, endDay, aoi); var annualLTcollection = ltgee.buildLTcollection(annualSRcollection, index, ftvList); "],
-["faq.html", "10 FAQ", " 10 FAQ Q: I have read or heard that for loops and client-side conditionals like if statements are GEE no-nos, yet you include them in your example scripts. What’s the deal?A: We don’t mix server-side and client-side objects and operations, which, as we understand it, are the main issues. We are also not GEE wizards, so please, we are calling on everyone to help make better, more GEE-friendly template scripts to share. "],
-["references.html", "11 References", " 11 References Gorelick, N., Hancher, M., Dixon, M., Ilyushchenko, S., Thau, D., & Moore, R. (2017). Google Earth Engine: Planetary-scale geospatial analysis for everyone. Remote Sensing of Environment, 202, 18-27. Kennedy, R. E., Yang, Z., & Cohen, W. B. (2010). Detecting trends in forest disturbance and recovery using yearly Landsat time series: 1. LandTrendr—Temporal segmentation algorithms. Remote Sensing of Environment, 114(12), 2897-2910. Kennedy, R. E., Yang, Z., Cohen, W. B., Pfaff, E., Braaten, J., & Nelson, P. (2012). Spatial and temporal patterns of forest disturbance and regrowth within the area of the Northwest Forest Plan. Remote Sensing of Environment, 122, 117-133. Kennedy, R.E., Yang, Z., Gorelick, N., Braaten, J., Cavalcante, L., Cohen, W.B., Healey, S. (2018). Implementation of the LandTrendr Algorithm on Google Earth Engine. Remote Sensing. 10, 691. Roy, D. P., Kovalskyy, V., Zhang, H. K., Vermote, E. F., Yan, L., Kumar, S. S., & Egorov, A. (2016). Characterization of Landsat-7 to Landsat-8 reflective wavelength and normalized difference vegetation index continuity. Remote Sensing of Environment, 185, 57-70. "]
+["validation.html", "10 Validation", " 10 Validation The traditional method for validation of LandTrendr segmentation and derived disturbance maps is the TimeSync application (paper). Please see this GitHub repository for all the files and instructions you need to get source data from Google Earth Engine and run the desktop Legacy version of the application. "],
+["faq.html", "11 FAQ", " 11 FAQ Q: I have read or heard that for loops and client-side conditionals like if statements are GEE no-nos, yet you include them in your example scripts. What’s the deal?A: We don’t mix server-side and client-side objects and operations, which, as we understand it, are the main issues. We are also not GEE wizards, so please, we are calling on everyone to help make better, more GEE-friendly template scripts to share. "],
+["references.html", "12 References", " 12 References Cohen, W. B., Yang, Z., & Kennedy, R. (2010). Detecting trends in forest disturbance and recovery using yearly Landsat time series: 2. TimeSync-Tools for calibration and validation. Remote Sensing of Environment, 114(12), 2911-2924. Gorelick, N., Hancher, M., Dixon, M., Ilyushchenko, S., Thau, D., & Moore, R. (2017). Google Earth Engine: Planetary-scale geospatial analysis for everyone. Remote Sensing of Environment, 202, 18-27. Kennedy, R. E., Yang, Z., & Cohen, W. B. (2010). Detecting trends in forest disturbance and recovery using yearly Landsat time series: 1. LandTrendr—Temporal segmentation algorithms. Remote Sensing of Environment, 114(12), 2897-2910. Kennedy, R. E., Yang, Z., Cohen, W. B., Pfaff, E., Braaten, J., & Nelson, P. (2012). Spatial and temporal patterns of forest disturbance and regrowth within the area of the Northwest Forest Plan. Remote Sensing of Environment, 122, 117-133. Kennedy, R.E., Yang, Z., Gorelick, N., Braaten, J., Cavalcante, L., Cohen, W.B., Healey, S. (2018). Implementation of the LandTrendr Algorithm on Google Earth Engine. Remote Sensing. 10, 691. Roy, D. P., Kovalskyy, V., Zhang, H. K., Vermote, E. F., Yan, L., Kumar, S. S., & Egorov, A. (2016). Characterization of Landsat-7 to Landsat-8 reflective wavelength and normalized difference vegetation index continuity. Remote Sensing of Environment, 185, 57-70. "]
]
diff --git a/docs/shortcut-functions.html b/docs/shortcut-functions.html
index dda2de9..f7daddc 100644
--- a/docs/shortcut-functions.html
+++ b/docs/shortcut-functions.html
@@ -31,7 +31,7 @@
-
+
@@ -101,7 +101,7 @@
The traditional method for validation of LandTrendr segmentation and derived disturbance maps is the TimeSync application (paper).
+
Please see this GitHub repository for all the files and instructions you need to get source data from Google Earth Engine and run the desktop Legacy version of the application.