United States Department of the Interior

advertisement
United States Department of the Interior
NATIONAL PARK SERVICE
INTERMOUNTAIN REGION
12795 West Alameda Parkway
PO Box 25287
Denver, Colorado 80225-0287
No hard copy to follow
April 12, 2012
Memorandum
To: Dustin Perkins
From: Bruce Bingham, Inventory and Monitoring Program, IMR
Subject: Approval of Land Cover and Land Use Protocol for the Northern
Colorado Plateau Network
Dear Dusty:
I have reviewed your request for approval of the land cover/land use standard operating
procedures and submission of supporting documentation. The methods NCPN has adopted
have received sufficient peer review through their publication in reputable journals and I see
no need for further peer review. I am pleased to hear of your plans to submit the first report
applying the methods to NCP parks for publication in a peer reviewed journal. I look
forward to seeing the report once completed. Congratulations to you and your staff on the
excellent progress NCPN continues to make in completing NCPN monitoring protocols.
Sincerely,
/s/ Bruce Bingham
Deputy Chief
Inventory and Monitoring Division
1
Landsat Imagery for Landscape Scale Change Detection and Trend Analysis
– NCPN Application
Landsat-based detection of Trends in Disturbance and Recovery (LandTrendr) and TimeSync are a set of
tools that extract spectral trajectories of land surface change from yearly Landsat time-series image stacks
(LTS). Developed by Oregon State University and the Pacific Northwest Research Station LandTrendr
identifies important features in time-series signatures by minimizing the influence of noise caused by
changes in illumination, phenology, atmosphere and geometric registration (Kennedy et al., 2010).
Temporal trends in reflectance are evaluated on a pixel by pixel basis by regression-based and point-topoint fitting. LandTrendr is accompanied by TimeSync to help interpret temporal patterns in reflectance
by allowing analysts to visually compare segmentation and fitted functions with yearly spectral values
(Cohen et al., 2010). The combination of algorithms embodied in LandTrendr and TimeSync enable
quantitative description of change at pixel and landscape scales. Specifically, these tools allow NCPN to
determine the start, end, duration and rate of disturbance as well as the magnitude of disturbance and
recovery. The evolution of project work leading to implementation of LandTrendr and TimeSync in
NCPN applications informs the appropriate application of these tools and the kind of interpretation that
can be made.
Pilot Studies
Over the course of several years, collaborators at OSU worked with staff from the N&SCPN on a
multi-stage project to evaluate the potential utility of Landsat imagery for monitoring vegetation
on the Colorado Plateau. The initial stage of the project focused on baseline and single-timeframe mapping. Because of the difficulties encountered at this stage, later work focused on
detection and interpretation of change, using increasingly sophisticated methods that
incorporated longer time-series of imagery.
Baseline mapping
Identification of change requires both information about the starting condition and the creation of
models to identify vegetation types from the Landsat imagery. Thus, substantial effort was
initially aimed at baseline mapping. Baseline maps from the NPS Vegetation Mapping project
are both extremely rich in information and generally high in spatial detail, but are limited to the
parks proper and their immediate vicinity and to a single occasion. Expanding the temporal and
spatial scope with Landsat imagery would provide context for monitoring within the parks. Work
focused on Mesa Verde (MEVE) and Canyonlands (CANY), which had no NPS Vegetation
Mapping products at the time of the studies, and at Zion, which did have a completed NPSVM
map.
Key conclusions from this stage of the project included

As expected from the initial literature review, the soil signal dominates the spectral
response in most of the areas of N&CPN, making vegetation discrimination difficult
under any circumstance when Landsat data are used. This is a limitation inherent to the
data, regardless of the spectral indices being used or the data analysis method employed.

Mapping vegetation components with Landsat is done most robustly for forest and
woodland vegetation cover. When thematic maps such as those from the NPSVM
program are available, aggregation to simpler, spectrally-separable classes is feasible and
relatively accurate.

Available reference data are generally inadequate for the purposes of training and testing
maps with Landsat data. New airphoto interpretation can fill some gaps, but is costly,
and even airphoto interpretation lacks the separability needed to go beyond aggregated
class labels with confidence.
Because of these challenges, the N&SCPN and OSU groups determined that the potential utility
of Landsat data for baseline mapping alone was lower than that desired by the parks, but that
some of the methods explored for baseline mapping may be relevant when used in the context of
change detection.
Two-date change detection
Detection of landscape change was thus the next major focus. Change detection studies focused
on MEVE, ZION, and Wupatki National Monument (WUPA). At the onset of the project, the
N&SCPN were interested in the potential to apply the method known as “POM change
detection” (for “probability of membership” change) that OSU had developed for the parks of the
North Coast and Cascades Network (NCCN). However, unlike the situation in the NCCN,
existing land cover maps were available, and thus new methods to aggregate and merge the
existing landcover maps with the spectral strategies of the POM were developed. Also, because
of the different ecosystem properties of the two networks and the expected difficulties of
working in soil-dominated systems, OSU also examined other change detection approaches
based on statistical models between the imagery and airphoto-interpreted estimates of component
cover characteristics.
Key conclusions from this stage of the project included

Reference data are an even greater bottleneck for many change-detection approaches than
they are for single-date mapping, as reference data must be both appropriate for remotelysensed models and consistent across time. Rarely are such data available. Validation of
change results is thus particularly challenging.

Detection of landscape change is possible using either continuous-variable maps or the
POM (probability of membership) approach originally envisioned for these projects. The
former approach is primarily limited to forest and woodland cover types. Landcover
classes in the POM-change approach were limited to fairly broad labels that may not be
useful for some the N&SCPN’s goals.

Any map of change using only two dates of imagery is suspect in these ecosystems
because vegetation phenology and year-to-year variance in precipitation cause many
potential false-positive spectral changes.
As was the case with baseline mapping, these results showed that the methods tested were
appropriate for some uses, but the level of detail needed by the N&SCPN were greater than was
generally feasible. Thus, on both of the primary efforts of the initial agreement between OSU
and the parks, the potential utility of monitoring with Landsat imagery was inconclusive at best.
Many-date change detection
Rather than map landscape change by comparison of two dates of imagery, OSU developed
methods to detect trends across time-series of many years of imagery. A primary benefit of this
approach is that year-to-year changes caused by phenology, sun angle, or ephemeral weather
events can fade to noise around longer-term trends. Also, change is defined for each pixel
relative to its own spectral trajectory, not relative to other pixels. In theory, the influence of
cross-pixel variation in soil brightness would become less of an impediment than for more
traditional methods. Additionally, the availability of stacks of imagery allows for more robust
interpretation of the satellite imagery itself for validation using tools developed in-house at OSU
(known as “TimeSync”). If these interpretation tools were applicable in the CP, many of the
potential problems with reference data could potentially be avoided. Because of these potential
advantages, a small pilot project was funded under a new agreement between OSU and the
N&SCPN to investigate the potential utility of the new method (termed “LandTrendr”) in the
parks.
Key conclusions from this stage of the project included:

LandTrendr segmentation captured many of the key disturbance processes of interest,
including fire, insect mortality, and apparent drought disturbance, as well as
growth/recovery processes

Change mapping in herbaceous areas would likely require new rules to link spectral
change to increase or decrease in cover, but these new rules would likely be generally
applicable once found

Linking POM labeling to LandTrendr was technically successful, resulting in yearly
landcover maps with potentially large information content.

However, POM labeling required aggregation of classes that altered the detailed class
labels

Additionally, the spectral conditions present directly after a change result in labels that
often do make ecological sense; true labeling will require significant effort to develop
post-disturbance spectral class labels that are different from those applicable to the rest of
the landscape

TimeSync interpretation was much more challenging in the non-forest and non-woodland
areas of the CP than expected, suggesting that this validation approach is still not
sufficient to replace inadequate reference data from existing sources.
At a teleconference in August 2009, OSU and the CP networks made progress toward evaluating
which of the methods may be useful for actual implementation in the parks of the CP. The
LandTrendr change maps appear to be the best balance of cost and utility, and the POM
approaches (with two-date and LandTrendr + POM) are likely too costly to justify the further
research needed to fully understand and implement them.
NCPN Applications are Focused Studies
LandTrendr and TimeSync are “one size fits all-wall to wall” processing algorithms in the sense that they
work everywhere at the pixel scale. Thus in one sense they are an implementable protocol that can be
applied in all NCPN parks to detect long-term change that cannot be detected at broad scales any other
way. However, these are sophisticated resource intensive tools that require “tuning” for optimum change
detection depending on the change of interest (slow, abrupt, disturbance, recovery). Furthermore, longterm change assessments at broad scales are unlikely to be necessary in every park every year. For these
reasons NCPN plans to implement LandTrendr on a project basis to address management relevant
questions appropriate to the tools such as the following.
Based on the potential demonstrated in the many-date change detection pilot study NCPN contracted with
OSU to investigate management-driven questions at DINO and CARE. Relevant questions at DINO
center on understanding dynamics of pinion/juniper, sage and the river corridor vegetation condition. At
CARE change in vegetation condition in grazing allotments and along the Fremont River are of interest.
In all of these cases either Parks or NCPN have ancillary data to help interpret the cause of observed
change and its magnitude as measured on the ground. As learning and analytical approaches for using
both LandTrendr output and ancillary data together mature we expect the techniques to be transferrable to
other park units.
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. Elsevier Inc.
doi:10.1016/j.rse.2010.07.008
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. Elsevier B.V.
doi:10.1016/j.rse.2010.07.010
LandTrendr Quickstart Guide
Author: Robert Kennedy (robert.kennedy@oregonstate.edu)
Overview
LandTrendr (Landsat Detection of Trends in Disturbance and Recovery) describes a set
of algorithms that extract useful landscape dynamics information from a dense temporal
stack of Landsat Thematic Mapper images. The overall workflow involves three broad
steps: preprocessing, temporal segmentation, and mapping. The details of the
processing steps are described in "Standard Operating Procedures" (or SOPs).
NOTE for Beta Users: The SOPs contain significant detail and are the product of
collaborative efforts of many individuals. By giving Beta users the authority to edit our
SOPs, we expect you to help us improve consistency in these SOPs by making
corrections to any small errors they find. If there are issues that you cannot resolve,
please note them in the "Items to do/resolve for LandTrendr SOPs" worksheet. It is
easiest to view this document as a form: Open the worksheet in Google Docs, then
under the "Form" menu item, select "Go to live form", where you can enter any notes
with a simple entry format.
Processing:
To handle stacks efficiently, it is important to maintain consistent file naming and
directory structures, for the algorithm and for your own sanity. Please see SOP #8
(Data management), Section 4 to set up your directory structure BEFORE
you do anything else. It is best to handle processing on a scene basis (i.e. one "scene"
is the Landsat path/row of interest; it is composed of many years of "images").
All processing steps are conducted in the IDL language. You must have either IDL or
ENVI+IDL to run LandTrendr.
The core library of LandTrendr code should be stored in a central location on your
computer (for example, C:\landtrendr_code\). This central library will be called from
other locations as you process different image stacks. This code will be updated
periodically to fix bugs, so make sure you know where you put the code, and make sure
there is only copy of the code on your machine.
Processing each image stack is handled through IDL batchfiles. Take the template
batchfiles provided, copy them to the "idl_batchfiles" subdirectory in a given scene's
directory structure (you set that up using SOP #8, right?), and then update them for the
paths, filenames, and parameter sets on your own system.
To run the batchfiles, make sure the IDL preferences in your IDL session have the
startup directory pointing to the idl_batchfiles subdirectory, and then also make sure to
add the folder with the core library of LandTrendr code in the "path" section of the
preferences.
Batchfiles are run from the command line of IDL, e.g. IDL>
@set_up_files_landtrendr_4629
As you progress through the processing steps, the algorithms build and populate an IDL
structure variable that retains all of the relevant information about each stack. This
variable is called "image_info", and is stored in the "image_info_savefile" file whose
name you first assign in the "set_up_files...." batchfile. You must make sure that
everything in the image_info structure is the way you want it -- that all images get found
in the set_up_files step, that the cloud masks show up for all years, etc. It is best to
check on the image_info structure frequently as you progress through processing.
All output images are in flat binary, primarily signed-16 bit type. The file names are
given the ".bsq" extension to signify band-sequential formatting.
LandTrendr Steps
Use the S
These are the most common steps needed to run LandTrendr:
1.
2.
3.
4.
Identify and download images (SOP 1)
Set up a pre-processing study area (SOP 2)
Atmospherically correct a single reference image (SOP 2)
Use "@set_up_files_......" batchfile to identify all relevant 6-band Landsat images
in a given scene (SOP 2)
5. Check the image_info structure to make sure they're all there (See section VIII in
SOP 2 for tips)
6. Use "@mad_landtrendr_..." to normalize the rest of the images in the stack to
the single reference image (SOP 2)
7. Use "@make_landtrendr_tcimages..." to create tasseled-cap images from the
normalized images for the entire stack (SOP 2)
8. Use "@make_cloudscore_images..." to create cloud and shadow score images
from the TC images (SOP 2)
9. Use ENVI to identify thresholds in the cloud-score and shadow-score images that
separate clouds and shadows (SOP 2)
10. Enter those values into the "@mpcm_...." batchfile to create cloud masks.
11. Check the masks of a few images to make sure it worked as expected.
12. Use "@lt045_...." to run the LandTrendr segmentation algorithms on the stack
(SOP 3)
13. Use "@lt045_..._changemaps" to create various map outputs (SOP 4).
14. Check on the veracity of your results using TimeSync (SOP 5)
Some useful tips
To check on the status of the image info, make sure that you have done a restore,
image_info_savefile, and type something like this:
print, image_info.image_file
print, image_info.year
print, tag_names(image_info)
print, image_info[0]
pst, image_info[0]
If the image info gets screwed up somewhere along the way, it's probably easiest to just
rebuild it.
1. Re-run "@set_up_files...." batchfile, and confirm that the image info has all of the
image years and dates.
2. type "repopulate_image_info, image_info_savefile", where "image_info_savefile"
has been set previously to point to the filename of the save file.
The repopulate image info routine will scour the directories that were found in the
@set_up_files... step, and find any files from madcal, cloudscoring, or cloud masking
steps.
When running madcal, it is tempting to only check the band correlations in the .csv file
to determine which images worked right.
DON'T limit yourself to that, however. For any images that do not look stellar, take a
look at the scatterplot .tif files within each image's directory. Sometimes an image will
have a decent overall correlation, but one band may be completely screwed up. If that is
the case, then re-run madcal on just that image, using different parameter values (more
constrictive) or more targeted subsets.
One of the most common ways to break things is to have coordinates somewhere that
are either outside of bounds, or not an integer multiple of pixels away from each other.
The simplest way to avoid this is to use a single usearea file (mask image, which defines
the zone where processing should occur) throughout the whole process (from the
@set_up_files... step through the segmentation phase).
Protocol for LandTrendr
Standard Operating Procedure (SOP) #1
Acquiring imagery
Version 0.01 (October 1, 2009)
Revision history log:
Previous Version Revision Date Author Changes Made Reason for Change
New Version #
New
April 12, 2009 REK
New
0.01
Aug 1, 2009
PN
Populated
0.01
Sep 2, 2010
PN
revised
clarification and consistency
1.
a. Overview
i. I. Landsat Thematic Mapper: Basic information
ii. II. File structure and naming
1. A. Data storage consideration
2. B. Creation of file structure
3. C. Monitoring imagery processing
iii. III. Strategies for selecting imagery for Landtrendr
1. A.. Dates (seasonal and phenological considerations)
2. B. Clouds
3. C. Scene drift
4. D. Missing years
5. E. Trends in imagery dates
iv. IV. Acquiring imagery
1. A. Identifying imagery
2. B. Record your image selections
3. C. Downloading and Ordering imagery
0.01
OVERVIEW
An overview of the LandTrendr processing work flow involves many steps. First, Landsat images for
each year between 1984 to present, primarily during July or August time period, is obtained from the
Landsat data archive (SOP 1). Second, COST atmospheric correction, MADCAL radiometric
normalization, and cloud masking are performed on the images in the yearly stack (SOP 2). Third, the
image stack is analyzed using the LandTrendr process (SOP 3) which summarizes and labels the
Landsat observed long-term trends from year to year. Next, the LandTrendr output results are evaluated
for their accuracy using independent data visualization using TimeSync (SOP 5). Finally, the analysis
and final products are documented and archived (SOP 8).
This SOP describes how to find, evaluate, and download Landsat Thematic Mapper data for use in
LandTrendr-based change detection projects. Because image downloading represents the first step in
data management, this SOP also describes the directory structure for file folders to most efficiently handle
the large volumes of data that will be processed in LandTrendr work.
Figure 1. SOP 1 within the LandTrendr process.
I. LANDSAT THEMATIC MAPPER: BASIC
INFORMATION
The Thematic Mapper is a sensor mounted on the Landsat family of satellites that acquires digital
pictures of the planet's surface by measuring reflected sunlight. The Thematic Mapper sensor has been
included on Landsat satellites since 1984. Currently, two Thematic Mapper sensors are actively recording
imagery: one on Landsat 5 and one on Landsat 7 (also known as ETM+, for Enhanced Thematic Mapper
Plus). For this protocol, the relevant digital information is recorded in footprints on the ground
represented by square picture elements (pixels) with a size of approximately 30m on a side. Imagery is
acquired at the satellite as it orbits the Earth, and then is downloaded to various ground-receiving
stations. For imagery over the continental U.S., images are stored at a central repository in South
Dakota, the EROS (Earth Resources Observation Systems) Data Center (EDC). Information on the center
can be obtained at that center’s web site: http://edc.usgs.gov/about/background.html. Information about
the Landsat family of sensors is found at http://landsat.usgs.gov/.
Currently, the Landsat Archive imagery is being processed and made available for use through a system
which creates a standardized Terrain-corrected image product. This process begins when each pixel in
the image can be linked directly with a map coordinate on the ground, in coordinates determined by a
map projection and an associated spheroid and datum. The spheroid represents a model of the Earth and
the datum a set of coordinates developed through actual measurements of points on the ground.
A key step in linking the geometric properties on the ground to a given image is accounting for the
potential distortion effects of topography and the curvature of the Earth. When Landsat TM measures
reflectance in a particular pixel at the center of the image, it is viewing that pixel straight down, but when it
measures reflectance at the edge of the image, it is viewing that pixel at an angle. In the latter case, the
elevation of the land can cause distortion in the apparent position of the pixel from the perspective of the
sensor: pixels at the tops of mountains will appear to be farther away than they really are, and pixels in
valleys will appear closer. The curvature of the Earth also interacts with the view angle to affect apparent
position of the pixel. Therefore, a geometric model that includes both curvature and the effects of surface
topography is needed to link the observed pixels with their actual locations on the ground. Once the
effects of topography and view angle have been accounted for, the image is said have been terrain
corrected.
As of February 2009, all Landsat Thematic Mapper imagery (as well as imagery from its predecessor, the
MultiSpectral Scanner [MSS]) were made available for free acquisition to the public.
II. FILE STRUCTURE AND NAMING
A. Data storage consideration
1. Amount of data storage needed The files associated with LandTrendr for a single Landsat scene can be of considerable size. It is
recommended that data storage of 120 to 140 GB be set aside for a single Landsat scene for a 25 year
period. If multiple Landsat scenes are being processed, such as for a region or park, the use of an
external hard drive with a large amount of data storage can be used (500 GB to 1 TB). The use of
external hard drives allows easier transportation of the drive, such as between collaborators, if necessary.
2. Back up data Due to the large amount of processing time to get a final LandTrendr product it is wise to backup your
data. The use of a backup or slave external drive and a data backup software program such as SyncBack
may be useful. Note: Pay close attention to backup preferences as files can be lost if not chosen
correctly.
B. Creation of file structure
Creating file folders for Landsat scenes - A logical and simple file structure is necessary to keep the large
amounts of files used and created by LandTrendr well organized. Figure 2 displays a typical file structure
used to organize LandTrendr files. See SOP 8: Data Management for further details.
Figure 2. Typical file structure for LandTrendr
processing of a Landsat scene.
C. Monitoring imagery processing
Use of a processing workbook, such as Figure 3, to track the Landtrendr progress, changes, and results
allows collaborators to quickly assess the processing of the imagery stack. The 'Journal’ spreadsheet
should be updated whenever a task is completed so that all parties are aware of the progress of the
stack, which can avoid misunderstandings and repetition of finished tasks.
1. Worksheets within the workbook
Each major processing task has a tab in the spreadsheet (Figure 3). In addition there is also a Journal tab
which should be updated whenever there are changes so as to offer at a quick glance the progress of the
processing of the stack. The following are the tabs of the processing spreadsheet.
a. Journal
A simple summary of the processing progress of the scene. The who, what, and when of theprocessing.
b. Image status
This is where the specifics of eachimage are tracked. Here you make mention of the reference images.
This is also good place to make mention of specific issues with images. It also helps you evaluate the
date range of your imagery stack.
c. Archive Image Order
This is the location to store information on the images that needed to be ordered from the archive. Fields
include image date, Glovis ID,order number, progress of order, and comments.
d. COST reference
This is where the dark objects values and other COST related values are housed that are later inputted
into the COST model.
e. Madcal
The madcal tab is where copies of the .csv files from the resultant madcal runs are stored. This should
include all runs used to get better results for difficult images (fixes).
f. Cloudscreen
The cloudscreen tab is where the cloudscreening thresholds are recorded prior to creating the cloud
mask batchfile (mpcm).
2.
Updating the processing workbook during imagery acquisition
a. Journal worksheet
The journal tab should be updated whenever one of the main tasks for processing has been completed. It
is also a good idea to mention any notable problems or anything else that would help a collaborator
assess the progress of the preprocessing of the stack.
b. Imagery status worksheet
Most of the work with this tab occurs during or shortly after the imagery acquisition step. In regards to
listing the raw data files the user may want to wait until the archive files have been renamed after the
layer stacking and reprojecting steps.
i. Dates For each image the year, Julian day, and calendar date should be filled in. In addition it is wise to set up
an equation or graph to show the median, mean, and perhaps range of dates to better understand the
dates of the images in regards to the whole stack. For the archive imagery the Julian day is the 3
numbers following the year in the unzipped file name (e.g. LT50460291986222xxx07.tar in this case the
three blue numbers 222 for the 1986 image from path 46 and row 29 from the landsat 5 sensor). This will
later help determine which image is to be used as the reference image. An image from a date near the
Julian day mean or median is preferred. Once unzipped the calendar month and day are the last four
numbers in the file name prior to the band extension and following the year.
ii. Raw data on the drive name of image after layer stacking and reprojecting.
iii. Reference image Two images could be selected here a COST reference and possibly a separate Cloud reference image.
iv. COST on reference Has the COST model been run on the COST reference image? Yes or no.
v. Madcal'd Has the image been madcal'd? Here you may want to put the final overall correlation values for the image
and if it is an image needing more work a comment on its status.
vi. Cloudscore calc'd Has the image had cloudscorescreated for it? Yes or no.
vii. Cloud thresholds determined Has the image had a cloud threshold determined yet? Yes or no.
viii. Comments Any comments regarding the image in general.
Figure 3. 'Image status' worksheet within the LandTrendr processing log.
III. STRATEGIES FOR SELECTING
IMAGERY FOR LANDTRENDR
A.
Dates (seasonal and phenological considerations)
1. July-August imagery is preferred; however, late June and early September may be acceptable.
a.
Before July, there can be problems due to snow or early summer phenological differences.
b.
After August, a reduced sun angle and late summer phenological differences can be problematic.
i. Image date is among the most important criteria to consider in image selection. Remember, clouds
are easy to screen, phenological problems are much harder to correct.
B.
1.
Clouds
Images should be as cloud-free as possible, but some clouds are fine.
2. Try to find an image free of clouds over land, early year-wise in the stack, as this could be used for a
cloud reference image. Date of image is not as important for this image.
3. If images within a year are cloudy try to get more than one image within that year preferrably images
that do not have their clouds in the same places. LandTrendr can handle more than one image per year it
simply chooses the clear pixel with the best Julian date for the stack.
4. If images within a stack have clouds, check to make sure that the clouds are not over the same
location in many of theimages as the cloudy areas will be masked out.
5.
Avoid cirrus clouds and haze. Cumulus clouds are much easier to mask out.
C.
Scene drift
1. Avoid images that drift far from the borders of the other images in your stack. These images will limit
your study area extent later.
D.
Missing years
1. Having every year for LandTrendr is best, but it is not critical. If good quality free images are not
available, it is okay to have images for only every 2 years.
2.
Anchor images
a. Images flanking a missing image year should be high quality and have a tight date range. For
example, if there is no image available for 1995, images for 1994 and 1996 should be relatively cloud free
and have dates of no more than about one month apart.
i.
Good anchor images help LandTrendr avoid detecting false trends due to missing images.
E.
1.
Trends in imagery dates
It is best if the image dates within a stack are either consistent, or consistently inconsistent.
a. Eg. In a stack with mostly images from late August, it is best to avoid using a single image from early
July. Outliers in date range could potentially produce false positives during LandTrendr.
b. When images in a stack generally span the date range
from early July to late August, any date within July or August is okay.
IV. ACQUIRING IMAGERY
There are several steps needed to obtain Landsat imagery from the online archive. First, identify the
location of the study area within the Worldwide Reference System. Second, navigate to the online
Landsat archive. Next, select and order the images. Finally, download the ordered Landsat imagery to
your local LandTrendr workspace. Note, with the rate that technology is changing, the following specific
instructions about websites, downloading procedures, and browsers may become outdated and
inaccurate. Therefore, analysts should use this as a guide and verify the websites and programs
mentioned are accurate.
A. Identifying imagery
1. The Worldwide Reference System (WRS) is a global notation system for Landsat data. It enables a
user to inquire about satellite imagery over any portion of the world by specifying a nominal scene center
designated by PATH and ROW numbers. The WRS has proven valuable for the cataloging, referencing,
and day-to-day use of imagery transmitted from the Landsat sensors
(http://landsat.gsfc.nasa.gov/about/wrs.html). Landsat MSS imagery is referenced the WRS-1 system
while Landsat TM and ETM+ imagery is referenced by the WRS-2 system because of the different image
footprints.
Figure 4. Landsat imagery is located by the Worldwide Reference System 2 with a path and row address
(path/row). Yosemite is located within 42/34. Kings Canyon is located within the overlap of two scenes
42/34 and 42/35. Sequoia is located within the overlap of three scenes 42/34, 42/35, 41/35.
2. Go to the USGS Global Visualization Viewer (GLOVIS) internet site where the imagery of the Landsat
Archive is available for browsing (http://glovis.usgs.gov/). Figure 5 is a screenshot of this webpage.
From the 'Select Collection' drop down choose: 'Landsat Archive'.
From the next drop down choose 'Landsat 4-7 Combined'.
a. Turn off the pop-up blocker function for the internet browser you are using. Pop-up blockers will
interfere with both viewing and downloading images.
Figure 5. Front web page for the Glovis imagery website where the Landsat image archive is browseable.
3. Click on the map somewhere near your study area. Once the USGS Global Visualization Viewer
opens you can choose your specific WRS-2 path and row if known (Figure 6) or navigate using the arrow
buttons. Alternatively, if you have a shapefile of your study area, use GLOVIS/Map Layers/Read
Shapefile.
Figure 6. Choosing a WRS-2 scene.
4. Navigate to the year and date you would like to download
(Figure 7). While viewing the available images take into consideration the suggestions and criteria found
above in section III. Strategies for selecting imagery for LandTrendr.
Figure 7. Choosing an image date.
B. Record your image selections
Record your image selections in the appropriate fields in the 'Image Status' worksheet within the
'LandTrendr_Processing_pprr_template.xls as described in SOP 8 and shown previously in Figure 2.
.
C. Downloading and Ordering imagery
Once a suitable image is found in the Glovis archive directly download the image or order it for
processing. Both the downloading and ordering of images are free of charge.
Before you begin...
>Create the appropriate directory structure, see Figure 2
>Register and/or login with the EarthExplorer website (Figure 8)
Figure 8. EarthExplorer initial registration page.
1. Add image to Scene List
With the desired image active in the USGS Global Visualization Viewer click the 'Add' (Figure 9) radio
button in the bottom left of the viewer. At this point only the 'Submit' button may become active or the
'Submit' and 'Download' radio buttons will both become active. If 'Download' is active you can mouse-click
to immediately download the image . Otherwise select 'Submit' to order the image.
Figure 9. Adding an image for download to the scene list. If the image is shown with a 'downloadable '
note in the upper left corner of the image viewer, the selected image is available for immediate
downloading.
2.
Downloading an image (Figure 10).
a. Confirm Download
After clicking the Download radio button simply click “Yes” in the Confirm download for no charge dialog
box. You will be prompted to log into the EarthExplorer website (figure 6), if you have not previously.
b. Submit request
Once you have submitted your request the download dialog box will come up. Soon after a smaller dialog
box with series of red blinking dots (status bar) will also come up. note: if this smaller download retrieval
dialog box does not come up and the larger download dialog box seems idle (Internet Explorer flag not
waving) it is not retrieving the request. Popup blockers are likely interfering; this caninclude not only the
Internet Explorer or Firefox pop up blockers, but also others such as those on the Google toolbar. Allow
pop ups and this should work.
c. Select location to save image
Following this, a download dialog box should come up asking where you would like to save the image.
Create a destination folder based on the year of the image (e.g. 4527\Images\1984 ) navigate to that
directory and the actual downloading of the image will begin. Note: If using Mozilla Firefox it may be
necessary to go to Tools/Options/Downloads and select Always ask me where to save files, so that you
can navigate to the folder you want to save it in.
d. Download Time
Downloading time will vary depending upon your internet
speed. The files are compressed, usually hundreds of megabytes, and will need to be uncompressed
after download.
Figure 10. Downloading immediately available Landsat Archive imagery is accomplished with a series of
mouse-clicks.
e.
i.
Ordering an image
If an image is not available directly for download then click the 'Submit' radio button (Figure 11).
Figure 11. Submit imagery for processing if it is not immediately available for download.
(1). If the image has clouds it may ask you if you want to include low quality scenes. These images are
often fine, so check the image box and click continue.
(2). If the image is a Landsat 7 SLC-off image you will be asked if you wish to continue with your
request even though there are data gaps . Select ‘Yes’.
ii.
Then in your EarthExplorer browser window will be step1 of 5 of a shopping basket (figure 12).
Figure 12. Shopping basket for ordering Landsat Archive imagery.
(1) Make sure the image is correct then select 'Checkout'
(2) Then click 'Continue' & Enter your address
(3) Make sure all of your address information is correctly filled out especially your e-mail. Click 'Submit
Address Information.'
(4) You should then see that your order has been received. It is a good idea to enter your Imagery order
number and other information into your preprocessing workbook under a worksheet named 'Landsat
Archive orders'.
iii. Confirmation Email.
You should receive an e-mail in approximately 2 to 4 days. You may be alerted that your image could not
be processed. If your image was processed you will be given a link in the e-mail. Click the link and from
here you can follow the instructions above under section IV.C.2. 'downloading an image'.
Protocol for LandTrendr
Standard Operating Procedure (SOP) #2
Preprocessing image stacks
Version 0.01 (March 9, 2009)
Revision history log:
Previous Version Revision Date Author Changes Made
New
April 12, 2009 REK
New
July 30, 2009
populated
PN
Reason for Change New Version #
0.01
0.01
March, 2009
REK
Clarifications
0.01
Sep, 2010
PN
revisions & clarifications
0.01
Table of Contents
1.
a.
i. Overview
ii. Processing Datasheet
iii. I. Conventions for Describing Software Methods
1. A. IDL
2. B. ENVI
3. C. Erdas Imagine
iv. II. Setting up file structure (SOP 8)
1. A. Naming of files
2. B. Determine map projection
v. III. Converting Landsat Archive files
1. A. Landsat Archive files
2. B. Batch conversion and reprojection using 'envi_glovis2landtrendr.pro'
vi. V. Establish Reference Images
vii. VI. Reprojecting Images
viii. VII. Compensating for Sensor and Atmospheric Influences in Reference Image
(Atmospheric Correction - COST Method)
1. A. Selecting dark-object values for each band:
ix. VIII. Setting up image information structure
x. IX. Defining Study Areas
1. A. Overlap area count method
2. B. Vector-based method
3. C. Thiessen scene area method
xi. X. Compensating for Sensor and Atmospheric Influences in Input Images
(Madcal)
1. A. Identify the radiometric-reference image.
2. B. Identify subsets
3. C. Run MADCAL procedure
4. D. Analyzing MADCAL results
5. E. Verify Image_Info variable
6. F. Create header files
xii. XI. Generating LandTrendr Tasseled-Cap images
1. A. Load Image_Info variable into Memory
2. B. Alter make_landtrendr_tcimages_pprr.pro
3. C. Run batchfile
4. D. Verify Results
xiii. XII. Cloudscreening
1. A. Producing cloudscore images
2. B. Determine thresholds for clouds and shadows
xiv. XIII. Creating cloud masks
1. A. Alter batchfile
2. B.
Run batchfile
3. C. Create header files
4. D. Verify Results
xv. XV. Works Cited
OVERVIEW
An overview of the Trajectory Based Change Detection (TBCD) processing work flow involves
many steps. First, Landsat images for each year between 1984 to present, primarily during July or
August time period, is obtained from the Landsat data archive (SOP 1). Second, COST atmospheric
correction, MADCal radiometric normalization, and cloud masking is performed on the images in the
yearly stack (SOP 2). Third, the image stack is analyzed using the LandTrendr process (SOP 3) which
summarizes and labels the Landsat observed long-term trends from year to year. Next, the LandTrendr
output results are evaluated for their accuracy using independent data visualization using TimeSync
(SOP 6). Finally, the analysis and final products are documented and archived (SOP 8).
Figure 1. SOP 2 within the LandTrendr process.
This SOP explains the procedures for processing data acquired in SOP 1 into a geometrically robust,
radiometrically standardized-reflectance product that can then be used for change detection and
evaluating disturbance and recovery trends. Preprocessing is a critical step in any change-detection
study, but especially for this method.
PROCESSING DATASHEET
Many detailed and sometimes complicated steps are in this SOP. Because the analysts may need to
split work between this work and other responsibilities, we provide table 1 that can be printed out
separately for the analyst to track the steps that have been completed. This should facilitate easier
recovery from interruptions. Figure 2 shows a screenshot of the LandTrendr process log composed of
multiple tables for documenting
specifics results of each LandTrendr step, as described in SOP 8: Data Management.
Figure 2. LandTrendr process log template. An excel workbook comprised of multiple worksheets to
track the results of the LandTrendr process including the preprocessing steps of image dates, COST
correction, MADCAL, and cloud screening.
I. CONVENTIONS FOR DESCRIBING
SOFTWARE METHODS
All core methodologies for implementing this protocol are written in a proprietary software language
known as IDL (Interactive Data Language; ITTVIS). This software underlies ENVI (Environment for
Visualizing Imagery; ITTVIS), which is one of two major image processing software packages in the
research and commercial field (the other being ERDAS Imagine). The components of this protocol that
require standard image processing methods are therefore preferentially described in terms of
implementation in ENVI, allowing most users the ability to entirely carry out the work herein using a single
package (ENVI+IDL).
A. IDL
The main console of the IDL Development Environment (IDLDE) is presented in Figure 2. Commands to
be entered at the command line prompt will be documented as:
IDL> @landtrendr_4234_run1.pro
where IDL> is the command line prompt and "@landtrendr_4234_run1.pro" is the command for IDL to
initiate.
Figure 3. IDL Development Environment (IDLDE) main screen. The IDLDE is a graphical interface
providing editing and programming for IDL programs such as LandTrendr.
IDL Basics
Understanding some basic IDL operations is necessary to operate LandTrendr. The relevant concepts
are presented below. For a more thorough understanding of IDL in general, the program has a robust
documentation system, IDL Online Help accessible through the menu or by typing (IDL> ?).
a. Search Path
The search path is a list of directories that IDL searches to find a program, procedure, batch file, or
save file. Creating a link to the working directories is necessary for IDL to operate on the downloaded
Landsat imagery. In the IDLDE following File->Preferences->Path allows a user to insert a new path to a
specific directory such as the location of your LandTrendr working directory, as demonstrated in figure 4.
Insure that your path is 'checked' for IDL to search.
Figure 4. Setting IDLDE Search Path Preferences.
b. Variable
A variable is a symbolic name associated with a value and whose associated value may be changed
(wikipedia, 2009). In IDL, variable names must start with a letter, are case-insensitive, and may be up to
128 characters in length. An IDL variable are described with two attributes: type and organization. The
type of variable determines the type of data allowed to be represented and the range of values possible
(Table 1). IDL variables can be organized into scalars, arrays, or structures. Scalars are single values
and are recognized by the format variable name = variable value. Arrays are multiple values of the same
data type arranged in x columns and y rows and recognized by the values in square brackets ([]).
Structures are a combination of data types and organizations allowing different data types to be stored in
a single variable. Below is an example of creating variables:
Scalar Text Variable
IDL> scalar1 = 'string value1'
IDL> scalar2 = 'string value2'
Array Text Variable
IDL> array = [scalar1, scalar2]
IDL> print, array
string value1 string value2
Table 1. Variable data types.
Type
Size (bytes)
Range
byte
1
0-255
integer
2
-32768 - 32768
unsigned integer
2
0 - 32768
long integer
4
±2^31-1
unsigned long integer
4
0 - 4294967295
64-bit integer
8
±2^63-1
unsigned 64-bit integer
8
0 - 2^64-1
float
4
±1E±38
double
8
±1E±308
complex
8
±1E±38
double complex
16
±1E±308
string
pointer
4
object
4
c. Statements
A statement is an instruction that tells a computer what to do. A program is a sequence of statements
that act as a unit. The LandTrendr program is comprised of many individual statements divided into
procedures and functions.
d. Procedures
A procedure is a self-contained IDL program; i.e. any variable defined in a procedure is deleted when
the program ends, unless it is passed out through a parameter. A procedure starts with the procedure
declaration statement (keyword PRO), the name of the procedure, and any parameters for the
procedure. The body of the procedure follows. A procedure is terminated with an END statement
(ITTVIS, 2007).
e. Functions
A function is another self-contained IDL program, like a procedure; however, a function always returns
information to its caller. A function begins with the function declaration statement (keyword FUNCTION),
the name of the function, and any parameters for the function. The body of the function, which usually
includes at least one RETURN statement, follows next. A function is terminated with an END statement.
The syntax for calling a function includes positional and keyword parameters (ITTVIS, 2007).
example:
overlap_file = build_image_overlap_area_image(image_info_savefile)
f. Parameter
Parameters are used to pass information between IDL programs. There are two types: positional and
keyword. Positional parameters are typically used for required information while a keyword parameter is
used for optional information. The order of positional parameters in a call is important while keyword
parameters (denoted with a "/") may be listed in any order (ITTVIS, 2007).
IDL> function_above, 5, /noedit
g. Batch File
A file containing IDL statements, with no declaration or terminating END statement. Batch files are
simple text files that can be created in the IDLDE interface, or in any standard text editor. Each line in the
file is evaluated by IDL as equivalent to a single entry on the command line.
IDL > @lt042_4529_nbr
The command above instructs IDL to find and run all of the lines in the file named "lt042_4529_nbr".
The file must reside in the IDL search path.
2. User interaction with IDL in LandTrendr processing flow
a. The LandTrendr workflow relies heavily on the use of batchfiles. For each major step in the
process, the user will run a batchfile based on templates provided along with this protocol. The user must
first adjust key file names, paths, and parameters to suit their own needs. The specifics of the template
files and the changes the users must make are provided in these SOPs.
3. General structure of landtrendr -- the idea of the image info structure
Working with large amounts of data requires a systematic structure of storing and accessing the proper
file at the proper time. LandTrendr uses an IDL structure variable to store the necessary information that
the program uses at various stages of processing. Table 3 shows the attributes and values which create
the 'image_info_file' variable. Certain procedures will alter and populate the variable values so it is
important to verify the quality of this variable at specific points throughout the process.
Table 3. Variables and their definitions of the 'image_info' structure variable.
Variable
definition
IMAGE_FILE
Path and Name of the 6-band Landsat
Archive image
IMAGE_PATH
Path to image file
TYPE
Tracks reference images
example values
3
(1) MTBS
(2) NLAPS
(3) COST reference image
(4) other
NBR_FILE
Path and name of the Normalized
Burn Ratio raster file
TC_FILE
Path and Name of the Tasseled Cap
raster file
B6_FILE
Path and Name of the thermal band
raster file
YEAR
Year (1984-present)
1985
JULDAY
Julian Date (1-365)
226
UNIQUE_YEAR
Is this a unique year
(0= no, 1 = yes)
N_IN_YEAR
Number of images in the year
1
IMAGE_PRIORITY
Based on the median julian date of
1
the scene stack, how does this image
rank compared to any other image in
the year. This is used for determining
which image to use for a masked
pixel.
CLOUDYEAR
Cloud reference file (0= no, 1 = yes)
CLOUD_DIFF_FILE
Path and Name of the cloud
difference file created in step XII.
SHADOW_DIFF_FILE
Path and Name of the shadow
difference file created in step XII.
1
TC_CLOUD_DIFF_FILE Path and Name of the Tasseled Cap
cloud difference file created in step
XII.
CLOUD_FILE
Path and Name of the cloud mask file
created in step XII.
SUBSET
The coordinates of the upper left and
lower right coordinates of the image.
USEAREAFILE
mask raster for intersection of
images. determines spatial extent of
madcal, cloud scores.
J:\4334\gis_data\usearea.img
PATH
Path for the Landsat scene being
processed.
J:\4334\
B. ENVI
The Environment for Visualization (ENVI) is a menu-driven software built upon IDL with a "Main
Console" shown in figure 5. The buttons arranged horizontally refer to the main modules of the program.
Actions are taken by selecting a button, which then either starts an action or brings up pull down menu
with several options, some of which have pull down options of their own. Actions will be referred to by
the box in the main console, followed by a forward slash ("/") and the name of the option from the
pulldown menu, such as File/Open External File/IP Software/Erdas Imagine. A second slash and
pulldown option will be listed as necessary. The IDLDE is also opened and available for use during an
ENVI session.
Figure 8. ENVI main menu console.
i. Viewing images
File/Open External File/IP Software/Erdas Imagine/filename.img
1. File/Open Image File/filename (ENVI format)
2. Image Display Windows
Viewing images in ENVI involves choosing the desired bands for display in the red, green, blue display
channels from within the 'Available Bands List' dialogue as shown in figure 9.
Figure 9. ENVI image display windows is comprised of a scroll, image, and zoom windows. A pixel
locator can be toggled on and off in the zoom windows.
C. Erdas Imagine
Imagine is a menu-driven software package that begins with a "Main Console," shown in figure 11. The
buttons arranged horizontally refer to the main modules of the program. Actions are taken by selecting a
button, which then either starts an action or brings up pull down menu with several options, some of
which have pull down options of their own. Actions will be referred to by the box in the main console,
followed by a forward slash ("/") and the name of the option from the pulldown menu. A second slash and
pulldown option will be listed as necessary. For example, image subsetting is in a pulldown menu from a
pulldown menu from the Interpreter button on the main console, referred to as
"Interpreter/Utilities/Subset."
Figure 11. Main console of Imagine
Once an action is selected, an action window typically appears that provides a suite of options for a
given action. The "Subset" action window, for example, is shown in figure 12.
Figure 12. Subset window.
Instructions for filling in boxes and checking options on these action windows are referenced by the
name on the window followed by a colon. For example, to switch the default Output type in the subset
window above to Signed 16 bit, the instruction in this SOP would read "Output: select Signed 16-bit."
II. SETTING UP FILE STRUCTURE (SOP 8)
Creating and following the directory structure and naming conventions described in SOP 8 is critical for
the algorithms to find files and write outputs.
A. Naming of files
File names are concatenated sequences of codes that uniquely describe a file. To be used in the
LandTrendr processing stream, filenames must adhere to a strict naming convention. This naming
convention allows the processing algorithms to identify which type of image is being used, and the
julian date of the image, which is used in several key steps.
We advocate descriptive code names that allow a user to immediately identify each files purpose.
Table 3 provides a list of all of the component code names for one example of images for one
scene (path 42 row 34). An example file name strings together these codes in this order:
(IMAGETYPE)(PATH)(ROW)_(YEAR)_(JULIAN DATE)_(IMAGESOURCE).(FILE
FORMAT)
LT5046031_1985_219_archv.img.
Table 3. Preprocessing Filenames. Key distinctions highlighted in Bold.
Preprocessing
Distinction
Example
Description
step
LT4
LT41320261989169AAA02.tar.gz Landsat 4
LT5
LT5046031_1985_219_archv.img Landsat 5
pp
rr
World
Reference
System-2
Path
LT5046031_1985_219_archv.img
number (1?). NorthSouth
Direction.
World
Reference
System-2
Row
number. (1LT5046031_1985_219_archv.img ?). EastWest
Direction.
LandTrendr_processing***.xls
1. Stack
Image
_.tar.zip
Landsat
Archive tar
zipped
compressed
file
containing
all Landsat
bands.
Landsat
Archive
Band #.
Each #
corresponds
to the
Landsat
band
number.
_b#.tif
2. Image Info Image_Info_pprr
Image_Info_4234.sav
B. Determine map projection
1. Header Template
A template header file, defining the projection of the associated file, is used in several steps of the
LandTrendr process. This file is created through ENVI tools and stored in the /images/ directory as
described in SOP 8.
a.
b. Example header template file
ENVI
description = {
File Imported into ENVI.}
samples = 8064
lines = 7872
bands = 1
header offset = 0
file type = ENVI Standard
data type = 2
interleave = bsq
sensor type = Unknown
byte order = 0
map info = {MRLC_albers_con_eq_area, 1.5000, 1.5000, -2169570.0000, 3131490.0000,
3.0000000000e+001, 3.0000000000e+001, North America 1983, units=Meters}
projection info = {9, 6378137.0, 6356752.3, 23.000000, -96.000000, 0.0, 0.0, 29.500000, 45.500000,
North America 1983, MRLC_albers_con_eq_area, units=Meters}
wavelength units = Unknown
III. CONVERTING LANDSAT ARCHIVE
FILES
Creating the required 6-band Landsat image is a necessary first step in the LandTrendr process.
Imagery downloaded from the Landsat Archive needs to be stacked into one file. There are at least two
approaches within ENVI: Manual stacking of individual files (part A below) or batch processing using
script-based approach (part B below). The former is more time-consuming but requires less start up
learning (mostly about how to arrange files and folders).
A.
Manual extraction of Landsat Archive files in ENVI
Landsat Archive images acquired from GLOVIS come in a standard format: the UTM projection, GeoTiff
format, where each band of the image is represented by a separate file. These must be stacked,
reprojected, and the file placed in a filename format that LandTrendr can recognize.
Before you start:
-Confirm that you have downloaded the .zip file with the image into an appropriate folder
-Confirm that the unzipping process worked. There should be a series of files with names such as
"L71047027_02720080805_B10.TIF." See Figure 1 below. Note that Landsat 5 images will have only
one B6 file (not two, as shown here) and no Band 8 (the Panchromatic band only on ETM+). Some
images also come with a similar naming convention to above, but with a *_b1.tif file suffix.
-Confirm that the geographic projection to which you will be projecting exists in ENVI's list.
Figure 13. An example of GeoTiff files that come from the Landsat archive.
a. Open ENVI if it is not opened already
a. Stack and reproject images in ENVI
b. The basic approach is to stack the visible (1-3) and non-thermal infrared (4, 5, 7) bands
and reproject them at the same time.
c. Identify image
i. Select "Basic Tools\Layer Stacking." You will see this dialog box (Figure 14):
Figure 14. The Layer Stacking dialog in ENVI.
i. Click "Import File...", and on the subsequent Layer Stacking Input File dialog,
click the "Open/New File" button, and identify Band 1 of the GeoTiffs. It will show
up in the Select Input File box of the Layer Stacking Input file dialog. Click "OK".
The file will appear in the upper left box of the Layer Stacking Parameters dialog
box in Figure 14.
Figure 15.
ii. Repeat step b for the five files with the following filename components, in this
order: ....B20.tif, ....B30.tif, ....B40.tif, ...B50.tif, ...B70.tif
1. Tip: Be sure to put these in the correct order, as this will determine the
order of the layers in the resultant file.
2. Tip: If you are importing more than one date of imagery in a folder, it will
be easy to inadvertently grab the wrong date of imagery. Be careful!
Additionally, pay particular attention that you have correct source image
iii. Confirm that all six files are in the box in the correct ascending order.
Figure 16.
a. Change the projection of the output image
i. On the right of the Layer Stacking Parameters dialog box, click on the projection
you are using (e.g. the continental albers conical equal area projection for
projects based on MRLC data should be set up ahead of time and in this list).
Figure 17.
a.
Pixel Size
i. X and Y pixel size should remain at 30.0000 m
1. Resampling: Nearest Neighbor
b. Enter the output filename
i. For images that come from the Landsat Archive, use this naming convention,
placed in the same folder as the geotiffs:
1. lt5027026_1999_205_archv
i. Where "lt5" corresponds to Landsat Thematic Mapper 5, "027026" to the path
row of the image (retain leading zeros), "1999" is the four digit year, "205" is the
Julian day of the year, and "archv" is the unique identifier for images obtained
from the archive. It is critical to retain exactly this structure, since the programs
count characters in the file names to identify the julian day of each image.
1. Julian days: If you only have information on the actual date/day of an
image (e.g. July 24th, 1999 instead of 205), calculate the julian day in a
standard spreadsheet with a column in date format for the date/days,
and a second column with sequential numbers. For simplicity, do not
include leap days -- the difference of 1 day for the calculated julian day
will not affect the algorithms.
Figure 18
f.
Click "OK" to begin calculation.
i. The File Map Projection Conversion dialog will open as ENVI processes the
scene.
a. Upon completion of the process, the new 6-band image will show in the 'Available Bands
List' dialog box. Confirm that the image has appropriately converted (check band names,
projection) by viewing it in ENVI.
Reminder: naming conventions
COST reference image> juldayoffset = 11
Archive images> juldayoffset = 15
;format: 5047027008621310_refl_cost.img
;format: lt5027026_1999_205_archv.bsq
B. Batch conversion and reprojection using
'envi_glovis2landtrendr.pro'
This approach allows for quick importing and reprojecting of archive files, once you have the file
structure set up appropriately. The key issue here is to have all of the information about the file (path,
row, year, day of year, etc.) in the correct character-location in the name of the folder that holds the
individual *.tif files. The batch conversion process begins with unzipping the Landsat Archive imagery to a
directory within '\\pathrow\workspace\' folder.
1. Getting files into the correct location
a. Assumes: You have a folder named "workspace", e.g. 4532\workspace.
b. During the imagery download process, save your *.tar.gz files to the
workspace folder (Figure 19).
Figure 19.
a. Using WinZip or similar program extract the file to the same workspace folder.
i. NOTE: You may be prompted to extract to a temporary folder. CHOOSE "NO" -you do not want a temporary folder (see next step).
Figure 20.
i. The result should be a .tar file in the workspace directory.
a. Extract the .tar file, and ensure that the folder name has this format:
i. LX50460322008235
1. Where: X could be "T" or "E", and is not really critical except for being a
character spaceholder.
2. 5 is the designation of the sensor -- could also be 7 for Landsat 7
3. 046 is the path
4. 032 is the row
5. 2008 is the year
6. 235 is the julian day of year
7. Anything after that is ignored, so you can add characters as needed.
Figure 21.
a. Run the conversion program
Start IDL and type (Figure 24):
IDL> envi_glovis2landtrendr
*note the default is to reproject the Archive imagery from UTM to MRLC Albers Conical Equal Area. If the
imagery is required in a different projection than MRLC Albers, passing a 'proj' variable to the function
allows this reprojection to be user controlled.
IDL>Envi_glovis2landtrendr, proj=#
# Projection Type
0 : albers
(MRLC Albers Conical Equal Area)
1 : map_info.proj (native UTM projection from Archive)
2 : orlam (Oregon Lambert )
3 : Southwest Alaska Network NPS (SWAN - Albers Conical Equal Area)
Figure 24.
1. A dialog box (figure 25) will open asking you to browse for an input
folder.
a. Choose the "workspace" folder -- i.e. not the one you just
created, but the one "above" it.
b. The program will look within the "workspace" folder for
subfolders that have the file naming conventions described
above for path, row, year, etc.
Figure 25.
1. Another dialog box (figure 26) will open asking you to browse for an
output folder.
a. Again choose workspace. Conversion should begin. It may take
several hours.
Figure 26.
i. Batch stacking results (figure 27):
1. You should have in the workspace folder
a. A subfolder named after the scene path/row
e.g. \\workspace\4532
a. Within that folder, subfolders with the years of images converted.
e.g. \\workspace\4532\1985, <years>, etc.
a. Within each year folder, you should find:
i. Converted *.bsq files for the bands 1-5 and 7 stack and
b6 in the correct naming convention and projection.
i. Copy the new stacked imagery from workspace directory to \images\
directory(figure 28)
i.e. G:\4532\workspace\4532\<years> would move to G:\4532\images\<years>
V. ESTABLISH REFERENCE IMAGES
Two categories of preprocessing are to be carried out in this SOP: radiometric and cloud
identification. In each category, the user must define an image acquired on a specific date to be a
reference towards which all other images will be matched. Thus a reference radiometric image and a
reference cloud-free image are needed.
The radiometric-reference image is one whose radiometric properties will anchor the radiometric
properties of later images. The radiometric properties simply refer to how the spectral reflectance of
objects on the ground surface are represented as numbers in the image, and takes into both the sensor
engineering design and the state of the atmosphere that interferes with the reflected light from the ground
as it travels to the satellite. The radiometric-reference image is one whose radiometric properties are well
defined.
In practice, choice of a good radiometric-reference image comes down to a clear atmosphere during
image acquisition and a date of acquisition similar to that of most of the other images for which the image
is to be used as a reference. This latter condition is useful because a key step in preprocessing is
normalizing later images to the spectral properties of the radiometric-reference image. Differences
caused by phenological state of the vegetation could confuse the normalization if the reference image
were obtained during a point in the season completely unusual relative to the other images desired for
use.
Therefore a radiometric reference image should be chosen from the same late-summer date windows
that are recommended for all images (SOP 1). The clarity of the atmosphere for a given image typically
cannot be known, but can be inferred. First, minimal cloud cover is preferred, since cloud cover indicates
presence of increased levels of moisture in the atmosphere. A dry atmosphere is preferred. Cloud-free
images can still have significant levels of atmospheric haze or forest fire smoke, which also is to be
avoided. Haze levels can be inferred from the spectral response of pixels across the six visible bands of
the Landsat imagery. Haze affects the bands at shorter wavelengths more than longer wavelengths
because of the relation between the size of the particle causing the haze and the wavelength of light
passing through it. Therefore, images with the least inferred scattering in Band 1 (the blue band of
Landsat, with the shortest wavelength) are the images least affected by atmospheric haze. Thus, if there
is a choice of several images for potential radiometric reference image, then it is recommended that the
images be processed through to the COST processing, detailed below, and then the image with the
lowest overall dark-object value in Band 1 be used as the radiometric-reference image.
A second type of reference image needed is one that is free of clouds. This image may be the same
as the radiometric reference. Two requirements for the cloud-free reference include 1) free of clouds 2)
early in the scene stack (1984-1988 preferably). Since the cloud-reference image will be compared to
other images in the stack, the second requirement minimizes false-positives to the cloud screening
procedure. If there is not a cloud-free image early in the stack, additional screening steps will be
necessary.
Screening the images used in the LandTrendr process for clouds is important because these data
anomolies create false positives of change and recovery. A cloud-free pseudo image is created on the fly
by LandTrendr by using multiple images for a given year to fill in missing data for clouds present in a
primary scene (closest to mean julian date of stack).
<<Figure 27. Example of appropriate reference images>>
VI. REPROJECTING IMAGES
It is critical that all images and vector coverages be in the same projection, spheroid, and
datum before any radiometric or change-detection processing is begun! Although Imagine and
ArcGIS will tolerate different projections and spheroids when processing, it is best not to allow Imagine or
ArcGIS to reproject "on-the-fly" without knowing explicitly that images are aligned as is necessary. Only
by viewing spatial data and ensuring that spatial relations are as expected can robust results be
achieved.
Although many existing Digital Elevation Models and some vector coverages are in the Clarke
1866/NAD27 Spheroid/Datum combination, those are based on older model of the Earth, a poorer datummeasurement network, and thus should be avoided as baselines for future monitoring. The conversion
between NAD27 and NAD83, although not perfect, can be achieved with accuracy more than sufficient for
Landsat-based investigations.
Reprojection to the NPS standard projection can be incorporated into the envi_glovis2landtrandr.pro
procedure discussed previously in SOP 2:IIIB. .
VII. COMPENSATING FOR SENSOR AND
ATMOSPHERIC INFLUENCES IN
REFERENCE IMAGE (ATMOSPHERIC
CORRECTION - COST METHOD)
The atmosphere affects the reflectance signal that impinges on the sensor from the surface of the
Earth. Differences in atmospheric conditions between dates of imagery will cause differential artifacts in
the images that will confuse later change detection. Therefore, all reasonable efforts must be made to
compensate for these effects. The first step is to bring both images into a common system of
measurement, reflectance.
The units of a Landsat image are simply digital numbers (DNs), corresponding to the magnitude of energy
being measured by each of the sensor elements in the satellite. Because the engineering properties of
the sensor are known, the DNs can be converted into physical units of radiance. Knowing the emission
spectrum of the sun entering the atmosphere, these units of radiance can further be quantified as a
proportion of the incoming radiation ranging from 0 to 1.0. This is known as "top-of-atmosphere
reflectance." It does not take into account the effects of the atmosphere.
Without direct measurements of atmospheric absorption at the moment of image acquisition, it is
impossible to know this atmospheric effect directly, but it can be approximated. To approximate the
effects of the atmosphere, it must be assumed that there are some objects on the surface with little to no
reflectance. These so-called "dark objects" should indicate a reflectance of zero or near-zero. Because
the atmosphere introduces scattering between the objects and the sensor, the apparent reflectance of
these objects from the sensor's perspective is non-zero and positive. The additive effect of this scattering
can be removed by simply subtracting the offset above these dark objects from all pixels in the image.
The multiplicative effects of the atmosphere can be approximated simply by a correction factor that scales
with the path length through the atmosphere, which requires only that the sun angle and elevation be
known. All of these steps can be incorporated in a single-transformation process and placed in a graphic
model in Imagine. Because these were best described in (Chavez, 1996) as COS-theta or COST
methods, these steps are referred to here as COST processing.
A. Selecting dark-object values for each band:
The first part of the COST processing is selection of dark-object values for each of the six visible
bands in Landsat. An Excel worksheet is included in the
"Processing_LandTrendr_pprr_template.xls" and serves as a template for which the relevant
values for COST processing can be stored.
Figure 28. COST processing worksheet.
a. This worksheet is named 'Cost Reference'.
b. Save this Excel file under a new name that corresponds to the name of the image, so that it can
be connected easily with that image in the future.
c. Make a note of this filename in the metadata associated with this image.
a. Follow the conventions in SOP 8 Data Management for naming convention.
d. It is helpful to use the entire image area, not just the area within the study area of the park, for
locating potential dark objects because the population of potential targets is much higher.
Therefore, for a given image, go back to the first version of the image that includes the entire
footprint of the original Landsat image directly after importing into Imagine format.
a. i. This image should be the one that was imported in section III above. It need not be
geometrically referenced for selection of dark-object values.
1. Open the Landsat reference image in an ArcGIS session (figure 29):
i. Use the open-folder icon to bring up the " Add Data" window.
ii. Navigate to the location of the 6-band Landsat image.
iii. Select the 6-band Landsat image and 'Add' to the display (note this will display
an RGB composite of the first 3 bands in the list. Use the 'layer properties' to
change the display of the image).
Figure 29. Add 6-band Landsat image to ArcMap session.
2. Add individual bands of the Landsat image (figure 30)
a. Use the open-folder icon to bring up the " Add Data" window.
b. Navigate to the location of the 6-band Landsat image.
c. Double mouse-click on the 6-band raster image to reveal the individual bands, then select each
individual band, add to display.
Figure 30. Add individual bands of the 6-band Landsat image to an ArcMap session.
Identify dark object value for each band (figures 31-34)
Identifying the dark object value for each Landsat band begins with examining the digital number
(DN) histogram and DN minimum value. Symbolizing the raster helps the analyst identify the darkobject value for this band based on acceptable surface features.
a. Right-mouse-click on the '*_archv.img - Layer 1' raster file to open the context menu, select
'properties'
b. Select 'Symbology' Tab
c. Select 'Classified' for symbology type. Change number of classes='2'
d. Select 'Classify' button to view histogram.
Figure 31. Open layer properties of the band through a right-mouse-click and the context menu.
e. Note the shape of the histogram, the minimum raster value of the histogram.
i. The Histogram value (y axis) indicates the count of pixels that have a cell raster value indicated in the xaxis. For Landsat images, these range from 0 to 255.
ii. If there is a high histogram count in the row with value 0. These are the pixels outside the edge of the
image area, and should be ignored.
iii.For bands 1-3 and often 4, the lowest DN value is not zero, but rather another higher value. This
indicates that even the darkest objects in the scene have non-zero reflectance, and indicates the level of
atmospheric scattering. It is not wise to simply take the lowest non-zero DN as the dark-object value,
however, because these low values could be artifacts of processing upstream of image acquisition or
even of steps conducted in the computer software.
Figure 32. Setting the breakpoint for the dark object value.
2. Start with the lowest non-zero histogram value and examine the location of the pixels corresponding to
that value using step 2.a.i.-vii. below, and step sequentially to higher values until a pixel value is identified
whose pixels reside in the landscape, and which correspond to features that are expected to be darkobjects step 2.b.i.-ii. below.
a. To examine where pixels at a given pixel value reside on the image, do the following:
i. Look in the viewer at the image and see where the black pixels reside.
ii. Evaluate these pixels according to the criteria in step b. below.
iii. If these pixels are not considered valid dark objects. Then move to a pixel value one step higher and
repeat the evaluation process.
iv. If these pixels are considered legitimate dark objects, then take this value as the approximate darkobject value.
(1) Because few objects are truly nonreflective, it is typical to assume that the observed dark objects have
an actual reflectance on the ground of roughly 1 percent. Therefore, the true value for zero reflectance
will be somewhat lower than the observed value in the image. The correction factor can be approximate,
since these dark objects are an approximation of the actual atmospheric effects. Therefore, take the
tentative dark object value and adjust it as follows to calculate the actual dark-object value for the band:
!!SeventhLevel!!(a) For bands 1-3 and band 7, subtract 1 from the observed value.
(b) For bands 4 and 5, subtract 2 from the observed value.
!!EighthLevel!!(i) In both cases, however, the minimum allowed dark-object value is zero.
v. Enter this value in the dark-object value column for the row corresponding to the band in the Excel
spreadsheet saved in step 1.b. above.
Figure 33.
b. Evaluating dark-object pixels.
i. Characteristics of valid dark-object-type pixels.
(1) The pixels reside on the landscape, not on the margins of the scene area.
(2) The pixels are in areas where dark reflectance is expected:
(a) Water bodies.
(b) Topographic shadow.
(c) Deep shadow on shaded aspects of forests.
Figure 34. Example of valid dark-object type pixels in this Landsat Band 2 is a deep body of water.
ii. Characteristics of dark objects that are artifacts:
(1) The pixels reside on the very margin of the active area of the image.
(a) These typically are formed because of bilinear or cubic convolution of zero values outside the image
with non-zero values inside the image.
(2) The pixels reside directly next to a very bright pixel and the image has been subjected to cubic
convolution resampling beforehand.
(a) Cubic convolution can depress values of pixels neighboring bright objects, and thus can force
otherwise dark objects to even darker values that are an exaggeration of the actual dark-object value.
c. Repeat this process for all six of the visible bands in the Landsat image. Record each dark-object value
in the Excel file from step 1.b. above.
Figure 35. Example histograms of the digital numbers (DN) of the pre-COST Landsat image values.
i. When this has been done for all bands, evaluate the relation between dark-object values across bands.
(1) The effect of haze is greatest at shorter wavelengths in the blue bands of the image, and tapers off as
band number increases as shown in figure **. Therefore, the dark-object values should be highest in band
1, lower in band 2, etc. The dark-object values of each band should be no higher than the band number
lower than it. If this is not the case, then it indicates that the dark-object value for the lower-numbered
band may have been too low. Review the dark-object pixels for that band.
(2) Bands 5 and 7 may have almost no scattering, and therefore may have dark-object values of 1 or 0.
Figure 36. Example of decreasing atmospheric influence on dark objects in each Landsat band.
3. Identifying sun elevation and angle:
a. When an image is ordered from the Landsat Archive, the associated *_MTL.txt file contains information
on the sun elevation and sun azimuth.
Figure 37. The sun elevation is found in the metadata file (*_MTL.txt) associated with the Landsat
Archive image.
b. These values should be entered into the excel spreadsheet noted above. Note that the formula for the
COST processing requires the sun zenith, which is 90 degrees minus the sun elevation.
4. Identifying gains and offsets:
a. The DN values reported in a band from Landsat do not correspond to actual physical quantities. To
convert the DNs to physical values of radiance, the gains and offsets of the sensors in the satellite must
be taken into account. The gain of a sensor is akin to the amplification factor needed to convert it from
one set of units into another the slope of the line relating the DNs to radiance values, in this case. The
offset or bias is simply the equivalent of the intercept of the same line. As a sensor ages, these translation
factors will drift, and thus it is necessary to know them for each specific image being processed.
i. For Landsat, minimum and maximum are listed for each band in the header file. These should be
entered into the Excel spreadsheet, from which the gain and bias are calculated using the formula:
Figure 38. The minimum and maximum radiance values for each Landsat band is entered into the
processing spreadsheet from which the gain and bias of each band is calculated.
APPLYING THE COST MODEL
5. Entering data into an Imagine spatial modeler
a. An Imagine graphic model appears in the appendix that will apply the values collected in steps 1-3 to
an image to create a COST-processed version of the image. This model is named
applying_cost_template.gmd
i. From Imagine's main icon panel, select the icon labeled "Modeler."
ii. Select "Model Maker."
iii. In the Model Maker, use the open folder to navigate to the template model and open it (fig. **).
iv. Save this file under a name that links it to the image being processed. Do
this using File/Save As. Use the naming conventions of SOP 8 Data Management.
Figure 39. Graphic modeler in Imagine, with the template for COST processing.
b. Conventions of the spatial modeler in Imagine.
i. See figure **.
ii. All spatial data and actions applied to it are represented as shapes linked with arrows that indicate the
flow of processing.
iii. Double-click on any shape to see information about the spatial data, numerical data, or function
contained in the shape.
iv. Click on the hammer symbol to show a window of tools that can be used to update or build a graphic
model.
v. Circles correspond to functions. For a function to operate, it must have an arrow leading to it from some
data object, such as an image or a table.
vi. Stacked oblique squares represent spatial data. These are used as inputs to functions.
vii. Squares correspond to data that must be entered manually or that is not spatial, such as tables taken
from external text files.
c. Enter data accumulated in the Excel spreadsheet into the modeler.
i. In the upper-left of the model, double-click on the image-stack symbol labeled 'Image to be converted.'
The Raster information layer will pop up (see fig. **).
ii. In the filename field, use the open folder icon to navigate to the appropriate image and select it.
Figure 40. Locate and identify 6-band input image.
(a) NOTE: Even though the dark objects were chosen using the entire original Landsat image footprint,
the actual correction model should be applied to the image that has been clipped to the study area! The
use of dark objects outside the study area is justified on the simplifying assumption that atmospheric
conditions are stable across the entire image, even though this assumption is technically false. However,
dark objects are critical to this correction and also are rare, so the use of the entire image allows inclusion
of more dark objects, which outweighs the potential problems in variable atmospheric conditions. If
enough dark objects are viewed across the image, then these conditions should approximately average
out.
iii. All of the other values in the window can be left in their default conditions.
d. In the box near the top center labeled "Sun Zenith Angle" enter the sun zenith angle from the Excel
spreadsheet. Recall that this is 90 degrees minus the sun elevation, which typically is what is listed in the
header for the file.
Figure 41. Enter the sun zenith angle (90-'sun elevation') into the COST graphic model.
e. In the box on the right-hand side of the model labeled "Gains and Offsets" double-click and enter the
gains and offsets recorded in the Excel file. Note that the matrix window that appears will have six rows.
Rows 1-5 correspond to bands 1 through 5, while row 6 corresponds to band 7 of Landsat.
Figure 42. Enter the appropriate gains and bias values into the COST graphic model
f. In the box labeled "Min Vals for Subtraction" enter the dark-object values from the excel spreadsheet
that were determined in step 1 in this section above.
Figure 43. Enter the dark-object values into the minimum values for subtraction table.
h. At the bottom of the model, click on the image stack shape labeled "Output COST image." Output
image should be signed 16-bit type.
Figure 44. Enter an output name based on the naming convention with a *refl_cost.img ending.
i. Save the model, ensuring that the name can be linked easily to the image on which the processing is to
be conducted.
Figure 45. Save graphic model file.
j. Run the model by clicking on the red lightning bolt icon in the icon row at the top of the graphic model
window.
Figure 46.
6. The result of this process is an image in units of apparent reflectance on the surface of the Earth. It
likely will not correspond to true reflectance on the ground because the approximation for atmospheric
effects is not perfect, and because the illumination angle of slope facets on the landscape is not
considered. Nevertheless, the gross effects of
atmospheric scattering and atmospheric path effects
have been addressed. This image will be referred to as the COST version of an image.
Figure 47. The results of the COST process minimize the effects of the atmosphere on the Landsat
imagery.
a. Note that the units of this image are in scaled reflectance. True reflectance is considered a proportion
from 0 to 1.0. Representing these values requires the use of the floating-point data type, which requires
twice as much space on the disk as the integer type. Therefore, all of the reflectances have been scaled
to run from 0 to 1000, with 1000 equal to 1.0 reflectance. It is best to have a range of values for
reflectance (scaled) that approximately match the range of the other values in the non-corrected images.
so if the original images range from about 0 to 255, then scale the reflectance to about 0 to 500 or maybe
0 to 1000. Note also that some pixels will have reflectances less than zero, these correspond to the
pixels that were noted as artifacts in the dark-object-identification step above.
b. If the resulting COST image has a file size greater than 1 GB then a mask needs to be applied to the
edge pixels which is inflating the size of the file. This tends to happen after reprojecting an *.img file
which creates large areas of edge pixels.
IX. DEFINING STUDY AREAS
A study area is a geographic region within which image processing will occur. For LandTrendr, two types
of study area are used. For this SOP (Preprocessing), a "preprocessing study area" must be defined,
which will constrain the geographic footprint of radiometric normalization and cloud masking. Beginning
with SOP #3, a "analysis study area" must be defined, which will constrain the geographic footprint of
image segmentation (SOP #3), change detection mapping (SOP #4, #5), temporal fitting (SOP #7), and
landcover mapping (SOP #8). The two study areas can be the same, if desired, or the analysis study
area can be smaller, but at a minimum, the preprocessing study area must fully contain the analysis study
area.
The study area file itself is a raster mask in either Imagine or ENVI format. For preprocessing study
areas, it should cover most of the image footprint of a Landsat scene, as this allows maximal spatial
coverage to develop robust radiometric normalization statistics across images. The mask file can also be
used to create a vector file that allows clipping of other datasets to the study area. Both can be created in
Imagine, or, if the study area has been defined as a vector elsewhere, Imagine can be used to make a
raster file of the vector coverage.
The delineation of the analysis study area is an important step in the long-term success of this protocol,
as the analysis study area defined here will be used for reference when creating summary metrics of
change over time. Therefore, this step should involve the input of as many interested parties as possible.
There are few rules by which such a designation could be made generic, but there are several
components to consider. First, of course, the study area should include the entire area of interest.
Second, the study area may extend beyond that area of interest by either an arbitrary distance or by
some distance defined by ecological or economic factors. It may be difficult to predict these factors at the
current time, which argues for a conservatively large study area that could allow future contraction. It will
be significantly easier to make the study area smaller in the future than it would be to make it larger.
For projects that require analysis across multiple adjacent scenes, the use of Thiessen-polygons based
on the Landsat WRS-II reference system is advised. Thiessen polygons partition a space so that all
points within each polygon are closer to its center point than to the center point of any other polygon. We
provide a Thiessen-polygon coverage for Landsat scenes within the continental United States for use in
study area delineation. Ideally, the preprocessing and analysis study areas should include both the
Thiessen polygon proper and a small buffer around it, to later allow evaluation in the overlap area of
potential incongruities between the two scenes.
Absent a Thiessen polygon or area of interest, the study area should be defined as an area with
maximal overlap among the Landsat images in the stack to be processed. An IDL batchfile is provided
that can guide this process.
Therefore, the following steps are recommended for different situations:
If the area of interest is entirely contained in one Landsat scene, and if no adjacent areas of interest are
likely to be processed:
- Use the overlap area count method to create a preprocessing study area
- Use study area vector files, with a buffer, to create an analysis study area
If the area of interest is an entire scene, and if no adjacent areas of interest are likely to be processed:
-
Use the overlap area count method to create a single preprocessing and analysis study area
If the area of interest is an entire scene, and if adjacent scenes are also of interest:
- Use the buffered Thiessen Scene Area approach to create a single preprocessing and analysis
study area
A. Overlap area count method
Before starting:
- Ensure that the Image Info structure has been populated appropriately, with every desired image
included, and that the image_info_savefile has been created. Make sure that "image_info_savefile"
points to the full pathname of that savefile, then type:
IDL> overlap_file = build_image_overlap_area_image(image_info_savefile)
This program will run for a while, calculating the total intersection of all images in your stack. The
resultant image will be called "IMAGE_overlap_count.bsq" and will reside in the images directory (usually
\<pathrow>\images\). The filename will be contained in the "overlap_file" variable in the IDL session, in
case there is any doubt.
The resultant image will have a count for each pixel of the number of images that contain real data in that
pixel's location. The higher the count in a pixel, the more that pixel is overlapped by all of the images. As
you move to the edge of the stack, fewer and fewer images will overlap and the count image will
decrease in value as pixels as traversed toward the edge.
To identify the area of interest, identify where the number of scenes decreases fairly rapidly, or
alternatively where the number of scenes passes a pre-determined threshold. Then, the area of interest
mask can be created in an image-math module, such as ENVI's band math, to identify pixels where the
overlap count exceeds the threshold.
B. Vector-based method
If the desired study area already exists as a vector layer, the following steps are required:
1. Start Imagine and load the radiometric reference image in a viewer (see section IV if this has not been
done already).
2. In the viewer, choose “File/Open/Vector Layer” and navigate to the directory where the new study area
vector layer is located.
a. Open the vector layer, and ensure that it matches with the reference image as expected.
b. Use the ImageInfo (section IV, step 3 above) to ensure that the vector coverage is in the appropriate
projection and datum for the geometric-reference image.
i. Assuming that the radiometric reference will be UTM and NAD83, respectively, then the vector
coverage must be in UTM, NAD83.
(1) NOTE: If a vector coverage is in the Clarke 1866/NAD 27 projection/datum space, it must be
reprojected. It is recommended that this projection process occur in ESRI Arc software, using the
NADCON transformation approach. Arc/Info documentation on “Projections” provides more information.
However, if this approach is not possible, the steps for reprojecting a vector coverage in Imagine are
given below.
(2) If the coverage is not in the appropriate datum, it will be necessary to reproject it into the correct
datum. This can be done in various ESRI Arc products and in Imagine. The steps for doing this in Imagine
are detailed below. GIS professionals also may prefer to do this in Arc workstation or ArcTools.
ii. Reprojecting a vector coverage in Imagine.
(1) In a blank viewer, open the vector coverage.
(2) Click on the ImageInfo icon (section IV, step 3 above).
(a) The window associated with the “General” tab will pop up.
(3) Select “Edit/Reproject the coverage.”
(a) A “reproject coverage coordinates” window will pop up.
(4) Name the output vector in such a manner that the distinction in datums can be inferred. Follow datamanagement considerations in SOP 8 Data Management.
(5) Click on “Define new projection.”
(a) The “Projection chooser” window will pop up.
(6) Use the pulldown menu for the spheroid name field to select NAD83.
(7) Use the pulldown menu for “Datum name” to pick the NAD83 datum from the list.
(8) Ensure that zone is 10 and “North or South” is set to north.
(9) Click OK, then click OK again in the “reproject coverage coordinates” window.
(a) Save the coverage.
3. With the vector coverage and the geometric-reference image open in the same viewer, select
“Vector/Viewing properties.”
a. The “Properties for test” window for the vector coverage will pop up (fig. 9).
b. When vector layers are first shown in Imagine, the default is to display them as arcs, not polygons. To
manipulate polygons, as will be done below, the polygons must be displayed.
c. First, uncheck the box for “Arcs” by clicking it.
d. Then check the box to the left of “Polygon.”
i. To change the border and fill properties of the polygon, select the box to the right of the colored field to
the right of the polygon (in cyan in fig. 9).
ii. Keep this window open for now.
4. Then from the viewer with the vector coverage in it, select “Vector/Attributes.”
a. The “Attributes” window will pop up.
i. Each polygon will have a row in the table of attributes. Select all the rows that include polygons that are
desired to defined the study area. Typically, this should be a small number of polygons – often only one –
because the study area should be a large, internally connected space.
(1) To select a row, click on the row number in the left-hand side of the window (the “Record” column in
fig. 10).
ii. To select multiple rows, click and drag down all rows.
iii. Because polygons are displayed, selecting these rows will change all of the polygons on the viewer to
the selection color, which defaults to yellow.
5. With these polygons selected, select “AOI/Copy selection to AOI” from the viewer.
a. Note: If the coverage and the image are not in the same projection, this step will fail. It is not sufficient
to simply remove the image from the viewer to avoid this failure, because the AOI must be associated
with the correct datum of the image for all later steps. Therefore, if the coverage is not in the correct
datum, it must be either reprojected or the datum must be overruled, as noted in step 2 above.
b. This step creates a new AOI in the viewer, anchored to the geometric reference image.
6. Save the AOI.
a. In the viewer, select “File/Save/AOI Layer as.”
b. Navigate to the appropriate directory and save the AOI layer. Follow the SOP 5 on naming and file
location conventions.
7. This AOI is now the base AOI for all subsequent steps that involve clipping of imagery to the studyarea boundary, including clipping the DEM.
If the study area does not e
xist in vector form and must be created, follow steps 8 through 11.
C. Thiessen scene area method
a. Create a study area polygon based on the Thiessen/voronoi polgon
()
i.
In ArcMap open a new empty map
ii.
Select add data and navigate to and select the nwfp_Thiessen_polys.shp shapefile
iii. Select the Thiessen polygon for the scene you are working on.
1. In the table of contents, box to the far left that shows the layers in the project, right click on the
nwfp_Thiessen_polys shapefile
2.
Choose open attribute table
3.
Within the WRS_ALB_1 attribute find the path and row that you need.
4. Select that polygon by left clicking the grey box at the far left of the respective row. The row
should now be bright aquamarine
iv. Create a shapefile of just your study area (scene).
1.
In the table of contents right click on the nwfp_Thiessen_polys shapefile.
2.
Choose Data\export data
3. A dialog box will come up. There should be no need to change any of the options as the defaults
should be export selected features and use this layers source data. Change the name and path then click
OK.
4. After the processing you will be prompted as to whether or not you want to add the layer to the
project, choose yes.
v.
Buffer the Thiessen polygon to create the study area polygon
1. In the same ArcMap project make sure that the ArcToolbox window is open, if not click the red
toolbox icon to open the ArcToolbox window.
2. In ArcToolbox within the Favorites tab open the Buffer tool which is under Analysis
Tools\Proximity\Buffer or simply search for Buffer within the search tab.
3.
Populate the fields in the Buffer dialog box.
a. In the input features dropdown select the newly created polygon of the scene you are working on
(e.g. 4532_Thiessen_poly).
b. In the output feature class navigate to where you would like to save the buffer output and rename to
with a name reflecting a 2 kilometer buffer (e.g. 4532_thiessen_poly_2km_bufr).
c.
Make sure the linear units of the polygon you are about to buffer are in meters. If so make sure
linear unit is checked under Distance [value or field] in the Buffer dialog. Enter 2000 in the box directly
under linear unit . Select Meters from the drop down to the right.
d.
Hit the radio button for OK
e. A progress window will show that the buffer function is processing. This should eventually read
“Completed”. Hit the radio button for close. The new buffered polygon should appear in the table of
contents box.
4.
Double check that the buffer worked
a. In the table of contents make sure that the Thiessen polygon of your scene is checked and at the top
of the list of files. Make sure the second shapefile in the list of files in the table of contents is the newly
created buffered polygon. Also make sure it is checked.
b. Both of these shapefiles should appear in the display window to the right. Use the zoom tool to zoom
into an area, so that the perimeters of the 2 polygons are easily discernable from each other.
c.
Use the measure tool (measuring stick icon) to measure the distance between the two perimeters.
With the measuring tool active left click once on one perimeter move your mouse perpendicular to the
perimeter and left click on the other polygon’s perimeter.
d. At the bottom left of your screen just above “Start” there should be a segment length. This number
should be fairly close to 2000. If so you have successfully created a 2 kilometer buffer. Double click to end
the measure tool and get out of the tool by clicking on the arrow icon.
b. Converting thiessen polygon to mask
The study area polygon that was created in the previous step now needs to be converted to a mask.
i. Convert buffered polygon to raster
1. In ArcMap have your newly created study area with a 2 km buffer active in a project.
2. Open ArcToolbox (red tool box GUI).
3. Within the Favorites tab in ArcToolbox go to Conversion Tools\ To Raster\Feature to
Raster and double click to open this function.
4. Fill out the Feature to Raster dialog box:
a. Input features- Select the study area buffered by 2km polygon that you just
created in the previous section.
b. Field- Select the field that contains the scene name such as WRS etc..,
probably does not matter much though as there should only be one record.
c. Output raster- navigate to the folder you want to save it to (e.g.
4532\Study_area) and name it similar to the following: 4532_studyarea_compressed.img this will make
the file a compressed Imagine image.
d. Output cell size- input 30
e. Click o.k.
ii. Convert raster file from compressed to uncompressed format
1. Create a model to uncompress the .img file and make a study area mask.
a. Open ERDAS Imagine
b. Click the GUI for Modeler
c. In the Spatial Modeler window select Model Maker, this will open a new model.
d. From the toolbar on the right click the raster object (upper left icon) which looks like
a stack of squares (Figure 1). Place the raster object in the upper left corner of your blank model. This will
be the input raster.
e. Repeat step 4 placing another raster object in the lower right corner of the
model. This will be the output raster.
f. Place a function (circle icon) in the model between the two raster objects.
g. Select the connecting arrow (arrow icon above the question mark) from the
toolbar and connect the input raster to the function (circle). Do the same from the function to the output
raster. This will connect your model.
Figure 50. Study area mask model
2. Change your session preferences so that you are not using compressed Imagine
format for images.
a. From the main ERDAS Imagine toolbar select session.
b. Select Preferences from the Session drop down menu.
c. In the category window choose Spatial Modeler.
d. In the data compression drop down menu make sure none is chosen.
e. Click User save and then close.
3. Complete and run the study area mask model.
a. Double click on the input raster in the model. A dialog box will come up inside
under file name navigate to your *_studyarea_compressed.img file. Leave everything else as the defaults.
b. Double click on the function icon (circle) in the model (Figure 1).
c. Click on the only available input then add ne 0 (i.e. not equal to zero) in the
formual box at the bottom. This will change all non-zero values to 1 and leave zero values that are
outside the mask as zeros. Click OK.
d. Double click the output raster in the lower right of the model. Under file name
navigate to the Study_area folder and name the file similar to 4532_2km_buffer_studyarea_mask.img.
Under Output: File type: choose Thematic. click OK. choose Signed 16 bit
e. Save the model (File\Save as) to the scene's Study_area folder with a similar
name such as 4532_2km_buffer_studyarea_mask.gmd.
f. To run the model click the red lightning bolt gui to execute the model.
iii. Make sure masks have a value of 1 .
1. In Erdas Imagine open a viewer.
2. Click the folder GUI to navigate to and open your newly created study area mask.
3. Rt click in the viewer and choose Fit image to window to better view the image.
4. Click on the cross hairs GUI in viewer #1 (Start/Update Inquire Cursor). Cross hairs
should come up in your viewer as well as another dialog box showing the pixel value at the location of
the cross hairs.
5. Either with the arrows on your keyboard or with your cursor move the cross hairs
around in the viewer to make sure that the study area foot print has values of 1 and outside the footprint
values of 0 or further out no values.
VIII. SETTING UP IMAGE INFORMATION
STRUCTURE
Working with stacks of imagery means handling many sets of files, often with the same process being
applied to all images separately. To allow for repetition and efficiency, and to ensure consistency of file
naming, all LandTrendr processing is documented and updated in a single IDL "structure variable" that is
passed along through all steps. The structure is saved to a separate "image info" file in the proprietary
IDL format (with the file name ending in "*.sav").
The image info structure is critical to success. It must be set up correctly, and it must be
maintained and checked for verity at every step in the preprocessing and analysis steps!
Remember it this way: "As the image info structure goes, so goes your analysis."
There are essentially two operations that involve the image info structure: Setting up a new structure,
and repopulating an existing one. During set-up, an algorithm scours a directory for files that conform to
a baseline formatting rule and builds the image info structure variable around those files. If you are
setting up for the first time, or adding a new image into the stack, you need to run the set up routine.
Repopulating the image info structure occurs after you have set up the basic structure, but need to
update it to capture either a modification or a new file, or if the original structure has been lost but all of
the files resultant from later processing exist and need to be replaced into the structure.
1. Setting up the image info structure
a. Start an IDL session
Open the file "set_up_landtrendr_files_template.pro"
Save file as "set_up_landtrendr_files_pprr.pro" where pp= path number and rr = row number (example:
"set_up_landtrendr_files_4234.pro" for landsat scene path: 42 row: 34.)
Figure 48.
iv. Alter the following variables in the file:
(a) path = 'image path'
example: path = 'g:\4234\glovis\'
(b) image_info_savefile = path + 'landtrendr_image_info_pprr.sav'
example: image_info_savefile = path + 'landtrendr_image_info_4234.sav'
(c) useareafile = 'path to mask image'
example: useareafile = 'g:\4234\gis_data\4234_final_usearea.img'
(d) Save the file
Figure 49. Alter the path, image_info_savefile, and useareafile variables in the
'set_up_files_landtrendr_pprr.pro' procedure file.
v. Run the procedure
(a) IDL> @set_up_landtrendr_files_4234.pro
One thing that happens in this step is that the COST image is identified as different from the other images
-- it is labeled in the save-structure as the reference image for the next step
vi. Verify results of procedure
(a)IDL> print, image_info
This will print in the unformatted data stored in the image_info variable in the output log window.
(b) IDL> print, image_info.year
This will print a list of the image years stored in the image_info variable in the output log window.
(c)IDL> print, image_info.image_file
This will print a list of the image names stored in the image_info variable in the output log window
(d) IDL> print, image_info.image_info_variable
This will print a list of an other variable of interest stored in the image_info variable in the output log
window. A full list of variable names is listed in table .
(e) Rerun procedure if there are any files missing files or errors in the expected values.
X. COMPENSATING FOR SENSOR AND
ATMOSPHERIC INFLUENCES IN INPUT
IMAGES (MADCAL)
In most cases, COST processing will not take care of all of the atmospheric effects that could cause
confusion when change detection is conducted later. Two COST-processed images likely will differ
somewhat in their claimed reflectances for a given pixel, even if no real change has occurred, because
the true nature of the atmosphere above every pixel is not known. Because some of the parks’ monitoring
goals require distinction of subtle spectral difference, even these slight artifacts could be problematic.
Therefore, it is necessary to further normalize images before change detection can take place.
Many approaches exist in the remote sensing literature to normalize the radiometric and spectral
qualities of one image to another. The authors tested a variety of these approaches and determined that
a recently published approach known as Multiple Alteration Detection Calibration (MADCAL) works
extremely well and has the great advantage of being automated.
This step is carried out with the IDL>@mad_landtrendr_<pprr> batchfile.
Populating this batchfile requires that you follow the steps below.
A. Identify the radiometric-reference image.
1. Radiometric-reference image is the COST corrected image from Section VI.
B. Identify subsets
Madcal requires the user to define the upperleft coordinate of a subset box. This subset is used
during the MADCAL process to identify no-change pixels and then are pooled together with nochange pixels from other subsets in order to derive the relationship between the reference image
and the input image. A large number of subsets are created to improve the derivation of nochange pixels. For error checking purposes, a shapefile of each subset is created.
1. Open the COST corrected image and usearea mask in a new ArcMap session. Enable the
drawing toolbar.
2. Create Subsets as drawing objects
a.
Draw subset 1
i. Using the rectangle draw tool, draw a rectangle of a random size.
ii. Edit the properties of the rectangle drawing object
1. Symbol: no fill color, red outline color
2. Size and Position:
1000 pixel subset
width: 30,000 m
length: 30,000 m
*note the width and length field units are based on the Layer properties and the coordinate system
i. Select and move rectangle drawing object to the location for subset
a. Create subset 2 to 100
i. Select subset 1, copy and paste, to duplicate subset 1. This is now subset 2.
ii. Select and move subset 2 to a location (possibly overlapping subset 1) within the
bounds of the COST corrected image and the usearea mask.
iii. Repeat the previous steps until there are enough subsets to cover the entire
image (and without any subset exceeding the bounds of the reference and input
images).
Figure 51. Madcal subsets located using ArcMap drawing objects.
3. Create subsets as a polygon shapefile
a. Select all the graphic drawing objects representing the MADCAL subsets created in step
2. Use a tool to convert the graphics to a polygon shapefile. (For example, the extension
XTOOLS Pro/Feature Conversions/Convert graphics to shapefiles). Save file according
to the instructions in SOP 8: Data Management.
4. Identify Upper Left coordinate of subsets
a. Convert the polygons into points using ArcToolbox/Data Management Tools/Feature
Vertices To Points/
i. Input Features: Subset polygons created in step X.B.3
ii. Output Feature Class: pprr_madcal_upperleft_coordinates_pts.shp
iii. Point Type (optional): mid
a. Calculate the x, y coordinate of the pprr_madcal_upperleft_coordinates_pts.shp using
ArcToolbox/Data Management Tools/Add XY Coordinates/.
This operation will add two fields (Point_X, Point_Y) to the attribute table of the point shapefile.
i. Input Features: Subset polygons created in step X.B.4
C. Modify mad_landtrendr_<pprr> batchfile
In this step, the analyst modifies the madcal batchfile to include the subsets created in step X.B.4 and
initiates the MADCAL batchfile.
1 . Format the Upper Left coordinate point shapefile attributes using Excel.
The MADCAL batchfile requires the upper left coordinate for each subset to be entered in a specific
manner. This step uses the x and y attribute from the point shapefile and then formats it as required.
Finally, these values are pasted into the MADCAL batchfile.
a. Open the pprr_madcal_upperleft_coordinates_pts.dbf in Excel
b. In an empty cell to the right of the attribute values (usually cell G3 or so), enter the following
formula:
CONCATENATE("[",A2,",",B2,"], $")
where A2 is the X coordinate field for subset 1, B2 is the Y coordinate field for subset 1.
i. This should create a cell value which looks like:
[-2299354.68659,2029246.4872], $
c. Populate the remaining subset rows with the formula in the step above.
d. Copy the results of the formula into a new row using paste special/values.
2. Populate the MADCAL batchfile with subset coordinates
a. Copy the formatted coordinates from the previous step (X.C.1.d).
b. Paste the new subset values into the batchfile in the appropriate location, starting after the
'subset_coordinates = [' line.
subset_coordinates = [
[-2299354.68659,2029246.4872],$
[-2279910.84659,2052429.5272],$
[-2293745.88659,2062899.2872],$
[-2307954.84659,2047568.5672],$
[-2335624.92659,2192649.5272] ]
c. Verify correct syntax of the subset values.
(1) note the lack of comma and dollar sign at the end of the last subset.
3. Alter the scene specific variables in the MADCAL batchfile.
a. path = 'path to images directory'
example: path = 'K:\4533\glovis\'
b. image_info_savefile = path+'landtrendr_image_info_pprr.sav'
example: image_info_savefile = path+'landtrendr_image_info_4533.sav'
c. madcal_summary_csv_file = path+ 'pprr_madcal_summary.csv'
example: madcal_summary_csv_file = path+ '4533_madcal_summary.csv'
d. min_correlation= 0.75
possible values range between 0-1.
e. fix_only_these: -1
possible values include:
-1 (operate on all images), - default option
[year] (to operate on a specific year,
[year1, year2, year3] (to operate on a list of specific years)
f. save file
4. Load Image_Info variable into memory
IDL>path = 'K:\pprr\glovis\'
IDL>image_info_savefile = path+'landtrendr_image_info_pprr.sav'
IDL>restore, image_info_savefile
IDL>print, image_info.image_file
5. Run batchfile
After loading the image_info variable into the computer memory, the batchfile is initiated using the
command below. Progress can be tracked through the variety of windows which appear as the process
proceeds.
IDL>@madcal_pprr.pro
6. Errors while running batchfile
The MADCAL batchfile may stop or produce an error message. At which point the analyst can refer to
the list of common errors and the fix. In addition, the analyst would want to consult the following files:
i. Diagnosis File located in C:\temp\
ii. IDL Processing Log WIndow
D. Analyzing MADCAL results
After the MADCAL batchfile has successfully completed, the analyst must examine the resulting log files
and scatterplots to insure adequate results of the radiometric calibration between the COST reference
image and the input image. Inadequate subset coverage, differing phenology or significant land cover
change, or cloudy images may influence the correlation between images.
1. Summary File
a. Open the file *pprr_madcal_summary.csv
b. Copy and paste the summary rows into the 'MADCAL' worksheet within the
'Processing_LandTrendr_pprr.xls' workbook.
c. Examine the Summary table
Note any images which you can answer 'yes'
i. Are there any correlations below 90%?
ii. Are there any images with a 'Success' value of '0'
iii. Are there any images which used a very small number of subsets?
If there are any images an analyst notes with an answer of 'yes' to the above questions, examine the
scatterplots for further clarification about the relationship between the images.
2. Methods for improving madcal results on images with poor initial results
*Evaluating scatterplots showing band to band relationships*
i. If the summary spreadsheet indicates that a given band to band relationship
appears to have questionable correlations, it is necessary to evaluate the source
of that poor correlation. Two broad classes of poor correlation are possible:
1. Case 1: There is significant scatter about the fitting line, but that scatter
is relatively evenly distributed about the line
a. The fitting line is still appropriate, meaning that no alteration
need be done, and the madcal normalization for this band can be
accepted.
i. Case 2: The fitting line is being drawn away from the dominant axis by pixels on
one side of the fit
Figure 52. Poor calibration. The pixels represented by the points to
the right and below the red fitting line are pulling the fit away from the
line that would be captured by the tight cluster of pixels (in reds,
oranges and blues) toward the left of the scatterplot. This is most likely
due to contamination in one or more subsets.
a. In this case, the image must be re-run with different settings.
i. Step 1: If the number of subsets used for the run was
high enough, the best option is to simply re-run this
image with a higher standard for minimum correlation.
The higher correlation threshold will eliminate some of
the questionable subsets.
ii. Step 2: If Step 1 does not help, then additional subsets
will need to be identified. Identify more subsets (See
above), and then re-run the MADCAL for only the years
where problems exist (See below for re-running
madcal).
iii. Step 3: If Steps 1 and 2 do not help think about not
using the image.
3. Re-running MADCAL batchfile
a. Specific year
i. Alter the madcal_pprr.pro variable
fix_only_these: -1
to fix_only_these: [year]
ii. IDL>@set_up_landtrendr_files_pprr.pro
iii. IDL>@madcal_pprr_year.pro
E. Verify Image_Info variable
Once you've completed MADCAL, the next step is to verify that the image_info file is updated and that the
image_info is recognizing that the MADCAL images now exist. This is particularly useful if you're simply
adding a few new images to an existing stack to make sure that the new ones got updated appropriately.
1. Bring the most up-to-date version of the image_info into memory
a. From the command line of IDL, type:
IDL> path = 'K:\pprr\glovis\' ;this defines the directory
IDL> image_info_savefile = path + "landtrendr_image_info_pprr.sav"
;this defines the file name.
IDL> restore, image_info_savefile
; this brings the information in the file into memory.
2. Now that the image_info is in memory, you can simply print the names of the image files to see if
they're right.
a. From the command line of IDL, type:
IDL> image_info_savefile.imagefile
2. Check the file names.
a. After madcal, all of the file names should have "_to_" in the filename. If you still see any
that do not have "_to_" in the filename, other than the single image that you used as the
MADCAL reference image, then do the following.
i. In a normal file explorer, look in the directory of the offending image to see if the
madcal'd image exists -- i.e. if the filename with "_to_" is actually in existence.
1. If not, it means that MADCAL didn't run on it. Check to make sure that
you did not inadvertently leave this year out of the run by, for example,
setting the "fix_only_these" parameter to years that didn't include this
one.
2. If so, then it means that somehow the new file did not make it into the
image info structure. First, check to make sure that the time stamp on
the filename is appropriate -- it may be an old version that should have
been overwritten, in which case you should re-run the madcal batchfile
with fix_only_these set to this particular file. If it's got an appropriate
timestamp, then you need to update the image info. From the command
line type:
IDL> repopulate_image_info, image_info_savefile.
F. Create header files
The files created during the MADCAL process must have a header file (*.hdr.flat) defined before ENVI or
ArcGIS will correctly recognize the raster file. The header file type created by the MADCAL algorithms
(and all others associated with this protocol using IDL routines) are a generic type that is only
recognizable to the internal image reading/writing procedures associated with LandTrendr. Therefore,
they must be converted into the ENVI structure.
Example Header file template created in step IV.A.1
ENVI
description = {
File imported into ENVI.}
samples = 8689
lines = 8214
bands = 6
header offset = 0
file type = ENVI Standard
data type = 2
interleave = bsq
sensor type = Unknown
byte order = 0
map info = {MRLC_albers_con_eq_area, 1.5000, 1.5000,-2393850.0,2041530.0,30.0000,30.0000, North
America 1983, units=Meters}
projection info = {9, 6378137.0, 6356752.3, 23.000000, -96.000000, 0.0, 0.0, 29.500000, 45.500000,
North America 1983, MRLC_albers_con_eq_area, units=Meters}
wavelength units = Unknown
The routine to convert headers requires both the header that was created by the madcal routine, and a
template header. The template header is an ENVI format file from which only one key piece of
information will be taken: the map projection information. Thus, you must have at least one image in
ENVI format for the study area in which you are working, in the projection used for all of the images,
before the conversion of headers can occur.
1. IDL>convert_bsq_headers_to_envi, 'input directory', 'header file template'
example: convert_bsq_headers_to_envi,
'J:\SoCal_chng\socal_images\4335\',’J:\SoCal_chng\socal_images\mrlc_template_headerfile.hdr'
example: convert_bsq_headers_to_envi,
'J:\SoCal_chng\socal_images\4335\',’J:\SoCal_chng\socal_images\mrlc_template_headerfile.hdr',
/overwrite
XI. GENERATING LANDTRENDR
TASSELED-CAP IMAGES
A. Load Image_Info variable into Memory
IDL>path = 'K:\pprr\glovis\'
IDL>image_info_savefile = path+'landtrendr_image_info_pprr.sav'
IDL>restore, image_info_savefile
IDL>print, image_info.image_file
B. Alter make_landtrendr_tcimages_pprr.pro
Change the values in the batchfile to relfect the scene and appropriate path.
path = 'K:\pprr\glovis\'
savefile = path+'landtrendr_image_info_pprr.sav'
C. Run batchfile
IDL>@make_landtrendr_tcimages_pprr.pro
D. Verify Results
1. Verify Image_Info variable
Verify that the variable 'tc_file' was populated with a file name after the operation.
IDL>path = 'K:\pprr\glovis\'
IDL>image_info_savefile = path+'landtrendr_image_info_pprr.sav'
IDL>restore, image_info_savefile
IDL>print, image_info.tc_file
2. View results
a. Create header files
The files created during the Tasseled Cap process must have a header file (*.hdr.flat) defined before
ENVI or ArcGIS will correctly recognize the raster file.
i. IDL>convert_bsq_headers_to_envi, 'input directory', 'header file template'
example: convert_bsq_headers_to_envi,
'J:\SoCal_chng\socal_images\4335\',’J:\SoCal_chng\socal_images\mrlc_template_head
erfile.hdr'
example: convert_bsq_headers_to_envi,
'J:\SoCal_chng\socal_images\4335\',’J:\SoCal_chng\socal_images\mrlc_template_head
erfile.hdr', /overwrite
b. Open the Tasseled Cap files using ENVI.
XII. CLOUDSCREENING
A. Producing cloudscore images
1. Determine reference cloud image
The cloud reference image should be the first cloud-free image from the available images. Document this
image in the appropriate column in the 'Processing_LandTrendr_pprr.xls'/Image Status worksheet.
Recommendations for selecting the cloud reference image include:
a. Early image in stack
b. Cloud free
c.
2. Alter the batchfile 'make_cloudscore_images_pprr.pro'
a. Save file, replacing pprr with the appropriate path, row number.
example: 'make_cloudscore_images_4533.pro'
b. path = 'path to images'
example: path = 'G:\4533\glovis\'
c. image_info_savefile = path+'landtrendr_image_info_pprr.sav'
example: image_info_savefile = path+'landtrendr_image_info_4533.sav'
d. clear_year = year
example: clear_year = 1987
'
e. Save file
3. Load Image_Info variable into Memory
IDL>path = 'K:\pprr\glovis\'
IDL>image_info_savefile = path+'landtrendr_image_info_pprr.sav'
IDL>restore, image_info_savefile
IDL>print, image_info.image_file
*verify the image_file values are the MADCAL images.
4. Run Batchfile
IDL>@make_cloudscore_images_4630.pro
5. Create header files
The files created during the cloud scoring process must have a header file (*.hdr.flat) defined before ENVI
or ArcGIS will correctly recognize the raster file.
IDL>convert_bsq_headers_to_envi, 'input directory', 'header file template'
example: convert_bsq_headers_to_envi,
'J:\SoCal_chng\socal_images\4335\',’J:\SoCal_chng\socal_images\mrlc_template_headerfile.hdr'
example: convert_bsq_headers_to_envi,
'J:\SoCal_chng\socal_images\4335\',’J:\SoCal_chng\socal_images\mrlc_template_headerfile.hdr',
/overwrite
B. Determine thresholds for clouds and shadows
1.
Using ENVI open cldiff and refl image in separate windows
Figure 52.
2.
Use geographic link to connect the two windows.(Right Click on image and choose
geographic link)
a.
Check alignment by making sure a landmark point is in the same point
in both images.
3.
Go to tools/color mapping/density slice on the clddiff window
a. Select the clddiff image band 1, and delete all but lowest value range.
b.
Edit range to have a max value of -100. Apply the range.
c.
Check visible clouds in the refl image to ensure that they are masked
over in red on the clddiff image.
d.
Clouds do not need to be entirely covered, but the range should be
adjusted so that at least part of all major clouds are masked.
e.
If there are no clouds in the image choose a very low value, but not
lower than the minimum.
Figure 53.
4.
Input the determined value into the excel processing sheet (Link), making sure to note
the year being viewed and that the value is for clddiff.
5.
Repeat steps 1-4 using shddiff instead of clddiff, but instead of using -100 for a
starting value, use -400.
Additional notes on cloud/shadow screening
The shadow images are tough to get thresholds, because it's easy to start picking up
parts of the "real" landscape outside of shadows. All of these thresholds are a
balancing act.
Insure that shadows from the clouds are adequately covered. As long as the
reference cloud image year is earlier than the one you're doing, a more aggressive
shadow threshold (i.e. one that gets more shadow) should only pick up landscape
features that are slowly changing, primarily regrowing clearcuts in the PNW, at least.
And for those areas of the landscape, it's not a huge penalty to mask them out
occasionally because it's the longer-term trend in those areas that we want.
In other words, when considering the balance between picking up more of the target
features (cloud shadows) and non-target features (non-shadowed landscape
features), recognize that some non-target features are more "expendable" than
others. We have many other years of imagery to pick up the changes, as long as we
don't mask them out in every single year, which should be relatively unlikely.
Two notes:
a. Cloud shadows tend to be much harder to pick out of the trajectories than
clouds. Clouds produce spikes that are extreme; shadows are usually less
dynamic. As each pixel is processed in the landtrendr algorithm, big spikes
that remain after masking are relatively easily taken out, so the penalty for
leaving some clouds in is generally less than leaving cloud shadows in.
b. The "increased aggressivness" directive doesn't really apply to the cloud
masking (vs shadow masking), because the landscape features that tend to
get picked up with aggressive cloud masking are new clearcuts, and for those,
it's important to retain them as much as possible so we get the year right.
In other words, be more aggressive in shadow masking and retain some conservatism with the cloud
masking.
Two more notes:
a. It's best to be the most aggressive with shadow masking when working with the first image in the
stack
b. It's best to be the most aggressive with cloud masking when working with the last image in the
stack
It is also a good idea to keep notes in the cloud and shadow threshold spreadsheet regarding any
anomalies that you see (snow, missing data), potentially alternate values for the thresholds (maybe a
more conservative value for clouds or shadows - this helps if the thresholding has to be rerun because it
did not catch enough or caught too much), the types of clouds (fog, smoke, haze, cirrus, cumulus, etc)
XIII. CREATING CLOUD MASKS
A. Alter batchfile
1. Open the template file 'mpcm_pprr.pro'
a. Save file with a new name, replacing the pprr with the appropriate path, row
b. path = 'path to images'
example: path = 'G:\4533\glovis\'
c. image_info_savefile = path+'landtrendr_image_info_pprr.sav'
example: image_info_savefile = path+'landtrendr_image_info_4533.sav'
d. cloudthresholds = [[year1, clddiff_value, shddiff_value], $
[year2, clddiff_value, shddiff_value]]
where the years are in sequential order (by julian date if more than one image in one year), clddiff_value
was determine in step XII.B.4., and shddiff_value was determined in step XII.B.5.
example:
cloudthresholds = $
[ [1985, -400, -3200], $
[1986, -150, -23800], $
[1987, -100, -500], $
[1989, -100, -31500], $ ;This is julian date 187
[1989, -100, -32000], $ ;This is julian date 230
[1990, -215, -26800], $
[1991, -110, -450], $
[1993, -150, -1000], $
[1994, -120, -25700], $
[1995, -120,-400], $
[1996, -130, -31700], $
[1997, -120, -32600], $
[1998, -100, -31500], $
[1999, -120, -150], $
[2000, -120, -25200], $
[2001, -120, -100], $
[2002, -260, -29900], $
[2003, -215, -31800], $
[2004, -100, -250], $
[2005, -120, -400], $
[2006, -120, -200], $
[2007, -110, -200], $
[2008, -120, -32500] $
]
'
e. Save file
B.
Run batchfile
1. Load Image_Info variable into Memory
IDL>path = 'K:\pprr\glovis\'
IDL>image_info_savefile = path+'landtrendr_image_info_pprr.sav'
IDL>restore, image_info_savefile
IDL>print, image_info.image_file
*verify the image_file values are the MADCAL images.
2. Initiate batchfile
IDL>@mpcm_pprr.pro
C. Create header files
The files created during the cloud scoring process must have a header file (*.hdr.flat) defined before ENVI
or ArcGIS will correctly recognize the raster file.
a. IDL>convert_bsq_headers_to_envi, 'input directory', 'header file template'
example: convert_bsq_headers_to_envi,
'J:\SoCal_chng\socal_images\4335\',’J:\SoCal_chng\socal_images\mrlc_template_head
erfile.hdr'
example: convert_bsq_headers_to_envi,
'J:\SoCal_chng\socal_images\4335\',’J:\SoCal_chng\socal_images\mrlc_template_head
erfile.hdr', /overwrite
D. Verify Results
1. Verify Image_Info variable
Verify that the variable 'tc_file' was populated with a file name after the operation.
IDL>path = 'K:\pprr\glovis\'
IDL>image_info_savefile = path+'landtrendr_image_info_pprr.sav'
IDL>restore, image_info_savefile
IDL>print, image_info.tc_file
2. View results
a. Create header files
The files created during the Tasseled Cap process must have a header file (*.hdr.flat) defined before
ENVI or ArcGIS will correctly recognize the raster file.
i. IDL>convert_bsq_headers_to_envi, 'input directory', 'header file template'
example: convert_bsq_headers_to_envi,
'J:\SoCal_chng\socal_images\4335\',’J:\SoCal_chng\socal_images\mrlc_template_headerfile.hdr'
example: convert_bsq_headers_to_envi,
'J:\SoCal_chng\socal_images\4335\',’J:\SoCal_chng\socal_images\mrlc_template_headerfile.hdr',
/overwrite
b. Open each images Cloud mask file using ENVI.
i. Repeat process if image is not as expected.
Figure 54. Example of cloud and shadow mask result.
XIV. WORKS CITED
ITTVIS:
Protocol for LandTrendr
Standard Operating Procedure (SOP) #3
LandTrendr Segmentation
Version 0.01 (October 1, 2009)
Revision history log:
Previous Version
Revision Date
Author Changes Made
Reason for Change
New Version #
New
April 12, 2009
REK
New
0.01
Aug 12, 2009
PN
populated
0.01
September 2009
REK
Updated
0.01
Table of Contents
1. Overview
2. I. Temporal segmentation
a. A. Prepare batchfile
b. B. Run the batchfile
3. II. Fit-to-vertices (optional)
a. A. Prepare the FTV component of the LT batch file.
b. B. Outputs from FTV
c. III. Evaluate results
032
,,,,
Overview
After completing the steps described in SOP 2, there exists a radiometrically normalized stack of
images with cloud-masks. In SOP 3, the core LandTrendr algorithms are applied to this stack of images
in a process called temporal segmentation (Figure 1). The temporal trajectory of each pixel in the image
stack is extracted and a series of fitting algorithms are applied to determine which straight-line segments
can be used to efficiently describe the overall shape of that trajectory. The product of SOP 3 is a set of
files that capture the information about those fitted segments, and which are used for all subsequent
mapping (SOPs 4 & 6).
Figure 1. SOP 3 within the LandTrendr process.
As with the pre-processing steps in SOP 2, the LandTrendr algorithms are implemented using an IDL
batchfile. In the case of the LandTrendr algorithms, all of the relevant steps can be incorporated into a
single batchfile described in this SOP. However, each section of that batchfile involves separate
considerations and parameter sets, and thus each subsection is described in separate sections below.
I. TEMPORAL SEGMENTATION
The core step in the LandTrendr process is implementing a set of algorithms that simplify spectral
trajectories using sequential straightline segments (as in Figure 1 above). The user passes a set of "run
parameters" described below to the central LandTrendr processing algorithms.
This portion of the batchfile is mandatory.
Prepare batchfile
a. Create new batch file:
i. Open template file 'lt043_templatefile_nbr.pro' using the IDLDE. The following
text shows the portion of this file where parameters controlling the run are
defined.
ii. Note that any text that follows a semi-colon (;) is considered a comment by IDL,
not a command, allowing notes to be inserted into the batchfile for reference.
iii. Also note that the formatting of the document displayed here is narrower than the
original text files, causing some text to wrap around to the next line when viewed
here. IDL will not see the wrap of text.
iv. Save the file as 'lt043_pprr_nbr.pro' where pprr is replaced with the appropriate
path, row and nbr is replaced with the appropriate index value for this
LandTrendr run.
-----------------------------------Start of file below here:
pathrow_name = '4526' ;no slashes
top_path = 'y:\' ;make sure to put slash (\) at end
base_index = 'nbr'
run_name = '' ;a unique identifier, if you're trying different runs on same index and stack
mask_image = 'Y:\4526\Study_Area\4526_study_area_mask_ultimate.img'
;1's for all pixels to be processed, 0 otherwise
;the mask image defines the subset. subset can be manually set further down, if desired
images_path = top_path + pathrow_name+ '\glovis\'
;change if glovis is not the path
outputs_path = top_path + pathrow_name+ '\outputs\'+base_index+'\'
;change if outputs is not the path
template_file_for_map_projection = 'f:\mrlc_template_headerfile.hdr'
;this is an envi headerfile
;which contains the datum/spheroid information for the images
; this image does not contain the actual coordinates of the images
; in this run; it only needs to contain the generic projection
; information that applies to the coordinates that will be
; read from the study area and raw image files.
;these parameters will likely stay the same for most run situations
;segmentation parameters
background_val=0 ;value to ignore in input image bands
divisor=1 ;-1 = calculate it for me
minneeded=6 ;minimum number of years needed in a pixel for it to calculate trajectory
mask_image=mask_image ;mask image has 1's everywhere LT should be run, 0's otherwise
output_base=output_base ;the basic name for all output files, other strings concat'd to end
kernelsize=3 ;the size of box over which to average before run LT on a pixel -- defines one side of the box
(i.e. 3 = 3 by 3 box)
pval=0.05 ;do not accept trajectories whose p_of_f is greater than this. 0.05 is typical.
fix_doy_effect=1 ;set to 1 if mean effect of doy should be taken out using 2nd order curve
max_segments=6 ;the maximum number of segments to search for, cannot be > 6. Set to -1 to have it
calc'd on the fly
recovery_threshold=1.0
;=1/min_number_years_for recovery segments cannot result in rate faster than 1/min number of years
skipfactor=3 ;If >1, then not every pixel is run, but ever "skipfactor"th pixel is run in both x and y and the
;remainder interpolated. 3 is a good choice
desawtooth_val=0.9 ;0.0-1.0 if set to <1.0, spikes that start and end at near same value are removed. the
value sets the
;threshold on how different they can be to be removed -- 1.0 means no desawtoothing, .9 means that
;spikes with differences > 0.90 in start and end point are fixed.
distweightfactor= 2
vertexcountovershoot= 3
bestmodelproportion= 0.75
a. Alter scene specific variable values
i. pathrow_name = '4526 '
The path and row refer to the path and row of the Landsat sensor. This string will be concatenated to the
top_path parameter below to find the image info savefile that was produced in SOPs 1 and 2. no slashes
i. top_path = 'y:\'
drive letter of location of LandTrendr project. Put slash (\) at end
i. base_index = 'nbr'
Different Landsat indices enable understanding of different phenomena on the surface of the earth. Table
1, below, is a list of valid indices which LandTrendr will evaluate for trends. Enter the 'Index' value of the
desired spectral index into this variable.
Table 1. Spectral index values available for LandTrendr processing.
Index
Name
Formula
band1
Landsat Band 1
--
band2
Landsat Band 2
--
band3
Landsat Band 3
--
band4
Landsat Band 4
--
band5
Landsat Band 5
--
band7
Landsat Band 7
--
ndvi
Normalized Difference Vegetation (Band 4 - Band 3) / (Band 4 +
Index
Band 3)
nbr
Normalized Burn Ratio
(Band 4 - Band 7) /
(Band 4 + Band 7)
brightness
Tasseled Cap Brightness
--
greenness
Tasseled Cap Greenness
--
wetness
Tasseled Cap Wetness
--
i. run_name = 'name'
This is a unique identifier for the benefit of the user, to help distinguish among different runs, if different
parameter sets are going to be used runs on same index and image stack. It will be inserted into the file
name for all output files
i. mask_image =
'Y:\4526\Study_Area\4526_study_area_mask_ultimate.img'
This image will define the footprint of the LandTrendr analysis. The image is a raster (either Envi or
Imagine format) with the value 1 for all pixels where LandTrendr is to be run, and the value 0 (zero) for
pixels where it is not to be run.
i. year_range = [1985,2008]
This parameter describes the range of years over which the user wishes to run the LandTrendr algorithm.
Currently, this parameter cannot be used to constrain the analysis to fewer years than are available in
the entire stack. Therefore, please ensure that the first and last years noted in this parameter correspond
to the actual first and last years of the tack.
i. template_file_for_map_projection =
'f:\mrlc_template_headerfile.hdr'
This is an envi headerfilewhich contains the datum/spheroid information for the images this image does
not contain the actual coordinates of the images in this run; it only needs to contain the generic projection
information that applies to the coordinates that will be read from the study area and raw image files.
a. Alter segmentation parameters (usually not neccessary)
i. background_val
LandTrendr will ignore pixels with this value.
In most cases, this should be set to zero, as the cloud-masking algorithms in SOP #2 will convert masked
areas to 0.
i. divisor
default: 1
LandTrendr can optionally scale the input spectral index to a different value before calculating the fitting.
This may be necessary to maintain the outputs in an appropriate range for the signed-16-bit output
format (which only ranges from -32767 to + 32766).
Set to a value of 1 to use the index without scaling.
Set to a value > 1 to make the index smaller before running the segmentation -- for example, a value of
10 will convert spectral index values of 4250 to 425
Set to a value < 1 to inflate the values -- for example, a value of 0.1 will convert a spectral index of 0.425
to 4.25
i. minneeded
Default: 6
The minimum number of usable years in a pixel for it to be considered valid for calculating trajectories.
Each year a pixel is masked out for clouds or gaps, it will reduce the number of usable years for the
trajectory.
Note that the number of desired segments (a different parameter) should be no greater than this value.
default: The full path name of the image that defines the area where LandTrendr segmentation is to
occur.
The footprint (the upper left and lower right corners) of this image defines the bounds of the output
images.
The footprint cannot exceed the bounds of the input image stack.
default: none
Example: "run1"
A string code for the user's benefit that will identify this particular run. Useful for distinguishing among
different runs with slightly different run parameter sets.
The string will be concatenated to all of the output filenames.
i. kernelsize
default: 1
The size of box over which to average before run LT on a pixel -- defines one side of the box (i.e. 3 = 3 by
3 box)
i. pval
default: 0.05
The value above which trajectories for a given pixel will be considered "no-change."
The pval is calculated from a standard f-statistic probability table, based on the variance explained by the
fitted segmentation vs the residual variance in the original spectral trajectory not explained by the fitted
trajectory.
i. fix_doy_effect
default: 1
Set to 1 for LandTrendr to remove the mean effect of day-of-year on the spectral index.
A second-order curve is fit to the spectral data as a function of day of year.
Note: pixels that experience large disturbances will have poor fits, and thus will not show any obvious
day-of-year effect, and thus will not be corrected. Only pixels that are essentially stable, but showing a
spectral response solely as a function of sun angle or phenology, will be corrected. Thus, this setting has
the potential to remove false positive signals.
i.
max_segments=6
default: 6
The maximum number of segments into which any given pixel's trajectory can be divided.
Note that this number should be significantly (factor 3, roughly) less than the number of available years of
imagery. Thus, if fewer than approximately 15 or 20 years of imagery are available, the maximum
number of segments should be less than 6.
j.
recovery_threshold=1.0
default: 1.0
range: 0.0 to 1.0
= 1/min_number_years_for recovery segments cannot result in rate faster than 1/min number of years
This value defines a filter value used by the segmentation algorithm to eliminate segments that recovery
too fast for realistic ecological conditions of the site.
The value itself is calculated as: 1/minimum_number_of_years_for_recovery segments
k.
skipfactor=1
If >1, then not every pixel is run, but ever "skipfactor"th pixel is run in both x and y and the remainder
interpolated. In general, a skip factor of 3 is appropriate for exploratory runs, and a skip factor of 1 is
good once parameters have been settled upon. A skip factor of 3 runs nine times faster than a skip factor
of 1.
l.
desawtooth_val=0.9
0.0-1.0 if set to <1.0, spikes that start and end at near same value are removed. the value sets the
threshold on how different they can be to be removed -- 1.0 means no desawtoothing, .9 means that
spikes with differences > 0.90 in start and end point are fixed.
m. distweightfactor= 2
For forested and woody systems, set to 2. For grassland or very open systems, set to 1. This parameter
affects the algorithms that determine whether a given segment should be assigned to the trajectory; if set
to 2, this increases the chance that abrupt disturbance segments will be captured. The trick, however, is
making sure that disturbance always looks like disturbance: in woody systems, it can be defined fairly
well, but in herbaceous dominated systems, disturbance (especially from fire) can cause the spectral
response to move in the opposite direction from that expected for disturbance.
i. vertexcountovershoot= 3
This is another fairly esoteric parameter (like distweightfactor). In the fitting process, there are two
sequential algorithms that search for potential vertices between segments in the spectral trajectory. The
first algorithm is more conservative than the second one, and less sensitive to small "bumps" in the
trajectory. To ensure that all reasonable vertices are picked, we force the first algorithm to identify more
segments (more vertices) than we will eventually want, and then use the second algorithm to cull those
back to the desired count. The "vertexcountovershoot" value determine how many more vertices will be
picked in the first step (before vertex culling).
o. bestmodelproportion= 0.75
Once the vertices have been picked to with a number to find the "max_segments" count, different
algorithms sequentially remove the least informative vertex from the group and calculate overall fitting
statistics. Each segmented fit is considered a model to describe the spectral trajectory -- one model for a
single-segment description of the trajectory, one model for two-segment description of the trajectory, etc.
up to the maximum number of segments. Each model has an associated set of fitting statistics, with the
fitting statistics being penalized for higher-complexity models (i.e. those with more segments) through
degrees-of-freedom adjustments. At the end of this process, there exist (max_segments) number of fitting
models for the single trajectory. At this point, we can choose either the model with the best fitting score,
but experience has shown that the degrees-of-freedom penalty can sometimes force a legitimate,
slightly-more-complex model to be passed over in favor of a generalized, less-complex model. If the goal
of the segmentation is to capture abrupt phenomena against a backdrop of fairly noisy year to year
variation, we would instead want to allow a good model -- but not quite as good as the BEST model -- to
be chosen as the descriptor for this pixel. Setting the best model proportion to 1.0 forces the use of the
best model, but setting this value to a proportion less than 1 allows models with slightly lower fitting
scores to picked if they are more complex than the best-fitting model.
This parameter is quite important in determining the overall character of a run. It is often useful to do one
run with this parameter set to 1.0, and one run with it set to 0.75, and compare the final maps. It may
even be useful to attempt a run at an intermediate value, say 0.90. In all of these cases, it's often useful
to only conduct such a run on a small area where output maps can be judged for utility.
Run the batchfile
Once the parameters in section A have been set, you may run the batchfile from the IDL command
line.
However, do not run the batchfile until you determine whether you need to run the Fit-to-Vertices
(FTV) routines. (see section II below).
If you do NOT need to run the FTV routines, then you need to comment the sections of the
batchfile that correspond to the fitting. In the batchfile you will see indicators for where to start and
commenting. To comment out pieces of the batchfile, you will need use the semicolon ( ie. ;). You
can select large blocks and click the semicolon button the IDLDE interface to do this quickly.
Once you've determined whether you need to run the FTV, then run the batchfile.
IDL>@landtrendr_v0.43_pprr.pro
Be aware: If you are running this batchfile on a large area, with a skip-factor of 1, this batchfile
may run for a *long* time. Depending on the machine used, a segmentation run of an entire
Landsat image at a single-pixel skip-factor could take several days of constant operation.
As always, ensure that the batchfile has been saved in a directory/folder that IDL knows to look for
code.
When you run the batchfile, the programs first establish output files in the directories you have
indicated in the "outputs path" parameters.
TIP:
A common immediate error is that IDL cannot write to the outputs directory. Check to make sure
that you have a directory called "outputs" in the appropriate folder:
outputs_path = top_path + pathrow_name+ '\outputs\'+base_index+'\'
In other words, if you have a folder called "C:\4529\glovis\" with the images from SOP 2, and you
are doing a LandTrendr run using the normalized burn ratio (NBR), you will need to have a
separate folder set up called "C:\4529\outputs\nbr\" that IDL can place the output files in.
Once you start the batchfile, it will initially appear to lock up the IDL interface (in most cases) as the
first routines set up the large output files that will be populated by the algorithms. After a short
period, you should see a small popup status meter with the label "Processing chunks" and a
second one with "Performing fitting".
The way this program works is to divide a large image into a series of sequential smaller chunks
whose multiyear images can be read into the memory all at once. The large size of the image
stacks prohibits reading them into memory all at once. Thus, all processing is conducted on
chunks. You can monitor the overall status of the process by looking at the "processing chunks"
dialog, which indicates how many chunks the programs have decided to break the image into, and
which one it is working on.
What happens if it gets interrupted?
The programs save all of the necessary information at the end of each processed chunk, and keep
track of which chunk is being processed in a diagnosis file. If the program is interrupted for some
reason during a long run, you can simply start the batchfile over again (exactly the same way) and
it will pick up on the chunk it was processing, minimizing the wasted time.
How do I know when it's done?
When the entire run is done, the outputs window will show text indicating how long the whole
process ran. The two dialog boxes will be gone.
LandTrendr Segmentation Outputs
The segmentation run produces quite a few output files. They are described below.
All of these images are "flat binary" files with header text files in a format that really only has
meaning to the image routines used in the LandTrendr algorithms. Therefore, if you would like to
view these images in the ENVI software package, you will need to run the
"convert_bsq_headers_to_envi" procedure, described in SOP 2, section X above (but reproduced
here):
convert_bsq_headers_to_envi, outputs_path, <template_file.hdr>
In this example, outputs_path is the variable that was assigned in the batchfile for the
segmentation, and thus can be typed exactly as above. In the place of the <template_file.hdr>
field, use the full path name of a file with the map projection information of the images in the image
stack, thus:
convert_bsq_headers_to_envi, outputs_path,
"F:\4529\glovis\1988\lt05_045029_2002_234_to_1988_bsq.hdr"
The output files from the LandTrendr segmentation are:
*_diag.sav =
*_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.
*_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.
There are as many layers to each of these images as there are years in your stack of input imagery.
II. FIT-TO-VERTICES (OPTIONAL)
The core LandTrendr segmentation used in section I above is applied to a single spectral index, which
can be sufficient to create maps of change on the landscape described in terms of that index alone (See
SOP #4). For some purposes, this may be inadequate, as the information content of any single spectral
index is rarely enough to fully describe changes on the landscape. If yearly landcover maps are desired
(and SOP 6 will be used), we must do more in preparation.
Therefore, another possible step in the LandTrendr processing flow is to apply the information gleaned
from the segmentation of the original spectral index to other spectral indices. In this step, the years
associated with all vertices identified by the segmentation algorithm in section I are used to constrain the
segmentation applied to another spectral index. The result is a file of fitted values for that other index that
agrees temporally with the fitted values of the original spectral index, but with fitting applied to the new
spectral index values.
This part of the batch file is optional if only change maps (SOP #4) are desired, but required if yearly
landcover maps based are desired (SOP #6)
Prepare the Fit-To-Vertices (FTV) component of the LT batch file.
The template batchfile above already includes all of the pieces needed to run the FTV, assuming that you
are running the core segmentation "upstream" of this. Therefore, no further preparation of the batchfile is
necessary.
Thus, the FTV runs will be a part of the batchfile run for section I above, assuming that you do not
comment them out.
Outputs from FTV
FTV also produces many files. These are analogous to those from the core segmentation run, and are
placed in the same directory, but include the index and the word "ftv" in the filename, e.g.
LT042_nbr_4529_greenness_ftv_source.bsq is the image with the stacked values of the tasseled-cap
greenness data used as the source for the fitting algorithms.
Fit to Vertices (FTV) outputs:
FTV_*_diag.sav
FTV_*_fitted.bsq = fitted values of this index based on the original Landtrendr.
Band # = image year of stack
FTV_*_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
FTV_*_vertvals.bsq = the fitted index values of the input band at those years
Band 1:
Band 2:
Band 3:
Band 4:
Band 5:
Band 6:
Band 7:
Band 8:
*_darkseg.bsq
This is a six-layer image that captures for each pixel the mean (bands 1-3) and standard
deviation (bands 4-6) value of the tasseled-cap bands (Brightness, Greenness, and
Wetness) of the segment that appears to be most forested. Displaying bands 1,2 and 3
in RGB should produce a pretty standard tasseled-cap image, but one that captures each
pixel in its least disturbed state. This can be used to create a forest mask, for example,
that will be minimally affected by disturbances that happen sometime during the period of
the stack, since the forest condition before the disturbance will be captured in the
darkseg image. Bands 4-6 are used to identify pixels that are noisy during their most
forest-like period, which can be used to separate agricultural lands (with a lot of noise,
even if they happen to look forested spectrally in one period) from stable forest lands.
III. EVALUATE RESULTS
It is useful to check on the outputs from any LandTrendr run to make sure that things worked
appropriately.
The best set of images to evaluate the are the "fitted" and "source" images, as these capture all of the
important phenomena.
Compare source and fitted files
1. Open source file and fitted file in different viewers in ENVI.
a. Each layer in the image corresponds to a different year in the image stack.
b. Display each as a 3-band RGB composite, with an early, middle, and end year image for
R, G, and B respectively.
*hint: edit the 'wavelength' attribute in the ENVI header file to reflect the year and julian date of the image
processed through LandTrendr, such as the '*_source' and '*_fitted' files where each band represents an
image year. This will improve the graphing results so the x-axis is actually the date value in the form of
year.julian_day instead of the defaut 'Band Number'.
2. Link the viewers together
3. Compare trajectories for all years
a. When three layers from different years are displayed together, areas that have not
change will be approximately the same value across years, and thus should appear as
some shade of black, grey, or white, with white areas being those that are consistently
high in the spectral index of interest and black areas those that are consistently low.
b. Any time you see patches of a non-grey-scale color, something is happening there.
Center the viewer on those locations and examine the profiles.
i. Right-click in each viewer and select "Z-profile" from the pulldown menu.
ii. Overlay the 'source' and the LandTrendr 'fitted' Z-profile by dragging the Z-profile
symbol of the 'fitted' file to the Z-profile graph of the 'source' file.
a. Evaluate how well the LandTrendr algrorithm captured the overall trend of the source
Landsat data.
i. Some things to look for:
1. Do clouds or shadows cause a false positive, in terms of a vertex?
2. Is a known disturbance missed?
3. Are there any data anomolies possibly due to poor radiometric
calibration?
Protocol for LandTrendr
Standard Operating Procedure (SOP) #4
Developing LandTrendr Maps of Change
Version 0.01 (October 1, 2009)
Revision history log:
Previous
Version
Revision Date Author Changes Made
New
April 12, 2009 REK
New
0.01
September
25
REK
populated
0.01
2 Sep, 2010
PN
revised & clarified
0.01
1 Mar, 2011
PN
added error matrix
description
0.01
Table of contents
Overview
Reason for
Change
New Version
#
I. Setting up batchfiles
II. Running the batchfile
III. Outputs
OVERVIEW
Figure 1. SOP 4 within the LandTrendr process.
Although the algorithms applied in SOP #3 are the core of the LandTrendr process, they result in images
that are too rich in change information to be viewed succinctly. Therefore, we use other algorithms to slice
through the information content of those outputs to create a variety of simpler (and more readily
interpretable) maps of change. The algorithms described in this SOP (#4) create those maps.
As with the prior SOPs, the maps are produced using a batchfile. There are three basic types of change
map output, each with a different section in the batchfile. All of the types can be run by running the
batchfile, or some subset of the three types can be commented out and therefore not run.
The three types of change map are disturbance patches, segment-based change labels, and
disturbance/recovery snapshots.
The disturbance maps are highly filtered maps that focus on disturbance alone. The algorithms used to
make these maps require that the user create a function that converts the spectral index of interest into a
physical measure of percent cover that is used to evaluate whether a given disturbance event passes a
minimum change threshold. After identifying all pixels that meet this threshold, groups of pixels
experiencing disturbance in the same year are grouped together, and groups smaller than a minimum
mapping unit are eliminated. Finally, the groups of pixels in a single patch are grouped and labeled with a
patch ID and written to several files that have a separate layer for each year in the stack, with pixels in
each layer for each patch assigned the magnitude or duration of the disturbance event beginning in that
patch in that year. Because each layer is separate, each layer can be easily converted into a polygonbased shapefile format that allows for quick mapping of the full disturbance record.
Segment-based change label maps allow capture of a full range of disturbance and recovery patterns. A
set of algorithms searches through the LT segmentation outputs to identify interesting segment types or
sequences of segment types, and labels each interesting situation with a class-label. The definition of
what is "interesting" and the change labels are set by the user using a string-based change labeling
syntax defined in the batchfile. The result is a single-layer classified image, where each pixel is labeled
according to the type of change trajectory occurring in that pixel. Additionally, each class has an
associated multi-layer image that captures the year of onset, the duration, and the magnitude of the
segments that define that type. Taken together, these maps can be used to both quickly visualize the
patterns of change across a landscape, and to isolate the behavior of particular change types of interest.
Disturbance/recovery snapshot maps provide the user with a view of the direction of change (either
gaining or losing vegetative cover) for each pixel on the landscape for each year in the stack. This allows
quick assessment or reporting of overall landscape condition for a particular year of interest, or a means
of "watching the evolution" of the landscape over time by stepping through the snapshots sequentially.
I. SETTING UP BATCHFILES
We use a single batchfile to produce all three types of change map. The parameters needed for each
change algorithm are defined below. First, load the template batchfile named "lt042_changemaps.pro"
and save it to your active batchfile directory, including the path/row of the image being mapped in the
filename.
Set up batchfile parameters as follows:
1. Generic file information:
a. The following parameters should be copied directly from the lt042_ segmentation
batchfile that created the segmentation layers that you'll be using for the maps here.
Making these parameters the same ensures that the mapping algorithms are
referenceing the correct files:
i. pathrow name
ii. top_path
iii. Base_index
iv. run_name
v. mask_image
vi. images_path
vii. outputs_path
viii. ltversion
ix. base_lt_output_names
x. image_info_savefile
xi. template_file_for_map_projections
2. Disturbance patch parameters
a. Static_model_function :
i. This is a string that points to an IDL function that calculated percent cover from
the spectral index used to make the segmentation runs from SOP 3.
1. Example: 'static_nbr_model_pilot_scenes'
ii. The function that this points to is a file, with filename the same as the string
parameter + the '.pro' extension, e.g. 'static_nbr_model_pilot_scenes.pro'
1. The 'static_nbr_model_pilot_scenes.pro' file is provided for guidance.
2. The file takes as input a single value of the spectral index, e.g. nbr or
greenness, and returns a single value of the output cover value.
b. change_model_function
i. As with the static model, except that the function captured in this model should
accept the change value as input, and reports the change in cover as output.
ii. Note that both models must ingest the fitted value from the LandTrendr
segmentation directly, and scale the outputs accordingly. If the "divisor"
parameter in the original segmentation is set to a value other than 1 (see SOP 3,
Section IA), then the fitted outputs will be scaled relative to the original spectral
index.
iii. IMPORTANT: If you specify "none" for the change_model_function, then the
mapping algorithm will infer the change in cover by applying the static percent
cover model to the fitted values of your spectral index before and after the
disturbance and subtracting.
c. year_range
i. A bracketed two-element vector, with the first element corresponding to the first
year in the image stack and the second element the last year in the stack. This
is used to assign the correct year to the disturbance patches, which can then be
imported as an attribute in polygons derived from the disturbance stack outputs.
ii. Example: year_range = [1985, 2008]
d. collapse_dist_angle (collapse disturbance angle)
i. Default: 15
ii. This number determines when the mapping algorithm will combine sequential
segments of disturbance. It is defined in degrees, but these are based on a
relative data space defined as follows: the full spectral trajectory is scaled in both
the X (years) and Y (spectral range) dimensions, and the angle between each
succeeding segment in that space is calculated.
iii. If the angle between two adjacent segments of the disturbance type is less than
the "collapse_dist_angle" threshold parameter, then the two segments are
combined for further analysis.
iv. Practically speaking, this will primarily affect the duration of a disturbance event,
since it will string together sequential disturbance segments if they are roughly
tracking the same direction, rather than considering each one separately, making
one long disturbance event. In some cases, it can also falsely move the onset of
a real disturbance, if a chance dip before the actual disturbance is captured
under this threshold, which would cause the actual disturbance to be merged
with the pre-disturbance "blip."
e. collapse_rec_angle (collapse recovery angle)
i. default: 15
ii. Defined the same as the collapse_dist_angle.
f. pct_loss_threshold_at_one_year, pct_loss_threshold_at_20_years
i. These two parameters are considered together. They define the percent cover
value below which a given disturbance segment is considered no-change. We
use two values: one defines the threshold to be used for abrupt disturbances,
and one for long-duration disturbances. We typically use a lower threshold for
the long-duration disturbances, since segments that persist for many years
typically have a much greater signal-to-noise ratio than those that are simply one
year. For years in between 1 year and 20 years, the threshold is determined by
simple interpolation. thus, if the values were 10 and 5 for 1 and 20 years,
respectively, then the threshold at 10 years would be approximately halfway
between the two, or roughly 7.5.
ii. Default values: 10 and 5 (always defined as positive values)
iii. Note: The percent cover values used in this thresholding step are determined
using the percent cover value calculated by the user-defined models described
above.
g. pre_disturbance_cover_thresh
i. If the spectral value before a disturbance is translated through the percent cover model
into a value that is lower than this parameter threshold, then the disturbance segment will
be considered "no-change." This allows for removal of disturbance "noise" that occurs in
non-vegetated land cover types, and thus is only appropriate if the disturbance being
mapped is focused on fairly highly vegetated systems.
h. pct_gain_threshold_for_recovery
i. This parameter is the analog to the pct_loss_thresholds for disturbance, but
applied to the gain in cover under recovery. Recovery segments that are less
than this value (always defined as a positive number) are considered no-change.
i. mmu_pixels
i. This defines the minimum number of pixels to be retained in a patch of
disturbance.
ii. Default: 11
iii.
j. dur_threshold
i. This parameter helps the algorithm separate long- from short-duration
disturbance events that happen adjacent to each other in the same year.
Although statistically an unusual event, it does occur, and when it does, this
parameter is used to separate pixels that are likely in the short-duration category
from those that are in the long-duration category.
ii. Default: 10 (years)
1. Segment-based change label parameters
a. diag_file
i. This is simply the pathname of the diagnosis file from the segmentation run in
SOP 3. Typically, it can be left at the default value of:
1. base_LT_output_name + '_diag.sav'
b. disturbance_proportion, recovery_proportion
i. These values range from 0 to 1.0, and define a threshold that is used to eliminate
small segments that precede a larger segment of the same type. For each
trajectory, the largest disturbance or recovery segment is identified and the
magnitude noted; a segment before that high value that is less than a proportion
of that magnitude will be considered no change. That proportion is set here.
ii. For example, if a small disturbance segment with value 35 precedes (either
directly before, or any time before, even if separated by a recovery segment) a
large disturbance segment with value 700, that small segment is 5% of the large
disturbance value. If the disturbance_proportion parameter is set to 0.10, then
that smaller segment would be eliminated from consideration in the labeling
exercise.
c. Modifier
i. As in other cases, this value points in the direction of disturbance, and is either 1
or -1. For indices that become more positive when vegetative cover increases,
such as the NDVI, wetness, or the NBR, the modifier should be se to -1. For
indices such as band 5 or brightness, that become more positive when
vegetative cover decreases (at least in most cases!), this number should be set
to 1.
d. Label_run_name
i. A string that will uniquely define the outputs from this run. This string will be
used to create a directory in the outputs directory that is parallel to the spectral
index directory of the original segmentation outputs, but this one will have the
label_run_name as part of the folder name.
ii. You can test different labeling rules based on the same core segmentation run by
simply changing the label_run_name, since each time you change the name, an
entirely new subdirectory with its own outputs will be created.
e. Class_codes
i. This is the most important setting in the change labeling module. It defines the
labels of the change classes. Each change class is defined with a number, a
name, and change-code-syntax, separated by the "#" sign. There can be as
many change classes as desired, each one being defined with a single string in
an string array with as many elements as there are classes. The following is the
generic change labeling class structure:
class_codes = ['3#moderate_fast_disturbance#GD0075XX0000L04', $
'4#big_fast_dist#GD0300XX0000L03', $
'5#slow_disturbance#FD0050XX0000G06', $
'6#long_slow_disturbance#FD0025XX0000G18', $
'7#growth#FR0050XX0000G06', $
'8#long_growth#FR0050XX0000G18', $
'9#recent_slow_dist#FD0050GE1996G06', $
'10#rec_then_fast_dist#FR0050XX0000G06#FD0150XX0000L03', $
'11#rec_then_mod_dist#FR0050XX0000G06#FD0100XX0000G03', $
'12#rec_then_slow_dist#FR0050XX0000G06#FD0050XX0000G06', $
'13#fast_dist_then_mod_dist#FD0150XX0000L03#FD0075XX0000G02', $
'14#fast_dist_then_slow_dist#FD0150XX0000L03#FD0050XX0000G06',
$ '15#fast_dist_then_rec#FD0150XX0000L03#FR0050XX0000G04', $
'16#slow_then_fast_dist#FD0050XX0000G06#FD0150XX0000L03', $
'17#slow_then_fast_dist_then_rec#FD0050XX0000G06#FD0150XX0000L03#FR0050XX0000G04', $
'18#slow_then_recovery#FD0050XX0000G06#FR0050XX0000G02']
i. The change-code syntax is as follows:
1. "<G/F><D/R><0000><EQ/GE/LE/XX><0000><G/L><00>'
2. The first field is either G or F, signifying either "greatest" or "first". If set to
G, then the greatest magnitude segment of the type specified in the
second field (D for disturbance or R for recovery) will be identified. If set
to F, then the first segment of that type will be identified. Once that
segment is identified, it is evaluated relative to three rules corresponding
to the segment's magnitude, year of onset, and duration.
3. The first rule is a four-digit field specifying the magnitude of the segment;
if the segment is less than this threshold (always defined as a positive
number for either recovery or disturbance), it will be passed by.
4. The second rule is two-character plus four digit rule that specifies
whether the segment must begin on, before, or after a particular year
(EQ/LE/GE). If set to XX, then segments beginning any year are
allowed.
5. The third rule is a 1-character and two-digit rule that specifies whether
the segment must have a duration greater than (G) or less-then-or-equalto (L) the two-digit year threshold.
ii. Each segment in the trajectory is evaluated according the rules defined by the
syntax.
1. If a segment meets only some of the rules, it is passed by and the next
segment in the trajectory is evaluated for the rules.
2. If a change class is defined using two change-code rulesets strung
together (separated by the "#" sign), then the rules are evaluated in
sequence, with the rules for the second portion of the ruleset only being
evaluated once a segment that meets the first ruleset is found.
3. If a pixel's trajectory has a segment or sequence of segments that meets
the rule(s) in the ruleset(s), that pixel is assigned to the change class
whose rules it meets.
4. At the end of the evaluation process, there will be a single file with the
change labels for each pixel. Additionally, each change class will
produce a file that will store the details of the information about the
segments that met the criterion of that class: the segment start,
magnitude, and duration.
a. E.g. If there are 16 change classes defined in the change code
array, then there will be 16 output files with filenames that
include the class name string in the change code array.
b. If a change class has a ruleset that involves two successive
segments, then output image will have six layers, not three,
since each segment in the ruleset has the start, magnitude, and
duration values. If three segments make up the ruleset, then the
output image will have 9 layers, etc.
5. Redundant classes: Classes are evaluated in sequence from beginning
to end in the change-label array. If a given pixel meets the rules of a
change class early in the array of change classes, and then meets the
rules of change class further down in the array, it will be assigned the
change label of the latter class. Thus, it is imperative that the change
labels be arranged in order of increasing complexity from beginning to
end, so that classes are only overwritten for a given pixel if the
overwriting class is more informative than the simpler class.
a. Note: the 3-layer image (or 6 or 9, etc. depending on the
number of segments in the ruleset) associated with the simpler
class will not be affected if the pixel also meets the ruleset of a
later class. In this way, output images for both simple and
complex phenomena are created separately.
4. Disturbance/recovery snapshot parameters
a. The user-defined parameters for this mapping algorithm are minimal:
i. modifier:
1. As above, this points in the direction of disturbance, with -1 for spectral
indices that increase when vegetative cover increases, and positive 1 for
those that become more positive when vegetative cover decreases.
ii. fitted_image_file:
1. The full path and filename of the fitted image output file from the
segmentation run.
b. This mapping routine simply takes the fitted image, and subtracts each layer
(corresponding to a single year) from the year ahead of it
II. RUNNING THE BATCHFILE
As with the prior batchfiles, this batchfile is run with a simple command at the IDL command line, such as:
IDL>@lt04_changemaps
Note that the actual command will depend on the filename you saved the batchfile under.
When the batchfile runs, there will be little feedback. The disturbance patch analysis routine takes less
than an hour, usually, even for large images. The segment-based change labeling may take a while,
since each change class is evaluated individually. Thus, the more change classes defined, the longer the
run will take. A landsat scene may take the better part of a day if there are roughly 15 to 20 change
classes. The disturbance/recovery snapshot image will move quickly relative to the other two.
III. OUTPUTS
The three different types of map output are described separately.
1. Disturbance patch maps
a. There are two phases to this mapping process, each with several output files.
i. The first phase is the creation of a yearly stack of magnitude and duration values
for disturbance and recovery, filtered by the cover thresholds defined by the user
1. *_drstack_distrec_duration.bsq
a. An image with as many layers as there are in the original fitted
stack, one for each year. The value in each pixel is the duration
of the event that started in the year of that layer. If the value is 0
for a given pixel in a given layer, then there was no disturbance
event in that pixel for that year.
2. *_drstack_distrec_mag.bsq
a. As with duration, but for the magnitude of the event. Note that
both disturbance and recovery events are captured here, with
disturbance events having a negative value and recovery events
having a positive value.
3. *_drstack_distrec_preval.bsq
a. As with the prior two, but for the percent cover of the spectral
index at the onset of the event.
ii. The second phase is the creation of the patch-images, where the disturbance
events are isolated, then filtered by the minimum mapping unit (MMU) and patchaverages computed for those pixels.
1. *drstack_patch_duration.bsq
a. an image with as many layers as there are in the original fitted
stack, one for each year. Each pixel is assigned the mean value
of the duration for all of the pixels in the patch to which it
belongs.
2. *drstack_patch_mag.bsq
a. As with the duration image, but for the magnitude of the pixels in
the patch
3. *drstack_patch_patchid.bsq
a. A yearly stack image like the prior two, but here the value
recorded in each pixel is a unique id for the patch to which that
pixel belongs.
4. *drstack_patch_patch_summary.txt
a. This is a comma-delimited file that reports the year, number of
pixels, number of perimeter pixels, the mean cover value before
the disturbance, the mean magnitude of the disturbance within
the patch, the coefficicent of variation of magnitude within the
patch, the mean duration of pixels within the patch, and area
multiplied by the magnitude for the patch. The patch ID is also
reported, and is linked with the patchid in the _patchid.bsq file
2. Change_label maps
a. As noted above, there are two map types produced by the change label algorithms.
i. The change label map
1. *_LTlabel.bsq
a. This is classified image with numeric values that correspond to
the numbers assigned by the user in the batchfile.
2. *_<change class name>bsq
a. This image has three layers for each segment component in the
ruleset defined for this class. If the class is defined by meeting
just one segment rule, then there are three layers:
i. layer 1: onset of the segment that meets the rule
ii. layer 2: magnitude of the segment that meets the rule
iii. layer 3: duration of the segment that meets the rule.
b. if there are two or more segment rules, then the output image will
have that multiple of three layers, each grouping of three layers
corresponding to the layers described for the single-segment
type above.
ii. Also, there will be a change label spreadsheet in text form, comma-delimited
format, that describes the change labels associated with each class number, in
case the batchfile that originally described those classes is separated from the
output images.
1. *_LTlabel_classnames.csv
3. Disturbance/recovery snapshots
a. Two files are created for each run of the snapshot, one *_disturbance and one
*_recovery.bsq.
i. Each file has as many layers as there are years in the stack. The first layer (the
first year) is always empty, since the layers are defined as the difference
between the current year and the prior year, so it is not defined for the first year
in the stack. The blank layer is just retained to maintain consistency of layer
count among all outputs.
ii. The value in each pixel in each layer is the magnitude of change in the fitted
outputs from SOP 3 for the year in question. Both recovery and disturbance
values in the two respective files are defined as positive values for easier display
in most mapping packages.
IV. ERROR MATRIX
Step 3: Extract Landtrendr Disturbance map for validation plots
In this step, values from landtrendr map will be extracted to compare with TimeSync interpretation. You
will use the R language to link the plot locations in the .csv file to the disturbance map.
Modify data extraction script.
o Run R
This should be in C:\Program Files\R\R-2.12.0\bin\i386\Rgui.exe
o Once R is open, go to File\Open Script and navigate to the file for LT_READ (see
table above for full path/file name)
o Modify Parameter section in the script to point to your file locations. You will need to
change the “Work dir” so it points to you group directory. Otherwise, the rest should be
left the same.
Run script
o On Script Editor, EditRun All
o The script extracts from the greatest_fast_disturbance.bsq the year of disturbance,
using a 3 by 3 window to extract pixel values. Thus, there are 9 separate values for each
TimeSync plot location.
The script also extracts the magnitude of disturbance and the duration for those 9 pixels.
Examine output
o Output is a csv file: ts_lt_disturbance.csv. It ends up in the “Work dir” you can find in
the script file you just ran.
o Check ou the Landtrendr disturbance Year of Disturbance (YOD), Magnitude (MAG),
and duration (DUR) are extracted for each plot in the PLOT_FILE.
o In addition to the 9 pixels values (named as yod1,…yod9, mag1…mag9, dur1…dur9),
Majority for YOD (names as yod) and DUR (named as dur), mean value for MAG (named
as mag) are also extracted.
Step 4: Generate map accuracy table
Open ACCURACY_DB
o Double click on the ACCURACY_DB file (see Data Input and Output table above).
This will open the main MS Access interface. Next, you’ll open a separate MS Access
window type called the “Visual Basica for Application” window. Through this step, you’ll
need to alternate back and forth between these two windows to process things.
o We are going to use VBA in the database, which is diabled by default. Click on Enable
Content.
Import TimeSync segments from TimeSync Database
o Double click CREATE_SUMMARY under Modules (on the left, see Figure 4). This will
open a new window called the Microsoft Visual Basic for Application window.
Figure 4. Double click on the Create Summary link.
o In Microsoft Visual Basic for Applications window (Figure 5), you’ll see a window with a
script called “tsa_4627_accuracy – CREATE SUMMARY (Code)”.
o Within that text script, find “Sub ImportTsSummary()”. You’ll need to scroll down to the
bottom of the file. Change the string ts_db to match your TimeSync database location –
this is listed in the first line of the table at the beginning of this exercise. You will need to
change the path.
Figure 5. The Visual Basic for Applications window.
o With cursor inside ImportTsSummary(), click run icon on the toolbar, this will create a
new table “ts_summary” under Tables.
o Note: this step could also have been done using External DataAccess import option.
Import image list file: The TimeSync summary in step 2 reports the beginning vertex of a
segment, s, while Landtrendr disturbance maps are based on when disturbance is first detectable. By
definition, the beginning of a disturbance segment is before the disturbance occurred, so we cannot use
that. A disturbance is detectable only on the next valid year after a starting vertex. Thus, we need to
adjust the TimeSync segment summary based on available images. We’ll run a script to do that, and that
script needs to know about the image dates that are available.
o In Access main window, click External Data Text File
o Select TC_IMG_LIST for import
This file is in the Data Input and Output table at the beginning of the
exercise.
In the import window queries, accept all of the default options.
When you get to the last window, it asks for the name of the table to import
to. Type in “img_list” (please note the name has to match for later script to
recognize it).
o Run AdjustTsSegment in vba window.
Import landtrendr disturbance file from step 3.
o External Data Text File
o Select TC_IMG_LIST (see the table at the beginning of the exercise) for import
o Again, in the file import wizard accept the defaults. At the end, when asked for the
name of the table, name it “lt_disturbance” (please note the name has to match for later
script to recognize it).
Run summary script to create a confusion matrix
o Double click CREATE_SUMMARY module.
o If ts_lt_majority_fn, ts_lt_majority_fn, ts_lt_majority_fp, ts_lt_majority_match, and
ts_lt_majority_error have not been created, run CreateSummaryView.
Query
lt_summary
ts_lt_majority_match
ts_lt_majority_fn
ts_lt_majority_fp
ts_lt_majority_error
ts_lt_majority_error2
Description
Landtrendr disturbance using majority rule with magnitude
assigned. High > 66, medium 33-66, low <33
Matched disturbance
List of false negative disturbance
List of false positive disturbance
Basic error matrix
Error matrix with magnitude group
Step 5. Examine error matrix
The result from ts_lt_majority_error can be reformatted as
TimeSync
Disturbance
No Disturbance
Landtrendr
Disturbance
27
3
No Disturbance
57*
**
* disturbance from TimeSync is based on a 3x3 plot window interpretation, while the disturbance from the
lantrendr map has minimum mapping unit of 11 pixels.
** The number in this cell should be interpreted with caution. It does not correspond to the number of no
disturbance segment agreement between TimeSync and landtrendr.
Step 6. Examine error matrix by disturbance magnitude
Query ts_lt_majority_error2 shows the disturbance matrix with magnitude information.
Landtrendr
High
Medium
Low
ND
High
5
9
0
9
Medium
1
7
2
13
TimeSync
Low
0
0
3
35
ND
0
2
1
Protocol for LandTrendr
Standard Operating Procedure (SOP) #5
Utilizing TimeSync for validation
Version 0.01 (October 1, 2009)
Revision history log:
Previous Version Revision Date
Author Changes Made
New
April 12, 2009
REK
New
April 29, 2009
PN
Populated
Reason for Change New Version #
0.01
September 11, 2009 YANG
Modification
0.01
2 Sep, 2010
update & revision
0.01
PN
1. Overview
2. Method 1
3. I. Software Used
a. A. TimeSync
b. B. ArcGIS 9.3
c. C. Microsoft Access
4. II. Required Input Imagery From Prior SOPs
5. III. TimeSync Workflow
a. A. Devise Plot List
b. B. Create imagery list
c. C. Set-up TimeSync Database
d. D. Using the Validation Database/TimeSync
e. E. Summarizing TimeSync Plot Results
f. F. Determining Map Accuracy using TimeSync
Overview
An overview of the LandTrendr processing work flow involves many steps. First, Landsat images for each
year between 1984 to present, primarily during July or August time period, is obtained from the Landsat
data archive (SOP 1). Second, COST atmospheric correction, MADCal radiometric normalization, and
cloud masking is performed on the images in the yearly stack (SOP 2). Third, the image stack is analyzed
using the LandTrendr process (SOP 3) which summarizes and labels the Landsat observed long-term
trends from year to year. Next, the LandTrendr output results are evaluated for their accuracy using
independent data visualization using TimeSync (SOP 5). Finally, the analysis and final products are
documented and archived (SOP 8).
Figure 1. SOP 5 within the LandTrendr process.
The tool (TimeSync) uses geographic coordinates for an area of interest to extract image chips from a
time series stack for that area and its neighborhood. TimeSync displays a times series of chips for easy
viewing, along with a spectral plot of raw bands and indices over the time series for the area of interest.
Using these two data visualization windows, an analyst identifies changes that have occurred, if any,
within the area of interest and uses a series of pick-lists associated with a relational database to label
segments in the spectral profiles that are associated with cover changes in the area of interest. The
process involves selection of time-series vertices that identify dates associated with start and end points
of change segments, and the segments are labeled according to the cause of the observed change. The
tool is linked to Google Earth which displays a recent high resolution image for detailed spatial reference
(commonly a georeferenced aerial photograph).
TimeSync can also be used to validate disturbance polygons generated by LandTrendr. Colleagues at
the Great Lakes I&M Network (GLKN) have developed an alternative technique to validation. This
technique also incorporates TimeSync, however, it is utilized differently. This will be described as an
alternative and can be used depending on the users' goals. The main difference between this technique
and the previous technique is that GLKN validates every polygon produced by LandTrendr, not a random
sample of the landscape of interest.
Method 1
Maybe we should describe method 1 and it's goals and applications here. Basically tell people why they
would want to use one method over the other.
I. Software Used
TimeSync uses a combination of Access database and Python scripting code. You must have Microsoft
Access installed on your computer.
A. TimeSync
a. Setting up TimeSync Program
i. Extract TimeSync.zip into C:\TimeSync\
ii. Copy TimeSync shortcut from within TimeSync directory to desktop
B. ArcGIS 9.3
a. 3d analyst extension
i. To convert plot locations into Google Earth
b. Hawth’s Tools add-on
i. Used to generate points, either within LandTrendr polygons or randomly on the
landscape
ii. Freely available at http://www.spatialecology.com/index.php
C. Microsoft Access
1. Access 2003 or 2007
II. Required Input Imagery From Prior SOPs
TimeSync requires the user create a text file containing a list of radiometrically calibrated Landsat
reflectance imagery and Tasseled Cap imagery created in SOP 3.
III. TimeSync Workflow
Figure 1: TimeSync work flow. 1) Devise plot list. 2) Create reflectance and tasseled cap imagery
list. 3) Set-up TimeSync database referencing the plot list and imagery lists. 4) Within TimeSync
Program, analyst determines segments of land cover changes and recovery for each plot using a
combination of Landsat image chips, spectral trajectory, and high resolution imagery in Google Earth. 5)
Summarize plot segments table. 6) Compare TimeSync plot results to the Trajectory-Based Change
Detection map results using a confusion matrix.
A. Devise Plot List
TimeSync requires a list of plots which is loaded into the Access database table: Plots.
choose between random plot points (a) or plots based on change-maps from LandTrendr (b)
a. Random plot points
i. describe why
a. Plots based on change-maps from LandTrendr
i. If the user would like to validate only change polygons produced by LandTrendr
then this is the methodology to follow
1. Create plot point file
a. Create shapefiles with python script
i. use "landtrendr_to_shapefile_pprr".py
b. Reformat output txt file to csv with python script
i. use "reformat_patch_summary_pprr".py
a. Join shapefile to patch attributes
i. base join on patchid
b. Export joined shapefile
i. delete some fields
1. ID, GRIDCODE, yrs, objectid, patchid_1, index,
F12
ii. output name: lt0423_nbr_pprr_joined.shp
c. Clip the joined, modified shapefile to the largest analysis extent
i. output name: lt0423_nbr_pprr_joined_clipped.shp
d. Dissolve the clipped polygon by patchid
i. after clipping, polygons on the edge can become
multiple polygons, which is not what we want to happen.
To fix this, you can use the dissolve tool in Arc to fix
these errors.
1. open dissolve tool
a. input feature class:
lt0423_nbr_pprr_joined_clipped.shp
b. output feature class:
lt0423_nbr_pprr_joined_clipped_dissolv
ed.shp
c. dissolve field: patchid
d. create multipart features: yes
e. Create excel file with column identifying the number of points per
polygon
i. in ArcMap view attribute table of joined, clipped polygon
shapefile, export data to csv file
1. output name: step01_pts_per_polygon.csv
ii. open csv file, delete all fields except patchid, year and
num_pixels
iii. save csv file to excel file
1. output name: step01_pts_per_polygon.xls
iv. delete previous csv file
f.
g.
h.
i.
a.
a.
b.
v. open excel file and create new column (pts) that will
inform Hawth's Tools how many points per polygon to
create
1. create 1 point per 6 pixels and use the
"roundup" function in excel to roundup to the
nearest integer
a. because this column cannot have a
formula, copy and "paste special" >
values
b. delete old column with formulas
2. save and close excel file
Join excel file with shapefile, base the join upon patchid
Export the newly joined shapefile
i. output name: stepXX_shapefile_for_hawths.shp
Bring stepXX_shapefile_for_hawths.shp into ArcMap
Create pre-determined number of points in each polygon using
Hawths tools
i. open hawths tools > sampling tools > generate random
points
1. select layer: stepXX_shapefile_for_hawths.shp
2. minimum distance between points: 40 meters
3. sample size: stratified sampling design
a. polygon unique id field: patchid
b. generate number of points in field
i. choose "pts" field
4. output name: step03_points_for_timesync.shp
Add XY coordinates to shapefile
i. start "add XY coordinates" tool in Arc
ii. input features: step03_points_for_timesync.shp
export attribute table to csv
i. output name: step04_points_for_timesync.csv
open and save this csv file to an excel file
i. output name: step04_points_for_timesync.xls
ii. this excel file should have four columns (PLOTID, X, Y,
isprocessed)
Figure XX. Excel file with points ready to import into the Access database for TimeSync
1. Create Interpretation plots: Viewing each plot using high resolution imagery (usually aerial
photography), it is necessary to first create a 810 m2 (90m x 90m: 3 pixels x 3 pixels) plot based
on the plot center coordinate and then export these plots into the Google Earth format (*.kml).
a. Using ArcGIS, open the plot point shapefile.
b. Using the ‘Hawth’s Tools’ ArcGIS extension to create square 90m x 90m plot around the
plot point. ArcMap->Hawth’s Tools->Sampling Tools->Create Sample Plots
Figure 2. Shows a screen shot of creating a square buffer. *note this will create a shapefile with the
projection of the point layer. Also, the dimension is length from plot center to edge.
c.
TimeSync 3x3 window for GoogleEarth (kml). Use the ArcGIS 3D Analyst tool> Layer to KML to
convert the 90m x90m square polygon file to a GoogleEarth kml file.
Figure 3. Convert plot shapefile to *.kml format for viewing in Google Earth.
B. Create imagery list
1. In IDL use the script ts_image_list_maker.pro
a. alter 'path'
b.
c.
d.
e.
f.
alter 'image_info_savefile'
alter 'outpath'
alter 'refl_out_name'
alter 'tc_out_name'
save as 'ts_image_list_maker_<pprr>.pro' where <pprr> equals the path row you are
working on.
g. IDL> @ts_image_list_maker_<pprr>.pro
In the format of : imgtype,imgyear,imgday,id,file
where imgtype = image type (TM or ETM)
imgyear = image year (yyyy)
imgday = image day (yyyy-ddd) ddd= julian day
id = directory path to images
file = name of madcal reflectance or Tasseled Cap file
2. Tasseled Cap List
Figure 4. Tasseled Cap imagery list example.
3. Reflectance List
Figure 5. Reflectance imagery list example.
C. Set-up TimeSync Database
1. Create database
a. The TimeSync Database (TimeSync_template_pprr.mdb) is an Access database which
references the plot list and imagery lists while recording the analysts decision regarding
any land cover changes noted in the TimeSync visualization (step 4).
b. Open ‘TimeSync_template_pprr.mdb’, save a copy with a new descriptive name, such as
‘TimeSync_SEKI_change1984to2008.mdb’.
Figure 6. Save template database as new file.
2. Populate Plot list
a. Populate the Table 'Plots' with known plot locations and a unique identification number
(plotid).
Figure 7. 'Table: plots' contains the plot center coordinate.
3.
Define Image Settings
a. You will need to modify imageSettings table to reference your imagery list.
b. Table: imageSettings: this is where the image lists reside
i. field: bgw_image_list = enter path to Tasseled Cap imagery list created in
Section II.
ii. field: refl_image_list = enter path to reflectance imagery list created in Section
II.
iii. field: scalar = take default value (1000). This value is the same as the value
used to scale raw reflectance values (0-1) and Tasseled Cap values.
Figure 8. ImageSettings Table provides the location of the Tasseled Cap (field: bgw_image_list) and
reflectance (refl_image_list) image lists created in step 2. A scaling value for the imagery is set to insure
proper viewing of the images in TimeSync.
Tip: if your TimeSync chips in the viewer are very dark or not providing the correct Tasseled Cap
colors, the you might need to adjust the scaling value.
4. Set Spectral Properties (if necessary)
a. The spectral properties table holds the global statistics for proper viewing of a Tasseled
Cap image. Altering these values should not be necessary unless the analysts would like
to use the local values.
Figure 9. spectralProperties Table: global statistical properties for brightness, greenness, and wetness
which provides consistant viewing across many ecosystems and Landsat scenes..
5. Other tables
Figure 10. Tables 'plotspectral' and 'plotattribute' store analyst created TimeSync interpretation result.
These tables are summarized in step 5.
6. Close TimeSync database.
D. Using the Validation Database/TimeSync
1. Open TimeSync
a. Open an empty TimeSync session using the TimeSync shortcut to Timesync.exe
Figure 11. Empty TimeSync session.
2. Open TimeSync database
a. File->Open Database or use icon in upper left
b. Navigate to TimeSync Access database created in Step 3. This will load the Tasseled Cap
image chips to the Image Viewer, load the plot list in the left-side frame, and display the
spectral trajectory of the first plot.
Figure 12. Navigate to database created in Step 3.
Figure 13. TimeSync Visualization of image chips and spectral trajectory.
a. Check for any errors or anomalies in plot location, image stretch (See Appendix A for
examples), etc.
3. Open Google Earth
a. NOTE: Google Earth is not integral to TimeSync, but is a convenient approach to find
high resolution imagery. Other software platforms may be used if your site has
standardized imagery or formats that must be used. We provide examples in Google
Earth for reference.
b. Double Click on the Google Earth file (*.kml or *.kmz ) created in step 4c.
c. Check for location errors of Google Earth plots compared to TimeSync image chips.
Figure 14. Showing TimeSync plot locations in Google Earth.
Tip: Enabling the ‘Historical imagery’ option allows the opportunity to verify change using aerial
photography obtained by Google Earth. Beware that there is a combination of black/white and color, and
different spatial resolutions.
Figure 15. Showing TimeSync plot locations in Google Earth with the historical imagery
feature activated (View>Historical Imagery).
4. Describe the Plot
Figure 16. Tasseled Cap Spectral Space Image showing land cover
separability using R, G, B color space
a. See for examples of properly stretched Tasseled Cap imagery and examples of different
types of changes as a way of calibrating an analyst to the Landsat imagery.
b. Examine image chips in Image Viewer for changes. If change is observed use <ctrl>
button plus left-mouse-click on the image chip to create a new vertex point in the spectral
trajectory. This action will also add a row to the TimeSync database which allows the
analyst to describe the change.
c. Examine spectral plots located in TimeSync database. More options can be added
using the button next to the save button.
d. Examine plot using Google Earth. Analyst questions to ask:
i. Does the high resolution plot look like the Landsat image chip?
ii. Does the high resolution plot show land cover change corresponding to image
chips?
e. Describe trajectory segments in TimeSync database.
i. Cover Type
Cover Type (REQUIRED)
Agriculture
Barren
Forest
Other
Urban
Water
Wetlands
2. Cover Confidence
Cover Confidence (REQUIRED)
 
Low
Medium
High
i. Segment Description
Description (REQUIRED:
Describes Segment)
*note first vertex does not have a description
Blowdown – low
Blowdown – medium
Blowdown – high
Decreasing Vigor
False Segment
Only for beginning or end points
Fire - low
Fire - medium
Fire - high
Harvest - low
Harvest - medium
Harvest - high
Insect - low
Insect - medium
Other disturbance - low
Other disturbance - medium
Other disturbance - high
Recovery towards conifer
Recovery towards hardwoods
Recover towards other
Stable
i. Affected Pixels
Affected Pixels (REQUIRED)
1–9
i.
Segment Confidence
Segment Confidence (REQUIRED)
Low
Medium
High
i.
Interpreter
Interpreter (REQUIRED)
i. Others
Comments
Brightness (automatically updated from imagery)
Greenness (automatically updated from imagery)
Wetness (automatically updated from imagery)
5. Save database
E. Summarizing TimeSync Plot Results
Validation requires comparing the results of independent data sets to create a confusion matrix. This is
achieved by first summarizing the analyst populated (Section V) segment table in the TimeSync
database and secondly cross-referencing with the results of the final LandTrendr map (SOP 4) to create a
confusion matrix.
The TimeSync interpretation data are stored in Microsoft Access, a desktop relational database. The
interpretation can be summarized using SQL. There are two built-in SQL queries with TimeSync
database, which can be used to summarize the data. Additional summary can be built using customized
SQL.
1. Summarize TimeSync Segments
a. Open timesync database with Access.
b. Open Queries "summary". The summary query summarize the number of segments by
segment type.
c.
Open Queries "segmentDates". This summary query list all the segments for each plot
interpreted.
2. The above summary table can be linked with Landtrendr data in next step.
F. Determining Map Accuracy using TimeSync
1. Create plot table with TBCD and TimeSync label
a. Open ArcGIS.
b. Add plot points created in step 4a or 4b.
i. WHICH STEP 4A OR 4B?
c. Add raster: Landtrendr final map. This could be any of the output maps from step SOP
#4.
d. Add ‘**’ table from ‘TimeSync_*.mdb’
i. IS THERE REALLY A "**" TABLE? IF NOT, PERHAPS GIVE AN EXAMPLE OF
THE ACTUAL TABLE.
e. Join summarized table to plot_point.shpbased on plot number
i. HOW? IS THIS AN ARCMAP FUNCTION?
‘Identity’ Landtrendr Map results with Plot points shapefile to add the
Landtrendr
map value to the Plot points attribute table. Now you have
both the TimeSync
classification and the Landtrendr classification in the
same table.
i. HOW? IS THIS DONE IN ARCMAP OR IN ACCESS? SOME DETAILS OF THE
STEPS WOULD BE HELPFUL.
g. Export plot_point.shp table, save as ‘plot_points_landtrendr<file>_TimeSync.dbf’
i. AGAIN, IN ARCMAP OR ACCESS?
f.
2. Create confusion matrix
a. Open ‘plot_points_landtrendr<file>_TimeSync.dbf’ in Excel, save as
‘TimeSync_confusion_matrix_landtrendr<file>.xls’
b. Data>PivotTable and PivotChart Report…>
c. Drop fields onto pivot table
i. Row Field = TimeSync
ii. Column Field = LandTrendr<file>
iii. Data Items = Count of ‘Plot Id’
Protocol for LandTrendr
Standard Operating Procedure (SOP) #6
Linking LandTrendr with landcover maps
Version 0.01 (October 1, 2009)
Revision history log:
Previous Version Revision Date
Author Changes Made Reason for Change New Version #
New
REK
April 12, 2009
New
August 12, 2009 YANG Modification
0.01
0.01
Overview
I. Important background on software
II. Inputs and Outputs
III. Defining POM Classification Rule
a. A. Unsupervised Classification of Base Image
b. B. Extraction of Classification Rule
c. C. Linking Spectral Classes with Existing Vegetation Map
5. IV. Creating POM Image Series
a. A. Create spectral classes
b. B. Convert spectral class to vegetation class
1.
2.
3.
4.
Overview
A common goal in monitoring landscapes is to label the kind of change that is occurring over time. The
maps produced in SOP 4 (Change maps) of this protocol identify where change is occurring, and give
some sense of whether the change is of a disturbance, recovery, or combined type, but do not describe
the condition of the landscape before and after the change in the detail needed for some natural resource
applications.
Therefore, this SOP describes a method by which a basic landcover map from a single point in time can
be used as the basis for building analogous landcover maps for every year in the image stack produced
in SOPs 1 and 2. Once the landcover maps are produced for each year, the change maps from SOP 4
can be considered in relation to the cover type changes that they engendered. Note that this SOP
assumes that there is a landcover map already in existence, produced external to this project, that needs
to be extended forward and backward in time.
The starting information in this SOP is the fitted tasseled-cap imagery that was optionally included in the
original LandTrendr segmentation batchfile (SOP 3) using the fit-to-vertices (FTV) commands. The fitted
tasseled-cap images are very stable over time, which allows us to build a classification in the spectral
space of an image close in time to the date of an existing landcover map, and then apply it to the spectral
space of the other images in the stack.
I. IMPORTANT BACKGROUND ON SOFTWARE
In addition to the ENVI+IDL environment, this protocol also uses ArcGIS 9.x and Erdas
Imagine 9.x for additional processing.
II. INPUTS AND OUTPUTS
Based on the landtrendr segmentation, produce yearly image for selected spectral images.
Input: land cover map; fitted images;
Output: yearly land cover map
III. DEFINING POM CLASSIFICATION RULE
A. Unsupervised Classification of Base Image
1. Select the Landtrendr produced yearly tasseled cap image with date close to existing Vegetation
Map as the base image.
2. Normalize the base tasseled cap image to allow equal spectral contribution in spectral space
partition. The normalization is done by Di,j = (Di,j - Di)/std(Di), where Di,j is the pixel value for
band i pixel j; Di is the mean value for band i; and std(Di) is the standard deviation of all pixels in
band i. This normalization step is introduced for the purpose of partitioning the spectral space
with equal weight to brightness, greenness, and wetness. This step is done in ERDAS Imagine
as follows:
a. In Erdas Imagine, Click on Modeler
(
)
b. Click Model Maker (
a. Open the normalization spatial model
) to open Spatial Modeler
a. Double click Input icon in the modeler to select the based image using file browser.
a. Double click Output icon to set normalized image.
3. Click on Classifier (
a. Click on
) on Erdas Imagine
on Classification Toolbox
a. Set Input Raster File, Output Cluster Layer, Number of Classes, Maximum Iterations on
the Unsupervised Classification dialog box.
i. set Input Raster File to the normalized Tassel Cap image from 2.5 above.
ii. set Output Cluster Layer to an nonexist image file.
iii. set Number of Classes to 50 (the number of classes can be changed to user
preference).
iv. set Maximum Iterations to 60.
v. uncheck Output Signature Set.
B. Extraction of Classification Rule
Unsupervised classification from above is used to define the spectral properties, which will be applied
across all the LandTrendr fitted images.
a. Derive spectral statistics for unsupervised classes in ENVI. Click on NPS Functions on
ENVI main menu, and select POM Utilities/Create Class Likelihood File
a. On Image with classes window, select unsupervised classification image from Select
Input File list, and click OK.
i. If unsupervised classification image has not been open, use the Open button to
open the file to open the image
a. On Tasseled-cap image window, select the non-normalized tassel cap image
corresponding to the unsupervised classification, and click OK.
a. If the tasseled cap image is not in the opened image list, follow step 2.1 above to open
the file.
a. On Select classes to use window, uncheck [1] Unclassified to exclude deriving statistical
properties for background pixels. Click OK.
a. On Choose output probability space save file window.
C. Linking Spectral Classes with Existing Vegetation Map
1. Characterize spectral clusters from unsupervised classification with exising vegetation map. This
step requires two input files: the unsupervised spectral cluster image from A.3 above, and
existing vegetation map in raster format. This step is done in ENVI.
a. Select POM Utilities-->Summarize Class by Class from ENVI menu.
b. On Locate the physiognomic class maximum likelihood image window, select
unsupervised classification image.
c. if unsupervised image has not open,click Open->New File to open the image.
d. On Locate the original park-specific classified image window, select existing vegetation
image to be linked with spectral classes.
e. On Choose output summary matrix file name window, type in an output file name or use
Choose button to browse to a directory to provide a file name.
2. The previous step creates a cross table between spectral class and the existing vegetation map.
Open the file file in Excel, the columns correspond to existing vegetation classes, and the rows
correspond to the spectral classes.
3. Normalize spectral class summary of vegetation classes.
a. In the Excel file that has the opened cross table, Click the new worksheet icon to add a
new worksheet in Excel, and optionally name it "normalized".
b. Copy the existing worksheet with the cross table summary and paste it to the new
worksheet.
c. In "normalized" worksheet, divide each cell by the sum of the corresponding column.
d. Delete "background" and "total" column.
e. Delete "Unclassified" and "total" row.
f. Click new worksheet icon to add a new worksheet, and optionally name it "transition".
g. Select all the cells exclude the first row and first column in worksheet "normalized".
h. In worksheet "transition", right click mouse on the first cell, and select "Paste Special".
i.
On Paste Special window, select "Values" and check "Transpose", click OK.
j.
Save the "transition" worksheet as a tab-delimited text file. This text file will be used to
translate spectral classes from landtrendr fitted images into vegetation classes.
IV. CREATING POM IMAGE SERIES
With the classification rules and spectral-to-vegetation transition file defined in the "Defining POM
Classification Rule" step, they can be now applied to the time series of spectral images derived from
Landtrendr (see SOP # for details on Landtrendr fitted images). This step is done with IDL batch files.
A. Create spectral classes
1. Preparing batch file
a. Open template file "run_apply_pom_template.pro" using the IDL Workbench. The
following text shows the portion of this file where parameters controlling the run are
defined.
runinfo = {
outdir: "J:\NAFD\3735\POM2\Clasification By Rules\", $ ; output directory
base_file: "ftv_tc_3735_wetness_", $ ;base output filename
spec_savefile: "J:\NAFD\3735\POM2\Classification Rules\pom_3735_spec.sav", $ ;spectral classification
rule
tc_dir: "J:\NAFD\3735\outputs\wupa\fitted_tc\", $ ;input tc file directory, assuming all the fitted image in
the same directory
image_info_file: "J:\NAFD\3735\glovis\landtrendr_image_info_3735.sav" ;image_info structure used to
run landtrendr
}
apply_pom, runinfo
b. Note that any text that follows a semi-colon (;) is considered a comment by IDL, not a
command, allowing notes to be inserted into the batchfile for reference.
c. Also note that the formatting of the document displayed here is narrower than the original
text files, causing some text to wrap around to the next line when viewed here. IDL will
not see the wrap of text.
d. Save the file as "run_apply_pom_pprr.pro, where pp is path, and rr is row of the images
to be evaluated.
2. Modify the runinfo variables:
a. outdir: "J:\NAFD\3735\POM2\Clasification By Rules\"
i. change this to where the output spectral classification images are saved.
b. base_file: "ftv_tc_3735_wetness_"
i. change this to the name to be used as part of output image file.
c. spec_savefile: "J:\NAFD\3735\POM2\Classification Rules\pom_3735_spec.sav"
i. change this to the file location of classification rule created in III.B.
d. tc_dir: "J:\NAFD\3735\outputs\wupa\fitted_tc\"
i. change this to the directory name where the tasseled cap image from Landtrendr
are located.
e. image_info_file: "J:\NAFD\3735\glovis\landtrendr_image_info_3735.sav"
i. change this to the image info file used to run Landtrendr.
3. Run batch file
a. run the batch as "@run_apply_pom_pprr.pro" on IDL Workbench command line
b. For each year there is a Landtrendr tasseled cap image, the above step will create an
image "*_probs.bsq", where * is the base_file specified in the batch file.
B. Convert spectral class to vegetation class
1. Preparing batch file
a. Open template file "run_convert_spec_to_veg_template.pro" using the IDL Workbench.
The following text shows the portion of this file where parameters controlling the run are
defined.
runinfo = {
matfile: "F:\3834\POM\ftv_tc_spec_to_veg.dat", $ ;spec to veg conversion matrix
probdir: "F:\3834\POM\", $ ;spectral probability image
outdir: "F:\3834\POM\", $ ; output directory
base_file_name: "ftv_tc_3834_wetness_", $ ;base output filename
image_info_file: "F:\3834\glovis\landtrendr_image_info_3834.sav" ;image_info structure used to
run landtrendr
}
convert_spec_to_veg, runinfo
b. Save the file as "run_convert_spec_to_veg_pprr.pro, where pp is path, and rr is row of
the images to be evaluated.
2. Modify the runinfo variables:
a. matfile: "F:\3834\POM\ftv_tc_spec_to_veg.dat"
i. change this to the conversion tab-delimited file created in III.C.
b. probdir: "F:\3834\POM\"
i. change this to where the output from step IV.A are saved.
c. outdir: "F:\3834\POM\"
i. change this to where output will be saved
d. base_file: "ftv_tc_3834_wetness_"
i. change this to the name to be used as part of output image file.
e. image_info_file: "F:\3834\glovis\landtrendr_image_info_3834.sav"
i. change this to the image info file used to run Landtrendr.
3. Run batch file
a. run the batch as "@run_convert_spec_to_veg_pprr.pro" on IDL Workbench command
line.
b. for each image year, the batch file will create "*_veg_prob.bsq" and "*_veg_class.bsq",
where * is the base_file_name specified in the batch file.
i. "*_veg_prob.bsq" is a multi-bands image with each band represent the
probability of the corresponding class. For each predicted vegetation class,
derived from the input vegetation map, there is a corresponding band in this file,
therefore the size of the file will be determined by the number of vegetation
classes.
ii. "*_veg_class.bsq" is a classified image using the same classes as the existing
vegetation map.
4. View classification image
a. The generated vegetation class image can be viewed directly in ENVI.
Protocol for LandTrendr
Standard Operating Procedure (SOP) #7
Field Evaluation of LandTrendr outputs
Version 0.01 (October 1, 2009)
Revision history log:
Previous Version
Revision Date
Author Changes Made
Reason for Change
New Version #
New
April 12, 2009
REK
New
0.01
October 1, 2009
BG
Updated
0.02
1. Overview
2. I. Software used
a. A. ArcGIS 9.X
b. B. Powerpoint
c. C. Excel
d. D. MapSource
e. E. DNRGarmin
f. F. Pathfinder Office
3. II. Hardware used
a. A. GPS
b. B. Digital camera
c. C. Radios
4. III. Required data from prior SOPs
a. A. Disturbance polygons
5. IV. Before the field
a. A. Datasheet
b. B. Maps and polygon attributes
c. C. Preparing GPS units
d. D. Field equipment list (see Table XX)
6. V. In the field
a. A. Direct visit
7. VI. After the field
a. A. Download GPS
b. B. Download pictures from camera
c. C. Enter datasheets into feature class
Overview
After validating disturbances in the lab using available airphotos and ancillary data sources, there will be
some disturbances in which you were unable to determine if a change occurred.
Figure 1. SOP 7 within the LandTrendr process.
I. SOFTWARE USED
The list below provides the software that the authors have used to perform field reconnaissance and
measurements. It is recommended to use the list as only a guideline. There are many software
packages available, many for free, which could be utilized to produce the products necessary for
validation. Before purchasing expensive software or hardware, please consult the authors to determine if
you have an alternate piece of software that would suffice. The authors have made efforts to minimize
the amount of expensive software used for this protocol, however, the authors also have used the best
tools or software available to carry out a long term monitoring protocol.
A. ArcGIS 9.X
1. used to develop maps and attributes for the field
B. Powerpoint
1. contains all information (maps and miscellaneous image) to eventually be printed out for the field
C. Excel
1. used to produce datasheet, if preferred, Microsoft Access may be used
D. MapSource
1. used to load topo maps of park onto Garmin handheld GPS
2. the software comes along with the GPS when you purchase the unit
3. topo maps are available by purchasing through Garmin
E. DNRGarmin
1. used to transfer waypoints to and from handheld Garmin GPS
2. freely available online at
http://www.dnr.state.mn.us/mis/gis/tools/arcview/extensions/DNRGarmin/DNRGarmin.html
F. Pathfinder Office
1. used to transfer polygon shapefile to the Trimble unit
2. only necessary if using a Trimble GPS
II. HARDWARE USED
The list below provides the hardware used for field validation. As was the case with the software, this
hardware list is an ideal scenario. Field validation can be carried out in many different ways, with many
different pieces of hardware. There are two key pieces of hardware critical to field validation: 1) GPS
capable of recording waypoints and 2) digital camera.
A. GPS
1. Trimble GeoXT or comparable GPS device
a. load compressed high resolution airphotos, topo maps, a recent NVCS classification, and
disturbance polygons will be loaded onto this unit, depending on available memory
b. A Trimble unit is helpful because it allows the user to load the polygon shapefile and
while in the field, you can view where you are (the blinking dot) in relation to the polygon.
2. Garmin or comparable handheld GPS device
a. load centroids of polygons to be field-validated
b. load topo maps of areas to be visited in field
B. Digital camera
1. used to document field visits
2. any digital camera with 5 megapixel resolution is fine
3. a shockproof/waterproof camera such as the Olympus Stylus 1030 SW is recommended but not
necessary
C. Radios
1. used at parks to communicate with dispatch and personnel
III. REQUIRED DATA FROM PRIOR SOPS
A. Disturbance polygons
IV. BEFORE THE FIELD
Preparation for the field is an important part of field validation and care and time spent on pre-field
preparation will pay dividends while in the field. The steps below provide guidance in preparing maps in
addition to ancillary data (polygon attributes) for use in the field. In addition to maps, preparing the GPS
unit(s) and walking through the checklist will also prepare the user for the fieldwork ahead. The fieldwork
checklist provides useful items necessary to conduct work in the field, as well as some items easy to
forget such as sunscreen and a first aid kit.
A. Datasheet
1. a template datasheet (.xlsx) has been included for guidance
2. users can modify this datasheet as they deem necessary
B. Maps and polygon attributes
1. maps will be created in ArcMap 9.X, exported (pdf), then copied into the blank powerpoint project
the user has created
2. limit polygons to only those where 'field_validation_candidate' = 'yes'
a. if a recent vegetation map exists, overlay this over most recent high resolution airphoto
with the vegetation classes labeled
b. export these limited polygons to be loaded on the Trimble unit for field validation
3. create a 2 maps for each polygon
a. the first map should have the following information
i. labeled roads (if present)
ii. labeled trails (if present)
iii. labeled (formation level) NVCS polygons
iv. scale (for distance)
v. labeled polygon with patchid
vi. scale of map can be anywhere from 1:4000 to 1:12000, depending on the size of
the disturbance polygon
1. for example, for small disturbances, the scale could be larger because
for this map we're only interested in the polygon and the immediate
surrounding area
vii. for the background, use the most current high resolution airphoto
viii. when satisfied with map, export as pdf, name map with patchid
b. the second map should set up and have the following information
i. labeled (formation level) NVCS polygons
ii. scale (for distance)
iii. labeled polygon with patchid
iv. scale of map should be approximately twice of that of the first map
v. for the background, use the best available topo map
vi. when satisfied with map, export as pdf, name map with patchid, followed by
_topo
c. import these maps into the powerpoint project, which each map being it's own slide
4. in addition to exporting the map, click on the information button (figure XX) for each patchid
a. press Alt + PrtScn to copy this window (Figure XX) to the clipboard
b. paste this screen capture into the same powerpoint presentation
i. you can place 4 of the attribute screen captures on one slide
®
1. when finished, print out entire powerpoint project onto "Rite in the Rain " paper
C. Preparing GPS units
1. Turn on unit(s), make sure they're functioning
2. If a Trimble unit is being used, check for updates of Terrasync, firmware, and operating system
for your particular make and model
a. following the Pathfinder office user guide, load the appropriate data onto the unit
i. compressed high resolution airphotos
ii. topo map
iii. polygons to be field validated
1. use definition query to select only polygons where field validation is
required
2. export these selected polygons for upload into the Trimble unit
3. Following the instructions in the MapSource user guide, load the appropriate topos onto the
Garmin unit
D. Field equipment list (see Table XX)
1. The hardware listed in Section II should be inspected at least a week before the field work is to
begin.
2. Before driving to the field site, review Table XX
Table XX. Field equipment for field validation
Number Description
Req.
1
Radio programmed for park (with additional battery and charger)
1
Digital camera (with 1 additional set of batteries or battery charger)
1
Compass (with declination set for particular park
1
Binoculars
1
Handheld GPS unit for navigating to points (with 4 additional AA batteries)
1
Trimble GPS unit for displaying location in relation to polygon boundary (with battery charger)
Variable Data sheets for the number of plots to sample
3
Pencils for marking datasheets
3
Sharpie marker for making notes on airphoto
1
Clipboard for holding amd marking datasheets
1
First aid kit
1
Sunscreen
1
Insect repellent
1
Watch
®
V. IN THE FIELD
A. Direct visit
**At the beginning of each day turn on the Trimble, Garmin, and camera. Sync the time of all them, using
the Trimble unit as reference.
1. A direct visit in the field will be used to ascertain whether a disturbance has occurred. Using
whatever means available, hike to, boat to, or fly to the polygon centroid of interest using the
handheld GPS and maps.
2. As you are getting close to the polygon, turn on the Trimble GPS, load the disturbance polygon
layer to the map, and wait to see where you are in relation to the disturbance polygon. While you
are walking through the polygon to the centroid, look around for any signs of disturbance.
Disturbance signs could include, but are not limited to, recently fallen trees, dead standing trees,
recently flooded area, dying trees, and leaf diseases.
3. Once at polygon centroid (center of polygon), record a waypoint, fill out field-validation datasheet
(fig. XX) and take multiple photos of area. Digital photos will aid in long-term storage of
disturbance examples and provide useful information in the instance the imagery does not explain
data collected during the field visit. Important characteristics of photos include a photo directly
overhead, oblique photo of understory, closeups of disturbance evidence such as down woody
debris or stumps and any closeups of disease or infection. Record this photo number(s) on
datasheet for future reference. If there are any other notable features of this disturbance polygon
make sure to note these in the 'comments' space of datasheet. Once finished filling in the
datasheet, take a photo of the datasheet. This should be the last photo of the area, to aid in
identifying which group of pictures goes with a polygon.
a. Before finishing the datasheet, walk to the other end of the polygon, just to make sure
you have seen the extent of the polygon
4. Determination of change call accuracy:
a. Using the airphoto and attribute table for this patchid, reconstruct what was determined in
the lab. By using this information we are able to construct what we think we should see
in the field. For example, if the lab notes state "possible slow decline in jack pine", then
this could guide you in the field. Of course, this doesn't mean that you should only look
for a slow decline jack pine, rather, look for signs of slow decline or another subtle longlasting disturbance.
5. Filling out the datasheet:
a. Park
i. filled in before the field, or enter the four-letter code for the current park
b. PatchID
i. the unique id of the patch (polygon)
c.
d.
e.
f.
g.
h.
i.
j.
k.
l.
ii. fill out a datasheet for each polygon
Date
i. date of field visit
1. example: 10/1/09
Personnel
i. initials of people in the field
GPS unit
i. make and model of GPS unit taking the waypoints
Camera
i. make and model of camera
GPS and pictures
i. Waypoint ID
1. record waypoint ID
ii. Time
1. record the time (24 hr format) of when the waypoint was created
iii. # pictures @ wpt
1. record the number of pictures taken at a waypoint
2. do not take pictures without first saving a waypoint
iv. filling in these fields carefully and fully each time will save time in the lab after the
field work is finished
Evidence of disturbance
i. circle the evidence of disturbance, if evidence not listed, make a note and add it
at the end under the "comments" section
False reason
i. in the case the polygon is a 'false' change, circle reason why this polygon was
detected
ii. if unknown, do not circle any
iii. do not spend too much time on this field, it is for qualitative purposes and
tracking development of LandTrendr
Starting/ending classes, disturbance agent
i. this is the same as was done in the lab, although in the field you will have to walk
around the polygon to determine which areas were affected and what their
starting class was
ii. choose classes from list provided, under "starting/ending classes"
Starting/ending classes
i. list of possible classes to choose from
Comments
1. write down any comments in this section, the more verbose the better
a. generally describe the area: cover types, visible bedrock,
standing water, overall vegetation composition, slope, elevation
VI. AFTER THE FIELD
A. Download GPS
1. if your handheld unit is a Garmin, use DNRGarmin to download the points collected in the field
and save them as a point shapefile
B. Download pictures from camera
1. download the camera's pictures to the appropriate folder
2. use a filename renaming program, such as Total Commander (http://www.ghisler.com/), to
automatically rename files using the following naming protocol
a. four-letter park code_YMD_hms.jpg
i. four letter park code
ii. YMD = year, month, date of picture
iii. hms = hours, minutes, seconds of picture
iv. patchid
1. this will be added after you rename all files, then go back and select only
pictures associated with a single patch and rename these with the
patchid at the end of the filename
C. Enter datasheets into feature class
1. Open the LandTrendr_validation mxd
2. Start editing the polygon layer and edit each patchid (polygon) that was visited in the field
a. use the data collected in the field to update and make changes to the polygons
b. when finished, save edits, and stop editing.
Protocol for LandTrendr
Standard Operating Procedure (SOP) #8
Data management
Version 0.01 (October 1, 2009)
Revision history log:
Previous
Version
Revision
Date
Author
Changes
Made
Reason for
Change
New Version
#
New
April 12,
2009
REK
New
0.01
May 20,
2009
PN
populated
0.01
Table of Contents
1.
a.
i. Overview
ii. I. Journaling
iii. II. Metadata
1. A. FGDC - compliant metadata
iv. III. File naming
v. IV. Directory and File structure
1. A. Scene Path and Row\
vi. V. Works Cited
Overview
An overview of the LandTrendr processing work flow involves many steps. First,
Landsat images for each year between 1984 to present, primarily during July or August
time period, is obtained from the Landsat data archive (SOP 1). Second, COST
atmospheric correction, MADCal radiometric normalization, and cloud masking is
performed on the images in the yearly stack (SOP 2). Third, the image stack is analyzed
using the LandTrendr process (SOP 3) which summarizes and labels the Landsat
observed long-term trends from year to year. Next, the LandTrendr output results are
evaluated for their accuracy using independent data visualization using TimeSync (SOP
6). Finally, the analysis and final products are documented and archived (SOP 8).
This Standard Operating Procedure describes the steps needed to ensure that images,
image processing steps, and interpreted data are maintained and documented correctly.
I. Journaling
It is recommended that an electronic text file journal be maintained to keep track of all
filenames and decisions made during the steps of this protocol. This journal should be
maintained in chronological order, with the date and associated filenames for each
entry. Whenever a processing step is conducted, all of the relevant information about
that step is entered into the journal. Enough detail should be given to fully replicate the
step, including the names of all input and output files, the software module and tool
used for the analysis, and all processing options (buttons selected, data types, etc.). The
use of hyperlinks to other files can also be a useful feature because it provides full
pathnames of files that can be used later for interpretation, even if the hyperlinks
themselves become out of date because files are moved.
Additionally, the journal should be used to record rationale for making decisions and for
noting observations about imagery or datasets that may be useful later for error tracking
or evaluation of unexplained results. Although the key steps leading up to any
geospatial product will also be stored in the metadata, this journaling process allows
much more flexibility in keeping track of details. Most of the time, these details are not
needed later, but occasionally they are the difference between a quick fix and starting
from scratch.
It is useful to keep track of the file processing flow in a spreadsheet. We have provided a
file name worksheet in the larger LandTrendr processing workbook that will
automatically generate file names for all important steps based on user updates of scene,
LandTrendr process, and image date fields. This file is extremely helpful for keeping
track of processing steps. It will be covered in more depth below.
II. Metadata
Good metadata will allow complete replication of a product. The processing of imagery
requires many steps, each of which requires documentation to be replicable. In Table 1,
the major steps in image processing through this protocol are listed, along with the
resultant image and the information that must be stored in the metadata.
The validation process also requires metadata.
Table 1. Image processing steps and their metadata requirements.
Step
Resultant
image
Image
download
7-band Landsat
Date of image acquisition; date image was downloaded; all
TM or ETM+
header information included with image
image
COST
Atmoshpericcorrected 6band image
MADCAL
Name of parent image and of radiometric reference image;
radiometrically calculated gains and offsets relating each band in parent
normalized
image to reference image; location and size of image subsets
image
used to identify no-change pixels; name of batchfile used to
run MADCAL algorithm
Application of
tasseled cap
tasseled-cap
image
coefficients
cloud score,
shadow score,
Cloud Mask
cloud-shadow
mask images
LandTrendr
Required metadata
Name of parent image. Dark object values, gains, bias, solar
elevation.
Name of parent image; coefficients used for tasseled-cap
calculations
Name of parent image and of cloud reference image; cloud
score and shadow score thresholds; name of batchfile used
to run algorithm
Parameters of Landtrendr run; name of batchfile used to
run algorithm;
A. FGDC - compliant metadata
For National Park Service projects, refer to the appropriate metadata tools and
requirements as described at http://science.nature.nps.gov/nrdata/tools/
Information about general metadata standards please refer to: www.fgdc.gov/metadata
The Content Standard for Digital Geospatial Metadata (CSDGM), Vers. 2 (FGDC-STD001-1998) is the US Federal Metadata standard. The Federal Geographic Data
Committee originally adopted the CSDGM in 1994 and revised it in 1998. According to
Executive Order 12096 all Federal agencies are ordered to use this standard to
document geospatial data created as of January, 1995. The standard is often referred to
as the FGDC Metadata Standard and has been implemented beyond the federal level
with State and local governments adopting the metadata standard as well. (FGDC,
2009)
1. Required elements (ISO 19115 Core Metadata Elements)
Dataset title
Dataset reference date
Dataset language
Dataset topic category
Abstract
Metadata point of contact
Metadata date stamp
2. Topic Categories (ISO 19115 Topic Categories)
farming
biota
boundaries
climatologyMeteorologyAtmosphere
economy
elevation
environment
geoscientificInformation
health
imageryBaseMapsEarthCover
intelligenceMilitary
inlandWaters
location
oceans
planningCadastre
society
structure
transportation
utilitiesCommunication
III. File naming
File names are concatenated sequences of codes that uniquely describe a file. We
advocate descriptive code names that allow a user to immediately identify each files
purpose. A filename usually consists of a root name with an additional component
describing the file. Table 2 provides a list of all of the component code names for one
example of images for one scene (path 42 row 34). An example file name strings
together these codes in this order:
(IMAGETYPE)(PATH)(ROW)_(YEAR)_(JULIAN DATE)_(IMAGESOURCE).(FILE FORMAT)
LT5046031_1985_219_archv.img
Table 2. Filename component templates.
[To be corrected: REK 9/1/11]
IV. Directory and File structure
We recommend a directory structure where the primary node of the directory is defined
by path and row number, with subsequent directories and files defined by the
processing outputs. While processing a Landsat scene, LandTrendr creates new files in
specific directories. Text in bold with a trailing slash (\) represent a directory name
while text in italics represent a file name. pp = path, rr = row, year = specific year,
juldate = julian date.
A. Scene Path and Row\
pprr_year_COSTmxd.mxd
prrr_year_madcal.mxd
Processing_LandTrendr_pprr.xls
1. IDL_Batchfiles\
set_up_files_landtrendr_pprr.pro
COST_pprr_year.gmd
mad_landtrendr_pprr.pro
make_landtrendr_tcimages_pprr.pro
make_cloudscore_images_pprr.pro
mpcm_pprr.pro
lt043_pprr_nbr.pro
2. GIS_data\
studyarea_pprr_msk.img
madcal_pprr_subsets_polygons.shp
madcal_pprr_subsets_pts.shp
landcover_raster
3. Images\
1984\
LT5045033_1986_231_archv.bsq
LT5045033_1986_231_archv.hdr
LT5045033_1986_231_archv.hdr.flat
LT5045033_1986_231_b6.bsq
LT5045033_1986_231_b6.hdr
LT5045033_1986_231_b6.hdr.flat
LT5045033_1986_231_archv1986231_to_1998.bsq
LT5045033_1986_231_archv1986231_to_1998.hdr
LT5045033_1986_231_archv1986231_to_1998.hdr.flat
LT5045033_1986_231_archv1986231_to_1998.sav
LT5045033_1986_231_archv1986231_to_1998_ch0.tif
LT5045033_1986_231_archv1986231_to_1998_ch1.tif
LT5045033_1986_231_archv1986231_to_1998_ch2.tif
LT5045033_1986_231_archv1986231_to_1998_ch3.tif
LT5045033_1986_231_archv1986231_to_1998_ch4.tif
LT5045033_1986_231_archv1986231_to_1998_ch5.tif
LT5045033_1986_231_archv1986231_to_1998_ch6.tif
LT5045033_1986_231_archv1986231_to_1998_ltc.bsq
LT5045033_1986_231_archv1986231_to_1998_ltc.hdr
LT5045033_1986_231_archv1986231_to_1998_ltc.hdr.flat
LT5045033_1986_231_archv1986231_to_1998_madcaloutputs
.txt
LT5045033_1986_231_archv1986231_to_1998clddiff.bsq
LT5045033_1986_231_archv1986231_to_1998clddiff.hdr
LT5045033_1986_231_archv1986231_to_1998clddiff.hdr.flat
LT5045033_1986_231_archv1986231_to_1998cloudmask.bsq
LT5045033_1986_231_archv1986231_to_1998cloudmask.hdr
LT5045033_1986_231_archv1986231_to_1998cloudmask.hdr.f
lat
LT5045033_1986_231_archv1986231_to_1998shddiff.bsq
LT5045033_1986_231_archv1986231_to_1998shddiff.hdr
LT5045033_1986_231_archv1986231_to_1998shddiff.hdr.flat
radcal_1986231_to_1998.sav
radcal_1986231_to_1998_nochangepixels.bsq
radcal_1986231_to_1998_nochangepixels.hdr
radcal_1986231_to_1998_nochangepixels.hdr.flat
radcal_1986231_to_1998_subset1.sav
radcal_1986231_to_1998_subset1.sav
radcal_1986231_to_1998_subset1.sav
radcal_1986231_to_1998_subset2.sav
radcal_1986231_to_1998_subset3.sav
radcal_1986231_to_1998_subset4.sav
radcal_1986231_to_1998_subset5.sav
radcal_1986231_to_1998nochangepixels.sav
1985\
similar to *1984\* directory
1986\
similar to *1984\* directory
1987\
similar to *1984\* directory
1988\
similar to *1984\* directory
1989\
similar to *1984\* directory
1990\
similar to *1984\* directory
1991\
similar to *1984\* directory
1992\
similar to *1984\* directory
1993\
similar to *1984\* directory
1994\
similar to *1984\* directory
1995\
similar to *1984\* directory
1996\
similar to *1984\* directory
1997\
similar to *1984\* directory
1998\
LT5045033_1998_200_archv.bsq
LT5045033_1998_200_archv.hdr
LT5045033_1998_200_b6.hdr.flat
LT5045033_1998_200_b6.bsq
LT5045033_1998_200_b6.hdr
LT5045033_1998_200_b6.hdr.flat
LT5045033_1998_200_archv_cost.img
LT5045033_1998_200_archv_cost_ltc.bsq
LT5045033_1998_200_archv_cost_ltc.hdr
LT5045033_1998_200_archv_cost_ltc.hdr.flat
LT5045033_1998_200_archv_costclddiff.bsq
LT5045033_1998_200_archv_costclddiff.hdr
LT5045033_1998_200_archv_costclddiff.hdr.flat
LT5045033_1998_200_archv_costcloudmask.bsq
LT5045033_1998_200_archv_costcloudmask.hdr
LT5045033_1998_200_archv_costcloudmask.hdr.flat
LT5045033_1998_200_archv_costshddiff.bsq
LT5045033_1998_200_archv_costshddiff.hdr
LT5045033_1998_200_archv_costshddiff.hdr.flat
1999\
similar to *1984\* directory
2000\
similar to *1984\* directory
2001\
similar to *1984\* directory
2002\
similar to *1984\* directory
2003\
similar to *1984\* directory
2004\
similar to *1984\* directory
2005\
similar to *1984\* directory
2006\
similar to *1984\* directory
2007\
similar to *1984\* directory
2008\
similar to *1984\* directory
4. Outputs\
nbr\
LT043_nbr_4533_nwfp_durs.bsq
LT043_nbr_4533_nwfp_durs.hdr
LT043_nbr_4533_nwfp_durs.hdr.flat
LT043_nbr_4533_nwfp_mags.bsq
LT043_nbr_4533_nwfp_mags.hdr
LT043_nbr_4533_nwfp_mags.hdr.flat
LT043_nbr_4533_nwfp_vertvals.bsq
LT043_nbr_4533_nwfp_vertvals.hdr
LT043_nbr_4533_nwfp_vertvals.hdr.flat
LT043_nbr_4533_nwfp_vertyrs.bsq
LT043_nbr_4533_nwfp_vertyrs.hdr
LT043_nbr_4533_nwfp_vertyrs.hdr.flat
LT043_nbr_4533_nwfp_distrec.bsq
LT043_nbr_4533_nwfp_distrec.hdr
LT043_nbr_4533_nwfp_distrec.hdr.flat
LT043_nbr_4533_nwfp_fitted.bsq
LT043_nbr_4533_nwfp_fitted.hdr
LT043_nbr_4533_nwfp_fitted.hdr.flat
LT043_nbr_4533_nwfp_stats.bsq
LT043_nbr_4533_nwfp_stats.hdr
LT043_nbr_4533_nwfp_stats.hdr.flat
LT043_nbr_4533_nwfp_segmean.bsq
LT043_nbr_4533_nwfp_segmean.hdr
LT043_nbr_4533_nwfp_segmean.hdr.flat
LT043_nbr_4533_nwfp_segmse.bsq
LT043_nbr_4533_nwfp_segmse.hdr
LT043_nbr_4533_nwfp_segmse.hdr.flat
LT043_nbr_4533_nwfp_source.bsq
LT043_nbr_4533_nwfp_source.hdr
LT043_nbr_4533_nwfp_source.hdr.flat
LT043_nbr_4533_nwfp_diag.sav
LT043_nbr_4533_nwfp_drstack__distrec_duration.bsq
LT043_nbr_4533_nwfp_drstack__distrec_duration.hdr
LT043_nbr_4533_nwfp_drstack__distrec_duration.hdr.flat
LT043_nbr_4533_nwfp_drstack__distrec_mag.bsq
LT043_nbr_4533_nwfp_drstack__distrec_mag.hdr
LT043_nbr_4533_nwfp_drstack__distrec_mag.hdr.flat
LT043_nbr_4533_nwfp_drstack__distrec_preval.bsq
LT043_nbr_4533_nwfp_drstack__distrec_preval.hdr
LT043_nbr_4533_nwfp_drstack__distrec_preval.hdr.flat
LT043_nbr_4533_nwfp_drstack__patch_duration.bsq
LT043_nbr_4533_nwfp_drstack__patch_duration.hdr
LT043_nbr_4533_nwfp_drstack__patch_duration.hdr.flat
LT043_nbr_4533_nwfp_drstack__patch_mag.bsq
LT043_nbr_4533_nwfp_drstack__patch_mag.hdr
LT043_nbr_4533_nwfp_drstack__patch_mag.hdr.flat
LT043_nbr_4533_nwfp_drstack__patch_patchid.bsq
LT043_nbr_4533_nwfp_drstack__patch_patchid.hdr
LT043_nbr_4533_nwfp_drstack__patch_patchid.hdr.flat
LT043_nbr_4533_nwfp_drstack__patch_preval.bsq
LT043_nbr_4533_nwfp_drstack__patch_preval.hdr
LT043_nbr_4533_nwfp_drstack__patch_preval.hdr.flat
LT043_nbr_4533_nwfp_drstack__patch_patch_summary.txt
LT043_nbr_4533_nwfp_diag.sav
LT043_nbr_4533_nwfp_darkseg.bsq
LT043_nbr_4533_nwfp_darkseg.hdr
LT043_nbr_4533_nwfp_darkseg.hdr.flat
LT043_nbr_4533_nwfp_distrec.bsq
LT043_nbr_4533_nwfp_distrec.hdr
LT043_nbr_4533_nwfp_distrec.hdr.flat
LT043_nbr_4533_nwfpbrightness_ftv_vertvals.bsq
LT043_nbr_4533_nwfpbrightness_ftv_vertvals.hdr
LT043_nbr_4533_nwfpbrightness_ftv_vertvals.hdr.flat
LT043_nbr_4533_nwfpbrightness_ftv_fitted.bsq
LT043_nbr_4533_nwfpbrightness_ftv_fitted.hdr
LT043_nbr_4533_nwfpbrightness_ftv_fitted.hdr.flat
LT043_nbr_4533_nwfpbrightness_ftv_segmse.bsq
LT043_nbr_4533_nwfpbrightness_ftv_segmse.hdr
LT043_nbr_4533_nwfpbrightness_ftv_segmse.hdr.flat
LT043_nbr_4533_nwfpbrightness_ftv_stats.bsq
LT043_nbr_4533_nwfpbrightness_ftv_stats.hdr
LT043_nbr_4533_nwfpbrightness_ftv_stats.hdr.flat
LT043_nbr_4533_nwfpbrightness_ftv_segmean.bsq
LT043_nbr_4533_nwfpbrightness_ftv_segmean.hdr
LT043_nbr_4533_nwfpbrightness_ftv_segmean.hdr.flat
LT043_nbr_4533_nwfpbrightness_ftv_source.bsq
LT043_nbr_4533_nwfpbrightness_ftv_source.hdr
LT043_nbr_4533_nwfpbrightness_ftv_source.hdr.flat
LT043_nbr_4533_nwfpbrightness_diag.sav
LT043_nbr_4533_nwfpgreenness_ftv_fitted.bsq
LT043_nbr_4533_nwfpgreenness_ftv_fitted.hdr
LT043_nbr_4533_nwfpgreenness_ftv_fitted.hdr.flat
LT043_nbr_4533_nwfpgreenness_ftv_vertvals.bsq
LT043_nbr_4533_nwfpgreenness_ftv_vertvals.hdr
LT043_nbr_4533_nwfpgreenness_ftv_vertvals.hdr.flat
LT043_nbr_4533_nwfpgreenness_ftv_segmse.bsq
LT043_nbr_4533_nwfpgreenness_ftv_segmse.hdr
LT043_nbr_4533_nwfpgreenness_ftv_segmse.hdr.flat
LT043_nbr_4533_nwfpgreenness_ftv_source.bsq
LT043_nbr_4533_nwfpgreenness_ftv_source.hdr
LT043_nbr_4533_nwfpgreenness_ftv_source.hdr.flat
LT043_nbr_4533_nwfpgreenness_ftv_stats.bsq
LT043_nbr_4533_nwfpgreenness_ftv_stats.hdr
LT043_nbr_4533_nwfpgreenness_ftv_stats.hdr.flat
LT043_nbr_4533_nwfpgreenness_ftv_segmean.bsq
LT043_nbr_4533_nwfpgreenness_ftv_segmean.hdr
LT043_nbr_4533_nwfpgreenness_ftv_segmean.hdr.flat
LT043_nbr_4533_nwfpgreenness_diag.sav
LT043_nbr_4533_nwfpwetness_ftv_fitted.bsq
LT043_nbr_4533_nwfpwetness_ftv_fitted.hdr
LT043_nbr_4533_nwfpwetness_ftv_fitted.hdr.flat
LT043_nbr_4533_nwfpwetness_ftv_stats.bsq
LT043_nbr_4533_nwfpwetness_ftv_stats.hdr
LT043_nbr_4533_nwfpwetness_ftv_stats.hdr.flat
LT043_nbr_4533_nwfpwetness_ftv_vertvals.bsq
LT043_nbr_4533_nwfpwetness_ftv_vertvals.hdr
LT043_nbr_4533_nwfpwetness_ftv_vertvals.hdr.flat
LT043_nbr_4533_nwfpwetness_ftv_segmean.bsq
LT043_nbr_4533_nwfpwetness_ftv_segmean.hdr
LT043_nbr_4533_nwfpwetness_ftv_segmean.hdr.flat
LT043_nbr_4533_nwfpwetness_ftv_segmse.bsq
LT043_nbr_4533_nwfpwetness_ftv_segmse.hdr
LT043_nbr_4533_nwfpwetness_ftv_segmse.hdr.flat
LT043_nbr_4533_nwfpwetness_ftv_source.bsq
LT043_nbr_4533_nwfpwetness_ftv_source.hdr
LT043_nbr_4533_nwfpwetness_ftv_source.hdr.flat
LT043_nbr_4533_nwfpwetness_diag.sav
5. Workspace\
LE70450332000230EDC02.tar.gz
LE70450331999227EDC00.tar.gz
LE70450332002219EDC00.tar.gz
LE70450332004241EDC02.tar.gz
LE70450332005243EDC00.tar.gz
LT50450331986231XXX03.tar.gz
LT50450331987186XXX01.tar.gz
LT50450331988237XXX04.tar.gz
LT50450331989191XXX02.tar.gz
LT50450331991181AAA03.tar.gz
LT50450331992184XXX02.tar.gz
LT50450331993186XXX02.tar.gz
LT50450331994221AAA02.tar.gz
LT50450331995208XXX01.tar.gz
LT50450331996211XXX01.tar.gz
LT50450331997213XXX02.tar.gz
LT50450331998200XXX02.tar.gz
LT50450332001240LGS01.tar.gz
LT50450332003198EDC02.tar.gz
LT50450332006206EDC00.tar.gz
LT50450332007209EDC00.tar.gz
LT50450332008244EDC00.tar.gz
LE70450332000230EDC02.tar\
L71045033_03320000817_B10.TIF
L71045033_03320000817_B20.TIF
L71045033_03320000817_B30.TIF
L71045033_03320000817_B40.TIF
L71045033_03320000817_B50.TIF
L71045033_03320000817_B61.TIF
L72045033_03320000817_B62.TIF
L72045033_03320000817_B70.TIF
L72045033_03320000817_B80.TIF
L71045033_03320000817_GCP.txt
L71045033_03320000817_MTL.txt
README.GTF
LE70450331999227EDC00.tar\
Similar to *LE70450332000230EDC02.tar* directory
LE70450332002219EDC00.tar\
Similar to *LE70450332000230EDC02.tar* directory
LE70450332004241EDC02.tar\
L71045033_03320040828_B10.TIF
L71045033_03320040828_B20.TIF
L71045033_03320040828_B30.TIF
L71045033_03320040828_B40.TIF
L71045033_03320040828_B50.TIF
L71045033_03320040828_B61.TIF
L71045033_03320040828_B62.TIF
L71045033_03320040828_B70.TIF
L71045033_03320040828_B80.TIF
L71045033_03320040828_GCP.txt
L71045033_03320040828_MTL.txt
README.GTF
gap_mask\
L7G045033_03320040828_B10.TIF.gz
L7G045033_03320040828_B20.TIF.gz
L7G045033_03320040828_B30.TIF.gz
L7G045033_03320040828_B40.TIF.gz
L7G045033_03320040828_B50.TIF.gz
L7G045033_03320040828_B61.TIF.gz
L7G045033_03320040828_B62.TIF.gz
L7G045033_03320040828_B70.TIF.gz
L7G045033_03320040828_B80.TIF.gz
L7G045033_03320040828_B10\
L7G045033_03320040828_B10.TIF
L7G045033_03320040828_B20\
L7G045033_03320040828_B20.TIF
L7G045033_03320040828_B30\
L7G045033_03320040828_B30.TIF
L7G045033_03320040828_B40\
L7G045033_03320040828_B40.TIF
L7G045033_03320040828_B50\
L7G045033_03320040828_B50.TIF
L7G045033_03320040828_B61\
L7G045033_03320040828_B61.TIF
L7G045033_03320040828_B62\
L7G045033_03320040828_B62.TIF
L7G045033_03320040828_B70\
L7G045033_03320040828_B70.TIF
L7G045033_03320040828_B80\
L7G045033_03320040828_B80.TIF
LE70450332005243EDC00.tar\
similar to *LE70450332004241EDC02.tar* directory
LT50450331986231XXX03.tar\
L5045033_03319860819_B10.TIF
L5045033_03319860819_B20.TIF
L5045033_03319860819_B30.TIF
L5045033_03319860819_B40.TIF
L5045033_03319860819_B50.TIF
L5045033_03319860819_B60.TIF
L5045033_03319860819_B70.TIF
L5045033_03319860819_GCP.txt
L5045033_03319860819_MTL.txt
LT50450331987186XXX01.tar\
Similar to *LT50450331986231XXX03.tar* directory
LT50450331988237XXX04.tar\
Similar to *LT50450331986231XXX03.tar* directory
LT50450331989191XXX02.tar\
Similar to *LT50450331986231XXX03.tar* directory
LT50450331991181AAA03.tar\
Similar to *LT50450331986231XXX03.tar* directory
LT50450331992184XXX02.tar\
Similar to *LT50450331986231XXX03.tar* directory
LT50450331993186XXX02.tar\
Similar to *LT50450331986231XXX03.tar* directory
LT50450331994221AAA02.tar\
Similar to *LT50450331986231XXX03.tar* directory
LT50450331995208XXX01.tar\
Similar to *LT50450331986231XXX03.tar* directory
LT50450331996211XXX01.tar\
Similar to *LT50450331986231XXX03.tar* directory
LT50450331997213XXX02.tar\
Similar to *LT50450331986231XXX03.tar* directory
LT50450331998200XXX02.tar\
Similar to *LT50450331986231XXX03.tar* directory
LT50450332001240LGS01.tar\
Similar to *LT50450331986231XXX03.tar* directory
LT50450332003198EDC02.tar\
Similar to *LT50450331986231XXX03.tar* directory
LT50450332006206EDC00.tar\
Similar to *LT50450331986231XXX03.tar* directory
LT50450332007209EDC00.tar\
Similar to *LT50450331986231XXX03.tar* directory
LT50450332008244EDC00.tar\
Similar to *LT50450331986231XXX03.tar* directory
V. Works Cited
FGDC (2009). Geospatial Metadata Standards - Federal Geographic Data Committee.
http://www.fgdc.gov/metadata/geospatial-metadata-standards.
Download