Nothing Special   »   [go: up one dir, main page]

IMCORR

Download as pdf or txt
Download as pdf or txt
You are on page 1of 247

MEASURING GLACIER VELOCITIES ON THE KENAI PENINSULA,

ALASKA, USING MULTISPECTRAL SATELLITE IMAGERY


WITH FEATURE TRACKING
by
James Bradley Turrin
A thesis submitted to the faculty of
The University of Utah
in partial fulfillment of the requirements for the degree of
Master of Science
Department of Geography
The University of Utah
May 2010
MEASURING GLACIER VELOCITIES ON THE KENAI PENINSULA,
ALASKA, USING MULTISPECTRAL SATELLITE IMAGERY
WITH FEATURE TRACKJNG
by
James Bradley Turrin
A thesis submit ted to the faculty of
The University of Utah
in partial fulfillment of the requirements for the degree of
Master of Science
Department of Geography
The University of Utah
May2010
Copyright James Bradley Turrin 2010
All Rights Reserved
Copyright C James Brad!ey Turrin 20! 0
AU Rights Reserved
T HE U N I V E R S I T Y OF U T A H G R A D U A T E S C H O O L
SUPERVISORY COMMITTEE APPROVAL
of a thesis submitted by
James Bradley Turrin
This thesis has been read by each member of the following supervisory committee and by
majority vote has been found to be satisfactory.
Chair: Richard R. Forster
2 -*zH-Jo
Dorothy K^Hall
THE UNIVERSITY OF UTAH GRADUATE SCHOOL
SUPERVISORY COMMITTEE APPROVAL
of a thesis submitted by
James Bradley Turrin
This thesis has been read by each member of the fol lowing supervisory committee and by
majority vote has been found to be satisfactory.
-
Z -14.-1(;
Chair: Richard R. Forster
2-2'/-10
I' Dorothy all
T HE U N I V E R S I T Y OF U T A H G R A D U A T E S C H O O L
FI NAL READI NG APPROVAL
To the Graduate Council of the University of Utah:
I have read the thesis of James Bradley Turrin i
n
i
t s
f
i n a
i f
o r m
and have found that (1) its format, citations, and bibliographic style are consistent and
acceptable; (2) its illustrative materials including figures, tables, and charts are in place;
and (3) the final manuscript is satisfactory to the supervisory committee and is ready for
submission to The Graduate School.
Date Richard R. Forster
Chair: Supervisory Committee
Approved for the Major Department
Harvey J. Miller
Chair/Dean
Approved for the Graduate Council
Charles A. Wight
Dean of The Graduate School
THE UN I VERSITY OF UTAH GRADUATE SCHOOL
FINAL READING APPROVAL
To the Graduate Council of the Universi ty of Utah:
1 have read the thesis of James Bradley Turrin in its final form
and have found that (I) its format, citations, and bibliographi c style are consistent and
acceptable; (2) its illustrative materials including figures, tables, and charts are in place;
and (3) the final manuscript is satisfactory to the supervisory committee and is ready for
submission to The Graduate School.
5-2 0 -[..6{0
Date Richard R Forster
Chair: Supervisory Committee
Approved for the Major Department
Approved for the Graduate Counci l
Charles A. Wight
Dean orThe Graduate School
ABSTRACT
Previous studies have shown that the glaciers of southern Alaska are receding and
thinning, and contributing significantly to sea-level rise, and that temperate glaciers are
sensitive indicators of climate change. Therefore, a method is developed to apply feature
tracking software to moderate resolution multispectral satellite imagery to derive velocity
fields for outlet glaciers of the Harding Icefield, Alaska, which will serve as a basis for
future studies of mass balance, contribution to sea-level rise, and glacier response to
climate change. The data produced by a feature tracking program are systematically
sorted by location, direction, magnitude, correlation strength, and error estimates to
eliminate errant vectors using customized IDL programs. A successful new method of
systematically removing anomalous vectors within a velocity field via a feedback loop is
introduced and tested. Point data are spatially interpolated and a vector field is plotted
and color-coded to display ice surface velocities on a glacier, then velocity profiles are
produced to gauge the influence of topography on ice velocity and to determine the
primary mechanism of ice flow. Velocity fields for Tustumena and McCarty Glaciers are
derived that show speeds ranging from < 50-300 m/yr along their lengths. The velocity
fields are accurate to within 5.05 3.66 m/yr (0.15 0.11 pixel) or less in magnitude and
within 4.5 or less in direction. In-depth analysis of results produced with the image
correlation software Image Correlation (IMCORR) show that the magnitude of offset
produced changes with varying reference chip size, kernel size used in filters, and
ABSTRACT
Previous studies have shown that the glaciers of southern Alaska are receding and
thinning, and contributing significantly to sea-level rise, and that temperate glaciers are
sensitive indicators of climate change. Therefore, a method is developed to apply feature
tracking software to moderate resolution multispectral satellite imagery to derive velocity
fields for outlet glaciers of the Harding Icefield, Alaska, which will serve as a basis for
future studies of mass balance, contribution to sea-level rise, and glacier response to
climate change. The data produced by a feature tracking program are systematically
sorted by location, direction, magnitude, correlation strength, and error estimates to
eliminate errant vectors using customized IDL programs. A successful new method of
systematically removing anomalous vectors within a velocity field via a feedback loop is
introduced and tested. Point data are spatially interpolated and a vector field is plotted
and color-coded to display ice surface velocities on a glacier, then velocity profiles are
produced to gauge the influence of topography on ice velocity and to determine the
primary mechanism of ice flow. Velocity fields for Tustumena and McCarty Glaciers are
derived that show speeds ranging from < 50-300 m/yr along their lengths. The velocity
fields are accurate to within 5.05 3.66 m/yr (0.15 0.11 pixel) or less in magnitude and
within 4.5
0
or less in direction. In-depth analysis of results produced with the image
correlation software Image Correlation (IMCORR) show that the magnitude of offset
produced changes with varying reference chip size, kernel size used in filters, and
direction of the applied filter. A comparison of results produced by IMCORR and a
second image correlation program, Coregistration of Optically Sensed Images and
Correlation (COSI-Corr), reveals COSI-Corr' s frequential correlator is preferable to
IMCORR in terms of consistency of results, ease of use, speed of computations, and
accuracy. Velocity fields produced using 15 meter Advanced Spaceborne Thermal
Emission and Reflection Radiometer (ASTER) imagery from July 2003 and August
2005, and 30 meter Landsat-5 TM imagery from September 2006, August 2007, and July
2008 reveal that the correlation techniques are sensitive to the amount of surface ablation
that has occurred during the time interval between image pairs. The results show that
feature tracking is capable of producing accurate velocity fields for Harding Icefield's
outlet glaciers across a one year time span using moderate resolution multispectral
satellite imagery.
v
direction of the applied filter. A comparison of results produced by IMCORR and a
second image correlation program, Coregistration of Optically Sensed Images and
Correlation (COSI-Corr), reveals COSI-Corr's frequential correlator is preferable to
IMCORR in tenns of consistency of results, ease of use, speed of computations, and
accuracy. Velocity fields produced using 15 meter Advanced Spacebome Thennal
Emission and Reflection Radiometer (ASTER) imagery from July 2003 and August
2005, and 30 meter Landsat-5 TM imagery from September 2006, August 2007, and July
2008 reveal that the correlation techniques are sensitive to the amount of surface ablation
Ihal has occurred during the lime interval between image pairs. The results show that
feature tracking is capable of producing accurate velocity ficlds for Harding lcefield's
outlet glaciers across a one year time span using moderate resolution multispectral
satellite imagery.
TABLE OF CONTENTS
ABSTRACT iv
1. INTRODUCTION 1
1.1 Introduction 1
1.2 Related Research 5
1.3 Description of Data 18
2. METHODS 22
2.1 Preprocessing Satellite Imagery for Feature Tracking 22
2.2 IMCORR 27
2.3 Applying IMCORR 31
2.4 COSI-Corr 31
2.5 COSI-Corr' s Frequential Correlator Engine 33
2.6 Postprocessing of Data and Displaying Results 36
3. RESULTS AND DISCUSSION 44
3.1 McCarty and Tustumena Glaciers 44
3.2 McCarty and Tustumena Ice Surface Velocities 45
3.3 Tustumena Glacier Velocity and IMCORR Parameter Space 50
3.4 Reduction of IMCORR Parameter Space and Change in Methodology.. .57
3.5 Tustumena Vector Field From Reduced IMCORR Parameter Space 62
3.6 COSI-Corr Vector Fields for Tustumena and McCarty Glaciers 67
3.7 Tustumena and McCarty Glaciers Longitudinal Velocity Profiles 76
3.8 Tustumena Vector Fields Derived From Landsat 5 Imagery 82
3.9 McCarty Vector Field Derived From Landsat 5 Imagery 109
3.10 Positive Degree Days, Time Span, and Location Comparison 118
4. CONCLUSIONS AND FUTURE WORK 123
4.1 Research Obj ectives 123
4.2 Changes in Methodology 124
4.3 IMCORR and COSI-Corr 126
4.4 Positive Degree Days, Time Span, and Location 130
4.5 Tustumena and McCarty Glacier Velocities 130
TABLE OF CONTENTS
ABSTRACT ...................................................................................... .iv
1. INTRODUCTION ........................................................................... 1
1.1 Introduction ......................................................................... 1
1.2 Related Research ................................................................... 5
1.3 Description of Data ............................................................... 18
2. METHODS .................................................................................. 22
2.1 Preprocessing Satellite Imagery for Feature Tracking ....................... 22
2.2 IMCORR ........................................................................... 27
2.3 Applying IMCORR ............................................................... 31
2.4 COSI-Corr ........................................................................ 31
2.5 COSI-Corr's Frequential Correlator Engine ................................... 33
2.6 Postprocessing of Data and Displaying Results .............................. .36
3. RESULTS AND DISCUSSION ...................................................... .44
3.1 McCarty and Tustumena Glaciers .............................................. .44
3.2 McCarty and Tustumena Ice Surface Velocities ............................. .45
3.3 Tustumena Glacier Velocity and IMCORR Parameter Space .............. 50
3.4 Reduction ofIMCORR Parameter Space and Change in Methodology ... 57
3.5 Tustumena Vector Field From Reduced IMCORR Parameter Space ...... 62
3.6 COSI-Corr Vector Fields for Tustumena and McCarty Glaciers ........... 67
3.7 Tustumena and McCarty Glaciers Longitudinal Velocity Profiles ......... 76
3.8 Tustumena Vector Fields Derived From Landsat 5 Imagery ................ 82
3.9 McCarty Vector Field Derived From Landsat 5 Imagery .................. 109
3.10 Positive Degree Days, Time Span, and Location Comparison ............ 118
4. CONCLUSIONS AND FUTURE WORK .......................................... 123
4.1 Research Objectives ............................................................ 123
4.2 Changes in Methodology ........................................................ 124
4.3 IMCORR and COSI-Corr ...................................................... 126
4.4 Positive Degree Days, Time Span, and Location ........................... 130
4.5 Tustumena and McCarty Glacier Velocities .................................. 130
4.6 Combining Velocity Data with Climate Data 132
Appendices
A. COSI-CORR_TO_IMCORR_FORMAT.PRO 133
B. DIRECTIONAL_VECTOR_SIFT.PRO 136
C. RESIDUALS.PRO 148
D. SORT_PLOT_ARROWS.PRO 176
E. CONVOLVE_DISPLACEMENT.PRO 196
F. CROSS_SECTION_GENERATOR.PRO 209
G. DESTRIPEIMAGE. PRO 223
H. FLOW_LINES.PRO 228
REFERENCES 232
vii
4. 6 Combining Velocity Data with Climate Data ................... .. .. ... .... . 132
Appendices
A. COSI. CORR_ TO_ u\1CORRJORMAT.PRO ..... . ... .. ... . ... .. . ... .. . .. ... . ... .. .. 133
B. DrRECTIONAL_ VECTOR_SIFT.PRO ..... . ...... ... .. . ... .. ... . .. . ... .. ... . ... . ... 136
C. RESIDUALS.PRO . . ... .... ... . ... .. ... . ....... .. .. .. .. .... . . ... .. . ... .. . ... .. ... . .... . . . 148
D. SORT ]LOT _ARROWS. PRO .. .. .. . . . . .. ... . ... ............... . ... .. . ... .. ... . ... . .. . 176
E. CONVOLVE DISPLACEMENT.PRO .. ............................... . ..... .. ...... 196
F. CROSS SECTION GENERATOR.PRO .................................. ... ....... 209
- -
G. DESTRlPE IMAGE. PRO ................... .. .............................. ........... 223
H. FLOW_LIl'.'ES.PRO .. .... . ....... .. .... . .. .. .... ..................... .. .. . ...... .. .. . ... 228
REFERENCES .. .. .. . .. ... . . . . .... . ...... . . . . .. ..... ........................... ........ . .... .. 232
vii
1. INTRODUCTION
1.1 Introduction
Sea-level rise due to global warming is one of the most pressing problems faced
by mankind today and one of the most urgent realms of science inquiry. Mountain
glaciers comprise only about 3% of land ice yet they account for approximately 60% of
global ice loss and sea-level rise, which is more than that contributed by the ice sheets in
Greenland and Antarctica, combined (Meier et al., 2007). This trend is projected to
continue for the rest of the century (Meier et al., 2007). It has been shown recently that
95% of the mountain glaciers in southeast Alaska and northwest British Columbia are
losing mass (Larsen et al., 2007), and that the glaciers in Alaska may be the greatest
contributors to sea-level rise of the mountain glaciers, adding 0.27 mm/yr of sea-level
rise from the mid-1950s to the mid-1990s and accounting for VA of sea-level rise from
mountain glaciers worldwide (Arendt et al., 2002). For the period from 2003 to 2007, the
contribution to sea-level rise from glaciers around the Gulf of Alaska remained nearly
constant, adding an estimated 0.28 mm/yr (Arendt et al., 2008; Luthcke et al., 2008). In
fact, the processes of glacial thinning and retreat may be more dynamic than previously
thought. Zwally et al. (2002) showed, via a study of the west-central Greenland Ice Sheet,
that ice flow accelerated during periods of increased ice melt and decelerated when ice
melt stopped. Thus, demonstrating a coupling between surface melt and ice flow, this
provides a mechanism for rapid, large-scale responses to climate warming beyond models
1. INTRODUCTION
1.1 Introduction
Sea-level rise due to global warming is one ofthe most pressing problems faced
by mankind today and one of the most urgent realms of science inquiry. Mountain
glaciers comprise only about 3% ofland ice yet they account for approximately 60% of
global ice loss and sea-level rise, which is more than that contributed by the ice sheets in
Greenland and Antarctica, combined (Meier et aI., 2007). This trend is projected to
continue for the rest of the century (Meier et aI., 2007). It has been shown recently that
95% of the mountain glaciers in southeast Alaska and northwest British Columbia are
losing mass (Larsen et aI., 2007), and that the glaciers in Alaska may be the greatest
contributors to sea-level rise of the mountain glaciers, adding 0.27 mm/yr of sea-level
rise from the mid-1950s to the mid-1990s and accounting for % of sea-level rise from
mountain glaciers worldwide (Arendt et aI., 2002). For the period from 2003 to 2007, the
contribution to sea-level rise from glaciers around the Gulf of Alaska remained nearly
constant, adding an estimated 0.28 mm/yr (Arendt et aI., 2008; Luthcke et aI., 2008). In
fact, the processes of glacial thinning and retreat may be more dynamic than previously
thought. Zwallyet al. (2002) showed, via a study ofthe west-central Greenland Ice Sheet,
that ice flow accelerated during periods of increased ice melt and decelerated when ice
melt stopped. Thus, demonstrating a coupling between surface melt and ice flow, this
provides a mechanism for rapid, large-scale responses to climate warming beyond models
based on surface ablation alone. This is counter to previous assumptions that ice sheets
react slowly over hundreds or thousands of years to temperature changes, and implies that
as the climate warms, glaciers will accelerate, moving ever larger volumes of ice into
ablation zones that will further increase ice volume loss and sea-level rise.
There is an assumption that glacier recession is associated with thinning of the ice
and a negative mass balance. However, a recent expansive investigation of 67 Alaskan
glaciers using Lidar (Arendt et al., 2002) found 10% of glaciers did not follow this
assumption, some glaciers thickened as they retreated and some thinned as they
advanced, and there can be large seasonal and interannual variations in a glacier's mass
balance (Arendt et al., 2008; Luthcke et al., 2008). The result of this investigation
suggests a direct correlation between Lidar-derived centerline elevation change and mass
balance may not be accurate. It also implies that multispectral satellite image analysis of
glaciers to determine changes in terminus position and areal extent may not necessarily
be the best way to study changes in mass balance. One way to provide the necessary data
to corroborate glacier recession and mass balance is to produce a velocity field.
For this study, a velocity field is defined as a two-dimensional map that uses
velocity vectors to display the magnitude and direction of movement of ice surface
features on a glacier. A velocity field is needed for Lidar measurements of ice surface
elevation changes to test the assumption of a constant flux of ice between and among the
integrated area-altitude bands over which the ice thickness changes are measured. For
multispectral satellite image analysis, a velocity field is needed, along with ice area and
thickness measurements, to determine mass flux; thus, velocity fields may be used to
2
based on surface ablation alone. This is counter to previous assumptions that ice sheets
react slowly over hundreds or thousands of years to temperature changes, and implies that
as the climate wanns, glaciers will accelerate, moving ever larger volumes of ice into
ablation zones that will further increase ice volume loss and sea-level rise.
There is an assumption that glacier recession is associated with thinning of the ice
and a negative mass balance. However, a recent expansive investigation of 67 Alaskan
glaciers using Lidar (Arendt et aI., 2002) found 10% of glaciers did not follow this
assumption, some glaciers thickened as they retreated and some thinned as they
advanced, and there can be large seasonal and interannual variations in a glacier's mass
balance (Arendt et aI., 2008; Luthcke et aI., 2008). The result of this investigation
suggests a direct correlation between Lidar-derived centerline elevation change and mass
balance may not be accurate. It also implies that multispectral satellite image analysis of
glaciers to detennine changes in tenninus position and areal extent may not necessarily
be the best way to study changes in mass balance. One way to provide the necessary data
to corroborate glacier recession and mass balance is to produce a velocity field.
For this study, a velocity field is defined as a two-dimensional map that uses
velocity vectors to display the magnitude and direction of movement of ice surface
features on a glacier. A velocity field is needed for Lidar measurements of ice surface
elevation changes to test the assumption of a constant flux of ice between and among the
integrated area-altitude bands over which the ice thickness changes are measured. For
multispectral satellite image analysis, a velocity field is needed, along with ice area and
thickness measurements, to detennine mass flux; thus, velocity fields may be used to
measure changes in mass balance, which is necessary to estimate the contribution of
Alaska' s glaciers to sea-level rise.
The focus of this investigation is the Harding Icefield in the Kenai Peninsula,
Alaska (Figure 1.1). The Harding Icefield is an ideal area to study because it lies in the
heart of the Gulf of Alaska where significant glacier melt is occurring (Arendt et al, 2008;
Larsen et al , 2007; Luthcke et at, 2008); it has been previously observed to be losing
mass (Hall et al , 2005; VanLooy et al., 2006); and there exists satellite imagery dating
back to the early 1970s with which to make comparisons, yet no velocity measurements
exist to serve as a basis for future mass balance studies. The Harding Icefield measures
over 80 km in length, north to south, and over 50 km east to west. Just over half of the
Harding Icefield is located within the bounds of Kenai Fjords National Park and the rest
is within the Kenai National Wildlife Refuge (Adalgeirsdottir et al., 1998). The elevation
of the icefield ranges from sea level to 1500 m above sea level.
Figure 1.1. Location of Study Area.
m<UW'< changes in n\aM balance. "'o;,,h i. IK'C""'"'Y '" n1inw< the: OI",IXllion of
"I..u", &I""; .... '" ..,.1.,01 rioo.
The focus o(,hi. i,,"estij;OliOll i, the lIonIi!\$I".r'.'d in ,he Kenai P<ninsul ..
,
"Luh (Figure 1.1). The Hardin. Ie.field is an ldeal to " udy bee .... it Ii .. in the
I>eart "fib< Gulf of .-\Iab. wberuipific"", &Ioci<l" mel, i. occW'l'inlf, (Ar<nd, ct al. 2008,
Unrn ct .1 .. 2007: Luthc:k. CI at. 2008): it Iw be<:n previously <>boer>'cd to be Iosi",
"' ... (11.11 " aI . 2005: V..,Looy .. al . 20(6): and ,hen: .. i, .... ,elli,. ionagery dating
Nck to thc: early 1970. willi ,,'hich 10 mal:e <OtIlparioons. yet no ""todly mulI.I'm",n"
exist Lo ..,.".., .. . bull for fo""" mus balonc< .. LJdi ... The Hardi"ll Icefield IJI<aOUla
over 80 Ian in lcng1h. nonh 10 so.llI. and over 50 Ian <as! '" . , .... ,. Jus, 0"':' ""If "flllt
Ho.tdint 1 n.1d i. l.lOd willli" thc: boun<IJ of 1(""'; fjorW N.'iorW Pot!< ODd !he_
i. willli" !he I(..w National Wildlife Refuge ...... 1998). The
of the ifield range< Iiom oa. ,.'\"Ci to 1500 III abo,. sa 1",-<1,
"gun: 1.1, I..o< .. ion ofS,udy At .. ,
4
There are three objectives of the proposed study, each related to measuring the ice
surface velocities on the Harding Icefield. The first objective is the most fundamental.
Successfully achieving the first objective allows objectives two and three to be attained.
The three goals of the proposed study are as follows:
1) Test the feasibility of using feature tracking software on moderate resolution
multispectral satellite imagery to determine the ice surface velocities on Harding
Icefield's outlet glaciers.
2) Determine the annual ice surface velocities on Harding Icefield's outlet
glaciers using feature tracking software.
3) Study the spatial distribution of ice surface velocity in and among glaciers and
the glaciological implications of the velocity fields.
Successfully applying feature tracking to the Advanced Spaceborne Thermal
Emission and Reflection Radiometer (ASTER) images and the Landsat-5 Thematic
Mapper (TM) images will demonstrate the fundamental usefulness of the combination of
widely-available multispectral satellite data and free feature tracking programs for
glaciological studies of the numerous glaciers in the Gulf of Alaska. The two feature
tracking programs used in this study are Image Correlation (IMCORR) and
Coregistration of Optically Sensed Images and Correlation (COSI-Corr), which are both
free to download from the National Snow and Ice Data Center (NSIDC) website (NSIDC,
2009) and from the California Institute of Technology website (CalTech, 2009),
respectively. Once questions regarding ice surface velocity are answered, other questions
that are broader in scope may be answered as well. Comparing outlet glaciers that have
accelerated or decelerated with climate data should give some insight into glaciers'
4
There are three objectives of the proposed study, each related to measuring the ice
surface velocities on the Harding Icefield. The first objective is the most fundamental.
Successfully achieving the first objective allows objectives two and three to be attained.
The three goals ofthe proposed study are as follows:
1) Test the feasibility of using feature tracking software on moderate resolution
multispectral satellite imagery to determine the ice surface velocities on Harding
Icefield's outlet glaciers.
2) Determine the annual ice surface velocities on Harding Icefield's outlet
glaciers using feature tracking software.
3) Study the spatial distribution of ice surface velocity in and among glaciers and
the glaciological implications of the velocity fields.
Successfully applying feature tracking to the Advanced Spaceborne Thermal
Emission and Reflection Radiometer (ASTER) images and the Landsat-5 Thematic
Mapper (TM) images will demonstrate the fundamental usefulness of the combination of
widely-available multispectral satellite data and free feature tracking programs for
glaciological studies of the numerous glaciers in the Gulf of Alaska. The two feature
tracking programs used in this study are Image Correlation (IMCORR) and
Coregistration of Optically Sensed Images and Correlation (COSI-Corr), which are both
free to download from the National Snow and Ice Data Center (NSIDC) website (NSIDC,
2009) and from the California Institute of Technology website (CalTech, 2009),
respectively. Once questions regarding ice surface velocity are answered, other questions
that are broader in scope may be answered as well. Comparing outlet glaciers that have
accelerated or decelerated with climate data should give some insight into glaciers'
responses to climate change and possibly permit predictions regarding future behavior.
Ice surface velocity can be combined with ice thickness to calculate a glacier's mass
balance and contribution to sea level rise. Thus, successfully completing the objectives
above can provide part of the necessary data for a more accurate calculation of the
contribution on the Harding Icefield to sea level rise. Also, demonstrating the feasibility
of this type of work will allow its application to the surrounding glaciers in the Gulf of
Alaska and the calculation of their impact on sea-level rise.
1.2. Related Research
1.2.1. Glacier Recession and Thinning on the Harding Icefield
Meier et al. (2007) found that 60% of global ice loss can be attributed to melting
glaciers and ice caps (as compared to melting from the two ice sheets) from 1996 to
2006. It is predicted that glaciers and ice caps will continue to be the major contributors
to sea-level rise throughout the rest of the 21
s t
century and will eventually add 0.1 to 0.25
meters to sea level by the year 2100 (Meier et al., 2007). The global rate of ice loss for
glaciers and ice caps is 402 km
3
/year and for the Gulf of Alaska, which contains the
Kenai Peninsula, total ice loss is >100 km
3
/year (Meier et al., 2007). Using a conversion
ratio of 1 km = 1/362 mm sea level rise (Meier et al., 2007) the contribution to sea level
rise from southern Alaska glaciers is 0.28 mm/yr for the period from 1996 to 2006, and
Luthcke et al. (2008) calculated a contribution of 0.23 mm/yr to sea level rise from the
Gulf of Alaska region for the period of 2003-2007.
Airborne Lidar profiles of Harding Icefield and 13 outlet glaciers from 1994 to
1996 were compared to U.S. Geological Survey topographic maps from 1950-52 to
determine total volume change and area-average elevation change (Adalgeirsdottir et
responses to climate change and possibly permit predictions regarding future behavior.
Ice surface velocity can be combined with ice thickness to calculate a glacier's mass
balance and contribution to sea level rise. Thus, successfully completing the objectives
above can provide part of the necessary data for a more accurate calculation of the
contribution on the Harding Icefie1d to sea level rise. Also, demonstrating the feasibility
of this type of work will allow its application to the surrounding glaciers in the Gulf of
Alaska and the calculation of their impact on sea-level rise.
1.2. Related Research
1.2.1. Glacier Recession and Thinning on the Harding Icefie1d
5
Meier et aI. (2007) found that 60% of global ice loss can be attributed to melting
glaciers and ice caps (as compared to melting from the two ice sheets) from 1996 to
2006. It is predicted that glaciers and ice caps will continue to be the major contributors
to sea-level rise throughout the rest of the 21 st century and will eventually add 0.1 to 0.25
meters to sea level by the year 2100 (Meier et aI., 2007). The global rate of ice loss for
glaciers and ice caps is 402 km
3
/year and for the Gulf of Alaska, which contains the
Kenai Peninsula, total ice loss is >100 km
3
/year (Meier et aI., 2007). Using a conversion
ratio of 1 km
3
= 1/362 mm sea level rise (Meier et aI., 2007) the contribution to sea level
rise from southern Alaska glaciers is ::::::0.28 mm/yr for the period from 1996 to 2006, and
Luthcke et aI. (2008) calculated a contribution of 0.23 mm/yr to sea level rise from the
Gulf of Alaska region for the period of 2003-2007.
Airborne Lidar profiles of Harding Icefield and 13 outlet glaciers from 1994 to
1996 were compared to U.S. Geological Survey topographic maps from 1950-52 to
determine total volume change and area-average elevation change (Adalgeirsd6ttir et
6
al.,1998). An estimated total volume change for the whole icefield for the study period
was -34 km
3
and the area-average elevation change was -21 meters. A follow-on study
(Arendt et al., 2002) profiled 67 glaciers in Alaska and nearby Canada using airborne
Lidar and compared the results to U.S. Geological Survey and Canadian Department of
Energy, Mines, and Resources topographic maps from the 1950s to the 1970s, depending
on location. The average rate of thickness change for these glaciers is -0.52 m/yr from the
1950s to the 1990s. Extrapolating this finding to include all Alaskan glaciers gives a total
annual volume loss of-52 15 km
3
/yr, which equals 0.14 0.04 mm/yr sea level rise.
Repeat measurements on 28 glaciers from the 1990s to 2000-01 show the rate of thinning
accelerated to -1.8 m/yr. This figure equates to a volume loss of-96 35 km /yr across
all Alaskan glaciers and accounts for 0.27 0. 1 mm/yr sea level rise, compared to 0.28
mm/yr estimated by Meier et al. (2007). The Harding Icefield and the Grewingk-Yalik
Glacier Complex (GYGC) to the south have experienced an overall reduction in extent,
with most of the glaciers receding since 1973 (Hall et al., 2005), while others have shown
little change and a few have moved forward during specific time spans. The total
decrease in areal extent of the Harding Icefield and GYGC from 1986 to 2002 has been -
3.62%, or about -78 km
2
. Most of this area loss is in the Harding Icefield while the
GYGC has shown very little change. The glaciers on the Kenai Peninsula are thinning as
well. A comparison of ice surface elevation changes from the early 1950s to the mid-
1990s (Arendt et al., 2002) with elevations from the late 1990s (VanLooy et al., 2006)
across 13 outlet glaciers showed an increase in the rate of elevation change from -0.47
0.01 m/yr for the period from the 1950s to the mid-1990s, to -0.72 0.13 m/yr from
1994-96 to 1999. Six glaciers (Exit, Aialik, Holgate, McCarty, Dinglestadt, and
6
aI.,1998). An estimated total volume change for the whole icefield for the study period
was -34 km
3
and the area-average elevation change was -21 meters. A follow-on study
(Arendt et aI., 2002) profiled 67 glaciers in Alaska and nearby Canada using airborne
Lidar and compared the results to U.S. Geological Survey and Canadian Department of
Energy, Mines, and Resources topographic maps from the 1950s to the 1970s, depending
on location. The average rate ofthickness change for these glaciers is -0.52 mlyr from the
1950s to the 1990s. Extrapolating this finding to include all Alaskan glaciers gives a total
annual volume loss of -52 15 km
3
/yr, which equals 0.14 0.04 mmlyr sea level rise.
Repeat measurements on 28 glaciers from the 1990s to 2000-01 show the rate of thinning
accelerated to -l.8 mlyr. This figure equates to a volume loss of -96 35 km
3
/yr across
all Alaskan glaciers and accounts for 0.27 0.1 mm/yr sea level rise, compared to 0.28
mmlyr estimated by Meier et aI. (2007). The Harding Icefield and the Grewingk-Y a1ik
Glacier Complex (GYGC) to the south have experienced an overall reduction in extent,
with most of the glaciers receding since 1973 (Hall et aI., 2005), while others have shown
little change and a few have moved forward during specific time spans. The total
decrease in areal extent of the Harding Icefie1d and GYGC from 1986 to 2002 has been-
3.62%, or about -78 km
2
. Most of this area loss is in the Harding Icefield while the
GYGC has shown very little change. The glaciers on the Kenai Peninsula are thinning as
well. A comparison of ice surface elevation changes from the early 1950s to the mid-
1990s (Arendt et aI., 2002) with elevations from the late 1990s (VanLooy et aI., 2006)
across 13 outlet glaciers showed an increase in the rate of elevation change from -0.47
0.01 mlyr for the period from the 1950s to the mid-1990s, to -0.72 0.l3 mlyr from
1994-96 to 1999. Six glaciers (Exit, Aialik, Holgate, McCarty, Dinglestadt, and
7
Kachemak) more than doubled their rates of thinning. An area-averaged surface elevation
was calculated that showed lowering for the whole Harding Icefield of -30.0 6.0 meters
from the 1950s to 1999, which is the equivalent of -0.61 0. 12 m/yr. These figures
equate to -1.19 0.24 km
3
/yr meltwater and 0.0033 0.0006 mm/yr sea level rise.
It is well established that the Harding Icefield is shrinking and that, in general, its
outlet glaciers are thinning and retreating, the meltwater is significantly contributing to
sea level rise, and the process of thinning and glacial retreat is accelerating. Therefore,
the Harding Icefield and its many outlet glaciers comprise an interesting and suitable area
for scientific inquiry via remote sensing techniques.
1.2.2. Velocity Measurements of Glaciers in the Gulf of Alaska
The Harding Icefield spawns 38 outlet glaciers (Adalgeirsdottir et al., 1998)
(Figure 1.2) of various types: tidewater, valley, and lake terminating. Examples of
tidewater glaciers include Aialik, Holgate, Northwestern, and McCarty Glaciers, which
are all found on the eastern and southeastern flanks of the Harding Icefield. Lake
terminating glaciers on the Harding Icefield include Bear, Skilak, Pederson, and
Tustumena Glaciers. Representative examples of valley glaciers include Northeastern,
Little Dinglestadt, Kachemak, and Killey Glaciers. In spite of the number and variety of
outlet glaciers in this area, velocity measurements are difficult to find in the published
scientific literature, if not entirely absent. However, there are numerous velocity
measurements of other glaciers in southern and southeast Alaska that can be used as
examples of what may be found on the Harding Icefield.
Some examples of tidewater glaciers found in southern and southeast Alaska that
have velocity measurements include Columbia, Hubbard, LeConte, Grand Pacific,
7
Kachemak) more than doubled their rates of thinning. An area-averaged surface elevation
was calculated that showed lowering for the whole Harding Icefield of -30.0 6.0 meters
from the 1950s to 1999, which is the equivalent of -0.61 0.12 m/yr. These figures
equate to -1.19 0.24 km
3
/yr meltwater and 0.0033 0.0006 mm/yr sea level rise.
It is well established that the Harding Icefield is shrinking and that, in general, its
outlet glaciers are thinning and retreating, the meltwater is signIficantly contributing to
sea level rise, and the process of thinning and glacial retreat is accelerating. Therefore,
the Harding Icefield and its many outlet glaciers comprise an interesting and suitable area
for scientific inquiry via remote sensing techniques.
1.2.2. Velocity Measurements of Glaciers in the Gulf of Alaska
The Harding Icefield spawns 38 outlet glaciers (Adalgeirsd6ttir et aI., 1998)
(Figure 1.2) of various types: tidewater, valley, and lake terminating. Examples of
tidewater glaciers include Aialik, Holgate, Northwestern, and McCarty Glaciers, which
are all found on the eastern and southeastern flanks of the Harding Icefield. Lake
terminating glaciers on the Harding Icefield include Bear, Skilak, Pederson, and
Tustumena Glaciers. Representative examples of valley glaciers include Northeastern,
Little Dinglestadt, Kachemak, and Killey Glaciers. In spite of the number and variety of
outlet glaciers in this area, velocity measurements are difficult to find in the published
scientific literature, ifnot entirely absent. However, there are numerous velocity
measurements of other glaciers in southern and southeast Alaska that can be used as
examples of what may be found on the Harding Icefield.
Some examples of tidewater glaciers found in southern and southeast Alaska that
have velocity measurements include Columbia, Hubbard, LeConte, Grand Pacific,
8
Figure 1.2. Locations and names of Harding Icefield outlet glaciers.
Margerie, and Muir Glaciers. Ice surface velocities for Columbia Glacier have been
reported in the range of 3-15 m/day (Krimmel et al., 1987) and 4-7 m/day (Meier et al.,
1994) in the lower portion of the glacier. Hubbard Glacier in southeast Alaska has
reported velocities at the glacier's calving face of 16.5 m/day in 1948, which decreased to
11.5 m/day in 2001 (Trabant et al., 2003). LeConte Glacier in southeast Alaska has ice
velocities near the terminus of the rapidly retreating glacier in excess of 27 m/day, that is
attributed to ocean tides, precipitation, and melt (O' Neel et al., 2001). Three glaciers in
Glacier Bay, Alaska, for the period between 1988 and 1991 have velocities near the
termini as follows: Grand Pacific, 158 m/yr; Margerie, 679 m/yr; Muir, 1700 m/yr
(Hunter et al., 1996).
8
Figure 1.2. Locations and names of Harding Icefield outlet glaciers.
Margerie, and Muir Glaciers. Ice surface velocities for Columbia Glacier have been
reported in the range of3-15 mJday (Krimmel et ai., 1987) and 4-7 mJday (Meier et ai.,
1994) in the lower portion of the glacier. Hubbard Glacier in southeast Alaska has
reported velocities at the glacier's calving face of 16.5 m/day in 1948, which decreased to
11.5 mJday in 2001 (Trabant et ai., 2003). LeConte Glacier in southeast Alaska has ice
velocities near the terminus of the rapidly retreating glacier in excess of27 mJday, that is
attributed to ocean tides, precipitation, and melt (O'Neel et aI., 2001). Three glaciers in
Glacier Bay, Alaska, for the period between 1988 and 1991 have velocities near the
termini as follows: Grand Pacific, 158 m/yr; Margerie, 679 mJyr; Muir, 1700 mJyr
(Hunter et ai., 1996).
9
Bering and Mendenhall Glaciers provide examples of lake terminating glaciers
with published ice surface velocities. The Bering Glacier, which emanates from
Wrangell-St. Elias National Park in southern Alaska and terminates in Vitus Lake, was
studied during a 1993 surge and found to have an ice velocity of 90 m/day at the surge
front, while the terminus advanced at a rate of 19 m/day into Vitus Lake (Roush et al.,
2003). Mendenhall Glacier, located near Juneau, Alaska, terminates in Mendenhall Lake.
Ice velocities on Mendenhall Glacier between 1997 and 2000 were found to range from
13 m/yr to 172 m/yr depending upon location and year, with the highest velocities near
the central portion of the glacier, longitudinally, and the slowest velocities near the
terminus (Motyka et al., 2003).
Several valley glaciers have velocities reported: Nabesna, Chisana, and Jacksina
glaciers on Mt. Wrangell, along with Matanuska Glacier, Bench Glacier, and
Worthington Glacier. Reported velocities for Nabesna, Chisana, and Jacksina glaciers are
0.4-0.6 m/day, 0.5 m/day, and a few centimeters per day, respectively, on Mt. Wrangell
(Li et al., 2006). Matanuska Glacier, located 100 miles northeast of Anchorage, has an
average velocity of 22.1 cm/day during the summer 2004 melt season (Bruckner et al.,
2005). Fudge et al. (2004) report a velocity of 3 cm/day on Bench Glacier, located in the
Chugach Mountains in southern Alaska, for the 2002 and 2003 melt seasons. Lastly,
velocities on Worthington Glacier, also located in the Chugach Mountains, measured
20.5 cm/day and 15 cm/day for 1997 and 1998, respectively (Harper et al., 2002).
Although all the glaciers listed above (except Matanuska Glacier) and all the
glaciers on the Harding Icefield are located along the coastal regions surrounding the
Gulf of Alaska and therefore exist in a continental subarctic climate, there is significant
9
Bering and Mendenhall Glaciers provide examples oflake terminating glaciers
with published ice surface velocities. The Bering Glacier, which emanates from
Wrangell-St. Elias National Park in southern Alaska and terminates in Vitus Lake, was
studied during a 1993 surge and found to have an ice velocity of90 m/day at the surge
front, while the terminus advanced at a rate of 19 m/day into Vitus Lake (Roush et aI.,
2003). Mendenhall Glacier, located near Juneau, Alaska, terminates in Mendenhall Lake.
Ice velocities on Mendenhall Glacier between 1997 and 2000 were found to range from
13 m/yr to 172 m/yr depending upon location and year, with the highest velocities near
the central portion of the glacier, longitudinally, and the slowest velocities near the
terminus (Motyka et aI., 2003).
Several valley glaciers have velocities reported: Nabesna, Chisana, and Jacksina
glaciers on Mt. Wrangell, along with Matanuska Glacier, Bench Glacier, and
Worthington Glacier. Reported velocities for Nabesna, Chisana, and Jacksina glaciers are
0.4-0.6 m/day, 0.5 m/day, and a few centimeters per day, respectively, on Mt. Wrangell
(Li et aI., 2006). Matanuska Glacier, located 100 miles northeast of Anchorage, has an
average velocity of 22.1 cm/day during the summer 2004 melt season (Bruckner et aI.,
2005). Fudge et aI. (2004) report a velocity of3 cm/day on Bench Glacier, located in the
Chugach Mountains in southern Alaska, for the 2002 and 2003 melt seasons. Lastly,
velocities on Worthington Glacier, also located in the Chugach Mountains, measured
20.5 cm/day and 15 cm/day for 1997 and 1998, respectively (Harper et aI., 2002).
Although all the glaciers listed above (except Matanuska Glacier) and all the
glaciers on the Harding Icefie1d are located along the coastal regions surrounding the
Gulf of Alaska and therefore exist in a continental subarctic climate, there is significant
10
variation in published velocity measurements due to differences in elevation,
precipitation, aspect, basal conditions, and slope. For instance, Bench Glacier, a north-
facing glacier in the Chugach Mountains, moves at 0.03 m/day (Fudge et al , 2004) while
LeConte Glacier, the southern-most tidewater glacier in North America, located in SE
Alaska, moves up to 27 m/day (O' Neel et al., 2001), and the Bering Glacier may move up
to 90 m/day during a surge (Roush et al., 2003). Therefore, it is reasonable to assume
there may be considerable variation discovered in the velocities of the outlet glaciers on
the Harding Icefield due to these same varying climatic and physical characteristics.
1.2.3. Velocity Measurements of Glaciers and Ice Streams
Using Feature Tracking Methods
Feature tracking is the process of observing the movement of distinctive features,
such as crevasses, moulins, moraines, undulations, or speckle patterns, on the surface of
glacial ice between sequential satellite images (Konig et al., 2001). When a feature is
successfully identified between two images, the direction and magnitude of movement
can be computed, and using the time span between the two images, the velocity of the ice
can be calculated. Feature tracking has been applied successfully to determine ice
velocities from multispectral, LiDAR, and synthetic aperture radar (SAR) data, using
both visual and automated techniques.
1.2.3.1. Visual Feature Tracking
An early, visual method of feature tracking was employed in a study of the
Drygalski, Land, Thwaites, Berg, Stancomb-Willis, Riiser-Larsen B, C, and D, and Kaya
Antarctic glacier tongue velocities (Lucchitta et al., 1993). Sequential Landsat
Multispectral Scanner (MSS) images from the 1970s and Landsat TM images from the
10
variation in published velocity measurements due to differences in elevation,
precipitation, aspect, basal conditions, and slope. For instance, Bench Glacier, a north-
facing glacier in the Chugach Mountains, moves at 0.03 m/day (Fudge et aI., 2004) while
LeConte Glacier, the southern-most tidewater glacier in North America, located in SE
Alaska, moves up to 27 m/day (O'Neel et aI., 2001), and the Bering Glacier may move up
to 90 m/day during a surge (Roush et aI., 2003). Therefore, it is reasonable to assume
there may be considerable variation discovered in the velocities of the outlet glaciers on
the Harding Icefield due to these same varying climatic and physical characteristics.
1.2.3. Velocity Measurements of Glaciers and Ice Streams
Using Feature Tracking Methods
Feature tracking is the process of observing the movement of distinctive features,
such as crevasses, moulins, moraines, undulations, or speckle patterns, on the surface of
glacial ice between sequential satellite images (Konig et aI., 2001). When a feature is
successfully identified between two images, the direction and magnitude of movement
can be computed, and using the time span between the two images, the velocity of the ice
can be calculated. Feature tracking has been applied successfully to determine ice
velocities from multispectral, LiDAR, and synthetic aperture radar (SAR) data, using
both visual and automated techniques.
1.2.3.1. Visual Feature Tracking
An early, visual method of feature tracking was employed in a study of the
Drygalski, Land, Thwaites, Berg, Stancomb-Willis, Riiser-Larsen B, C, and D, and Kaya
Antarctic glacier tongue velocities (Lucchitta et aI., 1993). Sequential Landsat
Multispectral Scanner (MSS) images from the 1970s and Landsat TM images from the
11
1980s were used to visually track crevasse patterns by displaying one image in red and
the next image in green within image viewing software. Features that moved during the
time period between the two images were displayed as either red or green. One image
was moved over the other until a displaced feature was superimposed upon itself and
subsequently turned yellow. At this point, direction, displacement, and consequently
velocity, can be measured. Average velocity for the glacier tongues ranged from a low of
0.12 km/yr for the Riiser-Larsen C tongue, to a high of 2.84 km/yr for the Thwaites
tongue. This method successfully determined velocities for glacier tongues over
relatively long time spans, in some cases 15 or 16 years. Although this method proved
successful, it is also time consuming and effective only for relatively large, distinct,
enduring features such as crevasses and is not effective for subtle or diffuse features such
as undulations in the ice surface.
1.2.3.2. Synthetic Aperture Radar Speckle Tracking
Speckle tracking using synthetic aperture radar data has proven effective for
producing velocity fields of ice streams in Antarctica (Gray et al., 2001; Joughin, 2002;
Young & Hyland, 2002) and in alpine environments (Joughin, 2004; Strozzi et al., 2002).
Speckle tracking involves correlation of small chips between sequential radar images to
measure relative offsets in the range and azimuth directions in a manner similar to feature
tracking in multispectral imagery. However, speckle tracking does not track features; it
depends on coherence between the chips to track a speckle from one image to the next
(Short & Gray, 2004). Speckle tracking can be used in areas of fast ice flow or for longer
time spans between image acquisitions (up to 24 days for the repeat cycle of
RADARS AT, for example), unlike interferometric methods of velocity determination,
11
1980s were used to visually track crevasse patterns by displaying one image in red and
the next image in green within image viewing software. Features that moved during the
time period between the two images were displayed as either red or green. One image
was moved over the other until a displaced feature was superimposed upon itself and
subsequently turned yellow. At this point, direction, displacement, and consequently
velocity, can be measured. Average velocity for the glacier tongues ranged from a low of
0.12 km/yr for the Riiser-Larsen C tongue, to a high of2.84 km/yr for the Thwaites
tongue. This method successfully determined velocities for glacier tongues over
relatively long time spans, in some cases 15 or 16 years. Although this method proved
successful, it is also time consuming and effective only for relatively large, distinct,
enduring features such as crevasses and is not effective for subtle or diffuse features such
as undulations in the ice surface.
1.2.3.2. Synthetic Aperture Radar Speckle Tracking
Speckle tracking using synthetic aperture radar data has proven effective for
producing velocity fields of ice streams in Antarctica (Gray et aI., 2001; Joughin, 2002;
Young & Hyland, 2002) and in alpine environments (Joughin, 2004; Strozzi et aI., 2002).
Speckle tracking involves correlation of small chips between sequential radar images to
measure relative offsets in the range and azimuth directions in a manner similar to feature
tracking in multispectral imagery. However, speckle tracking does not track features; it
depends on coherence between the chips to track a speckle from one image to the next
(Short & Gray, 2004). Speckle tracking can be used in areas of fast ice flow or for longer
time spans between image acquisitions (up to 24 days for the repeat cycle of
RADARSA T, for example), unlike interferometric methods of velocity determination,
12
which lose coherence in areas of fast moving ice or over long time spans (Short & Gray,
2004; Strozzi et al., 2002). Also, because speckle tracking is not tracking actual features,
it works well in areas without visible ice surface features such as the accumulation zone
(Joughin, 2002). The disadvantages of speckle tracking include increased error when
used on small alpine glaciers due to a reduction in the chip size, and it will always find a
correlation even if the peak correlation is not legitimate; thus, many errant offsets may be
produced that are difficult to distinguish from actual offsets (Short & Gray, 2004). Even
with the ability to correlate offsets over longer periods of time compared to
interferometric methods, speckle tracking still operates on time scales of days (rather than
years) and consequently produces velocity estimates of a similar temporal magnitude. If
annual velocities are required, which would average together summer and winter
displacements over a span of a year or multiple years, feature tracking using optical
imagery is necessary.
1.2.3.3. Automatic Feature Tracking with Multispectral Satellite Imagery
The first published study to use automatic feature tracking upon glaciers was by
Bindschadler and Scambos (1991). They computed the velocity field of Ice Stream E in
Antarctica using Landsat Thematic Mapper images from January 1987 and December
1988. The automatic technique they developed, now called IMCORR, is a cross-
correlation algorithm that takes a small area from the first image that contains distinct
features and searches the second image for pixel brightness values that match the pattern
seen in the first image. This method has several advantages over visual feature tracking:
it is faster; it is capable of producing matches on diffuse features such as ice dunes and,
thus, can produce more matches than purely visual techniques; and importantly, it can
12
which lose coherence in areas of fast moving ice or over long time spans (Short & Gray,
2004; Strozzi et aI., 2002). Also, because speckle tracking is not tracking actual features,
it works well in areas without visible ice surface features such as the accumulation zone
(Joughin, 2002). The disadvantages of speckle tracking include increased error when
used on small alpine glaciers due to a reduction in the chip size, and it will always find a
correlation even if the peak correlation is not legitimate; thus, many errant offsets may be
produced that are difficult to distinguish from actual offsets (Short & Gray, 2004). Even
with the ability to correlate offsets over longer periods of time compared to
interferometric methods, speckle tracking still operates on time scales of days (rather than
years) and consequently produces velocity estimates of a similar temporal magnitude. If
annual velocities are required, which would average together summer and winter
displacements over a span of a year or multiple years, feature tracking using optical
. .
Imagery IS necessary.
1.2.3.3. Automatic Feature Tracking with Multispectral Satellite Imagery
The first published study to use automatic feature tracking upon glaciers was by
Bindschadler and Scambos (1991). They computed the velocity field oflce Stream E in
Antarctica using Landsat Thematic Mapper images from January 1987 and December
1988. The automatic technique they developed, now called IMCORR, is a cross-
correlation algorithm that takes a small area from the first image that contains distinct
features and searches the second image for pixel brightness values that match the pattern
seen in the first image. This method has several advantages over visual feature tracking:
it is faster; it is capable of producing matches on diffuse features such as ice dunes and,
thus, can produce more matches than purely visual techniques; and importantly, it can
produce matches to subpixel accuracy. The subpixel accuracy is achieved via
interpolation of a correlation surface surrounding, and including, the pixel with the
largest correlation coefficient to determine the location of the match. The standard error
in velocities reported by Bindschadler and Scambos (1991) was 2.3 m/yr and 0.5 in
flow direction.
Four image preprocessing steps to enhance distinctive ice features and minimize
illumination variations between sequential satellite images are suggested prior to running
IMCORR (Scambos et al., 1992). These steps, which will be explained more fully in the
Methods chapter, include principal components analysis, scan-line removal (Crippen,
1989), high-pass filtering and Gaussian contrast stretching, and image-to-image
georeferencing. In spite of these enhancements, there are three situations that cause
unsuccessful correlations. The first, absence of distinguishable surface features, can be
caused by imagery with poor spatial resolution in which small, distinct features cannot be
adequately delineated. The second, snow/firn boundaries that change position over time,
are distinctive enough to be disruptive to correlation calculations. Lastly, velocity
gradients at the scale of the reference area will prevent successful correlations. This
occurs in shear zones at the margins of ice sheets and valley glaciers where features
become distorted by the higher strain rates due to drag from valley walls or slower
moving ice adjacent to ice streams (Scambos et al., 1992). Areas of no vectors coincide
with areas on the ice surface that have no discernible features, or areas of shearing at the
ice stream margins that distort features too much for accurate correlations, or areas where
the displacement between image pairs is comparable to uncertainties in measurements
(Bindschadler et al., 1996).
13
produce matches to subpixel accuracy. The subpixel accuracy is achieved via
interpolation of a correlation surface surrounding, and including, the pixel with the
largest correlation coefficient to determine the location of the match. The standard error
in velocities reported by Bindschadler and Scambos (1991) was 2.3 mlyr and 0.5
0
in
flow direction.
Four image preprocessing steps to enhance distinctive ice features and minimize
illumination variations between sequential satellite images are suggested prior to running
IMCORR (Scambos et aI., 1992). These steps, which will be explained more fully in the
Methods chapter, include principal components analysis, scan-line removal (Crippen,
1989), high-pass filtering and Gaussian contrast stretching, and image-to-image
georeferencing. In spite ofthese enhancements, there are three situations that cause
unsuccessful correlations. The first, absence of distinguishable surface features, can be
caused by imagery with poor spatial resolution in which small, distinct features cannot be
adequately delineated. The second, snow/firn boundaries that change position over time,
are distinctive enough to be disruptive to correlation calculations. Lastly, velocity
gradients at the scale of the reference area will prevent successful correlations. This
occurs in shear zones at the margins of ice sheets and valley glaciers where features
become distorted by the higher strain rates due to drag from valley walls or slower
moving ice adjacent to ice streams (Scambos et aI., 1992). Areas of no vectors coincide
with areas on the ice surface that have no discernible features, or areas of shearing at the
ice stream margins that distort features too much for accurate correlations, or areas where
the displacement between image pairs is comparable to uncertainties in measurements
(Bindschadler et aI., 1996).
14
Multiple sequential digital images can be used to produce multiple sequential
velocity fields and consequently allow for comparison of ice flow regimes from one time
period to the next (Bindschadler et al., 1994). Two velocity fields for the Larsen Ice Shelf
in Antarctica were produced using a Kosmos image from 1975, a Landsat MSS image
from 1986 and a Landsat TM image from 1989. By comparing the two flow fields, it was
determined that the northern Larsen Ice Shelf had accelerated by up to 15 % during the
late 1980s. This also showed that the cross-correlation algorithm is not limited to imagery
from a single sensor, but can successfully find correlations between digital images from
multiple types of sensors. Multiple sequential Landsat images acquired in 1989, 2000,
and 2001 have been used to study Mertz Glacier, East Antarctica (Berthier et al., 2003),
and it was found that the glacier had maintained a constant speed during the two time
periods. In addition, it was noted that tracking features over the longer time period (1989-
2000) was difficult due to distortion of features in the ice, but not impossible. Aside from
the ability to compare temporally sequential velocity fields, these examples illustrate the
ability of the cross-correlation algorithm to produce a velocity field even when the time
span between sequential images is up to 11 years. The advantage of a velocity field that
encompasses a longer time span is that it will provide a better gauge of an ice stream' s
mean annual flow and the accuracy of the velocity measurements increases because the
total error is divided over a longer time frame, which reduces error in annual velocity
(Berthier et al., 2003).
In order for IMCORR to be successful in finding correlations between images
separated by longer time spans, it is assumed that the ice must not have been rotated nor
distorted during the time interval in question. This assumption has been proven accurate
14
Multiple sequential digital images can be used to produce multiple sequential
velocity fields and consequently allow for comparison of ice flow regimes from one time
period to the next (Bindschadler et al., 1994). Two velocity fields for the Larsen Ice Shelf
in Antarctica were produced using a Kosmos image from 1975, a Landsat MSS image
from 1986 and a Landsat TM image from 1989. By comparing the two flow fields, it was
determined that the northern Larsen Ice Shelf had accelerated by up to 15 % during the
late 1980s. This also showed that the cross-correlation algorithm is not limited to imagery
from a single sensor, but can successfully find correlations between digital images from
multiple types of sensors. Multiple sequential Landsat images acquired in 1989,2000,
and 2001 have been used to study Mertz Glacier, East Antarctica (Berthier et al., 2003),
and it was found that the glacier had maintained a constant speed during the two time
periods. In addition, it was noted that tracking features over the longer time period (1989-
2000) was difficult due to distortion of features in the ice, but not impossible. Aside from
the ability to compare temporally sequential velocity fields, these examples illustrate the
ability of the cross-correlation algorithm to produce a velocity field even when the time
span between sequential images is up to 11 years. The advantage of a velocity field that
encompasses a longer time span is that it will provide a better gauge of an ice stream's
mean annual flow and the accuracy of the velocity measurements increases because the
total error is divided over a longer time frame, which reduces error in annual velocity
(Berthier et al., 2003).
In order for IMCORR to be successful in finding correlations between images
separated by longer time spans, it is assumed that the ice must not have been rotated nor
distorted during the time interval in question. This assumption has been proven accurate
by comparing a velocity field produced by a cross-correlation algorithm similar in nature
to IMCORR with a velocity field produced by the cross-correlation algorithm enhanced
by a least-squares program (Whillans & Tseng, 1995), that is based on a
photogrammetric method of matching pixel values via an affine transformation and that
can account for shape differences between images (Forstner, 1982). Even though the
least-squares method can account for ice deformation, the velocities computed by both
are within error limits of one another. Therefore, the assumption of no rotation or
distortion employed by IMCORR is valid because even in cases with extreme
deformation, the effect can be neglected if small (250x250 pixel) search and reference
areas are used. The results of the cross-correlation method and least-squares enhancement
method were also compared to photogrammetric results that typically use imagery with
higher spatial resolution and can offer the ability to track smaller features. However, the
time savings, ability to obtain greater detail and ability to track diffuse features mean "the
machine beats the human," (Whillans & Tseng, 1995).
In consideration of the success of IMCORR in producing velocity fields for ice
streams in Antarctica, the next step was to apply it to alpine glaciers. A Fast Fourier
Transform (FFT) based implementation of a cross-correlation algorithm was used to
produce a velocity field of Osbornebreen Glacier in Svalbard (Rolstad et al., 1997). The
FFT version of the algorithm, which is also employed by IMCORR, performs feature
tracking in the frequency domain, in which the correlation is done on a frequency basis,
and is computationally faster than when performed in the spatial domain (Bernstein,
1983).
.' I
15
by comparing a velocity field produced by a cross-correlation algorithm similar in nature
to IMCORR with a velocity field produced by the cross-correlation algorithm enhanced
by a least-squares program (Whillans & Tseng, 1995), that is based on a
photogrammetric method of matching pixel values via an affine transformation and that
can account for shape differences between images (Forstner, 1982). Even though the
least-squares method can account for ice deformation, the velocities computed by both
are within error limits of one another. Therefore, the assumption of no rotation or
distortion employed by IMCORR is valid because even in cases with extreme
deformation, the effect can be neglected if small (250x250 pixel) search and reference
areas are used. The results ofthe cross-correlation method and least-squares enhancement
method were also compared to photogrammetric results that typically use imagery with
higher spatial resolution and can offer the ability to track smaller features. However, the
time savings, ability to obtain greater detail and ability to track diffuse features mean "the
machine beats the human," (Whillans & Tseng, 1995).
In consideration of the success ofIMCORR in producing velocity fields for ice
streams in Antarctica, the next step was to apply it to alpine glaciers. A Fast Fourier
Transform (FFT) based implementation of a cross-correlation algorithm was used to
produce a velocity field of Osbornebreen Glacier in Svalbard (Rolstad et aI., 1997). The
FFT version of the algorithm, which is also employed by IMCORR, performs feature
tracking in the frequency domain, in which the correlation is done on a frequency basis,
and is computationally faster than when performed in the spatial domain (Bernstein,
1983).
16
Velocity fields have also been produced for glaciers in the Bhutan Himalayas
(Kaab, 2005) using a double cross-correlation algorithm called Correlation Image
Analysis Software (CIAS) (Kaab & Vollmer, 2000). CIAS computes offsets in the
forward direction, from the first image to the second, and then compares them with
offsets computed in the reverse direction, from the second image to the first. If the offsets
in the forward and reverse directions agree to within a specified tolerance, then the
forward offset is deemed reliable, and retained. The velocity fields produced for alpine
glaciers exhibit some noteworthy attributes. The CIAS algorithm is successful in finding
correlations in the ablation zone, except near the toe of glaciers where ablation is high
and deformation may be pronounced. Use of images separated by shorter time spans,
preferably only one year (Kaab, 2005), will minimize distortion of surface features due to
ablation and deformation and provide a more complete velocity field along the length and
breadth of a glacier. Few correlations can be found in the accumulation zone due to a lack
of distinct features because of snow and firn cover. Therefore, correlations will chiefly be
found in the ablation zone of a glacier.
A Microsoft Windows graphical user interface has been developed to incorporate
IMCORR (VisiCorr, T. Benham, Scott Polar Research Institute). VisiCorr produced a
velocity field of a surging glacier, Perseibreen, Svalbard, using ASTER images acquired
one year apart (Dowdeswell & Benham, 2003). Researchers have also used 2 meter
resolution LiDAR-derived, slope-shaded DEMs as input to VisiCorr to produce a velocity
field on Midre Lovenbreen, Svalbard (Rees & Arnold, 2007). It was found in both
studies that the cross-correlation procedure produced correlations in a glacier's ablation
zone (on melt water channels in the 2 meter DEMs, and on crevasses in the ASTER data
16
Velocity fields have also been produced for glaciers in the Bhutan Himalayas
(Kaab, 2005) using a double cross-correlation algorithm called Correlation Image
Analysis Software (CIAS) (Kaab & Vollmer, 2000). CIAS computes offsets in the
forward direction, from the first image to the second, and then compares them with
offsets computed in the reverse direction, from the second image to the first. If the offsets
in the forward and reverse directions agree to within a specified tolerance, then the
forward offset is deemed reliable, and retained. The velocity fields produced for alpine
glaciers exhibit some noteworthy attributes. The CIAS algorithm is successful in finding
correlations in the ablation zone, except near the toe of glaciers where ablation is high
and deformation may be pronounced. Use of images separated by shorter time spans,
preferably only one year (Kaab, 2005), will minimize distortion of surface features due to
ablation and deformation and provide a more complete velocity field along the length and
breadth of a glacier. Few correlations can be found in the accumulation zone due to a lack
of distinct features because of snow and fim cover. Therefore, correlations will chiefly be
found in the ablation zone of a glacier.
A Microsoft Windows graphical user interface has been developed to incorporate
IMCORR (VisiCorr, T. Benham, Scott Polar Research Institute). VisiCorr produced a
velocity field of a surging glacier, Perseibreen, Svalbard, using ASTER images acquired
one year apart (Dowdeswell & Benham, 2003). Researchers have also used 2 meter
resolution LiDAR-derived, slope-shaded DEMs as input to VisiCorr to produce a velocity
field on Midre Lovenbreen, Svalbard (Rees & Arnold, 2007). It was found in both
studies that the cross-correlation procedure produced correlations in a glacier's ablation
zone (on melt water channels in the 2 meter DBMs, and on crevasses in the ASTER data
17
and the DEMs) while few matches were found in the accumulation zone. VisiCorr also
produced some obviously errant velocity vectors (vectors pointing upglacier caused by
anomalous pixel patterns or perhaps by ice surface lowering exposing flow bands dipping
upglacier causing apparent movement uphill) that had to be manually deleted. The
conclusion is that the optimal combination of input parameters has yet to be established,
and when found, the automatic feature tracking may produce greater and more accurate
velocity vectors with fewer blunders.
With the introduction of COSI-Corr (Leprince et al., 2007a) automatic feature
tracking using multispectral images has attained an operational status. Because COSI-
Corr is integrated within ENVI it allows for simple execution of sophisticated
correlation algorithms that will promote more investigators to use correlation methods in
their research; suggested uses are for delineating fault displacement after earthquakes
(COSI-Corr's originally intended use), quantifying glacier surface velocity, or tracking
movement of sand dunes. COSI-Corr also provides increased accuracy in velocity
measurements. The program' s emphasis on precise orthorectification using optimized
GCPs, its incorporation and correction of sensor attitude data, and the frequential
correlator (described in detail in Chapter 2) allow COSI-Corr to attain precision to l / 20
t h
pixel or better (Leprince et al., 2007a and b). Also, because COSI-Corr offers two
correlator engines, a frequential correlator with great accuracy for use on clean data, and
a statistical correlator similar to IMCORR that is robust and useful for noisy data, the
user is afforded flexibility in their selection of imagery and methodology. COSI-Corr has
been successfully used to derive velocity fields of Khumbu and Garhwal glaciers in the
Himalayas (Scherler et al., 2008) with velocities accurate to 1-2 meters/yr and covering
17
and the DEMs) while few matches were found in the accumulation zone. VisiCorr also
produced some obviously errant velocity vectors (vectors pointing upglacier caused by
anomalous pixel patterns or perhaps by ice surface lowering exposing flow bands dipping
upglacier causing apparent movement uphill) that had to be manually deleted. The
conclusion is that the optimal combination of input parameters has yet to be established,
and when found, the automatic feature tracking may produce greater and more accurate
velocity vectors with fewer blunders.
With the introduction ofCOSI-Corr (Leprince et aI., 2007a) automatic feature
tracking using multispectral images has attained an operational status. Because COSI-
Corr is integrated within ENVI it allows for simple execution of sophisticated
correlation algorithms that will promote more investigators to use correlation methods in
their research; suggested uses are for delineating fault displacement after earthquakes
(COSI-Corr's originally intended use), quantifying glacier surface velocity, or tracking
movement of sand dunes. COSI-Corr also provides increased accuracy in velocity
measurements. The program's emphasis on precise orthorectification using optimized
GCPs, its incorporation and correction of sensor attitude data, and the frequential
correlator (described in detail in Chapter 2) allow COSI-Corr to attain precision to 1120
th
pixel or better (Leprince et aI., 2007a and b). Also, because COSI-Corr offers two
correlator engines, a frequential correlator with great accuracy for use on clean data, and
a statistical correlator similar to IMCORR that is robust and useful for noisy data, the
user is afforded flexibility in their selection of imagery and methodology. COSI-Corr has
been successfully used to derive velocity fields ofKhumbu and Garhwal glaciers in the
Himalayas (Scherler et aI., 2008) with velocities accurate to 1-2 meters/yr and covering
18
time spans ranging from 0.75 to 3.95 years between sequential images. The ability to
accurately derive a spatially complete velocity field on alpine glaciers across time spans
greater than one year is beneficial as often sequential cloud-free images do not exist for
mountain glaciers, which exist in habitually cloudy portions of Earth. Typically,
correlations have been performed over a single ablation season or from one ablation
season to the next (Dowdeswell & Benham, 2003; Joughin et al., 2004; Kaab & Vollmer,
2000), but with successful correlation across several seasons, COSI-Corr provides new
opportunities for investigation into glacier behavior even in traditionally cloudy environs.
1.3. Description of Data
The data used in this study were acquired with the Landsat-5 TM sensor and the
ASTER sensor. ASTER is aboard the Terra satellite, that was put into a sun-synchronous
orbit 705 km above Earth by NASA on December 18, 1999 (NASA JPL ASTER
website). The Terra satellite has a 98.88 minute orbit period with a 10:30 AM equatorial
crossing time, which gives the satellite a 16-day revisit period and a 60 km scan width.
ASTER collects data in 14 bands. The green, red, and near-infrared wavelengths (bands
1-3) are collected using a pushbroom style sensor with 15-meter spatial resolution and 8-
bit radiometric resolution, the near-infrared (NIR) band 3 includes both nadir and
backward viewing geometries for stereoscopic purposes. Shortwave infrared (SWIR)
wavelengths are collected with bands 5-9, also using a pushbroom style sensor with 8-bit
radiometric resolution and 30-meter spatial resolution. The thermal infrared wavelengths
(TIR) (bands 10-14) are acquired using a whiskbroom style sensor with a 12-bit
radiometric resolution and 90 meter spatial resolution. As of January 12, 2009, NASA
has recommended that shortwave infrared data dating back to April, 2008 should not be
18
time spans ranging from 0.75 to 3.95 years between sequential images. The ability to
accurately derive a spatially complete velocity field on alpine glaciers across time spans
greater than one year is beneficial as often sequential cloud-free images do not exist for
mountain glaciers, which exist in habitually cloudy portions of Earth. Typically,
correlations have been performed over a single ablation season or from one ablation
season to the next (Dowdeswell & Benham, 2003; Joughin et aI., 2004; K1111b & Vollmer,
2000), but with successful correlation across several seasons, COSI-Corr provides new
opportunities for investigation into glacier behavior even in traditionally cloudy environs.
1.3. Description of Data
The data used in this study were acquired with the Landsat-5 TM sensor and the
ASTER sensor. ASTER is aboard the Terra satellite, that was put into a sun-synchronous
orbit 705 km above Earth by NASA on December 18, 1999 (NASA JPL ASTER
website). The Terra satellite has a 98.88 minute orbit period with a 10:30 AM equatorial
crossing time, which gives the satellite a 16-day revisit period and a 60 km scan width.
ASTER collects data in 14 bands. The green, red, and near-infrared wavelengths (bands
1-3) are collected using a pushbroom style sensor with 15-meter spatial resolution and 8-
bit radiometric resolution, the near-infrared (NIR) band 3 includes both nadir and
backward viewing geometries for stereoscopic purposes. Shortwave infrared (SWIR)
wavelengths are collected with bands 5-9, also using a pushbroom style sensor with 8-bit
radiometric resolution and 30-meter spatial resolution. The thermal infrared wavelengths
(TIR) (bands 10-14) are acquired using a whiskbroom style sensor with a 12-bit
radiometric resolution and 90 meter spatial resolution. As of January 12, 2009, NASA
has recommended that shortwave infrared data dating back to April, 2008 should not be
19
Figure 1.3. ASTER VNIR images of Harding Icefield, a) 2003 ASTER VNIR image of
Harding Icefield, b) 2005 ASTER VNIR image of Harding Icefield.
used due to anomalously high detector temperatures that cause striping and saturation
(NASA JPL ASTER website).
The two ASTER images used in this study were acquired July 8, 2003, and
August 14, 2005 (Figures 1.3a and 1.3b). For both images, the data were geometrically
corrected and located using the WGS-84 horizontal datum and projected using UTM zone
5 north coordinates, which produces a map angle of 16.18. Both images contain 4200
lines and 4980 samples in the visible and near-infrared, bands 1-3 (VNIR).
Landsat-5 was placed into a sun-synchronous, near polar orbit, 705 km above
Earth on March 1, 1984, with an equatorial crossing time of 9:45 AM 15 minutes and a
revisit period of 16 days (NASA Landsat Program website). Onboard the Landsat-5
satellite is the Thematic Mapper sensor, which is a whiskbroom style sensor with a 185
"
Tho two ASTER imog .. ...d in !hi, lIudy ""'loin><! July 8, 2003, and
Aup' 14. 200S (Figum 1.) ... "d UbI. for both images. Ih< dala ,.-en: gromttno.lly
corm:,od and 1o<0Icd !lSi"" \he: WGSg4 hori"""a1 datum ond prcj1ed ... iOj; UTM """"
S nonh coonIin;o, ... ,,"'hioh prod ...... map angle of 16.18". !loth images ""ntain 4100
Ii ..... and 49$0 sampl .. in II>< vi,ible ond bands 1) (\ftI: IR).
Earth on M"",h 1. 1984. ,",'j", an eq.....,,; .. 0"""';"8 .ime of9:4S AM., U minul .. ancI
Fij\Ul't U. ASTER VSIR i_ locn.ld . )1OOl"'STER VNIR imageer
Hanling kefield. b) 200s ASTER VNIR im'8 ofH...:Iinlloefieid.
20
km scan width. Thematic Mapper has seven bands: blue, green, red, NIR, and two SWIR,
each with 30-meter spatial resolution, and a thermal infrared band with 120-meter spatial
resolution. Each band has 8-bit radiometric quantization providing brightness values
(BVs) ranging from 0 to 255. The three Landsat-5 TM images (Figures 1.4a-c) were
acquired Sept. 12, 2006, Aug. 30, 2007, and July 31, 2008. Each image was processed to
level IT (radiometric and geometric terrain correction) before dispersal by the USGS data
Figure 1.4. Landsat-5 Thematic Mapper Imagery, a) Landsat-5 TM VNIR data from Sept.
12, 2006. b) Landsat-5 TM VNIR data from Aug. 30, 2007. c) Landsat-5 TM VNIR data
from July 31, 2008.
'"
Un lICon width. Thematic Mapper """ O<V<rI bands' hi"", iT='- t<>d. SIR. and two SWIR
...,h .,hh 3().nKI<r opotiol resolution. and. thnmal inrr.:! band ,,'ilb I 2\).m<lCr ~ i . 1
""'I"im! Sq><. 12. 2006. Au" 30. 2001. and July 31, 1008. E>o<h jrruoS" w .. pro<:e55Cd 10
k>cl t T (radiometric and fj>m<!ric: tcrn.in >rr:tion) Id"", dispcnal by Ih< USGS data
"JU" 1.4. UndwS Thernalk Mapper I"'"i"'}'. oj UndoaIS 1M VNIR d ... from ~ .
12.2006. b) l.an<!saI-S 1M \fNIR d.,o from A\II. )(I,ZOO7. oj Landsat-S 1M VN1R Il.ota
from July 31. 1008.
21
portal (www.landcover.org) and referenced via WRS coordinates (path 68, row 18) and
received in GeoTIFF format. The visible, NIR, and SWIR bands each contain 8801
samples and 7981 lines, while the TIR band contains 4401 samples and 3991 lines. The
three images are geolocated using the WGS-84 horizontal datum and projected (north up)
into UTM zone 6 north coordinates using a cubic convolution algorithm.
The ASTER data were orthorectifled using a digital elevation model (DEM) to
remove differences between the two images due to differing view angles at the time of
acquisition. The DEM data were acquired during the Shuttle Radar Topography Mission
(SRTM) by the Space Shuttle Endeavor during February, 2000. The DEM consists of 30-
meter horizontal and 1-meter vertical resolution elevation data. The SRTM DEM scenes
are referenced according to the WRS-2 system using path and row numbers to make them
compatible with Landsat TM scenes and are 185x185 km square. The DEM data used for
orthorectification was provided free by USGS (2004) via their website
www.landcover.org. Four SRTM scenes were mosaicked to provide coverage of the
entire Harding Icefield. The mosaicked scene was then resampled to 15-meter spatial
resolution to match the resolution of the ASTER scenes before orthorectification.
21
portal (www.landcover.org) and referenced via WRS coordinates (path 68, row 18) and
received in GeoTIFF format. The visible, NIR, and SWIR bands each contain 8801
samples and 7981 lines, while the TIR band contains 4401 samples and 3991 lines. The
three images are geolocated using the WGS-84 horizontal datum and projected (north up)
into UTM zone 6 north coordinates using a cubic convolution algorithm.
The ASTER data were orthorectified using a digital elevation model (DEM) to
remove differences between the two images due to differing view angles at the time of
acquisition. The DEM data were acquired during the Shuttle Radar Topography Mission
(SRTM) by the Space Shuttle Endeavor during February, 2000. The DEM consists of 30-
meter horizontal and I-meter vertical resolution elevation data. The SRTM DEM scenes
are referenced according to the WRS-2 system using path and row numbers to make them
compatible with Landsat TM scenes and are 185x 185 km square. The DEM data used for
orthorectification was provided free by USGS (2004) via their website
www.landcover.org. Four SRTM scenes were mosaicked to provide coverage ofthe
entire Harding Icefield. The mosaicked scene was then resampled to IS-meter spatial
resolution to match the resolution of the ASTER scenes before orthorectification.
2. METHODS
Performing feature tracking using satellite imagery is no simple matter. The
images must be prepared for insertion into the feature tracking software to allow the
software to succeed in its correlation attempts and to ensure accuracy in its results.
Feature tracking programs require adjustments and refinements of numerous input
parameters that directly affect the quality and quantity of data produced. The raw data
produced by a feature tracking program require significant processing to separate useful
data from blunders and to visualize the data so interpretations can be made. Chapter 2
explains in detail the preprocessing of satellite data before running a feature tracking
program, the operation of two feature tracking programs, and the postprocessing
necessary to produce a meaningful velocity field.
2. 1. Preprocessing Satellite Imagery for Feature Tracking
As stated in the NSIDC website (http://nsidc.org/data/velmap/ imcorr.html), the
purpose of preprocessing is to "generate images of the surface features of the ice, with as
little noise, sensor effects, and solar illumination effects as possible." In preparation for
running feature tracking software, four preprocessing techniques are suggested by
Scambos et al. (1992). These are the following: (1) principal component analysis of the
visible and near-infrared bands to combine the variability of the four bands that have the
highest reflectance for ice and snow and reduce noise; (2) application of a high-pass
convolution filter to reduce sun angle and topographic effects on the ice that may
,"
2. METHODS
Performing feature tracking using satellite imagery is no simple matter. The
images must be prepared for insertion into the feature tracking software to allow the
software to succeed in its correlation attempts and to ensure accuracy in its results.
Feature tracking programs require adjustments and refinements of numerous input
parameters that directly affect the quality and quantity of data produced. The raw data
produced by a feature tracking program require significant processing to separate useful
data from blunders and to visualize the data so interpretations can be made. Chapter 2
explains in detail the preprocessing of satellite data before running a feature tracking
program, the operation of two feature tracking programs, and the postprocessing
necessary to produce a meaningful velocity field.
2.1. Preprocessing Satellite Imagery for Feature Tracking
As stated in the NSIDC website (http://nsidc.org/data/velmap/ imcorr.html), the
purpose of preprocessing is to "generate images of the surface features of the ice, with as
little noise, sensor effects, and solar illumination effects as possible." In preparation for
running feature tracking software, four preprocessing techniques are suggested by
Scambos et al. (1992). These are the following: (1) principal component analysis of the
visible and near-infrared bands to combine the variability of the four bands that have the
highest reflectance for ice and snow and reduce noise; (2) application of a high-pass
convolution filter to reduce sun angle and topographic effects on the ice that may
23
artificially stretch velocity vectors; (3) scan-line removal in order to prevent false
correlations; and (4) image-to-image registration so the program can accurately correlate
pixels between images.
Kaab (2005) suggests a fifth mandatory preprocessing step: orthorectification of
the imagery to remove topographic distortion caused by different sensor viewing
geometry between sequential images. In areas with little topography, or when both
images are from the same sensor, this step is not required because slight differences in
viewing angle will not produce significant errors in displacement measurements.
However, in rough terrain such as steep alpine environments that contain valley glaciers,
a small difference in viewing angle, coupled with a steep topographic gradient, can
adversely affect displacement measurements. Therefore, orthorectification is necessary to
remove potential error caused by the geometry of the terrain and sensor viewing angle.
Kaab also suggests that the orthorectification be performed before the images are co-
registered because removal of topographic distortions will allow more accurate image-to-
image georeferencing.
Initial preprocessing of the satellite imagery for insertion into IMCORR is as follows
(Figure 2.1) (COSI-Corr preprocessing will differ slightly and is discussed in section
2.4):
1) Orthorectification of the two ASTER images using an SRTM DEM, downloaded
free from the Global Land Cover Facility website (GLCF, 2009).
2) Image-to-image georeferencing of the two ASTER images. This will ensure that
the relative positional accuracy between the images (the accuracy with which
23
artificially stretch velocity vectors; (3) scan-line removal in order to prevent false
correlations; and (4) image-to-image registration so the program can accurately correlate
pixels between images.
Kaab (2005) suggests a fifth mandatory preprocessing step: orthorectification of
the imagery to remove topographic distortion caused by different sensor viewing
geometry between sequential images. In areas with little topography, or when both
images are from the same sensor, this step is not required because slight differences in
viewing angle will not produce significant errors in displacement measurements.
However, in rough terrain such as steep alpine environments that contain valley glaciers,
a small difference in viewing angle, coupled with a steep topographic gradient, can
adversely affect displacement measurements. Therefore, orthorectification is necessary to
remove potential error caused by the geometry of the terrain and sensor viewing angle.
Kaab also suggests that the orthorectification be performed before the images are co-
registered because removal of topographic distortions will allow more accurate image-to-
image georeferencing.
Initial preprocessing of the satellite imagery for insertion into IMCORR is as follows
(Figure 2.1) (COSI -Corr preprocessing will differ slightly and is discussed in section
2.4):
1) Orthorectification of the two ASTER images using an SRTM DEM, downloaded
free from the Global Land Cover Facility website (GLCF, 2009).
2) Image-to-image georeferencing of the two ASTER images. This will ensure that
the relative positional accuracy between the images (the accuracy with which
2003
ASTER
image
Orthorectify
VNIR with
SRTM DEM
Orthorectify
VNIR with
SRTM DEM
Image-to-image
georeferencing
2003 PCA 1
from VNIR
2005 PCA 1
from VNIR
Crop ' 03 glacier image Crop ' 05 glacier image
Apply transverse and longitudinal directional
filters using 3x3, 5x5, 7x7, 9x9 and 11x11
kernels, convert each to edge map
Apply transverse and longitudinal directional
filters using 3x3, 5x5, 7x7, 9x9 and 1 l xl 1
kernels, convert each to edge map
IMCORR
correlations
Figure 2.1. IMCORR Preprocessing Flowchart.
"
25
corresponding pixels are aligned between images) is as precise as can be obtained.
The greater the relative positional accuracy between the images, the more precise
the displacement measurements will be. The absolute positional accuracy (the
precision with which corresponding pixels between the images are aligned to a
coordinate system), whether in latitude/longitude or UTM eastings/northings, is
less important than the positional accuracy between the two images because the
results are based solely upon how accurately two images are co-registered.
3) Principal Component Analysis (PCA) of the visible and near-infrared (VNIR)
bands; in ASTER imagery this refers to bands 1-3. After PCA is complete, PCA
band 1, which contains the most spectral variability, is passed forward to the next
preprocessing step.
4) Because the area encompassed by the Harding Icefield and its outlet glaciers is
large, and the individual outlet glaciers each may flow in different directions, it is
necessary to crop individual images to isolate each outlet glacier and process each
separately. This reduces processing time, as it would take a prohibitively long
time to run feature tracking software on the entire icefield at once, and cropping
allows detailed analysis of each outlet glacier.
5) The next step is application of a high-pass filter. For the purposes of this study,
this step has been modified in hopes of increasing the success rate in finding
correlations. While a simple high-pass filter will remove low frequency
topographic distortion and highlight local detail (edges) within the image, it is
omni-directional in its effect; features oriented in all directions are highlighted.
Alpine glaciers, however, have a preferential direction of flow, so this fact will be
25
corresponding pixels are aligned between images) is as precise as can be obtained.
The greater the relative positional accuracy between the images, the more precise
the displacement measurements will be. The absolute positional accuracy (the
precision with which corresponding pixels between the images are aligned to a
coordinate system), whether in latitude/longitude or UTM eastings/northings, is
less important than the positional accuracy between the two images because the
results are based solely upon how accurately two images are co-registered.
3) Principal Component Analysis (PCA) of the visible and near-infrared (VNIR)
bands; in ASTER imagery this refers to bands 1-3. After PCA is complete, PCA
band 1, which contains the most spectral variability, is passed forward to the next
preprocessing step.
4) Because the area encompassed by the Harding Icefield and its outlet glaciers is
large, and the individual outlet glaciers each may flow in different directions, it is
necessary to crop individual images to isolate each outlet glacier and process each
separately. This reduces processing time, as it would take a prohibitively long
time to run feature tracking software on the entire icefield at once, and cropping
allows detailed analysis of each outlet glacier.
5) The next step is application of a high-pass filter. For the purposes ofthis study,
this step has been modified in hopes of increasing the success rate in finding
correlations. While a simple high-pass filter will remove low frequency
topographic distortion and highlight local detail (edges) within the image, it is
omni-directional in its effect; features oriented in all directions are highlighted.
Alpine glaciers, however, have a preferential direction of flow, so this fact will be
26
exploited. In lieu of a general purpose high-pass filter, two directional filters are
applied instead, one in the longitudinal direction of ice movement (down slope),
the second is orthogonal to the first and is applied transversely across the width of
the glacier. Application of the two separate directional filters results in two
separate images, one with longitudinal ice surface features highlighted (moraines,
etc.) and one with transverse ice surface features highlighted (crevasses, etc.). To
maximize the difference between bare ice and surface features that might be used
in correlations, the two filtered images are classified using a decision tree that
assigns each pixel a new value of either 1 or 0. A threshold within the decision
tree is set at zero, so pixels with a BV greater than or equal to zero are assigned a
value of 1 and pixels with negative BVs are assigned a value of zero. The result is
a binary image with maximum contrast between bare ice and surface features such
as crevasses, moraines, flow bands, moulins, etc. These two binary images (edge
maps) provide the greatest possibility of successful correlation between sequential
images. Finally, the directional filters are applied using several kernel sizes,
specifically 3x3, 5x5, 7x7, 9x9, and 11x11 pixels. Each different kernel size
produces a slightly different result with different surface features being
highlighted when transformed into edge maps. After the application of the varying
directional filters with varying kernel sizes and after classification, the result is 20
binary edge maps, 10 for each year, which are entered into IMCORR.
The final suggested preprocessing step is removal of scan-line banding. ASTER
imagery does not contain banding and the Landsat-5 TM PCA images do not
contain appreciable banding, so this step was not needed.
26
exploited. In lieu of a general purpose high-pass filter, two directional filters are
applied instead, one in the longitudinal direction of ice movement (down slope),
the second is orthogonal to the first and is applied transversely across the width of
the glacier. Application of the two separate directional filters results in two
separate images, one with longitudinal ice surface features highlighted (moraines,
etc.) and one with transverse ice surface features highlighted (crevasses, etc.). To
maximize the difference between bare ice and surface features that might be used
in correlations, the two filtered images are classified using a decision tree that
assigns each pixel a new value of either I or O. A threshold within the decision
tree is set at zero, so pixels with a BV greater than or equal to zero are assigned a
value of 1 and pixels with negative BV s are assigned a value of zero. The result is
a binary image with maximum contrast between bare ice and surface features such
as crevasses, moraines, flow bands, moulins, etc. These two binary images (edge
maps) provide the greatest possibility of successful correlation between sequential
images. Finally, the directional filters are applied using several kernel sizes,
specifically 3x3, 5x5, 7x7, 9x9, and l1xll pixels. Each different kernel size
produces a slightly different result with different surface features being
highlighted when transformed into edge maps. After the application ofthe varying
directional filters with varying kernel sizes and after classification, the result is 20
binary edge maps, 10 for each year, which are entered into IMCORR.
6) The final suggested preprocessing step is removal of scan-line banding. ASTER
imagery does not contain banding and the Landsat-5 TM PCA images do not
contain appreciable banding, so this step was not needed.
27
1
1
a)
mage 2: Search Area
b)
-1 -1 -1 -1 -1 -1 -i -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -I . 1 -1 -1 -1 -1 0.3 03 0 3 0 3 I I -1
-1 -1 (1 0 0 0
o o 1.1 I I i I I - 0 - 0.7 0 3 -1
-1 -1 I.I
V 0 M o o I.I 3 I I "
m -
0 3 -1
-i -1
0 0 0 0 0 I.I H. ; I I - 0 " I I " I I 3 -1
i -1 0 0 I.I 0 0 0 I.I I I .5 ii 3 I I 0 3 1.1 .! -1
1 -i
o 0 0 I.I o I I I I 0 0 0 0 -1 -i
-1 -i 0 0 0 I I I I
"
'.' 0 o 0 -1 -i
1 -1 0 0 0 1.1 0 I I 0 0 0 0 0 -1 -1
I -I 0 0 0 1.1 0 0 0 0 0 0 -1 -1
-1 -1 o 0 0 I I 0 0 I I 1.1 0 0 I.I -1 -1
-i -i 0 0 I.I I.I 0 0 0 1.1 0 0 0 -1 -1
-1 -1 0 0 o 0 0 -> 0 0 0 0 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 1 1 -1 -1 -1 -1 i -1 -1 I -1 -1 -1
Figure 2.2. Search and reference chips, a) Reference chip centered inside search chip, b)
Correlation Index values populating the search chip with correlation peak indicated by
colored pixels.
2.2 IMCORR
IMCORR is a computer program that compares two temporally sequential digital
images and attempts to find the displacement of features that have moved during the time
interval between acquisitions of the two images. To do this, IMCORR uses a subset of
the first image, called a "reference area," or "reference chip," and a larger subset of the
second image, centered at the same location as the reference chip, called a "search area,"
or "search chip" (Figure 2.2a). The reference chip is moved within the search chip and
for each position in which the reference chip completely fits within the search chip, a
correlation index based on the pattern of brightness values between the two subsets is
calculated for the center pixel in the reference chip using a statistical algorithm (Figure
2.2b). Correlations that meet specified parameters are deemed matches and the
displacement of the feature is calculated (Scambos et al., 1992) (NSIDC, 2009).
The statistical algorithm used by IMCORR is a Fast Fourier Transform-based
221MCORR
and , u""'pts'" fond "'" dioplxern<nt off ........ thall .. x. """.-ed the Ii"",
intcnlll ""' ... ern of"'" ""0 images. To do Ibis, L\ICORR 1ISCi.1IUbscI of
or "searen "nip" (Fi",,,, 2.2.). The ",rem> "nip i. ""wed ",ithin "'" seareh "hip and
for exh positi"" in .. hkn "'" ",r""""" "nip rompl ... ly fits within"'" aean:h chip.
oom:lotioo index baocd on !he pattern ofbrighlndO nJoK< bct"Il the , .. .., SUMcts i,
<o1,,"IOIed for tile eent.,. pj.cI in .1Ie ",f.,..".,. enip using. , ... i"iool oIgori,lun (Figure
2.21. Con-el .. iono tha, m< specified panrnct ........ deemed malOI1cs and the
di"'lx ....... t of"'" f .. ,UK" oolc"I01ed (Seambos <l 01 . 1992) (NSroc. 2009).
The ..... iotieo.l ol&<>ri'1un used by IMCORR i , 0 Fast Fouri ... T ....... formbaocd
.,
Figure 2.2. $nrch and ",ference cllil"" 0) R.forcnce chip cen,ered iMido ocan:n chip. h)
Con-elotioo lode. ,alues popuJotinK t/Ic scaren "hip ,",'ith oom:btioo pc'" ir>dicOled by
c<>k>red pixels,
28
normalized cross-correlation method (Anuta, 1970; Bernstein, 1983) derived from the
Land Analysis System (LAS) software developed by NASA Goddard Space Flight
Center and USGS Eros Data Center (NSIDC, 2009). The algorithm adjusts the mean of
the BVs within the two chips to zero and the standard deviation to 1 prior to calculating
the correlation index (CI) for the center pixel. This is done to give normalized results for
the CI ranging from -1 to 1 and aids in minimizing the effects of differing illumination
between the two images. The CI is computed using:
S,s (
r
(l,s) " AO (S(1,
S
) - Ms)
CI(L,S)= , (1)
[ S, s ( r( , , s , - / t r )
2
]
1 / 2
[ a, s ( S( , , s , - M
S
)
2
]
1 / 2
where CI(L,S) is the correlation index for the search chip pixel located at position L,S; r(i
>S
)
is the BV of the pixel located at position (l,s) in the reference chip; ji
r
is the mean BV in
the reference chip; S(i
j S
) is the BV of the pixel located at position (l,s) in the search chip;
JI
s
is the mean BV in the search chip (Scambos et al., 1992).
The resulting CI values for each pixel within the search chip can be combined
with their locations (L,S) to produce a three-dimensional map as illustrated in Figure
2.3a. The peak in the correlation surface provides the location of the match between the
search and reference chips. The location of the peak is calculated to subpixel accuracy
using a mathematical interpolation routine that gives precision to 0.1 pixels. Once the
peak is found, displacement (magnitude and direction) can be computed from the location
of the reference chip' s center pixel to the correlation map' s peak (Figure 2.3b). Finally,
knowing the time span between the two images and the displacement, a velocity vector
can be determined.
28
nonnalized cross-correlation method (Anuta, 1970; Bernstein, 1983) derived from the
Land Analysis System (LAS) software developed by NASA Goddard Space Flight
Center and USGS Eros Data Center (NSIDC, 2009). The algorithm adjusts the mean of
the BY s within the two chips to zero and the standard deviation to 1 prior to calculating
the correlation index (CI) for the center pixel. This is done to give nonnalized results for
the CI ranging from -1 to 1 and aids in minimizing the effects of differing illumination
between the two images. The CI is computed using:
E,s (r(1,s) - /lr) (s(1,s) - J-ts)
(1)
where CI(L,s) is the correlation index for the search chip pixel located at position L,S; r(l,s)
is the BY of the pixel located at position (1,s) in the reference chip; )lr is the mean BY in
the reference chip; s(l,s) is the BY of the pixel located at position (1,s) in the search chip;
)ls is the mean BY in the search chip (Scambos et aI., 1992).
The resulting CI values for each pixel within the search chip can be combined
with their locations (L,S) to produce a three-dimensional map as illustrated in Figure
2.3a. The peak in the correlation surface provides the location of the match between the
search and reference chips. The location of the peak is calculated to subpixel accuracy
using a mathematical interpolation routine that gives precision to 0.1 pixels. Once the
peak is found, displacement (magnitude and direction) can be computed from the location
of the reference chip's center pixel to the correlation map's peak (Figure 2.3b). Finally,
knowing the time span between the two images and the displacement, a velocity vector
can be detennined.
29
i
1
:
Figure 2.3 Correlation surface and displacement, a) 3-D correlation surface, b)
Displacement computed from correlation surface.
IMCORR calculates nine output parameters for every pixel upon which a
correlation is attempted. They are as follows:
1) x coordinate of center of reference chip (integer)
2) y coordinate of center of reference chip (integer)
3) Total displacement in pixels (floating point)
4) Strength of correlation (floating point)
5) Result flag (integer)
6) x displacement to best match within search chip in pixels (floating point)
y displacement to best match within search chip in pixels (floating point)
x estimated error in pixels (floating point)
y estimated error in pixels (floating point)
Total displacement is calculated by applying the distance function to the x and y
displacements given in output parameters 6 and 7. The strength of the correlation (not to
be confused with the correlation index, CI), output parameter 4, is a function of the
correlation map' s peak height, the height of any secondary peaks relative to the highest
.) L _______ ---'"
.. 2.3 Co<f<,lation ....... oc. ond displM:..,.."L a) JD """", .. ion IWfIC . b)
Disploccm<TIl corn""tcd from """"Iation .utf"" .
".I .. es nine ou'put .,.01l""m fOf >"try upon
2) Y C<IOfdinll'e O[""'lCT of",f<=>e< chip (in'<8<>')
)) Tobl disp''''''''''''' in pixel. (fIoati", po"")
') of com:, .. ion (Iloa!i"ll poi.'1
}) !tesu), n"ll(inlO, .. )
6) to .... , match within sarch chip in pi>.<l. point)
7) Y displ"<m<n' to bat m."h "itrun ocan:h chip in pi .. ,. (Iloo,in, poin')
Total displ""""..,' i. taloul.,ed by the function to the x and y
disptOm<'lllS ii'"!> in OII1p\11 paromrt .... 6 ond 7. The otrrngth of"'" "",",lotion (1101 to
be confu.oo "jth the """", .. ioo index. Cil. output pararn<l<r 4, i .. Iilnc.ioo ofth<
29
i
1
:
Figure 2.3 Correlation surface and displacement, a) 3-D correlation surface, b)
Displacement computed from correlation surface.
IMCORR calculates nine output parameters for every pixel upon which a
correlation is attempted. They are as follows:
1) x coordinate of center of reference chip (integer)
2) y coordinate of center of reference chip (integer)
3) Total displacement in pixels (floating point)
4) Strength of correlation (floating point)
5) Result flag (integer)
6) x displacement to best match within search chip in pixels (floating point)
y displacement to best match within search chip in pixels (floating point)
x estimated error in pixels (floating point)
y estimated error in pixels (floating point)
Total displacement is calculated by applying the distance function to the x and y
displacements given in output parameters 6 and 7. The strength of the correlation (not to
be confused with the correlation index, CI), output parameter 4, is a function of the
correlation map' s peak height, the height of any secondary peaks relative to the highest
.) L _______ ---'"
.. 2.3 Co<f<,lation ....... oc. ond displM:..,.."L a) JD """", .. ion IWfIC . b)
Disploccm<TIl corn""tcd from """"Iation .utf"" .
".I .. es nine ou'put .,.01l""m fOf >"try upon
2) Y C<IOfdinll'e O[""'lCT of",f<=>e< chip (in'<8<>')
)) Tobl disp''''''''''''' in pixel. (fIoati", po"")
') of com:, .. ion (Iloa!i"ll poi.'1
}) !tesu), n"ll(inlO, .. )
6) to .... , match within sarch chip in pi>.<l. point)
7) Y displ"<m<n' to bat m."h "itrun ocan:h chip in pi .. ,. (Iloo,in, poin')
Total displ""""..,' i. taloul.,ed by the function to the x and y
disptOm<'lllS ii'"!> in OII1p\11 paromrt .... 6 ond 7. The otrrngth of"'" "",",lotion (1101 to
be confu.oo "jth the """", .. ioo index. Cil. output pararn<l<r 4, i .. Iilnc.ioo ofth<
30
peak, and the mean and standard deviation of t he background val ues. Because the
strength of correlation is affected by the standard deviation and mean of t he background
val ues, the size of the chips affect the correlation strength; larger search and reference
chips tend to produce hi gher strength of correlation val ues ( NSI DC, 2009).
The results flag may have five different val ues:
1) Successfully correlated
2) Failed to correlate; correlation peak too near edge of search chip
3) Failed to correlate; subsidiary peak comparabl e in strength to mai n peak
4) Failed to correlate; strength of peak bel ow mi ni mum specified by user; this is
preset to 0 so it will not appear
5) Failed to correlate; diagonal di spl acement from nomi nal location exceeds
maxi mum specified by user
When a mat ch is wi t hi n t wo pi xel s of where the reference chip will fit inside the
search chip, the result flag is set at 2; this is because the mat ch is too close to the edge to
properl y evaluate whet her it is statistically valid. If the result flag is 3, t hen t wo or mor e
peaks of similar correlation strength wer e found in the search area and no successful
mat ch is recorded. Fl ags 2 t hrough 4 result in null val ues for output peak strength,
di spl acement s, and errors (output paramet ers 3, 4, and 6-9). If the result flag is 1 or 5,
t hen all output paramet ers are calculated ( NSI DC, 2009).
The x and y errors (output paramet ers 8 and 9) are comput ed based on the peak-
height to peak-wi dt h compari son of the correlation surface. Low, broad peaks will have
larger errors whi l e steep, narrow peaks will have small errors. Al so, the x and y errors are
30
peak, and the mean and standard deviation of the background values. Because the
strength of correlation is affected by the standard deviation and mean of the background
values, the size of the chips affect the correlation strength; larger search and reference
chips tend to produce higher strength of correlation values (NSIDC, 2009).
The results flag may have five different values:
1) Successfully correlated
2) Failed to correlate; correlation peak too near edge of search chip
3) Failed to correlate; subsidiary peak comparable in strength to main peak
4) Failed to correlate; strength of peak below minimum specified by user; this is
preset to 0 so it will not appear
5) Failed to correlate; diagonal displacement from nominal location exceeds
maximum specified by user
When a match is within two pixels of where the reference chip will fit inside the
search chip, the result flag is set at 2; this is because the match is too close to the edge to
properly evaluate whether it is statistically valid. If the result flag is 3, then two or more
peaks of similar correlation strength were found in the search area and no successful
match is recorded. Flags 2 through 4 result in null values for output peak strength,
displacements, and errors (output parameters 3, 4, and 6-9). If the result flag is 1 or 5,
then all output parameters are calculated (NSIDC, 2009).
The x and yerrors (output parameters 8 and 9) are computed based on the peak-
height to peak-width comparison of the correlation surface. Low, broad peaks will have
larger errors while steep, narrow peaks will have small errors. Also, the x and yerrors are
31
dependent on the size of the reference chip; larger reference chips tend to produce smaller
errors ( NSI DC, 2009).
2.3 Appl yi ng I MCORR
I MCORR is run eight times on a set of edge maps usi ng a wi de variety of input
paramet ers, wi t h search areas rangi ng in size from 192x192 pixels to 80x80 pi xel s, and
reference area sizes rangi ng from 80x80 pi xel s to 48x48 pi xel s. In all cases, the grid
spacing is kept constant at 4 pixels. The use of t wo directional filters, five kernel sizes,
and eight combi nat i ons of search paramet ers means I MCORR is run 80 t i mes on a single
glacier. This al l -encompassi ng approach is necessary because it has been det ermi ned, vi a
numerous trial runs of I MCORR, that a wi de range of input paramet ers and a variety of
edge maps are needed to produce a vect or field that spans the length and breadt h of a
glacier usi ng the 2003/ 05 ASTER imagery. I MCORR' s ability to find correlations
bet ween sequential i mages is very sensitive to the choice of input paramet ers, wi t h one
set of input paramet ers produci ng mat ches in a certain area on a glacier, and another set
of paramet ers produci ng correlations in a different port i on of the glacier. Hence, as the
input paramet ers and edge maps are varied, t he voi ds wi t hi n a vect or field are iteratively
filled wi t h new correlations.
2.4 COSI-Corr
Co-Regi st rat i on of Optically Sensed Images and Correlation (COSI-Corr) is an
orthorectification and correlation tool meant to preci sel y correlate digital aerial
phot ography or satellite i magery (Leprince et al., 2007). The software is free to downl oad
from the California Institute of Technol ogy Tect oni cs Observat ory (http://www. tectonics.
31
dependent on the size of the reference chip; larger reference chips tend to produce smaller
errors (NSIDC, 2009).
2.3 Applying IMCORR
IMCORR is run eight times on a set of edge maps using a wide variety of input
parameters, with search areas ranging in size from 192x 192 pixels to 80x80 pixels, and
reference area sizes ranging from 80x80 pixels to 48x48 pixels. In all cases, the grid
spacing is kept constant at 4 pixels. The use of two directional filters, five kernel sizes,
and eight combinations of search parameters means IMCORR is run 80 times on a single
glacier. This all-encompassing approach is necessary because it has been determined, via
numerous trial runs ofIMCORR, that a wide range of input parameters and a variety of
edge maps are needed to produce a vector field that spans the length and breadth of a
glacier using the 2003/05 ASTER imagery. IMCORR's ability to find correlations
between sequential images is very sensitive to the choice of input parameters, with one
set of input parameters producing matches in a certain area on a glacier, and another set
of parameters producing correlations in a different portion of the glacier. Hence, as the
input parameters and edge maps are varied, the voids within a vector field are iteratively
filled with new correlations.
2.4 COSI-Corr
Co-Registration of Optically Sensed Images and Correlation (COSI-Corr) is an
orthorectification and correlation tool meant to precisely correlate digital aerial
photography or satellite imagery (Leprince et aI., 2007). The software is free to download
from the California Institute of Technology Tectonics Observatory (http://www.tectonics.
32
caltech. edu/slip history/spot coseis/index. html) and is run as an add-on modul e wi t hi n
ENVI remot e sensing software.
COSI-Corr offers t wo correlation algorithms, the first is a traditional statistical
correlator, similar to I MCORR, in whi ch a reference area is overlaid upon a search area
and a correlation coefficient is calculated usi ng a statistical algorithm, (1), whi ch
measures the similarity in the pattern of BVs bet ween the t wo i mages from pi xel to pixel.
The di spl acement bet ween the search and reference areas is the distance from the center
of the t wo areas to the peak of the correlation curve. Subpixel accuracy is achi eved via
interpolation of the correlation peak wi t h a quadratic pol ynomi al (written communi cat i on
wi t h S. Leprince). The advant age of the statistical correlator is that it is robust and
r ecommended for use wi t h noi sy data or when at t empt i ng to correlate t wo i mages from
different sensors.
COSI - Cor r ' s statistical correlator requires the same type of input paramet ers as
I MCORR; t hese are the following: a wi ndow size, search range, and step size, whi ch
correspond wi t h I MCORR' s reference area size, search area size, and grid spacing,
respectively. COSI-Corr also offers a gridded output option that allows mul t i pl e
di spl acement maps to be mosai cked or superi mposed. COSI-Corr outputs an ENVI
standard i mage file wi t h three or four bands, dependi ng on whi ch correlator engine was
selected. Band 1 contains the measured offsets in t he east-west direction; band 2 contains
the measured offsets in t he nort h-sout h direction; band 3 contains the signal-to-noise ratio
(SNR), whi ch is a measure of the strength of the correlation and ranges from 1 to 0, wi t h
strong correlations havi ng val ues of 0.99; and band 4 (frequential correlator only)
contains t he wi ndow size used at each pi xel location when comput i ng a correlation.
caltech.edulslip history/spot coseis/index.html) and is run as an add-on module within
ENVI remote sensing software.
32
COSI-Corr offers two correlation algorithms, the first is a traditional statistical
correlator, similar to IMCORR, in which a reference area is overlaid upon a search area
and a correlation coefficient is calculated using a statistical algorithm, (1), which
measures the similarity in the pattern ofBVs between the two images from pixel to pixel.
The displacement between the search and reference areas is the distance from the center
of the two areas to the peak of the correlation curve. Subpixel accuracy is achieved via
interpolation of the correlation peak with a quadratic polynomial (written communication
with S. Leprince). The advantage of the statistical correlator is that it is robust and
recommended for use with noisy data or when attempting to correlate two images from
different sensors.
COSI-Corr's statistical correlator requires the same type of input parameters as
IMCORR; these are the following: a window size, search range, and step size, which
correspond with IMCORR's reference area size, search area size, and grid spacing,
respectively. COSI-Corr also offers a gridded output option that allows multiple
displacement maps to be mosaicked or superimposed. COSI-Corr outputs an ENVI
standard image file with three or four bands, depending on which correlator engine was
selected. Band 1 contains the measured offsets in the east-west direction; band 2 contains
the measured offsets in the north-south direction; band 3 contains the signal-to-noise ratio
(SNR), which is a measure of the strength of the correlation and ranges from 1 to 0, with
strong correlations having values of 0.99; and band 4 (frequential correlator only)
contains the window size used at each pixel location when computing a correlation.
33
Image preprocessi ng for COSI-Corr is less intensive than what is required for
I MCORR because COSI-Corr offers a built-in, hi ghl y accurate ( 1/ 50
t h
pixel) (Leprince et
al., 2007) orthorectification algorithm that account s for terrain usi ng a DEM, and it also
accounts for a sensor' s varyi ng orbital attitude during dat a acquisition. Consequent l y, this
precise orthorectification can onl y be performed on pushbr oom style sensors (ASTER,
SPOT, Quickbird, FORMOSAT- 2, Worl dvi ew-1) whose CCDs poi nt uniformly wi t h t he
roll of the satellite and whose orbital attitudes are included wi t hi n the met adat a
accompanyi ng the i magery. Image-t o-i mage georeferencing is not required as this step is
performed duri ng the orthorectification process. Initially, the first i mage is orthorectified
usi ng a DEM, t hen the second i mage is orthorectified usi ng the first i mage as a mast er
i mage since it now contains all relevant terrain and orbital geomet ri c corrections.
Transformation of t he i magery via Principle Component Anal ysi s and subsequent
filtering and creation of edge maps is not necessary as it is suggested to use onl y a NI R
band for correlation (Leprince et al., 2007).
2.5 COSI - Cor r ' s Frequential Correlator Engi ne
The second correlation engine offered by COSI-Corr is the frequential correlator.
The frequential correlator is faster and mor e accurate t han the statistical correlator, but
less robust and is r ecommended for noise-free i magery. The frequential correlator is a
phase correlator, rather t han a statistical correlator such as I MCORR or CI AS, meani ng
the correlation process uses the phase i mage produced from application of t he Fouri er
Transform. The process works as follows (Kuglin & Hi nes, 1975; Shekarforoush et al.,
1996; Lepri nce et al., 2007):
1) Images are transformed into the frequency domai n usi ng Fast Fouri er Transform.
33
Image preprocessing for COSI-Corr is less intensive than what is required for
IMCORR because COSI-Corr offers a built-in, highly accurate (l/soth pixel) (Leprince et
aI., 2007) orthorectification algorithm that accounts for terrain using a DEM, and it also
accounts for a sensor's varying orbital attitude during data acquisition. Consequently, this
precise orthorectification can only be performed on pushbroom style sensors (ASTER,
SPOT, Quickbird, FORMOSAT-2, Worldview-l) whose CCDs point uniformly with the
roll of the satellite and whose orbital attitudes are included within the metadata
accompanying the imagery. Image-to-image georeferencing is not required as this step is
performed during the orthorectification process. Initially, the first image is orthorectified
using a DEM, then the second image is orthorectified using the first image as a master
image since it now contains all relevant terrain and orbital geometric corrections.
Transformation of the imagery via Principle Component Analysis and subsequent
filtering and creation of edge maps is not necessary as it is suggested to use only a NIR
band for correlation (Leprince et aI., 2007).
2.S COSI-Corr's Frequential Correlator Engine
The second correlation engine offered by COSI-Corr is the frequential correlator.
The frequential correlator is faster and more accurate than the statistical correlator, but
less robust and is recommended for noise-free imagery. The frequential correlator is a
phase correlator, rather than a statistical correlator such as IMCORR or CIAS, meaning
the correlation process uses the phase image produced from application of the Fourier
Transform. The process works as follows (Kuglin & Hines, 1975; Shekarforoush et aI.,
1996; Leprince et aI., 2007):
1) Images are transformed into the frequency domain using Fast Fourier Transform.
34
2) Assumi ng the i mages are different onl y by an offset, Ax and Ay, the Fouri er Shift
Theorem provi des that the offsets Ax and Ay are represented wi t hi n the phase
port i on of the Fourier Transform i mages (as opposed to the magni t ude port i on).
Because the correlation process involves the phase, whi ch possesses val ues
rangi ng from % the process can onl y directly measure di spl acement s of 0.5
pixel. Di spl acement s that are greater t han 0.5 pi xel s suffer from a phase
wrappi ng probl em wherei n every whol e pixel of di spl acement causes the phase to
cycle t hrough 2ir and begi n counting at 0 again.
3) To solve the phase wrappi ng probl em and isolate the offsets Ax and Ay, the
normal i zed cross-spect rum of the i mages is comput ed and t hen the inverse
Fourier Transform is applied that converts the dat a back to the spatial domai n.
The inverse Fouri er Transform i mage will contain a peak centered at the
coordinates Ax and Ay, whi ch gives the di spl acement bet ween the t wo original
scenes wi t h an accuracy of l / 20
t h
to l / 50
t h
pixel.
4) The form of the peak is model ed usi ng the sine function (sin(x)/x) (Figure 2. 4);
this al l ows an optional interpolation scheme to find the zenith of the peak that
bri ngs accuracy to wi t hi n 1/200
t h
pixel.
5) The sine function is also used to comput e SNR by compari ng the peak hei ght to
the level of the surroundi ng noi se.
COSI - Cor r ' s frequential correlator (the phase correlator) accepts six input
paramet ers (Ayoub et al., 2009):
1) Wi ndow Size. This specifies the size of the search and reference areas, whi ch are
of the same di mensi ons. An option is offered to allow for mul t i pl e wi ndow sizes;
34
2) Assuming the images are different only by an offset, ~ x and ~ y , the Fourier Shift
Theorem provides that the offsets ~ x and ~ y are represented within the phase
portion ofthe Fourier Transform images (as opposed to the magnitude portion).
Because the correlation process involves the phase, which possesses values
ranging from 7r, the process can only directly measure displacements of O.S
pixel. Displacements that are greater than O.S pixels suffer from a phase
wrapping problem wherein every whole pixel of displacement causes the phase to
cycle through 27r and begin counting at 0 again.
3) To solve the phase wrapping problem and isolate the offsets ~ x and ~ y , the
normalized cross-spectrum of the images is computed and then the inverse
Fourier Transform is applied that converts the data back to the spatial domain.
The inverse Fourier Transform image will contain a peak centered at the
coordinates ~ x and ~ y , which gives the displacement between the two original
scenes with an accuracy of 1120th to lIS0th pixel.
4) The form of the peak is modeled using the sinc function (sin(x)/x) (Figure 2.4);
this allows an optional interpolation scheme to find the zenith of the peak that
brings accuracy to within 1I200
th
pixel.
S) The sinc function is also used to compute SNR by comparing the peak height to
the level of the surrounding noise.
COSI-Corr's frequential correlator (the phase correlator) accepts six input
parameters (Ayoub et aI., 2009):
1) Window Size. This specifies the size of the search and reference areas, which are
of the same dimensions. An option is offered to allow for multiple window sizes;
35
Figure 2.4. Sine function showing peak and background noise.
this is advantageous when the imagery is noisy and a large window is necessary to
find a correlation, yet a small window can still be used in areas of the image that
are less noisy. The procedure begins with the largest window size, finds a
correlation, then iterates to the next smallest window size and correlates again.
This is repeated until the correlation process fails, and the offset produced using
the smallest window size is kept. Window size values may range from 2048 to 4.
2) Step. This is the distance in pixels that the process moves to a new location and
begins a new round of correlation computations. This is equivalent to IMCORR' s
grid spacing.
3) Robustness Iteration. This provides the number of times the frequency mask is
computed. The frequency mask reduces noise and bias by blocking unwanted low
and high frequencies that result from the orthorectification and resampling
processes.
Ihi, i. odv""uS""" "' ..... (he inu.&Y i, ""i,y 0I>d alatgt windo"" is ne<...ary to
find <orr<lation, yet . ..... 11 "indo ... eon llill he "oed in areaa of the i"'"8" th7"
.... I ... ""i,y. The prooed= begins " ';m the: Wges( ",indo"" .i>c. ftnd,
~ l " ; o n , , ..... ;(ema to the <!<X( ..... 11 ... ""indow ,i>c 0I>d >rT<lat .. OjOin.
Thi, " r.pealed un(,1 the: =I01;On ]>1'0<'" fail$. 0I>d the offset produced ",;na
the smaJl",( window . ize i, k<pl_ Window li ,'.Iues onay ""'MO fr<>m 2048 to 4.
2) S1tp. This is the di>1an<e in pi 1s tIw tho proc<$II "'0''-'' to ..,.. Ioc.,ion and
begi". ..,.. roond of correlation "","PUtal'ont. Thi. is ]ui, .. I<II( (0 LI.tCORR,
llrid spa<,ni-
3) Rob." .... I",., ..... Thio provides tho num .... of,i", .. the fl']""""y mask i.
oompulOd. The If]U<n<Y mask rlucd noise and bi .. by blocking UlIW"",edlow
ond high If]u.....,i .. tIw taul' fr<>m the onbom::tificat;on and _piing
36
4) Mask Threshold. This is the threshold value for the frequency mask below which
frequencies are blocked. Unity is the recommended value in most cases.
5) Resampling. This option activates the sine interpolation process, which may
increase processing time tenfold but can give precision to 1/200
t h
pixel.
6) Gridded Output. This provides the option to mosaic or superimpose multiple
displacement maps.
Because the phase correlation process operates on an entire search and reference
area at once, it is considerably faster (unless the resampling option is chosen) than
statistical correlators that must iteratively perform calculations on every pixel within a
search area to produce a correlation surface. Also, the phase correlation process proves to
be more robust than statistical correlators against noise and varying illumination effects
due to differing sensor attitude during image acquisition. This robustness allows use of a
simple NIR band for correlations rather than transformed and filtered images that require
more preprocessing time.
2.6 Postprocessing of Data and Displaying Results
The output from IMCORR and COSI-Corr are processed with a series of
customized IDL programs to filter, display, statistically analyze, and interpolate the data,
and to create velocity profiles (Figure 2.5) (Appendices A-F). The COSI-Corr data is
converted to IMCORR format (Appendix A - COSI-Corr to IMCORR format) so that
both sets of data can be analyzed using the same set of programs, rather than composing a
separate set of IDL programs specifically for COSI-Corr output. Because the correlation
programs search for matches in all directions, with no regard to a glacier's preferential
direction of flow, blunders are common. For instance, the correlation process can produce
36
4) Mask Threshold. This is the threshold value for the frequency mask below which
frequencies are blocked. Unity is the recommended value in most cases.
5) Resampling. This option activates the sinc interpolation process, which may
increase processing time tenfold but can give precision to 1I200
th
pixel.
6) Gridded Output. This provides the option to mosaic or superimpose multiple
displacement maps.
Because the phase correlation process operates on an entire search and reference
area at once, it is considerably faster (unless the resampling option is chosen) than
statistical correlators that must iteratively perform calculations on every pixel within a
search area to produce a correlation surface. Also, the phase correlation process proves to
be more robust than statistical correlators against noise and varying illumination effects
due to differing sensor attitude during image acquisition. This robustness allows use of a
simple NIR band for correlations rather than transformed and filtered images that require
more preprocessing time.
2.6 Postprocessing of Data and Displaying Results
The output from IMCORR and COSI-Corr are processed with a series of
customized IDL programs to filter, display, statistically analyze, and interpolate the data,
and to create velocity profiles (Figure 2.5) (Appendices A-F). The COSI-Corr data is
converted to IMCORR format (Appendix A - COSI-Corr to IMCORR format) so that
both sets of data can be analyzed using the same set of programs, rather than composing a
separate set ofIDL programs specifically for COSI-Corr output. Because the correlation
programs search for matches in all directions, with no regard to a glacier's preferential
direction of flow, blunders are common. For instance, the correlation process can produce
Correlation
Data
1 r
Sort by magnitude,
direction, error estimates
and location
Sort by magnitude,
direction, error estimates
and location
1
1 r
Vectors
outside
glacier
Vectors inside
glacier
Subtract mean
x and y error
Sort by direction and length in
local neighborhood
Sort by direction,
length, subtract error
Vector field
in glacier
(corr. str.)
IMCORR
parameter
space
Interpolate
displacement data
Corrected vector
field outside glacier
(corr. str.)
Figure 2.5. Postprocessing Flowchart.
37
/ /
Son by magnitude.
/ V"'lOrJ
direction. em>< estimates outsick
a,.;l\ocati(ln
glacier /

/
V",,,,,,, i .... ide /
&1l<:i ..

I
SubllXl mean }-f Mean H M n r
and y error ""'" "."SbCS em><
I
Son by di"",tiCH1 and Irngth in Son by direction,
local r.eigbbothood Iongth. $Ubtra<1 mnr

r..W / / IMCORR /
Interpolate
/ /
In sW:'''' pMamo1er disp!acemtn' <!ala field ",,\Side slxi ...
/
(COlT. SIt.) .pacc (COlT. SIr.)
I
i
1
I
Calculate
I
/
Vee"", field
II
/
swistiu

Velocity Quality
(mlyr)
iL
profil ..

I I
/,='j

/
Glaciological /
Inlerprelalion
Figure 2.5. Postprocessing Flowchart.
38
correlations that point upslope, against the flow of ice, or find correlations that begin
within the glacier and end outside it, or vice versa. These blunders are anomalies in the
pattern of BVs in a pair of images that correlate well but that do not correspond to a
natural process or displacement of a real world feature. Because feature tracking is error
prone, and because glaciers have a preferential direction of flow, the correlations are
systematically inspected one by one within a customized IDL program (Appendix B -
Directional Vector Sift) to keep vectors on a glacier that point in the expected direction of
flow and to remove vectors on a glacier that point upslope, while vectors outside the
glacier are sorted out and placed into a separate file to be analyzed statistically.
One of the original uses of the cross-correlation algorithm in LAS (from which
IMCORR was derived) was to find ground control points for georeferencing images
(Anuta, 1970; Bernstein, 1983). The correlation process will not only find matches within
a glacier that represent the movement of ice surface features, but outside the glacier, on
stable land, it will find matches (many thousands of them). If the land surface is assumed
stable, then the offsets found outside the glacier represent the error in the
orthorectification and image-to-image georeferencing performed during preprocessing.
As mentioned above, the matches found outside the glacier are placed in a
separate file and analyzed using first order statistics. The mean and standard deviation for
total displacement, correlation strength, x and y displacement, and x and y error can be
computed. This quantifies the direction and magnitude of the orthorectification and
georeferencing error (systematic error) that is included in each legitimate vector on the
glacier. Consequently, this systematic error can be subtracted from the vectors on the
glacier to improve their accuracy. And when the systematic error is subtracted from
38
correlations that point upslope, against the flow of ice, or find correlations that begin
within the glacier and end outside it, or vice versa. These blunders are anomalies in the
pattern of BV s in a pair of images that correlate well but that do not correspond to a
natural process or displacement of a real world feature. Because feature tracking is error
prone, and because glaciers have a preferential direction of flow, the correlations are
systematically inspected one by one within a customized IDL program (Appendix B-
Directional Vector Sift) to keep vectors on a glacier that point in the expected direction of
flow and to remove vectors on a glacier that point upslope, while vectors outside the
glacier are sorted out and placed into a separate file to be analyzed statistically.
One of the original uses of the cross-correlation algorithm in LAS (from which
IMCORR was derived) was to find ground control points for georeferencing images
(Anuta, 1970; Bernstein, 1983). The correlation process will not only find matches within
a glacier that represent the movement of ice surface features, but outside the glacier, on
stable land, it will find matches (many thousands of them). If the land surface is assumed
stable, then the offsets found outside the glacier represent the error in the
orthorectification and image-to-image georeferencing perfonned during preprocessing.
As mentioned above, the matches found outside the glacier are placed in a
separate file and analyzed using first order statistics. The mean and standard deviation for
total displacement, correlation strength, x and y displacement, and x and y error can be
computed. This quantifies the direction and magnitude of the orthorectification and
georeferencing error (systematic error) that is included in each legitimate vector on the
glacier. Consequently, this systematic error can be subtracted from the vectors on the
glacier to improve their accuracy. And when the systematic error is subtracted from
39
vectors outside the glacier, and these are statistically analyzed again using a specialized
IDL program (Appendix C - Residuals), the result provides a measure of the residual
error left within the data.
Vectors on a glacier are sifted to keep those pointing in the expected direction of
ice movement. Also, vectors for which the displacements are less than the georeferencing
error are eliminated, vectors for which the correlation strength is NaN are eliminated,
vectors whose x or y error is larger than their total displacement are eliminated, and
finally any failed correlation attempts are eliminated. Because IMCORR is run 80 times
on a glacier, there is the potential to produce overlapping vectors at a given pixel
location. When this occurs, only the vector with the highest correlation strength is kept.
This sifting removes a large amount of extraneous data and leaves only potentially valid
vectors on a glacier. Next, each vector is compared to its neighbors to find anomalies in
direction and length. Any vector that does not fall within a specified threshold of
direction or magnitude within its neighborhood is eliminated, thus removing outliers
(Appendix D - Sort Plot Arrows).
This neighborhood analysis is performed within a feedback loop using a variable
window size. The process begins by extracting a 51x51 pixel neighborhood centered
upon the vector in question. If there are fewer than 9 vectors within this neighborhood
(the pixel in question plus 7 or fewer neighbors), the window size is increased by 20
pixels on each side. The number of vectors within the window is counted again. This
process is repeated until the number of vectors within the window is 9 or greater, or until
the window reaches a maximum size of 501x501 pixels. The logic behind this is to assure
there is a sufficient number of vectors upon which the neighborhood analysis is
39
vectors outside the glacier, and these are statistically analyzed again using a specialized
IDL program (Appendix C - Residuals), the result provides a measure of the residual
error left within the data.
Vectors on a glacier are sifted to keep those pointing in the expected direction of
ice movement. Also, vectors for which the displacements are less than the georeferencing
error are eliminated, vectors for which the correlation strength is NaN are eliminated,
vectors whose x or y error is larger than their total displacement are eliminated, and
finally any failed correlation attempts are eliminated. Because IMCORR is run 80 times
on a glacier, there is the potential to produce overlapping vectors at a given pixel
location. When this occurs, only the vector with the highest correlation strength is kept.
This sifting removes a large amount of extraneous data and leaves only potentially valid
vectors on a glacier. ),Iext, each vector is compared to its neighbors to find anomalies in
direction and length. Any vector that does not fall within a specified threshold of
direction or magnitude within its neighborhood is eliminated, thus removing outliers
(Appendix D - Sort Plot Arrows).
This neighborhood analysis is performed within a feedback loop using a variable
window size. The process begins by extracting a 51 x51 pixel neighborhood centered
upon the vector in question. Ifthere are fewer than 9 vectors within this neighborhood
(the pixel in question plus 7 or fewer neighbors), the window size is increased by 20
pixels on each side. The number of vectors within the window is counted again. This
process is repeated until the number of vectors within the window is 9 or greater, or until
the window reaches a maximum size of 50lx50l pixels. The logic behind this is to assure
.
there is a sufficient number of vectors upon which the neighborhood analysis is
40
performed to gauge whether the pixel in question is an anomaly or whether it is
consistent with its neighbors.
Once an adequate window size is determined, the mean and standard deviation of
the angle and magnitude of all the vectors within the window is calculated and compared
to the angle and magnitude of the vector in question. If the angle or magnitude of the
vector in question lies outside a preset number of standard deviations (typically 1.0) away
from the means, it is deemed an anomaly and discarded. This process is performed for
each vector on the glacier and the remaining vectors displayed for the user to see using
the glacier image as a backdrop. This allows the user to visually inspect the results of the
neighborhood analysis and determine whether any anomalous vectors remain. If so, the
output is fed back into the process with the option of redefining the angle and magnitude
thresholds. The next iteration of the neighborhood analysis now has the advantage of
working with a cleaner data set and the user has gained some knowledge concerning the
effectiveness of the angle and magnitude thresholds.
In the simplest application, the thresholds need not be adjusted between iterations
of the feedback loop. The reason for this is because the data set has been altered by the
previous iteration of the neighborhood analysis, so when the process performs its
calculations on a vector in question, that vector' s neighborhood is not the same as during
the previous run (assuming an anomaly or two were removed within its neighborhood).
Consequently, the mean and standard deviation of the angle and magnitude within the
neighborhood are now different, and presumably smaller, because outliers were removed.
So, even without adjusting the thresholds, the mean and standard deviation of the angle
and magnitude have been locally tightened due to removal of outliers. Thus, during
performed to gauge whether the pixel in question is an anomaly or whether it is
consistent with its neighbors.
40
Once an adequate window size is determined, the mean and standard deviation of
the angle and magnitude of all the vectors within the window is calculated and compared
to the angle and magnitude of the vector in question. If the angle or magnitude of the
vector in question lies outside a preset number of standard deviations (typically 1.0) away
from the means, it is deemed an anomaly and discarded. This process is performed for
each vector on the glacier and the remaining vectors displayed for the user to see using
the glacier image as a backdrop. This allows the user to visually inspect the results of the
neighborhood analysis and determine whether any anomalous vectors remain. If so, the
output is fed back into the process with the option of redefining the angle and magnitude
thresholds. The next iteration of the neighborhood analysis now has the advantage of
working with a cleaner data set and the user has gained some knowledge concerning the
effectiveness of the angle and magnitude thresholds.
In the simplest application, the thresholds need not be adjusted between iterations
ofthe feedback loop. The reason for this is because the data set has been altered by the
previous iteration of the neighborhood analysis, so when the process performs its
calculations on a vector in question, that vector's neighborhood is not the same as during
the previous run (assuming an anomaly or two were removed within its neighborhood).
Consequently, the mean and standard deviation of the angle and magnitude within the
neighborhood are now different, and presumably smaller, because outliers were removed.
So, even without adjusting the thresholds, the mean and standard deviation of the angle
and magnitude have been locally tightened due to removal of outliers. Thus, during
41
subsequent iterations through the loop, outliers that may have resisted elimination during
a single pass of the neighborhood analysis routine will eventually be exposed as
anomalies and deleted as the vector field around them becomes more uniform.
Aside from the thresholds for angle and magnitude, a threshold for the minimum
standard deviation in angle below which no vectors are deleted was found to be
necessary. This is because as outliers are removed, the standard deviation in angle within
a neighborhood of consistent, agreeable vectors becomes very small, so small that no
vectors fall within the standard deviation threshold and they are all deleted. By
establishing a minimum threshold for standard deviation of angle below which no vectors
are eliminated, the process is effectively saying that the flow field within the particular
neighborhood is uniform enough and the vectors are legitimate.
Occasionally an anomaly or two remain even after several iterations of the
feedback loop and subsequent iterations do not produce any effect. At this point, the
vector field has reached equilibrium with the established minimum angle threshold.
Tightening the thresholds for standard deviation of angle or magnitude will have no
effect; the minimum angle threshold must be reduced, carefully, so as not to spur
elimination of legitimate vectors. This places the thresholds and data back into a state of
disequilibrium so the remaining outliers can be removed.
Implementation of the feedback loop results in a dynamic set of thresholds that
self-adjust based upon local conditions. This eliminates the need for subjective, manual
deletion of anomalous vectors, which is currently employed by many researchers running
correlation programs (Bindschadler et al., 1996; Howat et al., 2008; Jackson et al., 2005;
Kaab, 2002; KMb, 2005; Scambos & Bindschadler, 1993). The feedback loop also
41
subsequent iterations through the loop, outliers that may have resisted elimination during
a single pass ofthe neighborhood analysis routine will eventually be exposed as
anomalies and deleted as the vector field around them becomes more uniform.
Aside from the thresholds for angle and magnitude, a threshold for the minimum
standard deviation in angle below which no vectors are deleted was found to be
necessary. This is because as outliers are removed, the standard deviation in angle within
a neighborhood of consistent, agreeable vectors becomes very small, so small that no
vectors fall within the standard deviation threshold and they are all deleted. By
establishing a minimum threshold for standard deviation of angle below which no vectors
are eliminated, the process is effectively saying that the flow field within the particular
neighborhood is uniform enough and the vectors are legitimate.
Occasionally an anomaly or two remain even after several iterations of the
feedback loop and subsequent iterations do not produce any effect. At this point, the
vector field has reached equilibrium with the established minimum angle threshold.
Tightening the thresholds for standard deviation of angle or magnitude will have no
effect; the minimum angle threshold must be reduced, carefully, so as not to spur
elimination oflegitimate vectors. This places the thresholds and data back into a state of
disequilibrium so the remaining outliers can be removed.
Implementation of the feedback loop results in a dynamic set of thresholds that
self-adjust based upon local conditions. This eliminates the need for subjective, manual
deletion of anomalous vectors, which is currently employed by many researchers running
correlation programs (Bindschadler et aI., 1996; Howat et aI., 2008; Jackson et aI., 2005;
K ~ H i b , 2002; Kaab, 2005; Scambos & Bindschadler, 1993). The feedback loop also
42
greatly accelerates the process of removing outliers because each iteration uses an
improved, cleaner data set and the vectors quickly converge toward uniformity.
Typically, only two or three iterations through the feedback loop are required to clean up
a vector field, compared with dozens of trial runs when manually changing angle and
magnitude thresholds and viewing and discarding the inadequate results and performing
the process again.
What remains after the sifting, sorting, and neighborhood analysis procedures are
the most realistic vectors that have passed through a stringent weeding process and that
have had topographic and systematic error removed, and which provide the most accurate
and complete vector field IMCORR or COSI-Corr can produce.
There are more data to be gleaned from the process, however. In all applications
of IMCORR and COSI-Corr a constant grid spacing of four pixels is used. So, at best,
they will produce vectors four pixels apart in both x and y directions. The algorithm
within IMCORR that calculates correlation strength and interpolates to subpixel accuracy
the location of the peak of the correlation surface uses a 9x9 pixel neighborhood. This
implies that each correlation IMCORR finds represents the movement of a block of
pixels up to 9x9. Therefore, the empty pixels that surround pixels with correlation values
will have displacements related to the displacement of nearby correlations. This provides
the basis for spatially interpolating displacement values for pixels that were skipped due
to the four pixel grid spacing, or for extrapolating beyond the boundary where successful
correlations ended. By interpolating the point data using a 9x9 neighborhood, the voids
within a vector field are filled and a raster is produced that gives a more complete vector
field; this is accomplished with a customized IDL program using an inverse-distance
42
greatly accelerates the process of removing outliers because each iteration uses an
improved, cleaner data set and the vectors quickly converge toward uniformity.
Typically, only two or three iterations through the feedback loop are required to clean up
a vector field, compared with dozens of trial runs when manually changing angle and
magnitude thresholds and viewing and discarding the inadequate results and performing
the process again.
What remains after the sifting, sorting, and neighborhood analysis procedures are
the most realistic vectors that have passed through a stringent weeding process and that
have had topographic and systematic error removed, and which provide the most accurate
and complete vector field IMCORR or COSI-Corr can produce.
There are more data to be gleaned from the process, however. In all applications
ofIMCORR and COSI-Corr a constant grid spacing of four pixels is used. So, at best,
they will produce vectors four pixels apart in both x and y directions. The algorithm
within IMCORR that calculates correlation strength and interpolates to subpixel accuracy
the location of the peak of the correlation surface uses a 9x9 pixel neighborhood. This
implies that each correlation IMCORR finds represents the movement of a block of
pixels up to 9x9. Therefore, the empty pixels that surround pixels with correlation values
will have displacements related to the displacement of nearby correlations. This provides
the basis for spatially interpolating displacement values for pixels that were skipped due
to the four pixel grid spacing, or for extrapolating beyond the boundary where successful
correlations ended. By interpolating the point data using a 9x9 neighborhood, the voids
within a vector field are filled and a raster is produced that gives a more complete vector
field; this is accomplished with a customized IDL program using an inverse-distance
43
weighting scheme that is applied using a convolution command (Appendix E - Convolve
Displacement).
A quality assessment can be performed by comparing the interpolated velocity
results with velocities that are derived by visually tracking pixels at selected locations
upon the glacier by flickering between the sequential images within ENVI. Comparison
of the results between the two methods provides a simple, localized confirmation of the
computer-generated vector field. To test the directionality of the vector field over long
distances, streamlines are generated using a customized EDL program (Appendix H -
Flow Lines). Seed particles are placed at strategic locations within the velocity field and
their trajectory downglacier is computed based upon the direction and magnitude
indicated within the vector field. If the vector field is accurate, the seed particles will
flow downglacier in a plausible manner, without crossing moraines or tracing physically
unrealistic paths.
Longitudinal and transverse velocity profiles can be generated to aid in
visualizing and interpreting the velocity field (Appendix F - Cross Section Generator).
The combination of a vector field and velocity profiles provide enough information to
begin glaciological interpretation of a glacier's flow regime, including the influences of
topography, junctions with tributaries, ablation, and the chief mechanism of flow,
whether basal slip or internal deformation.
43
weighting scheme that is applied using a convolution command (Appendix E - Convolve
Displacement).
A quality assessment can be perfonned by comparing the interpolated velocity
results with velocities that are derived by visual1y tracking pixels at selected locations
upon the glacier by flickering between the sequential images within ENVl. Comparison
of the results between the two methods provides a simple, localized confinnation of the
computer-generated vector field. To test the directionality of the vector field over long
distances, streamlines are generated using a customized IDL program (Appendix H-
Flow Lines). Seed particles are placed at strategic locations within the velocity field and
their trajectory downglacier is computed based upon the direction and magnitude
indicated within the vector field. lfthe vector field is accurate, the seed particles will
flow downglacier in a plausible manner, without crossing moraines or tracing physically
unrealistic paths.
Longitudinal and transverse velocity profiles can be generated to aid in
visualizing and interpreting the velocity field (Appendix F - Cross Section Generator).
The combination of a vector field and velocity profiles provide enough infonnation to
begin glaciological interpretation of a glacier's flow regime, including the influences of
topography, junctions with tributaries, ablation, and the chief mechanism of flow,
whether basal slip or internal defonnation.
3. RESULTS AND DISCUSSION
This chapter presents a scientific journey of inquiry into feature tracking, the
results and problems discovered enroute that forced adaption of the methodology, and a
final realistic outcome. Testing of the initial methodology, discussed in Chapter 2,
produced a plausible outcome on HI1 Glacier; subsequently, the method was applied to
six glaciers whereupon problems began to emerge. The narrative of this chapter focuses
on two of those glaciers, Tustumena and McCarty (Figure 1.2).
3.1 McCarty and Tustumena Glaciers
McCarty Glacier is a tidewater glacier that flows off the south side of Harding
Icefield (Figures 1.2a and 1.2b) and terminates in McCarty Fjord. It is formed by the
confluence of many small tributaries that flow down from surrounding basins and
hanging valleys, two of which join together to the north, one from the west, and several
from the east. McCarty Glacier is 9.8 km long and 2.0 km wide at its widest point where
the western tributary joins the main branch, and it is 1 km wide at the toe. It has well
delineated medial moraines due to the convergence of its many tributaries, particularly in
its eastern half. There are notable ogives in the western half of the glacier that extend for
roughly 3 km beginning where the western tributary flows down from Harding Icefield;
additionally, there are crevasse fields beginning 2.5 km up glacier and extending to the
toe in the western half of the glacier, and in the eastern half of the glacier the crevasses
begin 4 km up glacier and extend to the toe.
3. RESULTS AND DISCUSSION
This chapter presents a scientific journey of inquiry into feature tracking, the
results and problems discovered enroute that forced adaption of the methodology, and a
final realistic outcome. Testing of the initial methodology, discussed in Chapter 2,
produced a plausible outcome on HIl Glacier; subsequently, the method was applied to
six glaciers whereupon problems began to emerge. The narrative of this chapter focuses
on two of those glaciers, Tustumena and McCarty (Figure 1.2).
3.1 McCarty and Tustumena Glaciers
McCarty Glacier is a tidewater glacier that flows off the south side of Harding
Icefield (Figures l.2a and 1.2b) and terminates in McCarty Fj ord. It is formed by the
confluence of many small tributaries that flow down from surrounding basins and
hanging valleys, two of which join together to the north, one from the west, and several
from the east. McCarty Glacier is 9.8 km long and 2.0 km wide at its widest point where
the western tributary joins the main branch, and it is 1 km wide at the toe. It has well
delineated medial moraines due to the convergence of its many tributaries, particularly in
its eastern half. There are notable ogives in the western half of the glacier that extend for
roughly 3 km beginning where the western tributary flows down from Harding Icefield;
additionally, there are crevasse fields beginning 2.5 km up glacier and extending to the
toe in the western half of the glacier, and in the eastern half ofthe glacier the crevasses
begin 4 km up glacier and extend to the toe.
45
Tustumena Glacier originates on the west side of Harding Icefield (Figures 1.2a
and 1.2b) and is its longest glacier at 23 km; approximately midway along its length a
smaller, unnamed glacier, referred to as HI2 in this paper, merges from the northeast. At
its upper reaches, Tustumena Glacier is 6.5 km wide narrowing quickly to 3 km in width
and then 2.5 km immediately before the confluence with HI2; after Tustumena merges
with HI2, their combined width increases to 3.0 km again. Five kilometers below the
confluence, some ice from Tustumena flows into a side valley where it calves and falls
down a steep incline. The main flow of ice continues down valley in a WNW direction
and gradually narrows to 0.5 km in width where Tustumena Glacier terminates in a small
lake. Tustumena Glacier is marked with medial moraines and there are prominent
crevasses where the ice from HI2 merges and flows towards the dead end side valley.
Tustumena Glacier also has prominent crevasses along its margins, particularly along its
undulating southern margin, due to drag along the valley walls causing shearing of the
ice.
3.2 McCarty and Tustumena Ice Surface Velocities
The vector field for McCarty Glacier (Figure 3.1), as derived using the complete
IMCORR parameter space described in Chapter 2, is spatially dense and mostly complete
along the length and breadth of its main trunk, except for the heavily crevassed area
nearest the toe. The northern two tributaries have significant coverage in the lower half,
while the upper half is devoid of vectors. The small tributaries that merge from the east
are also devoid of vectors and these would require separate processing to include within
the main vector field, so for simplicity, they were excluded.
45
Tustumena Glacier originates on the west side of Harding Icefield (Figures 1.2a
and 1.2b) and is its longest glacier at 23 km; approximately midway along its length a
smaller, unnamed glacier, referred to as HI2 in this paper, merges from the northeast. At
its upper reaches, Tustumena Glacier is 6.5 km wide narrowing quickly to 3 km in width
and then 2.5 km immediately before the confluence with HI2; after Tustumena merges
with HI2, their combined width increases to 3.0 km again. Five kilometers below the
confluence, some ice from Tustumena flows into a side valley where it calves and falls
down a steep incline. The main flow of ice continues down valley in a WNW direction
and gradually narrows to 0.5 km in width where Tustumena Glacier terminates in a small
lake. Tustumena Glacier is marked with medial moraines and there are prominent
crevasses where the ice from HI2 merges and flows towards the dead end side valley.
Tustumena Glacier also has prominent crevasses along its margins, particularly along its
undulating southern margin, due to drag along the valley walls causing shearing of the
Ice.
3.2 McCarty and Tustumena Ice Surface Velocities
The vector field for McCarty Glacier (Figure 3.1), as derived using the complete
IMCORR parameter space described in Chapter 2, is spatially dense and mostly complete
along the length and breadth of its main trunk, except for the heavily crevassed area
nearest the toe. The northern two tributaries have significant coverage in the lower half,
while the upper half is devoid of vectors. The small tributaries that merge from the east
are also devoid of vectors and these would require separate processing to include within
the main vector field, so for simplicity, they were excluded.
46
27.2 TO 34. 7 M/YR
34.7 TO 42. 2 M/YR
42. 2 TO 57. 2 M/YR
f t
3
] Km
57. 2 TO 87. 2 M/YR
87. 2 TO 160.2 M/YR
Figure 3. 1. McCarty Glacier ice surface velocity for 2003-2005 derived
using IMCORR. Velocity profile A-A"' shown in Figure 3.2.
fill'''' l. l. McC1I1y GI",iu "'0 surface velocity for 20032OOS dori"e.I
"';"8 L\tCORR. V.locity ptOm. AA'" olio""" i .. Figlln' 3.2.
47
There is a well-developed trend within the velocity field throughout most of the
western half of the trunk in the area dominated by ogives. The ice moves down the walls
of the main valley from the west, where the ogives form, with speeds less than 19 m/yr
(purple arrows), then gradually accelerates to between 42 to 57 m/yr (yellow arrows),
then decelerates to below 19 m/yr again 1 km from the toe. This flow pattern is well-
behaved and glaciologically quite plausible and stems from the easily correlated ogives.
The eastern half of the velocity field is less well-behaved, as seen in the longitudinal
cross section A- A' " (Figure 3.2). Following the trace of the profile from A to A' ,
immediately there are rapid fluctuations in speed from 30 to 50 m/yr. Farther upglacier
along line segment A' - A" there are velocity fluctuations from 20 to 80 m/yr and finally
McCar t y Vel oci t y: Longi t udi nal Cr oss Sect i on AA"
1
o
o
>
100
200 1 1 1 1 1 1 1 1 1 1 1
150
' ' i ' T T I
1 1 1 1 1 1 1
J
SN
A'
A
11
0 1000 2000 3000 4000 5000 6000
Distance f rom south to north along A- A' " ( met er s)
Figure 3.2. McCarty Glacier longitudinal velocity profile along A-A'
47
There is a well-developed trend wi thin the veloci ty field throughout most of the
western half of the trunk in the area dominated by ogives. The ice moves down the walls
of the main vallcy from the west, where the ogives Conn, with speeds less than 19 mlyr
(purple arrows), then graduall y accelerates \0 between 42 \0 57 m/yr (yellow arrows),
then decelerates \0 below 19 m/yr again I km from the toe. This flow pattern is well
behaved and glaciologically quile plausible and stems from the easi ly correlated ogivcs.
The eastern half orlhe velocity field is less well-behaved, as seen in the longitudinal
cross section A-A'" (Figure 3.2), Following the trace orlhe profile from A to A',
immediately there are rapid fluctuations in speed from 30 to 50 mJyr. Farther upglacier
along line segment A' -A" there are velocity fluctuations from 20 to 80 mJyr and finally
McCarty Veloci ty: Longitudinal Cross Section A-A'"
2 a o ~ - - ~ - - - - ~ - - - - ____ ~ ~ __ ~ ____ -,
~
~
,.,
"-
E
-
,.,
-
U
Alii
0
"
>
Distance from south to north alont;! A-A'" ( meters)
Figure 3. 2. McCany Gl acier longitudinal lIelocity profil e along A-A"'.
48
on either side of location A" , there are highly unrealistic oscillations in speed ranging
from 20 or 30 m/yr up to 160 m/yr over a 100 meter distance. Realizing that glaciers do
not vary their speed in such a manner, these apparent abrupt changes in velocity point to
some underlying problem within the process.
The velocity field for Tustumena Glacier (Figure 3.3) is also spatially dense and
mostly complete, except near the toe where ablation is highest, and upglacier near the
snowline of the August 2005 image where the glacier was masked to prevent false
correlations. The bottom 5 km of the velocity field exhibits a glaciologically plausible
trend of ice decelerating from speeds >106 m/yr (orange arrows) to less than 39 m/yr
(purple arrows) over several kilometers approaching the toe. This is quite plausible
because ablation rates increase at lower elevations and the quantity of ice is reduced to
such a degree that its mass is no longer sufficient to maintain high speeds and the ice
slows and may become nearly stagnant near the toe. In this area, IMCORR, with the aid
of the entire parameter space, produced a velocity field that is plausible. Farther
upglacier, the velocity field for Tustumena Glacier suffers the same problem seen in
McCarty Glacier's velocity field. There are dramatic fluctuations in velocity within very
short distances that make the derived velocity field impossible. The longitudinal velocity
profile for Tustumena Glacier (Figure 3.4) shows numerous areas in which the speed of
the ice instantaneously jumps from 20 or 30 m/yr to nearly 200 m/yr, or vice versa. These
rapid pulses of acceleration and deceleration are highly unlikely within the continuous
mass of ice and there is no physical mechanism within the glacier (such as steep inclines
or ice falls) that would account for such movement. Again, the physically unlikely results
48
on either side of location A", there are highly unrealistic oscillations in speed ranging
from 20 or 30 m/yr up to 160 m/yr over a 100 meter distance. Realizing that glaciers do
not vary their speed in such a manner, these apparent abrupt changes in velocity point to
some underlying problem within the process.
The velocity field for Tustumena Glacier (Figure 3.3) is also spatially dense and
mostly complete, except near the toe where ablation is highest, and upglacier near the
snowline of the August 2005 image where the glacier was masked to prevent false
correlations. The bottom 5 km of the velocity field exhibits a glaciologic ally plausible
trend of ice decelerating from speeds> 106 m/yr (orange arrows) to less than 39 m/yr
(purple arrows) over several kilometers approaching the toe. This is quite plausible
because ablation rates increase at lower elevations and the quantity of ice is reduced to
such a degree that its mass is no longer sufficient to maintain high speeds and the ice
slows and may become nearly stagnant near the toe. In this area, IMCORR, with the aid
of the entire parameter space, produced a velocity field that is plausible. Farther
upglacier, the velocity field for Tustumena Glacier suffers the same problem seen in
McCarty Glacier's velocity field. There are dramatic fluctuations in velocity within very
short distances that make the derived velocity field impossible. The longitudinal velocity
profile for Tustumena Glacier (Figure 3.4) shows numerous areas in which the speed of
the ice instantaneously jumps from 20 or 30 m/yr to nearly 200 m/yr, or vice versa. These
rapid pulses of acceleration and deceleration are highly unlikely within the continuous
mass of ice and there is no physical mechanism within the glacier (such as steep inclines
or ice falls) that would account for such movement. Again, the physically unlikely results
TUSTUMENA AND HI2 GLACIERS VECTORFIELDS 7 ^ |
Figure 3.3. Tustumena and HI2 Glaciers' ice surface velocities derived using IMCORR. Velocity profile A- A' " is
shown in Figure 3.4. Red, green and black stars indicate locations of points referred to in Figures 3.5, 3.6, and 3.7,
respectively, where detailed analysis of IMCORR' s parameter space are conducted.
Fig ... 3.3. TUSlumtna ood 1112 GIK;"'" ice .. "f"", \eloci!i .. <Ioti"ed ""OK IMCO!t.R. Velocity "",role "." n' i.
sho"' o in f ill.'" 3.4. Red. v'" and bl><k " .... ir>dkale Ioo;al"'" ofpoin ..... f ........ '" in ..... 3.6. or>d 3.7
. ... ...".. dC1aikd ..... 1,..;. of IMCORR' , oanmct"" lIDO' arc rondoctro.

50
Tustumena Velocity: Longitudinal Cr ass Section A- A"
1
300
200 -
o
>
100 -
0 5. 0X10
j
1.0x10* 1.5x10^
Distance from west to east along A- A' " (meters)
Figure 3.4. Tustumena Glacier longitudinal velocity profile along A- A' ".
seen in Tustumena and McCarty Glaciers' vector fields suggest there is an underlying
problem in the methodology or process.
3.3 Tustumena Glacier Velocity and IMCORR Parameter Space
Initial results using a broad and varying IMCORR parameter space led to
unrealistic changes in velocity on Tustumena and McCarty Glaciers that warrants
investigation. A deeper exploration into IMCORR' s parameter space at the location of
one of the velocity discontinuities reveals use of the all-encompassing parameter space is
partly to blame for the unrealistic results seen in Tustumena and McCarty Glaciers'
vector fields. The IMCORR parameter space for pixel location (840,456), shown as the
red asterix in Figure 3.3 midway along line segment A' - A", is plotted in Figure 3.5. This
pixel location lies at a boundary between slow and fast moving ice. Within the graph,
displacement in pixels is plotted on the vertical axis, the search area size is on the lower
Tustumena Velocity: Longitudinal Crass Section A-A'"

-

200
E
g 100

A'"
A
so

., 5.0)(10 1.0 )( 10 1.5)(10'
Distance (rom west to east along A-A'" (meters)
Figure 3.4. Tustumena Glacier longitudinal veloci ty profile along A-A"'.
seen in Tustumena and McCart y Glaciers' vector fields suggest there is an underlying
problem in the methodology or process.
3.3 Tustumena Glacier Velocity and IMCQRR Parameter Space
milial results using a broad and varying IMCORR parameter space led to
unrealistic changes in velocity on Tustumena and McCarty Glaciers thaI warrants
investigation. A deeper exploration into (MCQRR's parameter space at the locat ion of
one of the velocity discontinuities reveals usc of the all-encompassing parameter space is
partly to blame for the unreali stic results seen in Tustumena and McCarty Glaciers'
vector fields, The IMCORR parameter space for pixel location (840,456), shown as the
red asterix in Figure 3.3 midway along line segment A' -A", is plot ted in Figurc 3.5. This
pixel location lies at a boundary between slow and fast moving ice. Within the graph,
displacement in pixels is plotted on the vertical axis, the search area size is on the lower
51
10
8
Tustumena Glacier: (x,y) =840, 456
Reference chip size (pixels)
X
4)
E
4> 4.
o
_o
QL
M
a
2
o
48 48 48
Kernel Size=3x3
Kernel Size=5x5
Kernel Size-7x7
Kernel Size*9x9
Kernel Size=1 1 xl 1

* 8
-
64



1
64



1
80 80 80


if
s
*=60 deg
[ ] = 150 dec.
80 96, 112 1 28 J 44 , 160 J 76 192
Search Chip Size (pixels)
Figure 3.5. IMCORR parameter space for pixel location (840,456). Red circle (above)
indicates parameter space for correlation plotted in Figure 3.3 (highlighted by a red
asterix).
horizontal axis, reference area size is on the upper horizontal axis, kernel size is color
coded, and the angle of directional filter (longitudinal and transverse flow directions) is
indicated with either an asterix (60) or a square (150). In this manner, the full suite of
relevant parameters used to generate correlations can be represented. According to the
methodology described in Chapter 2, IMCORR is run 80 times for an image pair, so there
may possibly be 80 correlations for a single pixel location. Ideally, each of these
correlations would produce an identical offset, but a close examination of Figure 3.5
reveals this is not the case. IMCORR was successful in finding a correlation at pixel
location (840,456) 36 times out of the 80 runs. Among these 36 successful correlations,
there is a wide range of displacements, from 2.5 pixels (17.8 m/yr) up to 9 pixels (64.3
m/yr), more than a threefold discrepancy.

t
t
-
-
!
,

0
(x.y)_8-Hl. 45&
ReI.,,,,,,,,,
0 0
a a
0 0
0 0 0


.,
0 0
0

"
0
Fip'" 3.5. ..,..,. for pixolloc. 1ion (&40.456). Rod cin:1e (obo )
ind;c .... pM>m<t<r spa for plotted in FiiU"t 3.l (his)llijlhted by .....
lSI"';.).
>dod, and lbeangle or di=ional filt .. (longitudinal and U'OIU>'erse ... dirtions) i.
ir>di.ated wi th ci""" "" .. t";, (60") or. "Iuate In lIli, rnannc<, oI>e full sult. of
ID<lhodolojly dcs<ribcd in Chap .... 2. IMCORR " run 80 ,ima for an pair. II<> then:
may possibly be 80 C<H'l'<wiens for ingle pi , "", .. ion. Ideally, oatb of'l>es<
reveal> thi, is not "'" use. J.\100RR "' .. succ ... ful in findi",. <"""101;",, at pixel
location (840A56) 36 ,ima " "rthe 80 runs. AmooS _ 36 """<$Sf.J <"""Iotions,
Iller< i ",jde range of displooentents, from l .S pi l . ( 17.8 mIyr) up \0 9 pi I. (64.3
mlyr). mot< ...... throefokl discrqw><:y_
52
Three important facts can be derived from the plot of IMCORR' s parameter space
at this location (Figure 3.5). First, changing the reference chip size corresponds to a
change in the offset found by IMCORR. For example, displacements found using the 60
directional filter with a 9x9 kernel size (green stars) are consistently around 3.5 pixels for
search area sizes of 80, 96, and 112 pixels and reference area sizes of 48 pixels. When the
reference area size is increased to 64 pixels, the offsets jump to 4.5 pixels, and when the
reference area is increased to 80 pixels, the offsets jump to 6 pixels. It should not be
concluded that increasing the reference area size will always increase the offset found;
the red squares (150 directional filter with 11x11 kernel) show a decrease in offset with
an increase in reference chip size. Within each group of reference area size, delineated by
the vertical dotted lines, the search area size can change without affecting the magnitude
of the offset found. Therefore, it is the reference area size that directly affects the
magnitude of offset found.
The second important fact to draw from Figure 3.5 is that kernel size also affects
the size of offset found. For example, the offsets found using a 128x128 pixel search
area, 64x64 pixel reference area and 150 directional filter vary considerably depending
on the size of the kernel used in the directional filter. The 3x3, 9x9, and 11x11 kernels
were all successful at finding correlations using the 128x128 search chip and 64x64
reference chip, but they all produced differing offsets, ranging from 5.5 pixels, to 8.5
pixels, to 9 pixels. Since changing the kernel size of the directional filter directly changes
the pixel patterns in the subsequently produced image, with larger kernels having a
greater effect, it is suggested that the kernel size be kept to 3x3 when producing edge
maps.
52
Three important facts can be derived from the plot ofIMCORR's parameter space
at this location (Figure 3.5). First, changing the reference chip size corresponds to a
change in the offset found by IMCORR. For example, displacements found using the 60
0
directional filter with a 9x9 kernel size (green stars) are consistently around 3.5 pixels for
search area sizes of 80, 96, and 112 pixels and reference area sizes of 48 pixels. When the
reference area size is increased to 64 pixels, the offsets jump to 4.5 pixels, and when the
reference area is increased to 80 pixels, the offsets jump to 6 pixels. It should not be
concluded that increasing the reference area size will always increase the offset found;
the red squares (150
0
directional filter with llx11 kernel) show a decrease in offset with
an increase in reference chip size. Within each group of reference area size, delineated by
the vertical dotted lines, the search area size can change without affecting the magnitude
of the offset found. Therefore, it is the reference area size that directly affects the
magnitude of offset found.
The second important fact to draw from Figure 3.5 is that kernel size also affects
the size of offset found. For example, the offsets found using a 128x128 pixel search
area, 64x64 pixel reference area and 150
0
directional filter vary considerably depending
on the size of the kernel used in the directional filter. The 3x3, 9x9, and 11xl1 kernels
were all successful at finding correlations using the 128x128 search chip and 64x64
reference chip, but they all produced differing offsets, ranging from 5.5 pixels, to 8.5
pixels, to 9 pixels. Since changing the kernel size of the directional filter directly changes
the pixel patterns in the subsequently produced image, with larger kernels having a
greater effect, it is suggested that the kernel size be kept to 3x3 when producing edge
maps.
53
The third lesson to be learned from Figure 3.5 is that changing the angle of the
directional filter can change the offset produced by the correlation process. For example,
the offset produced with a 128x128 search chip, 64x64 reference chip and 150
directional filter with a 1 l xl 1 kernel (red box) is 8.5 pixels. Using the same parameters,
except changing the directional filter to 60 (red star), results in a 4 pixel offset. This
same effect can be seen among the green squares and stars as well.
Therefore, in the area upon Tustumena' s vector field where velocity
inconsistencies are found, the IMCORR parameter space shows numerous inconsistencies
in the magnitudes of offsets. The offsets that are plotted in the vector field images
(Figures 3.1 and 3.3) are those with the highest correlation strengths, and at location
(840,456) the offset is 2.5 pixels, which is one of the lesser offsets, and the correlation
strength is 6.368. This offset (circled in red in Figure 3.5) was derived using a 60
directional filter with a 1 l xl 1 kernel size, and search and reference chip sizes of 160x160
and 80x80 pixels, respectively. If one of the larger offsets were chosen, perhaps 9 pixels,
then an inconsistency may not be visible within the vector field, but it would still exist
within IMCORR' s parameter space.
The parameter space for the section of Tustumena' s vector field that is consistent
and apparently glaciologically plausible contains much less variability within the offsets.
Figure 3.6 displays the IMCORR parameter space for pixel location (364,228), located
between A and A' within the area dominated by orange arrows in Figure 3.3 and marked
by a green asterix. The displacements found at this pixel location vary from 19.5 pixels to
25 pixels, a range of 5.5 pixels. While this does not represent a threefold increase as is
seen in Figure 3.5, the discrepancy of 5.5 pixels is similar in magnitude to the
53
The third lesson to be learned from Figure 3.5 is that changing the angle of the
directional filter can change the offset produced by the correlation process. For example,
the offset produced with a 128x128 search chip, 64x64 reference chip and 150
directional filter with a llxll kernel (red box) is 8.5 pixels. Using the same parameters,
except changing the directional filter to 60 (red star), results in a 4 pixel offset. This
same effect can be seen among the green squares and stars as well.
Therefore, in the area upon Tustumena's vector field where velocity
inconsistencies are found, the IMCORR parameter space shows numerous inconsistencies
in the magnitudes of offsets. The offsets that are plotted in the vector field images
(Figures 3.1 and 3.3) are those with the highest correlation strengths, and at location
(840,456) the offset is 2.5 pixels, which is one of the lesser offsets, and the correlation
strength is 6.368. This offset (circled in red in Figure 3.5) was derived using a 60
directional filter with a l1xll kernel size, and search and reference chip sizes of 160x160
and 80x80 pixels, respectively. If one of the larger offsets were chosen, perhaps 9 pixels,
then an inconsistency may not be visible within the vector field, but it would still exist
within IMCORR's parameter space.
The parameter space for the section of Tustumena's vector field that is consistent
and apparently glaciologically plausible contains much less variability within the offsets.
Figure 3.6 displays the IMCORR parameter space for pixel location (364,228), located
between A and A' within the area dominated by orange arrows in Figure 3.3 and marked
by a green asterix. The displacements found at this pixel location vary from 19.5 pixels to
25 pixels, a range of 5.5 pixels. While this does not represent a threefold increase as is
seen in Figure 3.5, the discrepancy of 5.5 pixels is similar in magnitude to the
54
jo
x
C
E
4)
o
a
a.
25
20
15
10
Tustumena Glacier: (x,y) =364, 228
Reference chip size (pixels)
48
9 i
i i
-T-
64
Kernel Size =3x3
. Kernel Size=5x5
- Kernel 5ze* ?7
. Kernel 5*ze$x9
" Kernel Si ze*l 1x11
i
-
80
80
V
- r ~
80
*=6Q deg
[ ] = 150 deg
80 96 112 J 28 144, 1. 60 J 76 192
Search Chip Size (pixels)
Figure 3.6. IMCORR parameter space for pixel location (364,228). Red circle (above)
indicates parameter space for correlation plotted in Figure 3.3 (highlighted by a green
asterix).
discrepancy of 6.5 pixels of Figure 3.5. The vector field appears consistent in this area
because the range of velocities represented by the orange coloration is roughly 54 m/yr,
which would be enough to mask a 5.5 pixel (39.3 m/yr) discrepancy. The parts of
Tustumena Glacier's vector field that appear consistent may actually not be due to the
coarse quantization of the velocity color-coding scheme.
Examination of Figure 3.6 reveals that the area of perceived consistent velocity
near Tustumena Glacier's toe possesses all the faults seen in Figure 3.5. The offset found
by the correlation process changes with changing reference area size, changing kernel
size, and changing angle of directional filter. The results of Figures 3.5 and 3.6 demand a
Qoc;er: (.,y) - JS+,228
"
Rde..,.. chip ",e (pi.elo)
1
"

i 1
!

"
= =
,


"
"
Fii\U't 3.6. IMCORR ".....".. ... """e for pi 1 "", .. ion (M,n S} Red <i.d. (.Ix,...)
iO<l"' .... p.vam .... S!*' for "",,,,,Iarion plotled in Figun: 3.) (highli&lned by ' green
uteri,),
diO<Tq>anCy of6.1 pi .. l. ofFigo= 3.1. The ,'tor fooki ..,.,. .. . ronsi"<nt in !hi> 0/'eI
which _old be <nOIIgh 10 nwI; I. S pi1 (39.l rniyr) The of
.il.,..,.j dWlsin&"'ik of directional filt .... The r=lts of Figura 3.1 IUld 3.6 demand
55
reduction in the parameter space, keeping the reference area size consistent for all
correlations and using only 3x3 kernels for filters. Reducing the IMCORR parameter
space will reduce the inconsistencies produced during the correlation processes but will
also reduce the spatial extent of the resulting velocity field. Use of edge maps, however,
remains mandatory; extensive testing of IMCORR with many filter types without
conversion to binary edge maps results in no, or very few, correlations on a glacier. It is
only when a filtered image is converted to a binary edge map that IMCORR begins to
find an appreciable number of correlations between the two images.
One fundamental question remains unanswered - which among these varying
offsets is correct? The only guide to help answer this is correlation strength. As noted
earlier, in the case of overlapping vectors, the offset with the highest correlation strength
is the one that is displayed in the vector field. Figure 3.7 shows the IMCORR parameter
space for pixel (848,392), color-coded by correlation strength. This location is
represented by the black asterisk in Figure 3.3 southeast of the confluence of HI2 with
Tustumena Glacier. In Figure 3.7 the points with the highest correlation strengths (> 10
and colored red) at pixel location (848,392) have offsets which vary from 2.6 pixels to
4.1 pixels, a difference of 10.7 m/yr in velocity. There are also numerous other points that
have the same offset values (2.5, 3.4, 3.8, and 4.1 pixels) as the high correlation strength
points, but that have lower correlation strengths. For instance, there are points
representing 2.5-2.7 pixels of offset that have correlation strengths ranging from 2 to >
10. And for 3.4 pixels of offset, the value plotted in the vector field, the range of
correlation strengths is narrower, 8 to > 10, but still not uniform. Judging from the
variability of offsets produced by correlations of high strength and the matching offsets
55
reduction in the parameter space, keeping the reference area size consistent for all
correlations and using only 3x3 kernels for filters. Reducing the IMCORR parameter
space will reduce the inconsistencies produced during the correlation processes but will
also reduce the spatial extent of the resulting velocity field. Use of edge maps, however,
remains mandatory; extensive testing of IMCORR with many filter types without
conversion to binary edge maps results in no, or very few, correlations on a glacier. It is
only when a filtered image is converted to a binary edge map that IMCORR begins to
find an appreciable number of correlations between the two images.
One fundamental question remains unanswered - which among these varying
offsets is correct? The only guide to help answer this is correlation strength. As noted
earlier, in the case of overlapping vectors, the offset with the highest correlation strength
is the one that is displayed in the vector field. Figure 3.7 shows the IMCORR parameter
space for pixel (848,392), color-coded by correlation strength. This location is
represented by the black asterisk in Figure 3.3 southeast of the confluence ofHI2 with
Tustumena Glacier. In Figure 3.7 the points with the highest correlation strengths (> 10
and colored red) at pixel location (848,392) have offsets which vary from 2.6 pixels to
4.1 pixels, a difference of 10.7 m/yr in velocity. There are also numerous other points that
have the same offset values (2.5, 3.4, 3.8, and 4.1 pixels) as the high correlation strength
points, but that have lower correlation strengths. For instance, there are points
representing 2.5-2.7 pixels of offset that have correlation strengths ranging from 2 to >
10. And for 3.4 pixels of offset, the value plotted in the vector field, the range of
correlation strengths is narrower, 8 to > 10, but still not uniform. Judging from the
variability of offsets produced by correlations of high strength and the matching offsets
56
Point (x,y)=848,392; Disp=3.4 pixels
Reference chip size
^ 4
w
<u
X
c
u

U
_g
2L
i/i
3
1
I 1 1 : 1 1 : 1 1 1
48 48 48 j 64 64 ! 80 80 80

Correlation < 2
Correlation 2- +
. Correlation 4 - 6
Correlation 6 - 8
Correlation > 10
i i i _
1

*=60 deg
[ ] =150 deg
80 96^ 112 1 28 J 44, 1.60 J 76 192
Search Chip Size (pixels)
Figure 3.7. IMCORR parameter space for pixel location (848,392). Red circle (above)
indicates parameter space for correlation plotted in Figure 3.3 (highlighted by a black
asterix).
produced by correlations of lesser strength, correlation strength alone is not enough to
discriminate between valid offsets and potential blunders. And the question of which of
these offsets is valid remains unanswered.
One helpful future addition to the process of sorting data is the addition of a
minimum correlation strength threshold. This would reduce inconsistencies in the
velocity data, but not entirely eliminate them. A threshold was not utilized in this study
due to the difficulty in producing correlations of any kind; instead, correlations of all
strengths were accepted, and the match with the highest correlation strength at each pixel
location was kept. Without this condition, the resulting vector field would be too sparse
to allow any investigation into IMCORR' s behavior, nor would it allow an analysis of the
glacier.
"
figure 1.7. lMCORR param"' .... SIl""" !Or pi.cl""' .. ;"" (348.392). Red 0;",1. (obo"<)
... space for corTel",ion pion'" in Figure 1.1 (hishligl"ed a block
osteri. ).
000 t.:lpfui futun: odditioo to .... of sorti", data i. the a<lditioo of .
minimum oorrtlOI,,,,, SItOn;;Ih <hteshokL This ",'uk! 1'1"". i,..,.,.,.i ..... i .. in ....
d"" to .... dilToculty in producing """"I .. ..",. ohny kind: ; ... <ad. """"loti.,.,. ofoll
gla<ia.
57
3.4 Reduction of IMCORR Parameter Space and Change
in Methodology
The results of the in-depth analysis of Tustumena Glacier's velocity field and
parameter space reveal the need to reduce the parameter space utilized when running
IMCORR. The reference area size must be kept consistent if multiple runs of IMCORR
are being used in order to prevent discrepancies among the offsets found. Likewise, all
filters should use only a 3x3 kernel size to prevent offset inconsistencies. For the
moment, the two directional filters, longitudinal and transverse, are kept as they are seen
as being complimentary to one another and vector fields produced using the two
directional filters are examined carefully for hints of discrepancies. Therefore, the
IMCORR parameter space is reduced to a single search area size (128x128 pixels), a
single reference area size (32x32 pixels), and two directional filters (longitudinal and
transverse) each using only a 3x3 kernel. Subsequent images are then classified using a
decision tree to produce two edge maps, one with longitudinal ice surface features
highlighted and one with transversely oriented ice surface features highlighted. The
choice of search and reference chip sizes is from experience running IMCORR many
times and from suggestions from other researchers who have performed similar work and
made recommendations regarding chip sizes (Berthier et.al., 2003; Kaab et.al., 2005;
Kaab & Vollmer, 2000; Scambos et.al., 1992).
While IMCORR' s parameter spacing was being reduced, which will simplify
preprocessing of the images, reduce IMCORR processing time, and reduce
postprocessing time, the opportunity was taken to also simplify the preprocessing steps
further while also improving accuracy. The previous method of image-to-image
3.4 Reduction ofIMCORR Parameter Space and Change
in Methodology
The results of the in-depth analysis of Tustumena Glacier's velocity field and
parameter space reveal the need to reduce the parameter space utilized when running
IMCORR. The reference area size must be kept consistent if multiple runs ofIMCORR
are being used in order to prevent discrepancies among the offsets found. Likewise, all
filters should use only a 3x3 kernel size to prevent offset inconsistencies. For the
57
moment, the two directional filters, longitudinal and transverse, are kept as they are seen
as being complimentary to one another and vector fields produced using the two
directional filters are examined carefully for hints of discrepancies. Therefore, the
IMCORR parameter space is reduced to a single search area size (128x128 pixels), a
single reference area size (32x32 pixels), and two directional filters (longitudinal and
transverse) each using only a 3x3 kernel. Subsequent images are then classified using a
decision tree to produce two edge maps, one with longitudinal ice surface features
highlighted and one with transversely oriented ice surface features highlighted. The
choice of search and reference chip sizes is from experience running IMCORR many
times and from suggestions from other researchers who have performed similar work and
made recommendations regarding chip sizes (Berthier et.al., 2003; Kaab et.al., 2005;
Kaab & Vollmer, 2000; Scambos et.al., 1992).
While IMCORR's parameter spacing was being reduced, which will simplify
preprocessing of the images, reduce IMCORR processing time, and reduce
postprocessing time, the opportunity was taken to also simplify the preprocessing steps
further while also improving accuracy. The previous method of image-to-image
58
georeferencing to properly align two satellite images before attempting correlation can be
eliminated. At first, this seems counterintuitive as the images must be precisely aligned to
achieve accurate correlation results. However, side-stepping the georeferencing process
allows for a more accurate systematic error to be quantified and removed during
postprocessing. The effective removal of the systematic error during postprocessing
achieves the same result as the georeferencing process, only it is more accurate. Consider
that during the typical georeferencing process, the two images are co-registered using a
second-degree polynomial that results in a georeferencing error of roughly 1 pixel, but
that varies in magnitude and direction across the images according to the polynomial; it is
not linear. During postprocessing, when the systematic error is statistically measured
using the vectors on stable ground (off glacier) and then removed via subtraction, the
subtraction is performed in a linear manner. Of course, this does not fully remove the
systematic error and the residual error left over is not truly representative of the
remaining random error.
Figure 3.8 shows an example of a vector field outside Tustumena Glacier derived
from images that were georeferenced using a second degree polynomial. There are
clusters of vectors that point west and some that point south and a few isolated vectors
that point north or directions in between. The mean total displacement for this vector
field is 1.38 0.84 pixels (mean 1 standard deviation), or 9.89 5.99 m/yr, and the
mean x and y components are -0.66 and 0.56 pixels, respectively. This is not a uniform
vector field, so linear subtraction of the mean will not adequately remove systematic
error. After subtraction of the mean error, the residual error (Figure 3.9) is 1.35
0.28pixels (9.63 1.99 m/yr) and the residual x and y components are -0.002 and
58
georeferencing to properly align two satellite images before attempting correlation can be
eliminated. At first, this seems counterintuitive as the images must be precisely aligned to
achieve accurate correlation results. However, side-stepping the georeferencing process
allows for a more accurate systematic error to be quantified and removed during
postprocessing. The effective removal of the systematic error during postprocessing
achieves the same result as the georeferencing process, only it is more accurate. Consider
that during the typical georeferencing process, the two images are co-registered using a
second-degree polynomial that results in a georeferencing error of roughly 1 pixel, but
that varies in magnitude and direction across the images according to the polynomial; it is
not linear. During postprocessing, when the systematic error is statistically measured
using the vectors on stable ground (off glacier) and then removed via subtraction, the
subtraction is performed in a linear manner. Of course, this does not fully remove the
systematic error and the residual error left over is not truly representative of the
remaining random error.
Figure 3.8 shows an example of a vector field outside Tustumena Glacier derived
from images that were georeferenced using a second degree polynomial. There are
clusters of vectors that point west and some that point south and a few isolated vectors
that point north or directions in between. The mean total displacement for this vector
field is 1.38 0.84 pixels (mean 1 standard deviation), or 9.89 5.99 m/yr, and the
mean x and y components are -0.66 and 0.56 pixels, respectively. This is not a uniform
vector field, so linear subtraction of the mean will not adequately remove systematic
error. After subtraction of the mean error, the residual error (Figure 3.9) is 1.35
0.28pixels (9.63 1.99 m/yr) and the residual x and y components are -0.002 and
Figure 3.8. Vectors outside Tustumena Glacier on stable ground representing offset due to
georeferencing with polynomial.
Figun: 3.1. \lo;:toB oolSide T .... umcn:o Glacia on .... 1e groond off"" d<>< '"
gooorlcrcn;:;ng willi
Fil"'" ) ,9. Rnid .. I. aft ..... 1>1""""", or mean ond Y m<>r rrod..:<:d (rom g><e(Cfef><'''i " ' i l ~
""I "",,,,,i. l ,

61
-0.0004, respectively. The overall density of the vectors is diminished and the residual x
and y components are quite small, so linear subtraction of the mean error had some
positive impact on the accuracy of the velocity field. However, the mean total
displacement has been reduced by only 0.03 pixels, from 1.38 to 1.35, and the residuals
in Figure 3.9 still exhibit clustering; therefore, it is difficult to argue that the systematic
error has been effectively removed.
Now, consider the effect of side-stepping the image-to-image georeferencing
procedure. The two images are already aligned approximately within 1 pixel of one
another upon receipt from the USGS. This can be verified simply by flickering between
the two images using ENVI. This 1 pixel misalignment is linear across the extent of the
cropped images and points in a single direction. During postprocessing, when the
systematic error is statistically determined, the mean can be more accurately quantified
because the offset between the images is linear and unidirectional (as opposed to the
previous polynomial offsets, which vary in magnitude and direction). Therefore,
subtraction of a linear mean systematic error from a linear offset field effectively
removes the systematic error and leaves behind only random error outside the glacier on
stable land. And subtraction of the precisely determined mean systematic error from
vectors upon the glacier improves the accuracy of the velocity field.
To also aid in quantifying the systematic error, a land mask was introduced into
the process. The land mask is used to discriminate between vectors upon well-
illuminated, stable ground and those on snow, ice, water, DEM voids, clouds, or dark
shadows on the lee side of mountain ridges. The reason for this is to isolate the vectors
61
-0.0004, respectively. The overall density ofthe vectors is diminished and the residual x
and y components are quite small, so linear subtraction of the mean error had some
positive impact on the accuracy ofthe velocity field. However, the mean total
displacement has been reduced by only 0.03 pixels, from 1.38 to 1.35, and the residuals
in Figure 3.9 still exhibit clustering; therefore, it is difficult to argue that the systematic
error has been effectively removed.
)low, consider the effect of side-stepping the image-to-image georeferencing
procedure. The two images are already aligned approximately within I pixel of one
another upon receipt from the USGS. This can be verified simply by flickering between
the two images using ENVr@ This I pixel misalignment is linear across the extent ofthe
cropped images and points in a single direction. During postprocessing, when the
systematic error is statistically detemlined, the mean can be more accurately quantified
because the offset between the images is linear and unidirectional (as opposed to the
previous polynomial offsets, which vary in magnitude and direction). Therefore,
subtraction of a linear mean systematic error from a linear offset field effectively
removes the systematic error and leaves behind only random error outside the glacier on
stable land. And subtraction of the precisely determined mean systematic error from
vectors upon the glacier improves the accuracy of the velocity field.
To also aid in quantifying the systematic error, a land mask was introduced into
the process. The land mask is used to discriminate between vectors upon well-
illuminated, stable ground and those on snow, ice, water, DEM voids, clouds, or dark
shadows on the lee side of mountain ridges. The reason for this is to isolate the vectors
62
that truly represent systematic error from those vectors that are blunders, thus improving
the accuracy of the statistical analysis that determines the mean systematic error.
An example of the results from this new procedure is seen in Figures 3.10 and
3.11. Figure 3.10 shows the offsets IMCORR found on stable ground, minus blunders
due to DEM voids, clouds, snow, ice, water bodies, etc. This linear offset field represents
the systematic error, which in turn represents the misalignment of the two images.
Therefore, even though the two images were not georeferenced, their misregistration can
be very precisely quantified. The mean systematic error (misalignment) is 1.19 0.20
pixels (8.47 1.42 m/yr). After subtraction of the mean systematic error, the mean
residual error is 0.24 0.16 pixels (1.74 1.1 m/yr). The random error left in the vector
field outside the glacier is less than
l
A pixel. When this random error is broken down into
its x and y components, it is possible to judge just how truly random the remaining error
is. The mean residual error in the x direction is 4.93x10"
7
pixels and the mean residual
error in the y direction is 1.15xl0"
6
pixels. Knowing that truly random vectors would
have a mean of zero because +x components would cancel - x components and +y
components would cancel - y components, the residual error is certainly random because
the mean x and y components are approaching zero (being measured in micropixels).
This randomness is illustrated in Figure 3.11, which shows the residual error after
subtraction of the systematic error. The vectors are small and oriented in all directions,
suggesting randomness and effective removal of the systematic error.
3.5 Tustumena Vector Field From Reduced IMCORR Parameter Space
IMCORR' s parameter space was reduced to the use of a single search area
(128x128 pixels), a single reference area (32x32 pixels), and the use of a single kernel
62
that truly represent systematic error from those vectors that are blunders, thus improving
the accuracy of the statistical analysis that determines the mean systematic error.
An example of the results from this new procedure is seen in Figures 3.10 and
3.11. Figure 3.10 shows the offsets IMCORR found on stable ground, minus blunders
due to DEM voids, clouds, snow, ice, water bodies, etc. This linear offset field represents
the systematic error, which in tum represents the misalignment ofthe two images.
Therefore, even though the two images were not georeferenced, their misregistration can
be very precisely quantified. The mean systematic error (misalignment) is 1.19 0.20
pixels (8.47 1.42 m/yr). After subtraction of the mean systematic error, the mean
residual error is 0.24 0.16 pixels (1. 74 1.1 m/yr). The random error left in the vector
field outside the glacier is less than 14 pixel. When this random error is broken down into
its x and y components, it is possible to judge just how truly random the remaining error
is. The mean residual error in the x direction is 4.93x10-
7
pixels and the mean residual
error in the y direction is 1.15x 1 0-
6
pixels. Knowing that truly random vectors would
have a mean of zero because +x components would cancel -x components and +y
components would cancel-y components, the residual error is certainly random because
the mean x and y components are approaching zero (being measured in micropixels).
This randomness is illustrated in Figure 3.11, which shows the residual error after
subtraction of the systematic error. The vectors are small and oriented in all directions,
suggesting randomness and effective removal of the systematic error.
3.5 Tustumena Vector Field From Reduced IMCORR Parameter Space
IMCORR's parameter space was reduced to the use of a single search area
(128x128 pixels), a single reference area (32x32 pixels), and the use of a single kernel
Fig"'" 1 Ill. VOC!OB "" "able ground IaIlllin8 rrom lill<"- offici oO.,.gcs wid"""
iJOOfrlcrrno:in8 tho1 rcpres<n1 .ysI<maIH: error.
65
size (3x3) in the two directional filters. As before, the images produced from the two
directional filters (transverse and longitudinal) were transformed into binary edge maps
using a decision tree classifier. This step, creating binary edge maps, has proven to be
essential because numerous trial runs of IMCORR have shown that only edge maps
produce viable correlations on these glaciers. Running IMCORR on PCA images, or
images that have been filtered via high pass, low pass, median, Sobel, Roberts,
directional, Laplacian, Gaussian, or texture filters will not produce any correlations on
these glaciers. It is only when a filtered image is transformed into a binary edge map that
IMCORR will successfully find correlations. The binary edge maps maximize the
contrast of the satellite images, enhancing subtle features to allow more correlations to be
located between the images. The most successful of these filter/edge map combinations
are the transverse and longitudinal directional filters/edge maps, hence their inclusion in
the reduced IMCORR parameter space preprocessing.
The vector field produced for Tustumena Glacier using the reduced IMCORR
parameter space (Figure 3.12) is spatially less complete than was achieved using the full
IMCORR parameter space (Figure 3.3), as expected. Even though the vector field is less
densely populated with velocity vectors, close examination reveals that the same
inconsistencies still exist. Within the heart of the longitudinal flow, southwest of where
HI2 converges with Tustumena, there are small clusters of green vectors (60-85 m/yr)
immediately adjacent to red vectors (> 135 m/yr), which means the ice has potentially
doubled its speed within a few pixels laterally. Farther upglacier, the exact same scenario
can be seen - green vectors immediately adjacent to red vectors. And just southeast of
HI2' s confluence with Tustumena is a small cluster of blue vectors (10-35 m/yr) situated
65
size (3x3) in the two directional filters. As before, the images produced from the two
directional filters (transverse and longitudinal) were transformed into binary edge maps
using a decision tree classifier. This step, creating binary edge maps, has proven to be
essential because numerous trial runs oflMCORR have shown that only edge maps
produce viable correlations on these glaciers. Running IMCORR on PCA images, or
images that have been filtered via high pass, low pass, median, Sobel, Roberts,
directional, Laplacian, Gaussian, or texture filters will not produce any correlations on
these glaciers. It is only when a filtered image is transformed into a binary edge map that
IMCORR will successfully find correlations. The binary edge maps maximize the
contrast of the satellite images, enhancing subtle features to allow more correlations to be
located between the images. The most successful of these filter/edge map combinations
are the transverse and longitudinal directional filters/edge maps, hence their inclusion in
the reduced IMCORR parameter space preprocessing.
The vector field produced for Tustumena Glacier using the reduced IMCORR
parameter space (Figure 3.12) is spatially less complete than was achieved using the full
IMCORR parameter space (Figure 3.3), as expected. Even though the vector field is less
densely populated with velocity vectors, close examination reveals that the same
inconsistencies still exist. Within the heart of the longitudinal flow, southwest of where
HI2 converges with Tustumena, there are small clusters of green vectors (60-85 m/yr)
immediately adjacent to red vectors (> 135 m/yr), which means the ice has potentially
doubled its speed within a few pixels laterally. Farther upglacier, the exact same scenario
can be seen - green vectors immediately adjacent to red vectors. And just southeast of
HI2's confluence with Tustumena is a small cluster of blue vectors (10-35 m/yr) situated
66
Figure 3.12. Tustumena vector field produced with reduced IMCORR parameter space.
Red line indicates location of transect used for longitudinal profiles shown in Figures
3.23 to 3.26.
between two clusters of red vectors (> 135 m/yr). These velocity inconsistencies do not
represent physical reality and suggest there is still a problem with the process.
Even though IMCORR' s parameter space was reduced, which is justifiable
considering that multiple reference area sizes and multiple kernel sizes produced
discrepancies in the offsets found, there are still inconsistencies within the vector field on
Tustumena Glacier. Possible explanations for the problem include a fundamental problem
within IMCORR' s correlation algorithm (not likely considering its past performance in
published articles). Or, perhaps that Harding Icefield's outlet glaciers are not suitable for
correlation due to ablation, deformation, or high velocity changing ice surface features
too drastically for consistent correlations across a two-year time span. Or, the binary edge
Fipr< 3. 12. Tusturnena .."or fi.,d prodoced wilh r e < I ~ IMCORR patam .. .,. """ .
Redlin< irodio., .. "",.,ion of_, uKd (01 Iongi,udi",,1 prom ... how" in FiiUrei
3.23 to 326.
rep":",,, physioo.l n:o.Ii'y ond "'Ii'" ~ i , l1i1l probl<m wilh "'" procns.
dlOCrcpanci .. in the offiets found. ~ .... l1i1l in>n>iSl<n<i .. wilhin the ,-""'" fi.ld on
T ... um .... GI..,ia. P"";bl. cxpw..tionl r<>< the problem i,.,dod< . 1Undomm<a1 problem
67
maps, while facilitating correlations when typical filtering cannot, may also fool the
correlation program into finding correlations where none exist because of their stark,
black and white pixel patterns that look similar in multiple locations. All of these
possibilities can be tested, either through the use of an alternative correlation program
(COSI-Corr) whose results may be compared to IMCORR, or by using sequential
imagery that spans a single ablation season and comparing the results with those
produced from a two-year time span.
3.6 COSI-Corr Vector Fields for Tustumena and McCarty Glaciers
The same 2003 and 2005 ASTER data were processed using COSI-Corr' s
frequential and statistical correlator engines to assess whether COSI-Corr would produce
vector fields without the velocity inconsistencies seen in the IMCORR-derived vector
fields. This also allows a direct comparison of the offsets found by each of the three
correlation procedures: COSI-Corr's frequential correlator, COSI-Corr' s statistical
correlator, and IMCORR, which uses a statistical correlator, to see whether the three
correlator engines produce similar results in regards to spatial extent of vector field,
magnitude of offsets found at identical pixel locations, and the level of image filtering
necessary to produce a vector field.
Concerning the level of filtering required to produce a vector field, COSI-Corr' s
two correlator engines are both capable of producing vector fields when given minimally
processed images. Whereas IMCORR requires edge maps to find any offsets on a glacier,
COSI-Corr can produce correlations using unfiltered images such as ASTER band 3N,
filtered or transformed images (high pass, low pass, median, directional, PCA), and
binary edge maps. Both of COSI-Corr's correlator engines are more robust than
maps, while facilitating correlations when typical filtering cannot, may also fool the
correlation program into finding correlations where none exist because of their stark,
black and white pixel patterns that look similar in multiple locations. All of these
possibilities can be tested, either through the use of an alternative correlation program
(COSI-Corr) whose results may be compared to IMCORR, or by using sequential
imagery that spans a single ablation season and comparing the results with those
produced from a two-year time span.
3.6 COSI-Corr Vector Fields for Tustumena and McCarty Glaciers
67
The same 2003 and 2005 ASTER data were processed using COSI-Corr's
frequentia1 and statistical corre1ator engines to assess whether COSI-Corr would produce
vector fields without the velocity inconsistencies seen in the IMCORR-derived vector
fields. This also allows a direct comparison of the offsets found by each of the three
correlation procedures: COSI-Corr's frequentia1 corre1ator, COSI-Corr's statistical
corre1ator, and IMCORR, which uses a statistical correlator, to see whether the three
corre1ator engines produce similar results in regards to spatial extent of vector field,
magnitude of offsets found at identical pixe110cations, and the level of image filtering
necessary to produce a vector field.
Concerning the level of filtering required to produce a vector field, COSI-Corr's
two corre1ator engines are both capable of producing vector fields when given minimally
processed images. Whereas IMCORR requires edge maps to find any offsets on a glacier,
COSI-Corr can produce correlations using unfiltered images such as ASTER band 3N,
filtered or transformed images (high pass, low pass, median, directional, PCA), and
binary edge maps. Both ofCOSI-Corr's corre1ator engines are more robust than
68
Figure 3.13. Tustumena velocity field produced with COSI-Corr statistical correlator and
ASTER band 3N images.
IMCORR' s, which allows the user more flexibility in choosing imagery to correlate, and
because filtering and creation of edge maps is unnecessary, preprocessing time is
reduced.
The velocity inconsistencies that were problematic in EMCORR-derived vector
fields on Tustumena Glacier are also present in COSI-Corr-derived vector fields. They
are particularly noticeable in Figures 3.13 and 3.14, which were produced using COSI-
Corr' s statistical correlator with ASTER band 3N and edge maps, respectively. In
numerous places, fast moving ice (red and orange vectors) is adjacent to slow moving ice
(purple, blue, or aqua vectors). COSI-Corr's statistical correlator fares no better than
IMCORR' s with regards to producing unrealistic velocity gradients. The vector fields on
Tustumena Glacier produced by COSI-Corr's frequential correlator are more consistent
an: partK:uWly ootkcilblc in Fi""", 1, 11 and 1.14. "'hi<h ",en: produced using COSI
Fill .... 1.13. T ... um .... "cloci,y ~ . I d produ<ed ",oil COSI-Corr ota,i"i 1 ton'<llIOf and
ASTER b&nd 3N imap.
69
Figure 3.14. Tustumena velocity field produced with COSI-Corr statistical correlator and
binary edge maps.
(Figures 3.15 and 3.16) than those produced using statistical correlators, but
inconsistencies still exist, though they are less extreme. For example, in Figure 3.15,
there are green vectors (45-60 m/yr) adjacent to purple vectors (< 15 m/yr) roughly 3 km
downglacier from where HI2 merges with Tustumena, and a few kilometers farther
downglacier at the edge of the shear crevasses along the southern margin, there is a small
cluster of yellow vectors (60-75 m/yr) adjacent to a few purple vectors (< 15 m/yr).
Although these are small areas of inconsistency, they still represent a tripling or
quintupling of velocity over a very short distance; therefore, they are unrealistic. In
general, the vector fields on Tustumena Glacier are more consistent when derived from
ASTER band 3N images and less consistent when derived from edge maps, but the edge
maps produce more vectors.
The vector fields for McCarty Glacier follow the same patterns as those seen in
Tustumena Glacier's vector fields. The velocity inconsistencies are present, and are quite
3.14. TOll""' .... "elo<i1y fiekl ]>/Odooed .. -ilh COSI.c"", <wiSlical correl..." ond
binary edge mopt.
from wbrr< 1112 ..... 'i"S wilh TUSlurnem.. ond f ... ki\omel .... fartM
., 11M: cdS< ofllM: ob<ar """ ...... oIon& the _!hem margin. i lrDllIt
<I....,. of yellow ..."otS {60-7S mI)T) odja<alt to f.,... purple ,'torS I S milT)'
Iheoe .... ""all ...... of i"""",i"enty. tlIey "ilt repraent tripliltj; or
Figure 3.15. Tustumena velocity field produced with COSI-Corr frequential correlator
and ASTER band 3N images.
Figure 3.16. Tustumena velocity field produced with COSI-Corr frequential correlator
and edge maps.
Figure 3_1 S, T .. lumena "elo<i'y field prod"" ... ,"'ith COSI-Con- Imq.....,iat oorn:l"""
and ASTER Nnd J:-" i""'lI<1.
figure 3. 16. T ... """"", "elocily r 1d pn><loc'" ,"' ilh COSI-Con- Imq.onlial """"I"""
andoolj!<m>ps.
71
noticeable, in the vector field derived using IMCORR (Figure 3.17) in which there are
large clusters of red vectors (> 135 m/yr) adjacent to purple, blue, or aqua vectors (< 10
m/yr to 60 m/yr). The two vector fields on McCarty Glacier produced via COSI-Corr' s
statistical correlator (Figures 3.18 and 3.19) also show clusters of red vectors in close
proximity to vectors representing slower velocities. The vector field produced using the
statistical correlator and edge maps (Figure 3.18) is spatially extensive, which highlights
the problem of velocity discontinuity. There are large areas of fast moving ice in close
proximity to large areas of slow moving ice with no apparent physical basis for the rapid
change in speed. The vector field derived using the statistical correlator and ASTER band
3N (Figure 3.19) is less populated, but the velocity discontinuity problem is still evident
as clusters of red vectors (> 90 m/yr) are adjacent to clusters of purple vectors (< 15
Figure 3.17. McCarty velocity field produced using IMCORR reduced parameter space.
"
1"'11<>1 ....... of red ... ,,''''' (> l J ~ mIyt) ""j""on, 10 purple, blue. or "I" ,'ectors (': 10
mlyr to 60 m I y r ~ Tho "'-0 "tor fiolds.,., McCany Glacier prod"" ... vi. COSI-Con"".
FiiU" 3_17. ,\lcCany ,'.Jocily r,tld pr<><looed "';ng IMCORR mlUC<d ""nom"' ... """' .
V/'
o
*0 70 45 M/YR
45 TO 60 M/YR
60 10 ? M/ YR
75 TC 90 M/ YR
> 90 M/ YR
Figure 3.19. McCarty velocity field produced using COSI-Corr statistical correlator and
ASTER band 3N images.
~
,
.c.
Fill"'" 3.18. McCarty ,'.Iodly roold prodL>C<d u.sinll COSI-COIT SUli .. ;o&! o""",l.,or .....
edge maps.
F i ~ 3_19. McC",y ,..-looily r..ld pnxIU<! .. inl COSI.co.. >I. ,illie. , """"1.0,,,," and
ASTER band ):-1 imat!c<..
m/yr). The two vectors fields produced using COSI-Corr's frequential correlator are
markedly different (Figures 3.20 and 3.21). The vector field derived from ASTER band
3N images is the most spatially consistent of McCarty' s vector fields and shows
inconsistencies of lesser magnitude than the other vector fields. For example, there are a
few locations where green or yellow vectors (45-60 and 60-75 m/yr) are adjacent to
purple vectors (< 15 m/yr) and these areas are still physically unlikely. The vector field
on McCarty Glacier produced using the frequential correlator with edge maps is mostly
absent of velocity inconsistencies of the same magnitude as the other vector fields.
However, there are a few instances where red vectors (> 90 m/yr) are adjacent to green
vectors (45-60 m/yr), which is a reduction in speed of 33 to 50%, which is not realistic.
Overall, COSI-Corr' s frequential correlator provides the most consistent velocity
Figure 3.20. McCarty velocity field produced using COSI-Corr frequential
correlator and ASTER band 3N images.
m!)T). Tho ,,..,, \"10 .. fie'" pro<lu.ced .... nK COSl-CorT', f""lu"';01 ton'<lllOr ....
mar\;edly diff<m11 (Fi"",").2() ond Tho , ........ fi.1d d.rh-ed !'rom ASTER _
lS im .... i, ,/Ie JI'IOSI """,i"e,,, of McCony" ""'lOr fiolds ..... sM"'"
, '",\On. (4S-60 ""yr). which to. redu..-tion in >pocd on] to SO%, "" hich i. no< reali .. ic.
.

<.
Fivure J.W. ,\lcCany velooi,y field usinll COSI-COIT fit,q.",uial
C<>rT<lalor and ASTER Nnd )S imog ...
"
74
Figure 3.21. McCarty velocity field produced using COSI-Corr frequential
correlator and edge maps.
field with fewer (and less extreme) examples of fast and slow ice adjacent to one another.
The difference in velocities produced by IMCORR and COSI-Corr' s statistical correlator
are difficult to explain. Both programs use the same algorithm at their core to produce a
correlation surface with a peak, and both fit the correlation peak with a mathematical
equation to interpolate to subpixel accuracy. The different results likely come from their
differing treatment of the 3-D correlation surface. IMCORR uses either an elliptical
paraboloid, a Gaussian curve, or a reciprocal paraboloid equation for interpolation
depending on which curve fits the peak best (reference IMCORR code), while COSI-Corr
uses only a quadratic equation for interpolation (Sebastian Leprince, written
communication). IMCORR will not always provide a match. A flag is set indicating a
successful match or not, which helps screen out weak correlations depending on the
morphology of the correlation surface, the proximity of any subsidiary peaks to the main
Figurt l.ll. McCony .'.Jocily r..1d procIud ";,,, COSI.(:OIT fr<q<!<f\ti>l
com:laIor and ods< maps.
"
field .. ith r ,Of land I .... x""",.) oxlUllplcs off .. , and .Iow K:. odj..:cn, 10 ont lIIO<h<f
.... diff"ullio ... plain. lloIh P"'II"l"" US< til< sam Iw>rithm .. lheir <or< '" prod""
com:l.,ion surf"", "ith peak. ond both rll tho """"I.lion p<2k " ' illl malbcmati ...
diff";ng If., .. "",,,, .. flllt J-O com:lOIion """",, . .... oilh OIl .Iliptical
. G",,"ian ."" ... or . r:ipnxal panboloid "'I1Wion for int<rpolatiorl
"""JIho1otJl .. ftho com:l.tion ",rfoc Ih< proximity of any .... Midiary P<'>k. to ..... main
75
peak, the proximity of the main peak to the edge of the search chip, and the shape of the
peak. COSI-Corr always provides a match regardless of the peak' s morphology and
surrounding circumstances (which may explain why COSI-Corr's statistical correlator
produced more vectors than IMCORR), and then gives a SNR as a gauge of the
confidence of the match. Because of these differences, it is believed IMCORR is more
rigorous and is preferred over COSI-Corr's statistical correlator, even though IMCORR
requires edge maps to produce results. Use of ASTER band 3N (as suggested by Leprince
et al., 2007) produced more consistent results than use of edge maps for Tustumena
Glacier, while the opposite is true for McCarty Glacier. The most spatially consistent
results for McCarty Glacier were produced using the frequential correlator with edge
maps.
Considering COSI-Corr-derived vector fields possess the same velocity
inconsistencies as those derived by IMCORR, the suggestion earlier that there may be a
fundamental problem with the statistical correlation algorithm within IMCORR is now
proven false. Also, because the velocity inconsistencies are present in vector fields
derived from ASTER band 3N images as well as from edge maps (although more
apparent within vector fields derived from edge maps), the idea that the problem is
caused by the edge maps is also proven false (but the problem may be exacerbated by
them). The final questions to be answered are whether the three correlator engines
produce offsets of similar magnitude at identical pixel locations (are the correlators
finding the same results at the same locations?) and whether the velocity inconsistencies
are a product of too drastic ice surface change between the sequential images caused by
ablation over two seasons and/or high velocity and deformation.
75
peak, the proximity of the main peak to the edge of the search chip, and the shape of the
peak. COSI-Corr always provides a match regardless of the peak's morphology and
surrounding circumstances (which may explain why COSI-Corr's statistical correlator
produced more vectors than IMCORR), and then gives a SNR as a gauge of the
confidence of the match. Because of these differences, it is believed IMCORR is more
rigorous and is preferred over COSI-Corr's statistical correlator, even though IMCORR
requires edge maps to produce results. Use of ASTER band 3N (as suggested by Leprince
et aI., 2007) produced more consistent results than use of edge maps for Tustumena
Glacier, while the opposite is true for McCarty Glacier. The most spatially consistent
results for McCarty Glacier were produced using the frequential correlator with edge
maps.
Considering COSI-Corr-derived vector fields possess the same velocity
inconsistencies as those derived by IMCORR, the suggestion earlier that there may be a
fundamental problem with the statistical correlation algorithm within IMCORR is now
proven false. Also, because the velocity inconsistencies are present in vector fields
derived from ASTER band 3N images as well as from edge maps (although more
apparent within vector fields derived from edge maps), the idea that the problem is
caused by the edge maps is also proven false (but the problem may be exacerbated by
them). The final questions to be answered are whether the three correlator engines
produce offsets of similar magnitude at identical pixel locations (are the correlators
finding the same results at the same locations?) and whether the velocity inconsistencies
are a product of too drastic ice surface change between the sequential images caused by
ablation over two seasons and/or high velocity and deformation.
76
3.7 Tustumena and McCarty Glaciers Longitudinal Velocity Profiles
To directly compare the performance of all three correlator engines, longitudinal
velocity profiles are constructed from Tustumena and McCarty Glaciers' velocity fields.
The longitudinal profiles for Tustumena Glacier were taken along a route from the toe
upglacier to the snowline following a seemingly erratic route, but one that crosses the
most pixels populated with correlations to allow for a better comparison between each
correlator engine' s performance (Figure 3.12). The longitudinal profile for Tustumena
Glacier in Figure 3.22 displays the results of applying both of COSI-Corr' s correlation
routines to ASTER band 3N images and applying IMCORR to edge maps. In the western
third of the profile, which includes the glacier toe, the velocities computed by the three
correlator engines are most in agreement, being within 25 m/yr of each other, except for
Tustumena Longitudinal Velocity Profile
_ COSI-Corr freqential correlator, ASTER band 3N
_ COSI-Corr statistical correlator, ASTER band 3N
- IMCORR edge maps
250
JT
200
100 200 300 400 500 600
Distance from west to east (pixels)
700 800 900
Figure 3.22. Tustumena longitudinal velocity profile showing results from application of
COSI-Corr frequential and statistical correlators to ASTER band 3N images and
application of IMCORR to edge maps.
"
),1 I I!S!U!!!<!!I iDd MoCi/ly Glaoim LongillldiryJ Vd<><j'Y l'nlfiki
__ pixel. p<)!HIlatod with COI11:I.,i"", '" lHow for bcllcr compari_ bclworn u"h
""",,1.lOr engine" paf{)",",n,,,, (Fiaun: l.l2). Tho Ionii,odinal prom. for TlUtum ....
01",,;.,. in Fi&W'< J displays the reo"'" or applyini both "rCOSI-COIT"' """"Wi""
mOline< Lo ASTER band 3);1 i""ies and applyini IMCORR to edge mops. In .... ,. ... ern

=
..
-
-.:.. __ ..... _ ..
---
-

-
I
" .
..,?i
I

\

'r'
I

-,
,
1.

-
-----
------ - -
Fi",,. 1.22. T ... wrten> I""giwdinal ,'.Iocj,y "",me ....".ina !'qIll .. from appU" .. ion of
COSI-COIT frequen,iol and corrtWon Lo ASTER band 3:0< imasn and
apphcOlioo of I).lCORR 10 Is<' m .....
77
one notable spike in the statistical correlator's curve from 137 m/yr to 50 m/yr at the 250
pixel mark. Beyond this region, beginning 300 pixels east of the toe, IMCORR' s and
COSI-Corr' s results diverge considerably. While IMCORR' s results continue to show
increasing velocities upglacier, proceeding to speeds of 200 m/yr and greater, COSI-
Corr' s two correlator engines produce considerably slower velocities. The statistical
correlator produces speeds ranging from 125-150 m/yr down to 50 m/yr and lower,
fluctuating erratically within this range. The frequential correlator produced the slowest
speeds, ranging from 70 m/yr to 37 m/yr, with the least fluctuations in velocity. The
erratic fluctuations in velocity produced by the correlation routines, particularly
IMCORR and COSI-Corr' s statistical correlator, suggest that the programs cannot
consistently find matching pixel patterns within the same distance from one location to
the next using the ASTER images. This is a hint that the pixel patterns between the 2003
and 2005 images have changed sufficiently to make correlation between them unreliable.
Similar trends are found in Figure 3.23, which displays COSI-Corr' s and
IMCORR' s results when applied to edge maps. The three correlator engines are most in
agreement in the western third of the profile, with typically no more than 25 m/yr
separating the three. At the 300 pixel mark, the frequential correlator diverges from the
other two. As before, the frequential correlator produces lower speeds and is more
consistent in magnitude, although the velocities it produces still fluctuate unrealistically
between 130 to 50 m/yr, with most points hovering around 100 m/yr. The statistical
correlator is more erratic than the frequential, producing speeds that range from 200 m/yr
to 12 m/yr and showing several dramatic spikes in which velocity doubles or triples
suddenly. Overall, the edge maps produced the most erratic velocity results and the most
77
one notable spike in the statistical correlator's curve from 137 mlyr to 50 mlyr at the 250
pixel mark. Beyond this region, beginning 300 pixels east of the toe, IMCORR's and
COSI-Corr's results diverge considerably. While IMCORR's results continue to show
increasing velocities upglacier, proceeding to speeds of200 mlyr and greater, COSI-
Corr's two correlator engines produce considerably slower velocities. The statistical
correlator produces speeds ranging from 125-150 m/yr down to 50 mlyr and lower,
fluctuating erratically within this range. The frequential correlator produced the slowest
speeds, ranging from 70 mlyr to 37 mlyr, with the least fluctuations in velocity. The
erratic fluctuations in velocity produced by the correlation routines, particularly
IMCORR and COSI-Corr's statistical correlator, suggest that the programs cannot
consistently find matching pixel patterns within the same distance from one location to
the next using the ASTER images. This is a hint that the pixel patterns between the 2003
and 2005 images have changed sufficiently to make correlation between them unreliable.
Similar trends are found in Figure 3.23, which displays COSI-Corr's and
IMCORR's results when applied to edge maps. The three correlator engines are most in
agreement in the western third of the profile, with typically no more than 25 mlyr
separating the three. At the 300 pixel mark, the frequential correlator diverges from the
other two. As before, the frequential correlator produces lower speeds and is more
consistent in magnitude, although the velocities it produces still fluctuate unrealistically
between 130 to 50 mlyr, with most points hovering around 100 mlyr. The statistical
correlator is more erratic than the frequential, producing speeds that range from 200 mlyr
to 12 mlyr and showing several dramatic spikes in which velocity doubles or triples
suddenly. Overall, the edge maps produced the most erratic velocity results and the most
78
, , | , , , | , , , | , , i r
_ COSI-Corr freqential correlator, edge maps
_ COSI Corr statistical correlator, edge maps
- IMCORR edge maps
Tustumena Longitudinal Velocity Profile
250
200 -
E,
i" 150
o
I
100
50
. r
f
J
_. L
r
1
f
100 200 300 400 500 600 700
Distance from west to east (pixels)
800 900
Figure 3.23. Tustumena longitudinal velocity profile showing results from application of
COSI-Corr frequential and statistical correlators and IMCORR to edge maps.
dramatic fluctuations in speed regardless of which correlation routine was used.
Application of COSI-Corr' s frequential correlator to ASTER band 3N images produced
the least erratic results, although even these results show unrealistic velocity
discontinuities.
The results of COSI-Corr' s frequential correlator when applied to the edge maps
and ASTER band 3N, along with IMCORR' s results, are shown in Figure 3.24. As
before, the velocities are most in agreement nearest the glacier toe. Beginning at 300
pixels up from the toe, the results derived from the three correlation routines diverge.
Beyond this point, IMCORR continually produces the highest velocities, often exceeding
200 m/yr. COSI-Corr' s results derived from edge maps consistently produce the next
highest velocities, ranging between 50 and 125 m/yr, with most results hovering around
-
I
-
f"


.... _---
"'*-----
---
"
"
-
. ,
,

... -: .... .:: .. --:-. ....
fiil'''' l .2l. T."wnrn:o , .. Io<ity prom. showin& <=11 .. from o.pplkation of
COSI-COIT frequontiol ......... i .. iool >OmI01OtS ..... NCOII.R ,,, edge mapI.
dramali. fi"",u"ioo> in <p:<d n:prdl ... "fwhich """,,I .. ;.,., """ine wu ......
Applic.,;on ofC05I.(;O<T"' frequeolio, """",loIor \C ASTEII. _ IN imagos prod""ed
di""""inui,;cs.
n.. mulls "fCOSI-C"",', ti-tqu",,,i.1 corrclatO, ",hal applied ",!he: <'IIge INP'
ond ASTER bmd IN. along ,"' ilh lMCOIUn teO"los. .... ...".." in Figure 3.24. A.
bcfor<, the ,'.Ioci,; .. "'" "'0", in ",,.,,,., Ihc: lI,xier loe. .. 100
79
1
: .
i ' ~ i i i i i i _ i i i i
"100 200 300 400 500 600 700 800 900
Distance from west to east (pixels)
Figure 3.24. Tustumena longitudinal velocity profile showing results from application of
COSI-Corr's frequential correlator to ASTER band 3N images and edge map, and
application of IMCORR to edge maps.
100 m/yr 25 m/yr. The velocities derived from ASTER band 3N are the slowest, yet
most consistent, with most speeds between 50 to 30 m/yr. The differences in velocity
produced by application of the correlator routines to edge maps and ASTER band 3N
images suggest the edge maps allow both COSI-Corr and IMCORR to find offsets of
greater magnitude. The edge maps also cause the correlation routines to find greater
fluctuations in velocity, which may be caused by the absence of intermediate, gray scale
BVs. The binary edge maps may appear too similar across their length and width within a
search and reference chip pair, causing the correlation routine to occasionally misidentify
the location of best match.
The results of applying COSI-Corr' s statistical correlator to edge maps and
ASTER band 3N are compared in Figure 3.25. Once again, the results align most closely
i r . 1 1 1 1 i 1 | 1 i i | 1 i 1 1 1 r
COSI-Corr freqential correlator. ASTER band 3N
_ COSI-Corr frequential correlator, edge maps
IMCORR edge maps
250
~ 200
E
100
50
A i . . I
Tustumena Longitudinal Velocity Profile
~ T'"
-
-
!
,
I ,.
, .

,.
-
.... .... .... ... ',;""._._.-_._.-_..J
, 40 __ " __
Fi""" ),24, T""umrna IooBiludioml ,'<kocily profile obowi"ll ...... 11. from applk01i"" of
COSI-COOT" fi-eq....,ti&I orTt1 .. ". 10 ASTEll band J:-O images and edge map, and
applio.,,,,,, ofL\iCORll1<> edge maps,
prod""ed by opplicaTioro of The "",",I.,.,. "'"'i ..... 1<> edg. maps and ,,-STEil band 3:-0
images OIlgg<Sl The edge _ allow both COSI-COOT and Il<1CORll1<> find off .... of
n""tuaTions in , .. kocily, wbioh may I>< <oused by The obseTIc:. of inl...",edi.,., gray 0<.1.
BV .. Th< binary edge maps m.oy _or 100 .imila: ><...,.. The-ir Imp and widTh wiThin a
Tho raul .. of applying COSI-COOT" ..... i .. iul orTt1.,,,.,o edge maps and
,,-STEil band 3:-0 .... >mpar<d in Figure ),2S, Once opin. The ....,,1 .. align mosI dos<ly
80
2i>0
200
ISO
100
50
Tustumena Longitudinal Velocity Profile
> > i i i i
1
i ' i
1
< i
1
COSt Con statistical correlator ASTER band 3N
COS! Corr statistical correlator odge maps
IMCORR edge maps
J
- ':
'L
100 200 300 400 500 600 700 800
Distance from west to east (pixels)
900
Figure 3.25. Tustumena longitudinal velocity profile from application of COSI-Corr' s
statistical correlator to ASTER band 3N images and edge maps, and application of
IMCORR to edge maps.
near the glacier toe and then begin to diverge in the middle of the glacier at 300 pixels
from the toe. Between 500 and 600 pixels from the toe, COSI-Corr' s results from the two
images pairs agree quite well and then diverge considerably upglacier from this point. As
before, the velocities derived from ASTER band 3N images show less extreme volatility
compared to the velocities derived from edge maps.
In general, IMCORR produced the highest velocities along the length of
Tustumena Glacier and is consistent in doing so, but also produced the greatest volatility
in its results. COSI-Corr' s frequential correlator, when applied to ASTER band 3N,
produced the most consistent velocities, which are often 1/3 the speed of IMCORR' s
results. COSI-Corr' s statistical correlator produced results with speeds and volatility that
typically fell between the other two routines. Use of ASTER band 3N images produced
results with fewer and less extreme velocity discontinuities compared to edge maps,
-
-
t
1'"

I e aa
-
----_ ..
------
---
, .
-
... ... .,. - TOO
- -_._-
Fiaure 3.2l. Tas,um<l\a ,,,Iooi,y prOflk from awl",oUoo OfCOSI-C",,",
otati"ical rornlat<x 10 ASTER band )S irnaaeo ond edll.< rnapo.. ond """lie .. .,., or
IMCORR 10 edi< m .....
from tilt ' or. lOO ond 600 pi .. ,. from tho toe. COSI-C.".,., raul .. from tho ,,,"
compared to ,lie ,olooi,i .. deIi,'ed from edge: map,.
in i .. raul ... COSI-CorT', frequc:nti.1 00,,,,10l0I". ,..ben awlied to ASTER band lS
....... 1 ... COSI-CO!T' , ... ,i"iell ''''''''' ' 0l0I" ptOCioced raul" "ith "': 1. ond >'Ol oti luy 1h.I,
typie.lly roll bet"...", tho _ """ f"O\Iti .... u ... or .... STER band lS imoll" prodoced
....... 110 with re", ... ond ...... tr<me "elooi, y discontinui,i .. oompared 10 edge rnapo..
81
which may be due to the absence of gray scale values in the binary edge maps. The
difference in results between the frequential and statistical type of correlation routines
suggests the statistical method is more prone to erratic behavior, regardless of the type of
imagery it is operating on.
An analysis of McCarty Glacier produced results similar to what is presented
above. The combined results from Tustumena and McCarty Glaciers show both of COSI-
Corr' s correlator engines are prone to erratic behavior, whether run on edge maps or
ASTER band 3N images, and with the additional knowledge that IMCORR also behaves
erratically with this data set, hint there may be a problem with this ASTER imagery pair.
No combination of correlator engine and image type produced realistic,
acceptable results along the length of either glacier, and yet these routines have been
successfully used by other researchers to derive velocity fields on alpine glaciers, so the
failure to produce realistic outcomes points to the ASTER data set. This does not mean
the ASTER imagery is flawed, but rather the two-year time span, and the change in the
ice surface during this span, may be too great to allow consistent, reliable correlations. To
test this hypothesis, one-year imagery must be used within a correlation routine.
The velocity fields and longitudinal profiles all show implausible ice flow
conditions with rapid moving ice in close proximity to slow moving ice and no apparent
physical cause for such behavior. IMCORR produced the most dramatic discontinuities in
velocity when applied to edge maps, with COSI-Corr' s statistical correlator performing
slightly better with smaller magnitudes of discontinuities, and COSI-Corr' s frequential
correlator producing the least erratic behavior, particularly when applied to ASTER band
3N images.
81
which may be due to the absence of gray scale values in the binary edge maps. The
difference in results between the frequential and statistical type of correlation routines
suggests the statistical method is more prone to erratic behavior, regardless of the type of
imagery it is operating on.
An analysis of McCarty Glacier produced results similar to what is presented
above. The combined results from Tustumena and McCarty Glaciers show both of COS 1-
Corr's correlator engines are prone to erratic behavior, whether run on edge maps or
ASTER band 3N images, and with the additional knowledge that IMCORR also behaves
erratically with this data set, hint there may be a problem with this ASTER imagery pair.
No combination of correlator engine and image type produced realistic,
acceptable results along the length of either glacier, and yet these routines have been
successfully used by other researchers to derive velocity fields on alpine glaciers, so the
failure to produce realistic outcomes points to the ASTER data set. This does not mean
the ASTER imagery is flawed, but rather the two-year time span, and the change in the
ice surface during this span, may be too great to allow consistent, reliable correlations. To
test this hypothesis, one-year imagery must be used within a correlation routine.
The velocity fields and longitudinal profiles all show implausible ice flow
conditions with rapid moving ice in close proximity to slow moving ice and no apparent
physical cause for such behavior. IMCORR produced the most dramatic discontinuities in
velocity when applied to edge maps, with COSI-Corr's statistical correlator performing
slightly better with smaller magnitudes of discontinuities, and COSI-Corr's frequential
correlator producing the least erratic behavior, particularly when applied to ASTER band
3N images.
82
After all the discussion regarding velocity discontinuities and the comparison of
results from the various combinations of imagery and correlator engines, one
fundamental question remains unasked - which of these velocities is accurate? One way
to answer this question is to visually track surface features between sequential images,
calculate a velocity, and compare it with results from the three algorithms. Unfortunately,
this will not work because the change in the pattern of BVs between the ASTER images
is too great to allow visual tracking of an ice surface feature, and the question of which of
the above results is correct remains unanswered.
3.8 Tustumena Vector Fields Derived From Landsat-5 Imagery
To assess the possibility that a two-year time span between sequential images is
too great and there is too much ablation and subsequent change in ice surface features for
the correlator engines to properly and accurately find offsets, Landsat-5 TM data
spanning single ablation seasons (2006/07 and 2007/08) and a two-year span (2006-08)
were processed with COSI-Corr's frequential correlator. The frequential correlator was
chosen over the two statistical correlator engines because testing on Tustumena Glacier
with PCA images derived from the Landsat data proved the frequential correlator
provided accurate results (as will be shown later in this chapter). IMCORR failed to
produce any correlations on the glacier when provided PCA images, and COSI-Corr' s
statistical correlator produced a spatially extensive velocity field, but with errant
velocities upglacier. While the change in sensors provides an improvement in temporal
resolution, it comes with the cost of lower spatial resolution at 30 m instead of ASTER' s
15 m. The Landsat-5 TM imagery was minimally processed before applying COSI-Corr.
Upon receipt from the USGS, the images had undergone terrain correction, so
82
After all the discussion regarding velocity discontinuities and the comparison of
results from the various combinations of imagery and correlator engines, one
fundamental question remains unasked - which of these velocities is accurate? One way
to answer this question is to visually track surface features between sequential images,
calculate a velocity, and compare it with results from the three algorithms. Unfortunately,
this will not work because the change in the pattern of BV s between the ASTER images
is too great to allow visual tracking of an icc surface feature, and the question of which of
the above results is correct remains unanswered.
3.8 Tustumena Vector Fields Derived From Landsat-5 Imagery
To assess the possibility that a two-year time span between sequential images is
too great and there is too much ablation and subsequent change in ice surface features for
the correlator engines to properly and accurately find offsets, Landsat-5 TM data
spanning single ablation seasons (2006/07 and 2007108) and a two-year span (2006-08)
were processed with COSI-Corr's frequential correlator. The frequential correlator was
chosen over the two statistical correlator engines because testing on Tustumena Glacier
with PCA images derived from the Landsat data proved the frequential correlator
provided accurate results (as will be shown later in this chapter). IMCORR failed to
produce any correlations on the glacier when provided PCA images, and COSI-Corr's
statistical correlator produced a spatially extensive velocity field, but with errant
velocities upglacier. While the change in sensors provides an improvement in temporal
resolution, it comes with the cost oflower spatial resolution at 30 m instead of ASTER's
15 m. The Landsat-5 TM imagery was minimally processed before applying COSI-Corr.
Upon receipt from the USGS, the images had undergone terrain correction, so
83
orthorectification was not necessary, and as explained earlier, image-to-image
georeferencing was removed from the preprocessing routine. The Landsat-5 TM data
contains some minor scan line striping, but this was significantly reduced when Principal
Component Analysis was performed on the images and the striping is not noticeable on
the glaciers.
The 2006/07 image pair produced a vector field more spatially extensive and
more consistent in velocity magnitude than any previous vector field on Tustumena
Glacier (Figure 3.26). Beginning upglacier, there is a cluster of green vectors showing
velocities ranging from 150 to 200 m/yr, which is somewhat inconsistent with the
adjacent clusters of orange and yellow vectors (200-300 m/yr). There are longitudinal
moraines present in the area that may have a reverse dip (upslope) that are being revealed
as ablation progresses, but close visual examination could not determine whether this is
so because the moraines appear uniform to the eye. As the ice approaches the confluence
with HI2, it is moving between 250-300 m/yr. At the junction with HI2, the flow of ice of
Tustumena Glacier slows considerably. The ice from HI2 is moving < 15 m/yr, which
places significant drag on the flow of ice within Tustumena and slows it. This is seen as a
cluster of blue vectors at the junction with HI2 in Figure 3.26. The additional resistance
to flow caused by the merging of slow moving ice is not the only cause for the abrupt
decrease in velocity in this area. There is a medial moraine in Tustumena Glacier
spanning the longitudinal centerline that is reverse-dipping and that causes COSI-Corr to
underestimate the ice displacement across the glacier (Figure 3.27). As ablation
progresses and more of the moraine is revealed upglacier, the apparent upglacier
83
orthorectification was not necessary, and as explained earlier, image-to-image
georeferencing was removed from the preprocessing routine. The Landsat-5 TM data
contains some minor scan line striping, but this was significantly reduced when Principal
Component Analysis was performed on the images and the striping is not noticeable on
the glaciers.
The 2006/07 image pair produced a vector field more spatially extensive and
more consistent in velocity magnitude than any previous vector field on Tustumena
Glacier (Figure 3.26). Beginning upglacier, there is a cluster of green vectors showing
velocities ranging from 150 to 200 m/yr, which is somewhat inconsistent with the
adjacent clusters of orange and yellow vectors (200-300 m/yr). There are longitudinal
moraines present in the area that may have a reverse dip (upslope) that are being revealed
as ablation progresses, but close visual examination could not determine whether this is
so because the moraines appear uniform to the eye. As the ice approaches the confluence
with HI2, it is moving between 250-300 m/yr. At the junction with HI2, the flow of ice of
Tustumena Glacier slows considerably. The ice from HI2 is moving < 15 m/yr, which
places significant drag on the flow of ice within Tustumena and slows it. This is seen as a
cluster of blue vectors at the junction with HI2 in Figure 3.26. The additional resistance
to flow caused by the merging of slow moving ice is not the only cause for the abrupt
decrease in velocity in this area. There is a medial moraine in Tustumena Glacier
spanning the longitudinal centerline that is reverse-dipping and that causes COSI-Corr to
underestimate the ice displacement across the glacier (Figure 3.27). As ablation
progresses and more of the moraine is revealed upglacier, the apparent upglacier
Figu", 3.26. TU$I .......... Glacier .cloci.y f!dol deri .... from 2006107 l.an<lsal-S TM i",.J!CS ' <>.I
COSI.con-ln:quOJ"i., 0<111'<1 .. "",
85
Figure 3.27. Reverse-dipping moraine that causes underestimation of ice movement.
movement cancels part of the downglacier flow of ice and causes underestimation of
displacement measurements.
Once the additional slow-moving mass from HI2 is incorporated into the flow of
Tustumena, and once past the reverse-dipping moraine, the ice resumes it rapid pace, as
exhibited by the cluster of yellow vectors just past the junction with HI2. Downslope
from this point, the ice decelerates and diverges. Ice from HI2 completely ablates along
the north margin and ice north of Tustumena' s center line exits the main valley via a dead
end side valley, calves down a steep incline, melts, and forms a tarn. The main flow of
ice continues downvalley at a pace between 150-200 m/yr until within four km of the toe,
at which point the ice decelerates to less than 100 m/yr.
The deceleration of ice near the glacier toe is likely caused by a combination of
mass loss due to increased ablation at lower elevations and a decrease in topographic
gradient. Tustumena Glacier has an ice surface gradient of 28.9 m/km along most of its
"""-..,..", <oncel, part oflho do","&I.d ... nov.. ofi >rod ,..,... ..-l<reolirnation of
dispIOC<m<n' n><a&W<'tIl""".
"
Cln<. "'" oddiliorW .Io .... """'i"ll mass from Hil i. i ~ < J into !he 110 ... of
T""umrna. and <>nt. """ II>< fC'-cne-dipping m<>nin<. <he icc raumcs it rapid .,.. .. ..
.. hibikd by Iho .Ius, ... of yellow "<C1OrS j ... lSI "'" j..."ion "'1111112. [)ov,'lalope
from llIis poinl. "'" ice dec.lent .. and d i , . ~ Ice from 1m <OII'Ipl<1<ly obi .... along
<he nonh martin ODd ice oonh orTu .. umrna', .",,'er lin< ai ...... "",in .... Itcy ,i. "dead
end ,id< , .. lIey, cal,'os dovo." stoep "IO'i ... ",.I,s, one! {ann tam. The main 110 ... of
i oon';n...,. dow.,-alley" . ~ .,.,.. ..... 1$1).200 rnJyr "",;I " 'ilhin four km oflbt too.
'" ",hi<:h poin' .... ice dec.I""" .. to , ... than 100 mI)T.
The db:.lerotion of ice ncar thc: iJa<ierl<H: i. likely caused by . oombin>'ion of
.,... loss due lO inc:rnoed ablation at \0",'''' ele-... ions and "d ....... in oopographic
pi..,., T ... ~ Gl""ierl\as on k ",("".pi"", 0[28.9 mlkrn alonK ""'" of lIS
length (Figure 3.28a) except near its toe where the gradient briefly flattens before
resuming a similar incline down to the toe. The break in surface gradient at
approximately 1.5 km up from the toe affects velocity farther upglacier. There is a 75
m/yr deceleration in velocity beginning at 3 km from the toe, which is likely initiated by
the change in surface gradient 1500 meters downglacier. At approximately the 8.7 km
mark, a sudden drop in velocity is seen in the profile. This marks the junction where
Tustumena's ice suddenly decelerates as it encounters the slower moving mass from HI2
and the reverse-dipping moraine, which causes underestimation of ice surface
displacement. Downslope from the junction with HI2, the velocity fluctuates for 3.75 km
within a range of 150-200 m/yr. It is possible that these minor variations in speed are also
caused by the apparent upglacier movement of moraines as they are exposed via melt.
However, this cannot be confirmed as the moraine patterns in this area are too diffuse to
visually track with certainty.
To establish the mechanism of ice flow that dominates Tustumena Glacier,
whether plug flow caused by basal slip or flow via ice deformation, transverse velocity
profiles (Figures 3.28b-d) are examined for telltale characteristics of flow type.
Beginning upglacier, transect D-D' (Figure 3.28d) exhibits the classic profile for plug
flow with steep gradients along the north and south margins that rise to a relatively
uniform plateau in the middle of the glacier (Copland et al , 2009; Fatland et al., 2003).
This curve indicates that most of the ice is moving enmasse, as a single block, with some
noticeable drag along the margins. The transverse profile C- C (Figure 3.28c) indicates
little, if any drag, along the northern margin as ice approaches the dead end side valley,
which is indicative of basal slip. Along the centerline of the glacier the profile has a
86
length (Figure 3.28a) except near its toe where the gradient briefly flattens before
resuming a similar incline down to the toe. The break in surface gradient at
approximately 1.5 km up from the toe affects velocity farther upglacier. There is a 75
mlyr deceleration in velocity beginning at 3 km from the toe, which is likely initiated by
the change in surface gradient 1500 meters downglacier. At approximately the 8.7 km
mark, a sudden drop in velocity is seen in the profile. This marks the junction where
Tustumena's ice suddenly decelerates as it encounters the slower moving mass from HI2
and the reverse-dipping moraine, which causes underestimation of ice surface
displacement. Downslope from the junction with HI2, the velocity fluctuates for 3.75 km
within a range of 150-200 mlyr. It is possible that these minor variations in speed are also
caused by the apparent upglacier movement of moraines as they are exposed via melt.
However, this cannot be confirmed as the moraine patterns in this area are too diffuse to
visually track with certainty.
To establish the mechanism of ice flow that dominates Tustumena Glacier,
whether plug flow caused by basal slip or flow via ice deformation, transverse velocity
profiles (Figures 3.28b-d) are examined for telltale characteristics of flow type.
Beginning upglacier, transect D-D' (Figure 3.28d) exhibits the classic profile for plug
flow with steep gradients along the north and south margins that rise to a relatively
uniform plateau in the middle of the glacier (Copland et aI., 2009; Fatland et aI., 2003).
This curve indicates that most of the ice is moving enmasse, as a single block, with some
noticeable drag along the margins. The transverse profile C-C' (Figure 3.28c) indicates
little, if any drag, along the northern margin as ice approaches the dead end side valley,
which is indicative of basal slip. Along the centerline of the glacier the profile has a
87
Tustumena longitudinal elevation and velocity profile A-A'
0>
cd
ay
i
CD
O
E
c
.2
+-
cc
>
M
LLI
a)
3.0 4.5 6.0 7.5 9.0 10.5 12.0
Distance from west to east (km)
Tustumena Velocity: Transverse Profile B-B'
b)
300 600 900 1200
Distance from south to north along B-B (meters)
Figure 3.28. Profiles for 2006/07 Tustumena velocity field, a) Elevation and longitudinal
velocity profile A-A' . b) Transverse profile along B-B' .
"
,
,
f
,

!
f
~

~


'00
.J
om.nc:e !rom _ 10 .... (km)
,
,
F i g u ~ 3.28. Prom .. for 2006/07 T" .. um ...... Iocj,y fi.ld. oJ EI ... "2Ik>n ..... longitudinal
, .. Io<ily profile AA", bl T ..... ' -..... p",fil. aJong II--W.
88
Figure 3.28 Continued. Profiles for 2006/07 Tustumena velocity field, c) Transverse
profile along C- C. d) Transverse profile along D-D' .
"
!SO
0
,
i
'"
J
, ~
'00
C
'00
TuSlumena V . . T rans_ Pro/lie e.G
SXl 1200 li!OO
0isIance tom I(Uh 10 I'IDr1i'IIiong CG' (meters)
TuS!umeM Ve : Tril/lSVe<Se Profile 0-0'
"
Fig= 3.28 eoo,;noed. Prom .. for 2006107 T ... wneno , .. 1oc;1y f,eld. oj T ~ , ' ' ' ' ' '
"",r,le o I o I l ~ C(:" _ d) T...," ..... prof,le Iiong D--D" .
..
89
distinct parabolic shape, indicative of internal deformation (Copland et al., 2009; Fatland
et al., 2003). However, the speed of the ice along the centerline, up to 180 m/yr, likely
cannot be entirely accounted for by internal deformation; certainly, considerable basal
slip occurs as well. Therefore, the fast movement of the ice, along with the parabolic
shape of the velocity transect, suggest that both mechanisms of ice flow contribute
significantly to the ice velocity in this area of the glacier. Transect B-B' , lower on the
glacier (Figure 3.28b), shows little variation across the width of the glacier, with a
velocity maximum near the center line of 160 m/yr and velocities along the north and
south margins of 120 m/yr and 140 m/yr, respectively. The relatively high velocities
suggest plug flow with little drag along the valley walls, and the gentle parabolic curve
across the glacier's midsection suggests the presence of some internal deformation as
well.
To confirm that the velocities produced by COSI-Corr are correct, pixels that are
traceable between the two images were visually selected, the offset between them was
manually measured within ENVI and a speed was calculated that can be compared to
COSI-Corr' s results. This process is partial to the observer's judgment as to what pixels,
or pattern of pixels, can be reliably tracked between images and how far and in what
direction the pixels moved, so complete confirmation is impossible due to the observer's
bias. According to Oreskes et al. (1994), verification and validation are also impossible
because natural systems (such as a glacier's motion) are open systems with infinite
degrees of freedom and infinite possibilities, while models (such as an algorithmically
derived velocity field) are closed systems with nonunique solutions that may be arrived at
by more than one path. Therefore, confirmation of the velocity field is only achieved to
89
distinct parabolic shape, indicative of internal deformation (Copland et aI., 2009; Fatland
et aI., 2003). However, the speed ofthe ice along the centerline, up to 180 m1yr, likely
cannot be entirely accounted for by internal deformation; certainly, considerable basal
slip occurs as well. Therefore, the fast movement of the ice, along with the parabolic
shape of the velocity transect, suggest that both mechanisms of ice flow contribute
significantly to the ice velocity in this area of the glacier. Transect B-B', lower on the
glacier (Figure 3.28b), shows little variation across the width of the glacier, with a
velocity maximum near the center line of 160 m1yr and velocities along the north and
south margins of 120 m1yr and 140 m1yr, respectively. The relatively high velocities
suggest plug flow with little drag along the valley walls, and the gentle parabolic curve
across the glacier's midsection suggests the presence of some internal deformation as
well.
To confirm that the velocities produced by COSI-Corr are correct, pixels that are
traceable between the two images were visually selected, the offset between them was
manually measured within ENVI and a speed was calculated that can be compared to
COSI-Corr's results. This process is partial to the observer's judgment as to what pixels,
or pattern of pixels, can be reliably tracked between images and how far and in what
direction the pixels moved, so complete confirmation is impossible due to the observer's
bias. According to Oreskes et aI. (1994), verification and validation are also impossible
because natural systems (such as a glacier'S motion) are open systems with infinite
degrees of freedom and infinite possibilities, while models (such as an algorithmically
derived velocity field) are closed systems with nonunique solutions that may be arrived at
by more than one path. Therefore, confirmation of the velocity field is only achieved to
90
Visual
speed
(m/yr)
COSI-
Point
Visual
speed
(m/yr)
Corr Difference Difference Percent
Point
Visual
speed
(m/yr)
speed
(m/yr)
(m/yr) (pixels) difference
A 70 69 1 0.03 1.4%
B 159 156 3 0.10 1.9%
C 168 164 4 0.13 2.4%
D 112 111 1 0.03 0.9%
E 88 89 1 0.03 1.1%
F 225 232 7 0.22 3.0%
the degree that predicted values (velocity field) match observed values (visually
determined velocity). Six locations along the length of Tustumena Glacier were visually
inspected and the velocity at each point calculated and compared to COSI-Corr' s results
(Table 3.1, Figure 3.29). Overall, COSI-Corr' s results compare very well with speeds
determined visually, which provides some confidence in the velocity field. The greatest
difference between the two methods, 7 m/yr, is less than 1/4 pixel, which falls within the
uncertainty for visual methods, which are constrained to measure offsets in whole pixels.
The average difference between COSI-Corr's results and results from visual inspection
for the six points is 0.09 pixels (2.8 m/yr), and the average percent difference is 1.8%.
While visual feature tracking allows some confirmation of COSI-Corr' s results,
the chosen points are sparse and provide only localized confirmation of offset magnitude
and direction. Scherler et al. (2008) suggest the use of streamlines to check the flow
direction of the velocity field along its whole length. Conceptually, the idea is simple -
place a ' seed' particle within the velocity field upglacier and trace its path as it follows
the x and y offsets prescribed within the field. This is accomplished using a customized
Table 3.1. Comparison of visually determined velocities with those derived from COSI-
Corr at the same location for 2006/07 velocity field.
.90
the degree that predicted values (velocity field) match observed values (visually
determined velocity). Six locations along the length of Tustumena Glacier were visually
inspected and the velocity at each point calculated and compared to COSI-Corr's results
(Table 3.1, Figure 3.29). Overall, COSI-Corr's results compare very well with speeds
determined visually, which provides some confidence in the velocity field. The greatest
difference between the two methods, 7 m/yr, is less than 114 pixel, which falls within the
uncertainty for visual methods, which are constrained to measure offsets in whole pixels.
The average difference between COSI-Corr's results and results from visual inspection
for the six points is 0.09 pixels (2.8 m/yr), and the average percent difference is 1.8%.
While visual feature tracking allows some confirmation of COSI-Corr's results,
the chosen points are sparse and provide only localized confirmation of offset magnitude
and direction. Scherler et al. (2008) suggest the use of streamlines to check the flow
direction of the velocity field along its whole length. Conceptually, the idea is simple -
place a 'seed' particle within the velocity field upglacier and trace its path as it follows
the x and y offsets prescribed within the field. This is accomplished using a customized
Table 3.1. Comparison of visually determined velocities with those derived from COSI-
Corr at the same location for 2006/07 velocity field.
Visual
COSI-
Point speed
Corr Difference Difference Percent
speed (m/yr) (pixels) difference
(m/yr)
(m/yr)
A 70 69 1 0.03 1.4%
B 159 156 3 0.10 1.9%
C 168 164 4 0.13 2.4%
D 112 111 1 0.03 0.9%
E 88 89 1 0.03 1.1%
F 225 232 7 0.22 3.0%
91
2006/07 Velocity raster
2.8 147.8 292.9
Velocity (m/yr)
Figure 3.29. 2006/07 velocity raster with location of points used in visual confirmation of
COSI-Corr results.
IDL program using the provided PARTICLETRACE procedure (Appendix H- Flow
Lines). If the velocity field is accurate, the seed should follow a glaciologically plausible
path as determined by moraines, flow bands, and turns in the glacier ice.
Six seed particles were placed within the 2006/07 velocity field for Tustumena
Glacier and their paths were plotted for visual inspection (Figure 3.30). Seeds A and B
were placed along the center line within HI2 and follow paths that end at the northeast
margin. These are unrealistic paths and show that COSI-Corr failed to produce accurate
correlations within HI2 for the 2006/07 image pair. COSI-Corr's failure in this instance is
likely caused by increased ablation along the length of HI2 due to its southwesterly
aspect, which allows more direct solar radiation to melt the ice. Seeds C through F follow
the velocity field down glacier in a more plausible manner, but exhibit a slight
"
, 'vej(, (17
"
, , , ,
,
,
,
,
,
"
,
t

,
"
,,',
,
"
,
3.29. 2OCI6/07 , .. 100:"1 _ ... willi loca1ion of points used in vi ...... conJirmltiOil or
COSI.c"", ..... 1 ...
IDL proVO'" us,,,, Ib< provided PARTICLE_TRACE pro<lun: (AppOndi. 11- Flo",
U"""j. [{II>< "<lodly field i. the ..... sIIou1<l follow . ilocio\oiically pl,usible
pain as determined by mon.i .... flow bands, on<! lurns in !he iI.cia icc .
........ pla<ed olon& th< ='" Ii .. within !i12 and follow ""tho tlw end .. "'" northca>I
I1W]!in. n.e.. .... WImlIi .. ic palhs and ....".. tIw. COSJ-Corr foiled '" prod"""...,..me
.".,..Iations "ilhin Hl2 R>r the: 2006J07 image: pair. COSI.(;orr", in this instance is
_to ... hich allow ......... di""" 001 .. radiation to "",It !be >te. s-m c throuih F follow
the: "<Ioo:"y field 00..'TI in mon: plousiblc m&nncf. but exhibit Iiih'
Figure 3.30. Streamlines that follow 2006/07 velocity field. f i""" 1.30. Sln:amliflCll !hal follow lOOiY07 ve\'J<ily field.
93
southwesterly bias. For instance, seed D begins near the north margin and ends near the
toe closer to the south margin and crosses two longitudinal moraines along its path: a
physical impossibility. Seed E, which begins on the glacier center line, also crosses a
longitudinal moraine, and then ends on the southern margin after traveling roughly 9 km.
Seed F exhibits similar behavior, beginning on a longitudinal moraine and ending along
the southern margin after 5 km.
To quantify the southerly bias in the velocity field, the transverse and longitudinal
movement of seed E was measured (in pixels) along its trajectory from its beginning
point to its intersection with the prominent longitudinal moraine, a distance of roughly 6
km. Along this path, seed E moved 16.3 pixels in the transverse direction and 204.5
pixels in the longitudinal direction, which yields an angle of 4.55. Thus, for every 1 km
(33.3 pixels) of longitudinal movement, there is an 80 meter (2.67 pixel) southerly bias
within the 2006/07 Tustumena Glacier velocity field. The fact that this bias is seen in all
four streamlines within Tustumena Glacier suggests it is due to subtracting too much, or
too little, during removal of the systematic error.
Tustumena Glacier's velocity field for the 2007/08 image pair is seen in Figure
3.31. Similar to the 2006/07 velocity field, the ice is moving fastest upglacier, with with
speeds up to 200 m/yr, which is up to four times faster compared to < 50 m/yr for the
previous year, so there is not as much of a deceleration in Tustumena' s speed at the
junction compared to 2006/07. Downslope from the junction with HI2, the ice maintains
a comparable velocity with 2006/07, remaining in the 150-200 m/yr range for
approximately 7 km. The ice that exits the main valley via the dead end side valley is
speeds ranging from 200-300 m/yr. As the ice approaches the junction with HI2, it slows
93
southwesterly bias. For instance, seed D begins near the north margin and ends near the
toe closer to the south margin and crosses two longitudinal moraines along its path: a
physical impossibility. Seed E, which begins on thc glacier center line, also crosses a
longitudinal moraine, and then ends on the southern margin after traveling roughly 9 km.
Seed F exhibits similar behavior, beginning on a longitudinal moraine and ending along
the southern margin after 5 km.
To quantify the southerly bias in the velocity field, the transverse and longitudinal
movement of seed E was measured (in pixels) along its trajectory from its beginning
point to its intersection with the prominent longitudinal moraine, a distance of roughly 6
km. Along this path, seed E moved 16.3 pixels in the transverse direction and 204.5
pixels in the longitudinal direction, which yields an angle of 4.55. Thus, for every 1 km
(33.3 pixels) oflongitudinal movement, there is an 80 meter (2.67 pixel) southerly bias
within (he 2006/07 Tustumena Glacier velocity field. The fact that this bias is seen in all
four streamlines within Tustumena Glacier suggests it is due to subtracting too much, or
too little, during removal of the systematic error.
Tustumena Glacier's velocity field for the 2007/08 image pair is seen in Figure
3.31. Similar to the 2006/07 velocity field, the ice is moving fastest up glacier, with with
speeds up to 200 rniyr, which is up to four times faster compared (0 < 50 m/yr for (he
previous year, so there is not as much of a deceleration in Tustumena's speed at the
junction compared to 2006/07. Downslope from the junction with HI2, the ice maintains
a comparable velocity with 2006/07, remaining in the 150-200 rniyr range for
approximately 7 km. The ice that exits the main valley via the dead end side valley is
speeds ranging from 200-300 rniyr. As the ice approaches the junction with HI2, it slows
Figure 3.31. Tustumena velocity field derived from 2007 and 2008 Landsat-5 TM images and
COSI-Corr frequential correlator.
4^

. I
,
f igure 1.11. TUOIu_ ~ " " ' i I Y rook! dori"ed from 2007 ond 2008 Landso,S TM imogcs ond
COSI.cOlT f""l"rn'i.1 oom:l .. Of.
95
to the range of 100-150 m/yr. The ice of HI2 is moving faster than the previous season,
moving slower than in the previous season, with speeds between 50-100 m/yr compared
to 100-150 m/yr in 2006/07. As the ice progresses down the main valley, the overall
speed is less than the previous year' s. There is no sudden drop in speed as the glacier toe
is approached (Figure 3.32a), but rather a gradual decline in velocity, and there is no
dramatic underestimation in speed at the location of the reverse-dipping moraine at the
8.7 km mark. The lack of these significant features in the velocity data, and the overall
reduction in speed of the 2007/08 velocity field compared to the previous year, is likely
due to the timing of the imagery. The 2008 image was acquired July 31
s t
, much earlier in
the melt season than the 2006 (Sept. 12) and 2007 (Aug. 30) images, probably before the
summer velocity maximum was reached and before significant surface ablation had
occurred. This would explain the absence of influence of the reverse-dipping moraine and
the lack of a sudden drop in velocity near the toe due to increased mass loss via ablation.
To establish the flow mechanism for the velocity field, transverse profiles (Figures 3.32a-
d) were taken across the glacier at three locations, shown in Figure 3.31 as B-B' , C- C,
and D-D' . Transect D-D' (Figure 3.32d) has some characteristics of basal slip and plug
flow with a steep velocity gradient along the north margin and a high, somewhat uniform
velocity in the glacier's midsection and on the south margin. Transect C- C (Figure
3.32c) is similar to the transect at the same location in the 2006/07 velocity field, in that
the glacier midsection has a high central velocity, which is likely due to a combination of
basal slip and internal deformation, based upon the curve' s shape and the ice speed. The
ice near the dead end side valley is moving < 40 m/yr, while the ice along the south
margin is moving 150 m/yr, with little evidence of drag along the valley walls.
95
to the range of 100-150 mlyr. The ice ofHI2 is moving faster than the previous season,
moving slower than in the previous season, with speeds between 50-100 m/yr compared
to 100-150 mlyr in 2006/07. As the ice progresses down the main valley, the overall
speed is less than the previous year's. There is no sudden drop in speed as the glacier toe
is approached (Figure 3.32a), but rather a gradual decline in velocity, and there is no
dramatic underestimation in speed at the location of the reverse-dipping moraine at the
8.7 km mark. The lack of these significant features in the velocity data, and the overall
reduction in speed ofthe 2007/08 velocity field compared to the previous year, is likely
due to the timing of the imagery. The 2008 image was acquired July 31
5
1, much earlier in
the melt season than the 2006 (Sept. 12) and 2007 (Aug. 30) images, probably before the
summer velocity maximum was reached and before significant surface ablation had
occurred. This would explain the absence of influence of the reverse-dipping moraine and
the lack of a sudden drop in velocity near the toe due to increased mass loss via ablation.
To establish the flow mechanism for the velocity field, transverse profiles (Figures 3.32a-
d) were taken across the glacier at three locations, shown in Figure 3.31 as B-B', C-C',
and D-D'. Transect D-D' (Figure 3.32d) has some characteristics of basal slip and plug
flow with a steep velocity gradient along the north margin and a high, somewhat uniform
velocity in the glacier's midsection and on the south margin. Transect C-C' (Figure
3.32c) is similar to the transect at the same location in the 2006/07 velocity field, in that
the glacier midsection has a high central velocity, which is likely due to a combination of
basal slip and internal deformation, based upon the curve's shape and the ice speed. The
ice near the dead end side valley is moving < 40 mlyr, while the ice along the south
margin is moving 150 mlyr, with little evidence of drag along the valley walls.
96
Tustumena longitudinal eievation and velocity profile A-A'
' i ' . . . i . -
1.5 3.0 4.5 6.0 7.5 9.0 10.5 12.0
Distance from west to east (km)
Tustumena Ve ocity; Transverse Prof e 3 B
1
30(J ' ' '
r
"~~ ! ' *" 1 * | . - r
250 -
>.
I 200:
>
o
150 -
>
300 600 900 1200
Distance from south to north along B-B' (meters)
Figure 3.32. Profiles for 2007/08 Tustumena velocity field, a) Elevation and longitudinal
velocity profile A-A' . b) Transverse profile along B-B' .
,-


,
t

-

-
!
f
-
-



i
>




'00
..
'.'
M
"


" .
.)
-

'00 B
.. ..
,,.,
.,
Fi""" JJ2. roo- 2007/01 YM "eIooiry r..kI. _) Ele; ...... """ IonsitM,"o!
Iodcy pmfilo AA '. b) T.-._ pmfile 8-8'.
97
Tustumena Velocity: Transverse Profile D-D
!
o
Q
O
>
d)
300 600 900 1200 1500
Distance from south to north along D-D' (meters)
Figure 3.32 Continued. Profiles for 2007/08 Tustumena velocity field, c) Transverse
profile along C- C. d) Transverse profile along D-D' .
"
""
~
'" ,
c
j
, ~
~
'00
. T ranMJrie Profile [).O'
""
0
<
1
'" ,
I
,.
>
0
'00
"
Figure 3.32 Con'inued. Profiles for 2007108 Tu",umena .... Iooi'y f,.Id. <) T...,.verse
profil. _IonS e-c'. d) T ~ v .... profile along DD' .
"
98
Transect B-B' (Figure 3.32b) exhibits a velocity along the glacier midsection of 130 m/yr
and speeds along the north and south margins of 115 m/yr and 75 m/yr, respectively.
Again, the rapid ice movement along the width of the glacier and the gentle parabolic arc
of the graph suggest that a combination of basal slip and internal ice deformation both
contribute significantly to the movement of the ice.
The accuracy of the velocity field derived from the 2007/08 image pair can be
confirmed by manually tracking pixels and determining the offset between the two
images and calculating a velocity to compare with COSI-Corr' s. At seven locations along
Tustumena Glacier and one location in HI2 Glacier, the speed of the ice was visually
determined and compared to COSI-Corr's results (Table 3.2, Figure 3.33). In general, the
two methods of velocity determination agree, with the largest difference between the two
being 20 m/yr at point F in HI2, which is only 2/3 pixel. The seven points along
Tustumena' s centerline have significantly better agreement between the visual method
and COSI-Corr, with the closest match between the two near the toe at point A, and the
Table 3.2. Comparison of visually determined velocities with those derived from COSI-
Corr at the same location for 2007/08 velocity field.
Visual
Velocity
(m/yr)
COSI-
Point
Visual
Velocity
(m/yr)
Corr Difference Difference Percent
Point
Visual
Velocity
(m/yr)
Velocity
(m/yr)
(m/yr) (pixels) difference
A 49 51 2 0.06 3.9%
B 99 106 7 0.21 6.6%
C 164 167 3 0.09 1.8%
D 168 181 13 0.40 7.2%
E 185 173 12 0.37 6.5%
F 92 112 20 0.61 17.9%
G 211 222 11 0.34 5.0%
H 244 252 8 0.25 3.2%
98
Transect B-B' (Figure 3.32b) exhibits a velocity along the glacier midsection of 130 m/yr
and speeds along the north and south margins of 115 m/yr and 75 m/yr, respectively.
Again, the rapid ice movement along the width of the glacier and the gentle parabolic arc
of the graph suggest that a combination of basal slip and internal ice deformation both
contribute significantly to the movement of the ice.
The accuracy of the velocity field derived from the 2007/08 image pair can be
confirmed by manually tracking pixels and determining the offset between the two
images and calculating a velocity to compare with COSI-Corr's. At seven locations along
Tustumena Glacier and one location in HI2 Glacier, the speed of the ice was visually
determined and compared to COSI-Corr's results (Table 3.2, Figure 3.33). In general, the
two methods of velocity determination agree, with the largest difference between the two
being 20 m/yr at point F in HI2, which is only 2/3 pixel. The seven points along
Tustumena's centerline have significantly better agreement between the visual method
and COSI-Corr, with the closest match between the two near the toe at point A, and the
Table 3.2. Comparison of visually determined velocities with those derived from COSI-
Corr at the same location for 2007/08 velocity field.
Visual
COSI-
Point Velocity
Corr Difference Difference Percent
Velocity (m/yr) (pixels) difference
(m/yr)
(m/yr)
A 49 51 2 0.06 3.9%
B 99 106 7 0.21 6.6%
C 164 167 3 0.09 1.8%
D 168 181 13 0.40 7.2%
E 185 173 12 0.37 6.5%
F 92 112 20 0.61 17.9%
G 211 222 11 0.34 5.0%
H 244 252 8 0.25 3.2%
99
2007/08 Velocity raster
0 144.5 289.0
Velocity (m/yr)
Figure 3.33. 2007/08 Velocity raster with locations of visual determination of velocity to
confirm the accuracy of COSI-Corr' s results.
greatest difference at point D, across from the dead end valley. Of significance is the
general agreement at point E where the reverse-dipping moraine lies, in which the two
methods differ by 12 m/yr, which is less than 1/2 pixel. This is also the only point in
which COSI-Corr's velocity is less than the visually determined speed. Assuming COSI-
Corr is more accurate than visual methods due to its ability to calculate speed to subpixel
accuracy, the visual methods have a tendency to underestimate velocity. The average
difference between the two methods of velocity determination for the eight selected
points is 9.50 m/yr (0.29 pixel), and the average percent difference is 6.5%. Again, the
general agreement between the two methods of velocity determination provides some
confidence in COSI-Corr' s results.
fip" l.ll. 20011Ol! rte< "ith Iocaliom oh;..w determination of,olocity 10
conr,rm the K<","""Y ofooSI..(;""., reo"lts.
sat ... 1 qm:mon' at point E where the rc,one-<!;P!';I\j """';ne I .... ;n which the two
motl>ods diIT.,. by 12 mi)T. which is leu than 11"2 pi>d. Thi. ;, .1", the only point in
<onfidono. in COSI-Corr", raul".
100
Streamlines were produced from the 2007/08 velocity field to check the field's
longitudinal accuracy. Five seeds were placed within the velocity field (Figure 3.34), one
on HI2, and four on Tustumena. Seed A, within HI2, traces a realistic path down HI2,
around the curve at the junction with Tustumena, and ends at the side valley, as would be
expected. Seeds B and C exhibit a slight northerly bias. Seed B begins on a longitudinal
moraine just upglacier from the junction with HI2 and follows the moraine for
approximately 3140 meters before gradually diverging northward and ending along the
north margin just past the dead end side valley. The angle of the northerly bias is 0.55,
which is approximately 30 m (1 pixel) of northerly bias for every 3 km (100 pixels) of
longitudinal movement within the velocity field. Seed C begins near the longitudinal
centerline and ends along the north margin at the glacier toe, exhibiting only a very slight
northerly bias. Seed D traces a path along the southern margin for several kilometers; it is
difficult to perceive any bias in its trajectory. Lastly, seed E traces a path along the
medial moraine between ice from HI2 and Tustumena as the ice proceeds towards the
dead end side valley; it is difficult to see any bias along its path. Overall, the
directionality of the 2007/08 velocity field is more reasonable than the 2006/07 velocity
field, which is likely due to a more complete and accurate removal of systematic error.
To examine other differences between the 2006/07 and 2007/08 velocity fields,
longitudinal velocity profiles are presented in Figure 3.35. The ice is moving faster
during the 2006/07 season compared to the 2007/08 season from the toe to approximately
5.5 km upglacier. At the toe, the speed difference is roughly 15 m/yr, and at the 3 km
mark, it is as large as 50 m/yr. Upglacier from the 5.5 km mark, the 2006/07 velocity
field exhibits a sinusoidal pattern presumably caused by reverse-dipping moraines.
100
Streamlines were produced from the 2007/08 velocity field to check the field's
longitudinal accuracy. Five seeds were placed within the velocity field (Figure 3.34), one
on HI2, and four on Tustumena. Seed A, within HI2, traces a realistic path down HI2,
around the curve at the junction with Tustumena, and ends at the side valley, as would be
expected. Seeds B and C exhibit a slight northerly bias. Seed B begins on a longitudinal
moraine just upglacier from the junction with HI2 and follows the moraine for
approximately 3140 meters before gradually diverging northward and ending along the
north margin just past the dead end side valley. The angle of the northerly bias is 0.55,
which is approximately 30 m (1 pixel) of northerly bias for every 3 km (100 pixels) of
longitudinal movement within the velocity field. Seed C begins near the longitudinal
centerline and ends along the north margin at the glacier toe, exhibiting only a very slight
northerly bias. Seed D traces a path along the southern margin for several kilometers; it is
difficult to perceive any bias in its trajectory. Lastly, seed E traces a path along the
medial moraine between ice from HI2 and Tustumena as the ice proceeds towards the
dead end side valley; it is difficult to see any bias along its path. Overall, the
directionality of the 2007/08 velocity field is more reasonable than the 2006/07 velocity
field, which is likely due to a more complete and accurate removal of systematic error.
To examine other differences between the 2006/07 and 2007/08 velocity fields,
longitudinal velocity profiles are presented in Figure 3.35. The ice is moving faster
during the 2006/07 season compared to the 2007/08 season from the toe to approximately
5.5 km upglacier. At the toe, the speed difference is roughly 15 m/yr, and at the 3 km
mark, it is as large as 50 m/yr. Upglacier from the 5.5 km mark, the 2006/07 velocity
field exhibits a sinusoidal pattern presumably caused by reverse-dipping moraines.
TUSTUMENA GLACIER STREAMLINED
FROM 2 0 0 7 / Q8 VELOCITY FIELD
<40^f/2jt$ *] y/
h i
1
Figure 3.34. Streamlines that follow 2007/08 velocity field.

I

,


102
Tustumena 06/07 and 07/08 longitudinal velocity profiles
1.5 3.0 4.5 6.0 7.5 9.0 10.5 12.0
Distance from west to east (km)
Figure 3.35. Comparison of longitudinal velocity profiles for 2006/07 and 2007/08 image
pairs.
affecting the measured displacement. At these locations, the mean velocity for 2006/07
may be approximately equal to the 2007/08 velocity, except for the steepest dip in
velocity in the 2006/07 profile caused by the moraine of Figure 3.27. As discussed
earlier, the difference in velocity between the two image pairs, particularly near the toe, is
likely caused by the acquisition of the 2008 image before the summer velocity maximum
was attained.
A more complete picture of the difference between Tustumena' s 2006/07 and
2007/08 velocity fields can be seen in Figure 3.36. In the lower 1/3 of the glacier, the
difference between the two vector fields is fairly uniform from margin to margin and
gently increasing from the toe inward, with the 2006/07 velocity greater than the 2007/08
velocity. The middle 1/3 of the glacier shows alternating patches of light and dark areas,
indicating the velocity difference between the two vector fields alternates, which is also
seen in the longitudinal profile (Figure 3.35). The dead end side valley has slightly higher
102
r........ frOm _., ooo! II<mI
.. l_JS_ ComJWison of !ongilooinal "eloc;ly profil .. rOt 2006101 and 2001103 illUjlO
poi ....
"clocily in the: 2006107 profile c,.sed by the: moraine J.27. A. d,,,,U>Kd
iLkely caused by the ocquioition oflll< 2008 im"ll<' I:><r".. the ..,,,.,,,.,. "elo<i'y muimum
....... wnod.
2007103 velo<i,y field an 1:>< ..... in Figure 3.16. In the 10"',,, 1/3 of the &I""i .... the
.... !oci'y. 111< mkldl. 1/3 ofthc: iJl""icr"""'" aJm .. ina palO"'" ofligln and Gar\< ......
indkoting thc: "eloci,y diff<n ....... = thc: lWO ,.to< f,elds all..".'<$. "'hich io ,Iso
I<al in the: Ioniltudinal profilo 111< de,.j end lid< ,-alloy hao .lii/ldy higher
103
Tustumena Glacier Velocity Difference
2006/07 velocity minus 2007/08 velocity
-195.6 -17.9 159.9
(m/yr)
Figure 3.36. Difference between 2006/07 and 2007/08 velocity fields for Tustumena
Glacier.
speeds in the 2006/07 velocity field and HI2 has significantly higher speeds in 2007/08.
At the junction of Tustumena and HI2 and in the area of the reverse-dipping moraine, the
2007/08 vector field has significantly higher speeds for reasons explained earlier. Farthest
upglacier, the north margin shows higher speeds in 06/07 and the south margin shows
higher speeds in 07/08. Overall, the velocity fields for the two seasons vary in a uniform
fashion in the lower 1/3 of the glacier, while the upper 2/3 of the glacier exhibits a
complex arrangement of velocity variability produced by reverse-dipping moraines, a
junction with a side glacier, a dead end side valley, and fast moving ice near the snow
line, which makes accurate correlation difficult.
COSI-Corr was run on the 2006 and 2008 Landsat-5 TM images to test whether
the two-year time span was too great to produce an accurate vector field or whether the
'"
Figure 3.36. Dirr<ra>c< bc1"-<crl 2006107 and 2007108 .... 1o<j'y fields for Tuot.."..,..
Gloc,<r,
.... J. in the 2006107 , .. I"dly field and HI2 hao iignifi<OII'ly hiiba SpOtd. in 2007101.
upglaoier. tilt north margin _ .. hig/lor .," -1, in 06107 and the IOUlh margin sM"'"
hip opds in 07/08. Ov .... lllho ,-.lodty field. for the , .. " sca><>n> "ary in a unifotnl
jun<tion with. sid. glacio< . dead end oide ,'oIley. and ros, movina icc: ""or the snow
Ii"", ... hich rnaI;"" occur:ol< com:lotion dilT"ull,
COSI-Corr " ... fUJI on II>< 1006 and 2008 LandWS TM im.ag"" 10 ,.., "I><tbcf
104
TUSTUMENA GLACIER VECTOR FIELD
9nnfi/Oft I anr t c^t F> nnsi -r.orr frequential correlator
100 TO 150 M/ YR
150 TO 200 M/ YR
200 TO 2 5 0 M/ YR
250 TO 300 M/ YR
> 300 M/ YR
0 5
1 I I I I I Km
Figure 3.37. 2006/08 Tustumena velocity field derived from Landsat-5 TM
imagery and COSI-Corr frequential correlator.
resulting displacements would compare well with the sum of the 2006/07 and 2007/08
displacements (Figure 3.37). The lower 1/3 of the velocity field, beginning several
kilometers down from the dead end side valley, appears plausible and COSI-Corr may
have been successful in this area. The upper 2/3 of the velocity field has areas of fast,
slow, and moderate velocities that do not appear to match those of the 2006/07 and
2007/08 velocity fields.
The 2006/08 displacement should equal the sum of the 2006/07 and 2007/08
displacements. Figure 3.38 shows the longitudinal displacement profile of the 2006/08
data, along with the sum of the 2006/07 and 2007/08 displacements. Along the 12.6 km
length of the profiles, there is no agreement except briefly at the 10 km mark. From the
glacier toe to the 5 km mark, the 2006/08 correlations overestimate the displacement by
at least 80 m, and at the 5 km mark, the overestimation is approximately 320 m. From
=ulting dillplai:<mcnu "'ould tompu< "'oil "ith tho sum of tho 2006107 ond lOO7/OS
dillplooancnts (Figurc 3.37). The Invo'CI" 113 of the ,.looity fiold. bogiMin& .... '.,..1
....... ond modmoto ,'olooiti .. tIw do "'" appear to mau:h thooo of tho 2006107 ond
2007/08 "<looity field .
dispIK .......... FiJlUl'" 3.38 ohovo" the Iotogitudi .. 1 displ>mftlt profile of the 2(1061(1S
dat.a. 0100$ with the sum oflb< 2006107 ond 2007108 di>p1aocmrnlS. AIooJ Ib< 12.6 Un
l<nlIIh of the profil<s., there i. no agrcan<nt .,Cq>t briony .. the 10 I:rn matI:. From the
., kast 80 m. ond .. Ib< S I:rn mar'<. Ib< o.=stimalion i. appro. imately no m. From
. I

FiJlUl'" J,l7. 2OOt>f08 'fW,t"",.,.. wlooi,y fi.ld tIeri"cd from Londsat-S TM
Lmog<rY ond COSI-Con- rr.q...."w wm:1.,.,..
105
Tustumena longitudinal displacement profiles
1.5 3.0 4.5 6.0 7.5 9.0 10.5 12.0
Distance from west to east (km)
Figure 3.38. Comparison of 2006/08 longitudinal displacement with the sum of 2006/07
and 2007/08 displacements.
the 5 km mark to the 8 km mark, the 06/08 data show a dramatic drop in displacement,
followed by a second dramatic peak that overestimates displacement by roughly 320 m
again. There is a drop in displacement in the 06/08 profile that coincides with the reverse-
dipping moraine, but the displacement is still overestimated by 150 m compared to the
06/07 and 07/08 data. The 06/08 profile has a third sharp peak at the 11 km mark
followed by a rapid decline. Overall, the 06/08 profile resembles profiles discussed
earlier produced by both IMCORR and COSI-Corr when run on the two-year ASTER
imagery. This reinforces the conclusion that a two-year time span between sequential
images is too long in this region for feature tracking to produce acceptable results.
It is worthwhile to examine the signal-to-noise ratios (SNR) for each of the
previous vector fields produced using the Landsat-5 TM imagery. SNR provides a
measure of the correlator engine' s confidence in each correlation by comparing the height
of the correlation peak with surrounding values. Leprince et al. (2007a) suggest a
'"'
I
I
'""" _ ...... (I0'Il1
FiSU'" 3.38, of2006.'08 Ionai".<Iir'l3l di<plocenterl\ ,,"'jlh the sum of2006107
and lOO71OS displ""""''''''' ,
Ih< km mar\: Lo Iho 8 km mark. Iho 06108 do .. show a dram.,i< drop in djjpl""""'''''''
follow! by. _ dramatio peal< IhaI o_erutim.,es d"plaoemertt by roug/oly no m
[0110, ... '11 by. .. <I"dine. 0. ..... 1. "'" 06.'OS prom. ,.......,bl .. prof,l" dilClloood
earlier produood by both l\ICORR and COSI-Corr when run on thc ,"'c-}Ur
previous "oor fi."" prod"" ...... ing the LaOOsaI-S 1M imlgcry. SNR p"' .... id ...
106
Figure 3.39. 2006/07 Tustumena vector field color coded by signal-to-noise ratio.
threshold of 0.99 for SNR. For the purposes of this study, no minimum threshold was
placed on SNR, so all correlations, independent of their SNR, were plotted if they passed
through the rigorous sorting routines described in Chapter 2. The 2006/07 vector field on
Tustumena Glacier consists mostly of correlations with SNR > 0.99 (red), with a minority
of correlations with SNR in the range of 0.99-0.94, and a small handful of correlations
with SNR < 0.80 (purple) (Figure 3.39). The vectors with SNR < 0.99 mostly reside
along the margins and towards the toe and dead end side valley. The main flow of ice
along the center line in the upper 2/3 of the glacier predominantly possesses SNR > 0.99.
The SNR for the 2007/08 vector field (Figure 3.40) is almost entirely in the range of
0.99-0.94 (yellow), with one correlation in the range of 0.92-0.94 (green) and a handful <
0.80 (purple). This is a stark contrast to the 2006/07 vector field, which has many
correlations with SNR > 0.99, but the vector field for the 2007/08 image pair is
confirmed to be accurate through visual calculation of velocity and streamlines even
Ilunhold of 0.99 for SSR. For the purpooeo ofthi, no minimum Ilunhold .....
placod OIl SSR. II<> all rom:lotioru. indq><n<l<nt ofthoir SSR. were plotted if they p"'n'
lIIrou$II the rigo""" sonins TOuti .... clescribcd '" OIapt<r 2. Th< 2006/07 ""tor field on
TttSlumena CI:i<r>OlUi", of oorrtl.,ions .. ilh SSR ,. 0.99 (fI). "'ilh
of """",I.ti"",, wilh SSR in the of 0.99.(1.9.\, and . snulllw>dfui of ."""Wions
wilh SSR <; 0.80 (purple) (Figure J.J9). Th< "tors .. ilh SSR <; (1.99 "",,'Iy =ide
alona the martild ODd t""-vdt the ''''' ODd dead end okIe valley. Th< maln flow of 1<.
along the li1l< in the upper 2lJ of the SllOi.,. pc t' .,. .. SSR ,. 0,<)9.
Th< SSR for the 2007108 ,'tor r .. 1d (Figure 1,40) it .Imost entirely in tile of
0,99.(1,9.\ with one "",",I.,ioo in the ""SO of 0,92.(1,9.\ (jp'Il) and Iw>dful <;
0.80 (P"'1>Ie), Thi. i "an: 00/1".... to tl>e 2006107 field. ,,hid. his many
""""Iationo with SSR,. 0.99. bu, the ,,tor field for the 2007108 pal, it
"""finned '0 be """urale Ihfough ,'isual.aloulalion ODd ""'amli ...... .."
. I
Figure J 39. 2006/07 Tust"",ena "ector field color coded .ignal-to-noi .. ratio.
107
Figure 3.40. 2007/08 Tustumena vector field color coded by signal-to-noise ratio.
though there are no correlations with SNR > 0.99. The 2006/08 vector field has an
equitable distribution of SNR (Figure 3.41) among its correlations with values from 0.99
(red), to the range of 0.99-0.94 (yellow), and < 0.8 (purple). Curiously, there is a near
complete absence of correlations with SNR in the ranges of 0.94-0.92 (green) (except for
one vector in the 2007/08 image), 0.92-0.90 (aqua), and 0.90-0.80 (blue) for all three
vector fields.
The difference in SNR between the 06/07 and 07/08 vector fields is likely due to
the size of the search window used during the correlation process. When using IMCORR,
the use of larger window sizes translates to higher correlation strength values (NSIDC
website), and similarly, COSI-Corr yields higher SNR values when larger window sizes
are used because the overlapping area between the search and reference areas is larger
(Leprince et al., 2007a). The 06/07 vector field used a variable window size ranging from
64x64 pixels to 4x4 pixels (with SNR calculated based on the 64x64 window size), while
.. ,
. I
J .
fjrure HO. 2007108 Tuslum .... ",or field colo< >Od<d by .illJl>llo-noi .. 12Iio.
though "'""' .... no <0<'1'010';"'" " 'j", S:>'II. (1.9\1. The 2006108 ,"tor r..kl bao an
... ui.-o1. di<lribubon ofSSR (Fii'= 3.41)""""'11 ito rom,.,i""" "ith .:olua from 0.99
(red). '" Ihc r3IIi< ofo.99"(),O),j (,.."""",), and < (1.8 (rwvlc). eunou.ly, then: i near
compt<te........,. of >rT<1>1ions "ilh S:-.' It in lIIe '""II' ofO.OU-O.n (jItttII) (".<p, r",
one .ector in !he 2007/08 im.,.). O.9N).90 laq .. ). and 0.90-0.80 (01",,) for :olllhrc<
v..,..,. fields.
The diff=>c< in S:-.' R bel","" Ihc 06107 and 07108 ,'!or r,e"" i. likely due 10
the size of .... O<2I'Ch " 'indow UO<d the eo .... I.,I"" ""'hen "';IIi lMCORR.
!he .... of lars" window .ius ...... ''' .. 10 my... oone!.llioo 0I=gt/l VIloes (NSIDe
,,'<bIi,e), and .imilarly. COSI-Corr yicl4s hiSb SNR ,"2luoo wll<n lorgtr ,"'indow si ...
at< UKd 1>: .... 1he .... btt"'<et1 II>< st ... h and "'r......., ....... i. W'gtr
(Leprl"" ... oJ . 1007.). The 06107 ,...:tor field used. ,..nabl. wir>dow lize rangl"i\ from
64x64 puct, 10 4.4 pi>dl ( .. ith S:':R Iculalod ba><d on Ill< 64,64 "indow size), ... hik
Figure 3.41. 2006/08 Tustumena vector field color coded by signal-to-noise ratio.
the 07/08 vector field used a static window size of 32x32 pixels, which accounts for the
lower SNR values of the 07/08 vector field. The window size used for each image pair
was chosen after several trial runs of COSI-Corr according to which produced the
greatest spatial extent of vectors upon the glacier.
Assuming higher SNR translates directly to correlation precision, then it is
possible the better accuracy of the 06/07 velocity field, as determined by the visual
confirmation data shown in Tables 3.1 and 3.2, is a direct result of the higher SNR of the
correlations within the velocity field. This explains the difference in accuracy between
the 06/07 and 07/08 velocity fields and affirms that larger window sizes produce more
accurate correlations, which appears true based on multiple trial runs of COSI-Corr.
However, larger window sizes may also incorporate areas of greater deformation or
morphological change in ice surface features, which could preclude successful
correlations. Therefore, use of a larger window size may yield an unacceptably sparse
, ,,.
d ' "
I
the 07/08 ""lOr r",kI used ..... ic .,irxlo", suo "f 32. 32 "",els, which """"""IS rot ,he
com:lation< .. -ilhin .... '-<!o<;'Y field. Thi. explain! the: difference in aocutaCy .... ,,-=
TDO<J>holoJi<ol chang< in lee surf_ features. whi<h could ...,., ... tbl
""""I .. ions. use of I t.uget v.'i_ may ykkl on wuccopubly opan<
109
vector field, which then forces the use of the next smallest window size. Ultimately, a
balance between the accuracy, as determined by SNR, and spatial extent of a vector field
must be found, which typically can only be achieved by multiple trial runs of COSI-Corr.
And because each unique satellite image pair has differing geometry, illumination, and
calendar dates, they will require unique search parameters.
In the end, SNR can be a guide to the relative accuracy of a velocity field, but it
should not be used as the sole discriminator to judge the worthiness of a single vector,
nor an entire vector field. Spatial extent must also be considered when deciding whether a
velocity field meets the user' s needs, and direction and magnitude are better quantities to
use when assessing the quality of an individual vector.
The successful application of COSI-Corr' s frequential correlator to 30-meter
Landsat-5 TM imagery spanning one year and its failure when applied to 15-meter
ASTER imagery spanning two years suggests the correlation process is less sensitive to
the spatial resolution of the imagery than it is to the time span between the images.
However, it is not simply the time span between two images that causes the correlation
process to fail locally; it is the morphological change in ice surface features caused by
displacement and ablation over two years that inhibits accurate correlation.
3.9 McCarty Vector Field Derived From Landsat-5 Imagery
A velocity field was produced for McCarty Glacier from 2006 and 2007 Landsat-
5 TM images using COSI-Corr' s frequential correlator (Figure 3.42). Due to cloud cover
in the 2008 image, a 2007/08 velocity field could not be produced. The 2006/07 velocity
field shows the ice from the northern tributaries moves steadily at 100-150 m/yr for most
of their length. The ice from the western tributary enters the valley via an icefall, where
109
vector field, which then forces the use of the next smallest window size. Ultimately, a
balance between the accuracy, as determined by SNR, and spatial extent of a vector field
must be found, which typically can only be achieved by multiple trial runs of COSI-Corr.
And because each unique satellite image pair has differing geometry, illumination, and
calendar dates, they will require unique search parameters.
In the end, SNR can be a guide to the relative accuracy of a velocity field, but it
should not be used as the sole discriminator to judge the worthiness of a single vector,
nor an entire vector field. Spatial extent must also be considered when deciding whether a
velocity field meets the user's needs, and direction and magnitude are better quantities to
use when assessing the quality of an individual vector.
The successful application of COSI-Corr's frequential correlator to 30-meter
Landsat-S TM imagery spanning one year and its failure when applied to IS-meter
ASTER imagery spanning two years suggests the correlation process is less sensitive to
the spatial resolution of the imagery than it is to the time span between the images.
However, it is not simply the time span between two images that causes the correlation
process to fail locally; it is the morphological change in ice surface features caused by
displacement and ablation over two years that inhibits accurate correlation.
3.9 McCarty Vector Field Derived From Landsat-S Imagery
A velocity field was produced for McCarty Glacier from 2006 and 2007 Landsat-
S TM images using COSI-Corr's frequential correlator (Figure 3.42). Due to cloud cover
in the 2008 image, a 2007/08 velocity field could not be produced. The 2006/07 velocity
field shows the ice from the northern tributaries moves steadily at 1 00-ISO mlyr for most
of their length. The ice from the western tributary enters the valley via an icefall, where
110
MCCARTY GLACIER VECTOR FIELD
Figure 3.42. McCarty velocity field derived from 2006/07 Landsat-5 TM imagery and
COSI-Corr frequential correlator.
ogives form; COSI-Corr failed to produce any correlations due to extreme ice
deformation here. As the tributaries merge, ice from the north is accelerated as it is
incorporated with faster moving ice from the west. Two kilometers up from the toe,
crevasses form and again COSI-Corr fails to produce correlations. The ice decelerates to
speeds < 50 m/yr as it approaches the toe before calving into McCarty Fjord, ogives
form; COSI-Corr failed to produce any correlations due to extreme ice deformation here.
As the tributaries merge, ice from the north is accelerated as it is incorporated with faster
moving ice from the west. Two kilometers up from the toe, crevasses form and again
""
Figurt 3.42. ).1cCany >'<locity fleld <kri,'cd frnrn :1006.'07 Land ... S TM un.gay on<l
COSJ-COIT i'r<oquential """"Iator.
"ii,a form: COSI-COIT failed to prod"". OlIYrorTel .. ion$ d .. t" extreme ice
defonn.,ion here. AI .... lributaries nIa$<. ;00 from .... ""nh i. ""cclcnlcd U \l i.
Of: ,. <; SO mlyr .. it "I'proa<h<s .... to< bofo'" calvinil into McCany Fjord. <>giv ..
fonn; COSI-C<n flilod 10 prod"". any KI"OJotions due 10 nlreme k. deformation ~
I l l
COSI-Corr fails to produce correlations. The ice decelerates to speeds < 50 m/yr as it
approaches the toe before calving into McCarty Fjord.
Longitudinal elevation and velocity profiles (transects A-A' , B-B' , and C- C in
Figure 3.42) are constructed to correlate ice surface speed with topography and to
estimate the primary flow mechanisms (Figures 3.43a-c). Farthest upglacier, the ice
gradually accelerates from just under 100 m/yr at location A' to 175 m/yr at the 4.5 km
mark, while the elevation gradient remains uniform. At the 4.5 km mark, there is a break
in the velocity data as the transect traverses laterally west to capture data across the
ogives. During this traverse, the ice surface elevation slightly rises and falls, delineating
the boundary between ice from the north and ice from the western tributary. This rise in
ice surface elevation suggests that the ice from the west piles up against ice from the
north as the two masses merge and ice from the west seeks to establish itself near the
valley bottom. Traversing southward across the ogives, there is a general decline in
velocity from roughly 220 m/yr to 170 m/yr over a distance of 1.5 km. Between the 2.0
and 2.5 km marks, there is another gap in the velocity data that coincides with a steep
decline in elevation and the formation of crevasses. It is possible that there is a rapid rise
in ice velocity as ice moves down the steep incline, but due to the crevassing, no
correlations were found in this region to verify such behavior. At the 1 km mark, the ice
velocity stabilizes just below 50 m/yr until it calves into McCarty Fjord.
The dominant mechanism for ice flow can be determined by examining transverse
velocity profiles B-B' and C- C (Figures 3.43b,c). Upglacier, profile C- C shows
velocities ranging from 115 m/yr along the western margin to < 95 m/yr along the eastern
COSI-Corr fails to produce correlations. The ice decelerates to speeds < 50 mlyr as it
approaches the toe before calving into McCarty Fjord.
111
Longitudinal elevation and velocity profiles (transects A-A', B-B', and C-C' in
Figure 3.42) are constructed to correlate ice surface speed with topography and to
estimate the primary flow mechanisms (Figures 3.43a-c). Farthest upglacier, the ice
gradually accelerates from just under 100 mlyr at location A' to 175 mlyr at the 4.5 km
mark, while the elevation gradient remains uniform. At the 4.5 km mark, there is a break
in the velocity data as the transect traverses laterally west to capture data across the
ogives. During this traverse, the ice surface elevation slightly rises and falls, delineating
the boundary between ice from the north and ice from the western tributary. This rise in
ice surface elevation suggests that the ice from the west piles up against ice from the
north as the two masses merge and ice from the west seeks to establish itself near the
valley bottom. Traversing southward across the ogives, there is a general decline in
velocity from roughly 220 m/yr to 170 mlyr over a distance of 1.5 km. Between the 2.0
and 2.5 km marks, there is another gap in the velocity data that coincides with a steep
decline in elevation and the formation of crevasses. It is possible that there is a rapid rise
in ice velocity as ice moves down the steep incline, but due to the crevassing, no
correlations were found in this region to verify such behavior. At the 1 km mark, the ice
velocity stabilizes just below 50 m/yr until it calves into McCarty Fjord.
The dominant mechanism for ice flow can be determined by examining transverse
velocity profiles B-B' and C-C' (Figures 3.43b,c). Upglacier, profile C-C' shows
velocities ranging from 115 mlyr along the western margin to < 95 mlyr along the eastern
McCarty Velocity: Transverse Profile C-C
250
225
200
g
175
>-
1
150
>
125
100
75
Distance from west to east along C-C (meters)
Figure 3.43. Profiles for 2006/07 velocity field of McCarty Glacier, a) Longitudinal
elevation and velocity profile A-A' , b) Transverse profile B-B' . c) Transverse profile C-
C.
III
... ' "...,
.'.'

-
,



-
!
-
-
I
-

-
'-
i:V _____
,. .
-
"
..
.,
- " .. .. ..

oj
--_.-.....
" .... __ ..
-
,
-
'"
I
0
'. ,.

' .

-
' .
'*
'.
"
--_ .. --.. .. ,-
l ' ..... _e-c
-
-
,
-
,
'"
I
, .
,.

' .

,J
_ _ _ ., __ e-c_
3.43, Ptcfil .. rOt 2006107 \'do<j,y fi.1d or M<cany GI.d"".) Longi,""inol
.kvati"" and ,.io<;'y profik A A', b) Tr2IIS, ..... profok 8,9', <) Tr2IIS\' ..... profik C-
O'.
113
margin, with little variation in between. The relatively uniform speed across the glacier
suggests that basal slip dominates ice movement in this region of the glacier.
Downglacier, after the western tributary merges with the northern tributaries, both basal
slip and internal ice deformation contribute significantly to ice movement, as is seen in
the shape of transect B-B' (Figure 3.43b). The ice is moving too fast to be entirely
attributed to deformation, up to 215 m/yr in the glacier's midsection, drag along the
valley walls slows the velocity along the west margin to 170 m/yr, and it slows the east
margin to 130 m/yr. The obvious parabolic shape of the profile indicates the effect of
internal ice deformation superimposed on the basal slip component of ice movement.
To confirm COSI-Corr' s accuracy, seven locations upon McCarty Glacier were
chosen for visual calculation of velocity to compare with COSI-Corr's results. The
locations are shown as points A-G in Figure 3.44, and their corresponding velocities are
summarized in Table 3.3. Point A, nearest the toe, has only a 2 m/yr difference between
the visual determination of speed and COSI-Corr' s velocity, the smallest difference in the
group. Point B is in the crevasse field and gives a 20 m/yr difference between the two
methods of calculating velocity. Point C is located within the longitudinal moraine on the
west side of the glacier and there is a 10 m/yr difference between the two methods at this
location. Point D is located in the center of the ogives and the two velocity calculation
methods agree to within 3 m/y of each other at this point. Point E is located in the thick
moraine along the east side of McCarty Glacier and there is only a 7 m/yr difference
found here. Points F and G are located on debris flows atop the ice in the northern
tributary. At point F, on the smaller southern debris flow, the visual method gives a speed
of 168 m/yr while COSI-Corr gives 142 m/yr, a difference of 26 m/yr, which is the
113
margin, with little variation in between. The relatively uniform speed across the glacier
suggests that basal slip dominates ice movement in this region of the glacier.
Downglacier, after the western tributary merges with the northern tributaries, both basal
slip and internal ice deformation contribute significantly to ice movement, as is seen in
the shape of transect B-B' (Figure 3.43b). The ice is moving too fast to be entirely
attributed to deformation, up to 215 m/yr in the glacier'S midsection, drag along the
valley walls slows the velocity along the west margin to 170 m/yr, and it slows the east
margin to 130 m/yr. The obvious parabolic shape of the profile indicates the effect of
internal ice deformation superimposed on the basal slip component of ice movement.
To confirm COSI-Corr's accuracy, seven locations upon McCarty Glacier were
chosen for visual calculation of velocity to compare with COSI-Corr's results. The
locations are shown as points A-G in Figure 3.44, and their corresponding velocities are
summarized in Table 3.3. Point A, nearest the toe, has only a 2 m/yr difference between
the visual determination of speed and COSI-Corr's velocity, the smallest difference in the
group. Point B is in the crevasse field and gives a 20 m/yr difference between the two
methods of calculating velocity. Point C is located within the longitudinal moraine on the
west side of the glacier and there is a 10 m/yr difference between the two methods at this
location. Point D is located in the center of the ogives and the two velocity calculation
methods agree to within 3 m/y of each other at this point. Point E is located in the thick
moraine along the east side of McCarty Glacier and there is only a 7 m/yr difference
found here. Points F and G are located on debris flows atop the ice in the northern
tributary. At point F, on the smaller southern debris flow, the visual method gives a speed
of 168 m/yr while COSI-Corr gives 142 m/yr, a difference of26 m/yr, which is the
114
2006/07 McCarty Glacier
velocity raster
G
32.7 146.2 259.7 (m/yr)
Figure 3.44. Velocity raster showing location of points used for visual calculation of
velocity.
Table 3.3. Comparison of visually determined velocity with COSI-Corr' s results for
McCarty Glacier, 2006/07.
Point
Visual
speed
(m/yr)
COSI-Corr
speed
(m/yr)
Difference
(m/yr)
Difference
(pixels)
Percent
Difference
A 44 42 2 0.06 4.5%
B 88 108 20 0.64 18.5%
C 129 139 10 0.32 7.2%
D 258 255 3 0.10 1.1%
E 140 133 7 0.22 5.0%
F 168 142 26 0.83 15.5%
G 113 96 17 0.54 15.0%
'"
Fiaun: 3.44. V.loony rut .. >howl"1I location of pOll". USO<l tor ,i...al <ak"lotion of
v<loci,y_
Tobl. 3.3. Comparison ohi...ally d .. ermi<>Od v.lo<oty "i\h COSI.cOlT'" ..,I .. for
MoCany GI""ier. 2006107.
Poin,
115
largest of the group, but still less than one pixel. At point G on the nort hern larger debris
flow, the difference bet ween the t wo met hods is 17 m/yr. Interestingly, t wo of the most
easily t raceabl e features, the debris flows, produce some of the greatest differences
bet ween the visual met hod of velocity det ermi nat i on and COSI - Cor r ' s results. Wi t hi n this
group of poi nt s, neither COSI-Corr nor the visual met hod consistently produced larger or
smaller velocities t han t he other met hod, unl i ke t he vel oci t y field of Tust umena Glacier
in whi ch the visual met hod repeatedly underest i mat ed velocity compared to COSI-Corr.
Overall, there is no mor e t han 0.83 pixel difference bet ween the visual met hod of velocity
calculation and COSI - Cor r ' s frequential correlator (Point F), wi t h half the poi nt s giving
results wi t hi n Vi pixel or less. The average difference bet ween the t wo vel oci t y
det ermi nat i on met hods is 12.1 m/ yr (0.39 pixel), and the average percent difference is
9. 54%. This general agreement bet ween the t wo met hods of velocity det ermi nat i on
provi des some confidence in COSI - Cor r ' s results.
To further confirm the l egi t i macy of McCar t y Gl aci er' s vel oci t y field, streamlines
were produced to check the directional accuracy. Fi ve seeds were pl aced in the velocity
field (Figure 3.45) at strategic locations to test the accuracy of the velocity field across its
length and wi dt h. Seeds A and B were pl aced at the head of the t wo nort hern tributaries
and their streamlines proceed downgl aci er wi t hout veeri ng across the medi al morai ne
bet ween t hem, nor do t hey di verge t owards either margi n. Seeds C and D wer e pl aced
j ust bel ow the icefall in the west ern tributary and their streamlines proceed as expect ed
down the ogi ves wi t hout any percei ved bias t owards the west ern margi n or the eastern
medi al morai nes. The streamline for seed D ends where the crevasses form and there is a
data gap in the vel oci t y field. Subsequently, seed E was pl aced i mmedi at el y downgl aci er
115
largest of the group, but still less than one pixel. At point G on the northern larger debris
flow, the difference between the two methods is 17 m/yr. Interestingly, two of the most
easily traceable features, the debris flows, produce some of the greatest differences
between the visual method of velocity determination and COSI-Corr's results. Within this
group of points, neither COSI-Corr nor the visual method consistently produced larger or
smaller velocities than the other method, unlike the velocity field of Tustumena Glacier
in which the visual method repeatedly underestimated velocity compared to COSI-Corr.
Overall, there is no more than 0.83 pixel difference between the visual method of velocity
calculation and COSI-Corr's frequential correlator (Point F), with half the points giving
results within 12 pixel or less. The average difference between the two velocity
determination methods is 12.1 m/yr (0.39 pixel), and the average percent difference is
9.54%. This general agreement between the two methods of velocity determination
provides some confidence in COSI-Corr's results.
To further confirm the legitimacy of McCarty Glacier's velocity field, streamlines
were produced to check the directional accuracy. Five seeds were placed in the velocity
field (Figure 3.45) at strategic locations to test the accuracy of the velocity field across its
length and width. Seeds A and B were placed at the head of the two northern tributaries
and their streamlines proceed downglacier without veering across the medial moraine
between them, nor do they diverge towards either margin. Seeds C and D were placed
just below the icefall in the western tributary and their streamlines proceed as expected
down the ogives without any perceived bias towards the western margin or the eastern
medial moraines. The streamline for seed D ends where the crevasses form and there is a
data gap in the velocity field. Subsequently, seed E was placed immediately downglacier
MCCARTY GLACER STREAMLINES
Figure 3.45. Streamlines that follow 2006/07 McCarty Glacier velocity field.
'"
f i ~ " ... 3.4S. S, ... .",,, ... \1'1.1, rOIIovo" 2006101 MCC .... y GI.d .. "C!o<ily field.
of the terminus of the streamline for seed D, and its path proceeds to the glacier toe
without any perceived bias. Overall, the streamlines produced from McCarty Glacier's
velocity field do not contain any visually detectable bias, which suggests the
directionality of the velocity field is accurate and the systematic error was effectively
removed.
When McCarty' s vector field is color-coded according to SNR (Figure 3.46), it
reveals that most of the vectors have a SNR between 0.99 and 0.94 (yellow), a few
MCCARTY GLACIER VECTOR FIELD
COLOR CODED BY SNR
Figure 3.46. McCarty vector field color coded by signal-to-noise ratio.
of .... lamiD" of .... otrcamlinc fOr seal D, or.d its p.alh proceeds Ie .... "'"
" 'ilhoul .. y prn:<ivod bias. O", .... lllh< suumlin .. from McCo.ny GI..,ict'.
"elo<ily fiotel do "'" .,...,lain .. y "itually eI .. oetsble ... ,,"'hioh .... gg<st.Ih.
oftl>e '-.Io<;ly field is ..,"""". or.d .... systematic....". ...... (foeli,-.Iy
mnQ'od.
Wba:> McCarty's.ertor field i. coloM:odod occooding Ie SSR (Fill"f< ;1
",,-ua litst mos:t of .... '-I"" have. S:-'"R bet .-em 0.99 ond 0.94 {yellow}. a few
"iI'", 3.46. ,'>1cCany '<ClOt fi.1d color codod by ,.;g"al-IC--noi .. ",,;0.
118
vectors in the northern tributary have SNR > 0.99 (red), and a handful of vectors around
the ogives and near the toe have SNR < 0.8 (purple). As with Tustumena Glacier's vector
fields, there is a curious lack of vectors with SNR between 0.94 and 0.80. If a SNR
threshold of 0.99 had been applied during the vector sorting routines, as suggested by
Leprince et al. (2007a), the vector field would be nearly empty and the correlation
process considered a failure. However, as just discussed, the vectors produced by COSI-
Corr are accurate and simply because the vectors do not have SNR > 0.99 does not mean
they should be discarded, but rather that they were produced using a smaller search
window size (32x32). The lower SNR and higher velocity difference between the visual
and automatic techniques of McCarty Glacier's velocity field suggests higher SNR
correlates with better accuracy, but not necessarily better spatial extent, which is why the
velocity field produced using a 32x32 search window was chosen for this study.
3.10 Positive Degree Days, Time Span, and Location Comparison
While deformation of ice surface features due to large displacements may
influence the local success or failure of feature tracking algorithms within a particular
area of a glacier, a region' s climate and associated melt intensity will determine the
maximum time span that can be accommodated by feature tracking. As a relative measure
of the amount of ablation on Harding Icefield, the number of positive degree days (PDD)
was calculated. The degree day was first introduced by Lt. Gen. Richard Strachey,
Chairman of the Meteorological Council and later described by R. H. Scott (Scott, 1884,
p.354) as "1 F of excess or defect of temperature above or below [freezing] continued
for twenty-four hours." Therefore, the PDD may be considered the "accumulated
118
vectors in the northern tributary have SNR> 0.99 (red), and a handful of vectors around
the ogives and near the toe have SNR < 0.8 (purple). As with Tustumena Glacier's vector
fields, there is a curious lack of vectors with SNR between 0.94 and 0.80. If a SNR
threshold of 0.99 had been applied during the vector sorting routines, as suggested by
Leprince et al. (2007a), the vector field would be nearly empty and the correlation
process considered a failure. However, as just discussed, the vectors produced by COSI-
Corr are accurate and simply because the vectors do not have SNR > 0.99 does not mean
they should be discarded, but rather that they were produced using a smaller search
window size (32x32). The lower SNR and higher velocity difference between the visual
and automatic techniques of McCarty Glacier's velocity field suggests higher SNR
correlates with better accuracy, but not necessarily better spatial extent, which is why the
velocity field produced using a 32x32 search window was chosen for this study.
3.10 Positive Degree Days, Time Span, and Location Comparison
While deformation of ice surface features due to large displacements may
influence the local success or failure of feature tracking algorithms within a particular
area of a glacier, a region's climate and associated melt intensity will determine the
maximum time span that can be accommodated by feature tracking. As a relative measure
of the amount of ablation on Harding Icefield, the number of positive degree days (PDD)
was calculated. The degree day was first introduced by Lt. Gen. Richard Strachey,
Chairman of the Meteorological Council and later described by R. H. Scott (Scott, 1884,
p.354) as "10 F of excess or defect of temperature above or below [freezing] continued
for twenty-four hours." Therefore, the PDD may be considered the "accumulated
119
J l I I 1 , 1 1 L
2000 2001 2002 2003 2004 2005 2006 2007 2008
Year
Figure 3.47. PDD for Seward, AK; NASA SE AWS Greenland; Pyramid station
Himalayas.
temperature" or "positive effective temperature" for a given location and time span.
Meteorological data from Seward, AK (NOAA website), northeast of Harding Icefield,
yields PDD for 2000-2008 (Figure 3.47) ranging from a high of 1713 in 2005 to a low of
1140 in 2008 and an average PDD value of 1456. A lapse rate of 6.5 C per 1000 m was
applied to adjust the temperatures, recorded at 18 meters above sea level, to an equivalent
temperature at 400 m above sea level at the midpoint along Tustumena' s ablation zone.
These values can be compared to PDD values of locations where other similar studies
using feature tracking have been performed with successful results. A recent investigation
of Khumbu Glacier, Nepal (Scherler et al., 2008) successfully used COSI-Corr to
generate velocity fields with sequential ASTER images that spanned up to 3.95 years
(Sept. ' 01 to Aug. ' 05). Khumbu Glacier is a slow moving glacier (< 50 m/yr) at high
altitude, above 5000 meters; consequently, the PDD for this location are quite low, 346
and 298 for 2003 and 2004, respectively (Figure 3.47) (NASA Goddard Space Flight
PDD Comparison
1800
'"
Mnoorolopaol data from s.,..'onI. AK (N"OAA "d .. oonheas> ofHording lcofield,
yield. POD for 200().2008 (Figut<" 3.4 7) ranging from high of 17lJ in 2005 10 10 .. ' of
1140 in 2008 anol on "-er>,. POD ,'.II!< of A lap$< .. ,. ,,{6.S C 1000 m "''25
applied '" odjUOl the 1omper:a1ure<. =<>rded .. 18 m ..... abo, ..... la..,1. 10 on Iuival"",
"""'p<mur< .. 400 m obove ... kvel at II>< midpoint alooa TU$lurnma', abl .. ioo .......
ll>est .'.1 .... oan be O<HJ\pamI '" POD '-"ues ofloc .. ions ........ OIlIer ';mil ... <tOOi ..
of Khumbu Gloci ..... Nopal (Sebert ........ 201)8) successfully ...d COSICOIT 10
i""<"". ,.10<:;'1 fields wilb ><q...mial ASTER imap tha1 up 10 ] .95 YC""
(Sq>!. '01 lO Aug. ',"). Khumbll GI .. i ... is I .to"" ",,,ina g1""i .... SO "")'1") at high
and 298 for 200J and 2001. respecli ly (Fipn: 3.47) (NASA C"""'onl SI*<" Flil/OI
a
i!

POD Comparison


,-
".

-

-
,.
,
1<100 XIO. >00, 100) 1000 1<lOS 1006 1007 loot
Vur
Figu'd_47. POD fQr s.:..-.nJ, AK: N...s,o. SE AWS Greenland, Pyr2mid".'ion
Himalayas.
120
Center Global Change Master Directory website), and associated ablation and
morphological change of ice surface features would also be low. This allows correlations
across multiple years.
Many investigations that have used optical feature tracking methods were done
using sequential images spanning only one ablation season, or within a single ablation
season. An example of this type of work was performed in SE Greenland (Howat et al.,
2008) in which 32 glaciers were analyzed with an algorithm similar to IMCORR using 16
day repeat pass ASTER imagery during the 2001-06 seasons. The shorter time span
between sequential images in this study is likely necessary as it was found many of the
outlet glaciers are moving several kilometers per year. However, the PDD, again adjusted
for elevation, for southeast Greenland (Steffen et al., 1996) for the time period of the
study is almost uniformly below 1000, so surface ablation is likely less than experienced
at Harding Icefield, and it may be possible to correlate across longer time spans in
southeast Greenland.
Many other notable studies have successfully used optical feature tracking
techniques in areas of low ablation: Antarctica (Bindschadler & Scambos, 1991;
Bindschadler et al., 1994 and 1996; Whillans & Tseng, 1995), Svalbard (Dowdeswell &
Benham, 2003; Kaab, et al., 2005; Rolstad et al., 1997), the Himalayas (Kaab, 2005;
Scherler et al., 2008), western Greenland (Joughin et al., 2004), and Ellesmere Island
(Copland et al., 2003; Williamson et al., 2008). All these studies were performed either in
areas above the Arctic Circle, in Antarctica, or at high altitude, so the effects of ablation
on ice surface features are sufficiently small to allow successful correlation between
images and generation of spatially complete and accurate velocity fields. Several other
120
Center Global Change Master Directory website), and associated ablation and
morphological change of ice surface features would also be low. This allows correlations
across multiple years.
Many investigations that have used optical feature tracking methods were done
using sequential images spanning only one ablation season, or within a single ablation
season. An example of this type of work was performed in SE Greenland (Howat et aI.,
2008) in which 32 glaciers were analyzed with an algorithm similar to IMCORR using 16
day repeat pass ASTER imagery during the 2001-06 seasons. The shorter time span
between sequential images in this study is likely necessary as it was found many of the
outlet glaciers are moving several kilometers per year. However, the PDD, again adjusted
for elevation, for southeast Greenland (Steffen et aI., 1996) for the time period of the
study is almost uniformly below 1000, so surface ablation is likely less than experienced
at Harding Icefield, and it may be possible to correlate across longer time spans in
southeast Greenland.
Many other notable studies have successfully used optical feature tracking
techniques in areas of low ablation: Antarctica (Bindschadler & Scambos, 1991;
Bindschadler et aI., 1994 and 1996; Whillans & Tseng, 1995), Svalbard (Dowdeswell &
Benham, 2003; Kaab, et aI., 2005; Rolstad et aI., 1997), the Himalayas (Kaab, 2005;
Scherler et aI., 2008), western Greenland (Joughin et aI., 2004), and Ellesmere Island
(Copland et aI., 2003; Williamson et aI., 2008). All these studies were performed either in
areas above the Arctic Circle, in Antarctica, or at high altitude, so the effects of ablation
on ice surface features are sufficiently small to allow successful correlation between
images and generation of spatially complete and accurate velocity fields. Several other
121
PDD vs Velocity for Selected Regions
*C 2500
>
2000
"5 1500
_o
> 1000
La
500
CO
SE Greenland
Svalbard
Antarctic
y v Himalayas
Alaska
500 1000 1500 2000
Positive Degree Days
New Zealand
2500 3000
Figure 3.48. Comparison of glacier velocity and positive degree days (PDD) for selected
glaciated regions.
studies have used imagery spanning a single ablation season in areas outside the polar
regions: New Zealand (Kaab, 2002; Quincey & Glasser, 2009), Norway (Jackson et al.,
2005), the Karakoram Range (Copland et al., 2009), and Kyrgyzstan (Mayer et al., 2008).
To further illustrate the unique position of southern Alaskan glaciers with regards
to ablation and location, a plot of PDD vs. glacier velocity for five selected glaciated
regions is provided (Figure 3.48). Although this represents a small sampling of
worldwide glaciated areas, southern Alaska clearly stands out with relatively slow
velocities and high ablation, which reaffirms the potential difficulties of successfully
applying optical feature tracking techniques there.
Based on the results of this study and the choices made by numerous other
'"
Now Zealand (KUb. 2002, Quin<ey &; Glosser. No", .. y (Jac' ,"" ... 01.,
LlIe Karakoram Range (Copland .. 01 . 20(9). and KJ'IlIY.tIIan (.\layer .. ol .
to oblation and \oc>lion plo! .. fPDD , ... iI.der .elocity f .. , five .. Itcd i1aci .. cd
r<gioru i. provided (Figure 3.48). ,0.1"""'$1> Ihi. . .... all <amplina of
"PI'lyi"ll opIicaI reat"'" IIac kini 'ectmiquell Ih<r<.
Based on <h resulls of "'i. OIudy and thc: obo;o .. made by num<!'OllS OIlIer
poe yS Velocity forSetected Regions
o Sf Greenl .....
S lb.rd
o AnU'etic
o cO ,
4' New Zul. nd
, ,

Figure 3.48, Cornpmoon of gloci ...... loci'y and 1>0';1;". degrt< days (POD) rot .. 1,1
glaci.,cd "'Ill"'"
122
researchers, it is clear that avoiding scenarios that lead to large ice surface ablation, such
as long time spans between images, is preferable when attempting correlations. This does
not bode well for south-central Alaska, which has high ablation rates (based on PDD
data) and exists in a continental subarctic environment. Future feature tracking studies in
this area should be restricted to a one-year time span, or within a single ablation season,
to ensure favorable results.
122
researchers, it is clear thai avoiding scenarios that lead to large icc surface ablation, such
as long lime spans between images, is preferable when attempting correlations. This does
not bode well for south-central Alaska, which has high ablation rales (based on PDD
data) and exists in a continental subarctic environment. Future feature tracking studies in
this area should be restricted to a one-year time span, or within a single ablation season,
to ensure favorable results.
4. CONCLUSIONS AND FUTURE WORK
4.1 Research Objectives
The first of the proposed research objectives, to test the feasibility of using feature
tracking software on moderate resolution satellite imagery to verify whether it can
determine ice surface velocities on Harding Icefield's outlet glaciers, was successfully
achieved. COSI-Corr' s frequential correlator successfully produced accurate velocity
fields for Tustumena and McCarty Glaciers using 30-meter Landsat-5 TM image pairs
separated by one year. This success opens the door for future exploration into the ice
dynamics of Harding Icefield's outlet glaciers as Thematic Mapper data extend back
several decades and the opportunity now exists to correlate glacier movement with past
temperature and melt intensity data. However, there are significant limitations to the
application of feature tracking in southern Alaska. IMCORR could only produce
correlations when binary edge maps were provided, which are of questionable accuracy.
Satellite imagery must be restricted to one-year time spans, even with higher resolution
imagery such as ASTER, to minimize the effects of ablation. This last limitation will
make obtaining sequential, cloud-free imagery of southern Alaska difficult.
The second of the proposed research objectives, to determine the annual ice
surface velocities on Harding Icefield's outlet glaciers using feature tracking software,
was also successfully achieved, in part. Although only a few spatially extensive, accurate
velocity fields were produced, on Tustumena and McCarty Glaciers, it is expected the
4. CONCLUSIONS AND FUTURE WORK
4.1 Research Objectives
The first of the proposed research objectives, to test the feasibility of using feature
tracking software on moderate resolution satellite imagery to verify whether it can
determine ice surface velocities on Harding Icefield's outlet glaciers, was successfully
achieved. COSI-Corr's frequential correlator successfully produced accurate velocity
fields for Tustumena and McCarty Glaciers using 30-meter Landsat-5 TM image pairs
separated by one year. This success opens the door for future exploration into the ice
dynamics of Harding Icefield's outlet glaciers as Thematic Mapper data extend back
several decades and the opportunity now exists to correlate glacier movement with past
temperature and melt intensity data. However, there are significant limitations to the
application of feature tracking in southern Alaska. IMCORR could only produce
correlations when binary edge maps were provided, which are of questionable accuracy.
Satellite imagery must be restricted to one-year time spans, even with higher resolution
imagery such as ASTER, to minimize the effects of ablation. This last limitation will
make obtaining sequential, cloud-free imagery of southern Alaska difficult.
The second of the proposed research objectives, to determine the annual ice
surface velocities on Harding Icefield's outlet glaciers using feature tracking software,
was also successfully achieved, in part. Although only a few spatially extensive, accurate
velocity fields were produced, on Tustumena and McCarty Glaciers, it is expected the
124
methodology that was developed will work for Harding Icefield's numerous other
glaciers and a complete record of ice surface velocities for Harding Icefield's outlet
glaciers will be produced in time.
The third research objective, to study the spatial distribution of ice surface
velocity in and among glaciers and the glaciological implications revealed by the velocity
fields, was also achieved. The velocity fields for Tustumena and McCarty Glacier are
spatially extensive and accurate enough to allow examination of the variability in ice
surface speed along the length of each glacier, between glaciers and across time. The
velocity fields also allowed determination of each glacier's chief mechanism of flow and
illuminated the effects of surface slope and reverse-dipping moraines.
Future work could involve computing the velocity fields for numerous glaciers
during previous years using Landsat-4 and 5 TM data (1980s and 1990s) and ASTER
data (2000s) to determine whether the glaciers have experienced an overall acceleration
or deceleration, and then attempt to correlate changes in speed (if any) with changes in
temperature and melt intensity. The inclusion of the remaining glaciers in Harding
Icefield and Grewingk-Yalik Glacier Complex would also aid in determining whether
regional influences such as climate have a greater control over ice velocity or whether
local physical conditions such as basal topography, slope, aspect, and terminus type exert
control over ice velocity.
4.2 Changes in Methodology
Throughout the course of this research, the methodology was revised to
incorporate what was learned enroute. For instance, the decision to forego image-to-
image georeferencing after it was learned the systematic offset between sequential
methodology that was developed will work for Harding Icefield's numerous other
glaciers and a complete record of ice surface velocities for Harding Icefield's outlet
glaciers will be produced in time.
124
The third research objective, to study the spatial distribution of ice surface
velocity in and among glaciers and the glaciological implications revealed by the velocity
fields, was also achieved. The velocity fields for Tustumena and McCarty Glacier are
spatially extensive and accurate enough to allow examination of the variability in ice
surface speed along the length of each glacier, between glaciers and across time. The
velocity fields also allowed determination of each glacier's chief mechanism of flow and
illuminated the effects of surface slope and reverse-dipping moraines.
Future work could involve computing the velocity fields for numerous glaciers
during previous years using Landsat-4 and 5 TM data (1980s and 1990s) and ASTER
data (2000s) to determine whether the glaciers have experienced an overall acceleration
or deceleration, and then attempt to correlate changes in speed (if any) with changes in
temperature and melt intensity. The inclusion of the remaining glaciers in Harding
Icefield and Grewingk-Yalik Glacier Complex would also aid in determining whether
regional influences such as climate have a greater control over ice velocity or whether
local physical conditions such as basal topography, slope, aspect, and terminus type exert
control over ice velocity.
4.2 Changes in Methodology
Throughout the course of this research, the methodology was revised to
incorporate what was learned enroute. For instance, the decision to forego image-to-
image georeferencing after it was learned the systematic offset between sequential
125
images is linear, was a direct result of many trial runs of the postprocessing methodology.
Once discovered, it was deemed important enough for the accuracy of the velocity fields
to make a change in methodology midway through the research. Exclusion of image-to-
image georeferencing allowed more accurate quantification and subtraction of the
systematic error while simplifying preprocessing of the imagery. Although it may seem
counter-intuitive to exclude the georeferencing step because it is logical to think the
images must be referenced to one another as precisely as possible before correlation is
attempted in order to find accurate offsets, the correlation algorithms were originally
developed for georeferencing. Therefore, when the vectors on stable land are analyzed,
the results represent the misalignment between the two images, and in effect,
georeferencing is being performed when the systematic error is quantified and subtracted.
IMCORR' s parameter space had to be modified late in the research as a result of
what was learned enroute. This modification represented a major change in the
methodology, but it too was justifiable to achieve accurate results. The use of different
reference area sizes, different kernel sizes in directional filters, and different angles of
directional filters all led to EVICORR finding different magnitudes of offsets at the same
pixel location between separate runs. Because this caused unrealistic inconsistencies
within the resulting velocity field, IMCORR' s parameter space had to be reduced to a
single, consistent reference area size and the use of only 3x3 kernels in directional filters.
This reduction in IMCORR' s parameter space led to a reduction in inconsistencies within
the velocity field, but also a reduction in the overall number of correlations found on a
glacier and a sparse vector field, and it did not entirely eliminate the inconsistencies in
velocity. IMCORR' s failure to produce consistent results when run with different input
125
images is linear, was a direct result of many trial runs of the postprocessing methodology.
Once discovered, it was deemed important enough for the accuracy of the velocity fields
to make a change in methodology midway through the research. Exclusion of image-to-
image georeferencing allowed more accurate quantification and subtraction of the
systematic error while simplifying preprocessing of the imagery. Although it may seem
counter-intuitive to exclude the georeferencing step because it is logical to think the
images must be referenced to one another as precisely as possible before correlation is
attempted in order to find accurate offsets, the correlation algorithms were originally
developed for georeferencing. Therefore, when the vectors on stable land are analyzed,
the results represent the misalignment between the two images, and in effect,
georeferencing is being performed when the systematic error is quantified and subtracted.
IMCORR's parameter space had to be modified late in the research as a result of
what was learned enroute. This modification represented a major change in the
methodology, but it too was justifiable to achieve accurate results. The use of different
reference area sizes, different kernel sizes in directional filters, and different angles of
directional filters allIed to IMCORR finding different magnitudes of offsets at the same
pixel location between separate runs. Because this caused unrealistic inconsistencies
within the resulting velocity field, IMCORR's parameter space had to be reduced to a
single, consistent reference area size and the use of only 3x3 kernels in directional filters.
This reduction in IMCORR's parameter space led to a reduction in inconsistencies within
the velocity field, but also a reduction in the overall number of correlations found on a
glacier and a sparse vector field, and it did not entirely eliminate the inconsistencies in
velocity. IMCORR's failure to produce consistent results when run with different input
126
parameters implies the program is very sensitive to its input parameters and its
performance is neither predictable nor stable for Harding Icefield glaciers. Even after
hundreds of trial runs, it is not clear what set of parameters will produce the most
accurate and spatially extensive results.
A third change in methodology implemented midway through the research was
the introduction of the feedback loop and variable window size used to remove
anomalous vectors. This change greatly reduced postprocessing time while solving a
chronic problem: anomalous vectors immune to automatic removal by neighborhood
analysis. The success of this method eliminates the need for the subjective, manual
deletion of outliers and ensures that all vectors that are plotted on a glacier are the result
of an unbiased selection process via dynamic, localized, self-adjusting thresholds.
Future methodology modifications may include automating the preprocessing or
postprocessing procedures.
4.3 IMCORR and COSI-Corr
Of the three correlator engines used in this research, COSI-Corr' s frequential
correlator produced the most spatially consistent and accurate velocity fields on the
glaciers, while both statistical correlator engines, IMCORR and COSI-Corr' s statistical
correlator, produced velocity fields with more spatial inconsistencies in velocity and thus
less reliable results.
Overall, both of COSI-Corr' s correlator engines proved to be more robust than
IMCORR. COSI-Corr can produce vector fields on a glacier using a wide variety of
images: high passed, low passed, median filtered, PC A, or ASTER band 3N. COSI-
Corr' s ability to derive accurate velocities when given only a single unfiltered, non-
parameters implies the program is very sensitive to its input parameters and its
performance is neither predictable nor stable for Harding Icefield glaciers. Even after
hundreds of trial runs, it is not clear what set of parameters will produce the most
accurate and spatially extensive results.
126
A third change in methodology implemented midway through the research was
the introduction of the feedback loop and variable window size used to remove
anomalous vectors. This change greatly reduced postprocessing time while solving a
chronic problem: anomalous vectors immune to automatic removal by neighborhood
analysis. The success of this method eliminates the need for the subjective, manual
deletion of outliers and ensures that all vectors that are plotted on a glacier are the result
of an unbiased selection process via dynamic, localized, self-adjusting thresholds.
Future methodology modifications may include automating the preprocessing or
postprocessing procedures.
4.3 IMCORR and COSI-Corr
Of the three correlator engines used in this research, COSI-Corr's frequential
correlator produced the most spatially consistent and accurate velocity fields on the
glaciers, while both statistical correlator engines, IMCORR and COSI-Corr's statistical
correlator, produced velocity fields with more spatial inconsistencies in velocity and thus
less reliable results.
Overall, both ofCOSI-Corr's correlator engines proved to be more robust than
IMCORR. COSI-Corr can produce vector fields on a glacier using a wide variety of
images: high passed, low passed, median filtered, PCA, or ASTER band 3N. COSI-
Corr's ability to derive accurate velocities when given only a single unfiltered, non-
127
transformed band (ASTER 3N) reduces preprocessing time and data storage requirements
appreciably. IMCORR could only produce a vector field if binary edge maps were
supplied to the algorithm, and it failed to produce any vectors on a glacier using filtered,
transformed, or unfiltered images, whereas edge maps increased the amount and
magnitude of velocity inconsistencies for both of COSI-Corr's correlator engines.
It is now clear the correlation algorithms are more sensitive to the amount of
morphological ice surface change that occurred between sequential images and the
amount of ablation across the region than the spatial resolution of the images. More
accurate and spatially extensive velocity fields were produced for Tustumena and
McCarty Glaciers using Landsat-5 TM data with 30-meter spatial resolution 1 year apart
than were produced using 15-meter ASTER images 2 years apart. The successful
application of COSI-Corr to the 30-meter Landsat-5 TM data allows future studies to
reach back to the early 1980s using Landsat-4 and 5 TM data to produce a multidecadal
time series of ice surface velocity measurements.
Because COSI-Corr' s frequential correlator is robust, produces spatially
consistent results using minimally processed images, is significantly faster than the
statistical correlators, provides offset measurements to within 1/20 pixel or better, and is
confirmed to be accurate by comparison with visually calculated velocities and using
streamlines, it is the preferred correlation technique for future investigations.
Figure 4.1 illustrates the recommended preprocessing chain for Landsat TM
imagery before insertion into COSI-Corr. To maximize variability within the images, the
first principal component is calculated using the green, red, and NIR bands; the blue band
is omitted because of potential radiometric saturation. If the images contain scan line
127
transfonned band (ASTER 3N) reduces preprocessing time and data storage requirements
appreciably. IMCORR could only produce a vector field if binary edge maps were
supplied to the algorithm, and it failed to produce any vectors on a glacier using filtered,
transfonned, or unfiltered images, whereas edge maps increased the amount and
magnitude of velocity inconsistencies for both of COSI-Corr's correlator engines.
It is now clear the correlation algorithms are more sensitive to the amount of
morphological ice surface change that occurred between sequential images and the
amount of ablation across the region than the spatial resolution of the images. More
accurate and spatially extensive velocity fields were produced for Tustumena and
McCarty Glaciers using Landsat-5 TM data with 30-meter spatial resolution I year apart
than were produced using 15-meter ASTER images 2 years apart. The successful
application ofCOST-Corr to the 30-meter Landsat-5 TM data allows future studies to
reach back to the early 1980s using Landsat-4 and 5 TY[ data to produce a multidecadal
time series of ice surface velocity measurements.
Because COSI-Corr's frcquential correlator is robust, produces spatially
consistent results using minimally processed images, is significantly faster than the
statistical correlators, provides offset measurements to within 1120 pixel or belter, and is
confirmed to be accurate by comparison with visually calculated velocities and using
streamlines, it is the preferred correlation technique for future investigations.
Figure 4.1 illustrates the recommended preprocessing chain for Landsat TM
imagery before insertion into COSI-Corr. To maximize variability within the images, the
first principal component is calculated using the green, red, and NIR bands; the blue band
is omitted because of potential radiometric saturation. If the images contain scan line
128
Landsat
Image 1
Landsat
Image 2
PCA (G,R, NIR)
Destripe
Orthorectify
Crop glacier
image
Initial input
parameters
PCA (G,R, NIR)
Destripe
Orthorectify
Crop glacier
image
COSI-Corr frequential
correlator
Refined
input
parameters
Displacement
data
Postprocessing steps. See
Figure 2.5.
Figure 4. 1. Preprocessing steps for Landsat imagery.
128
Lond," /
Image I
/ Lond,,, /
Image 2
PCA (G,R, NIR) I PCA (G, R, NLR)
!
Dcstripe I Destripe I
Orthorcctify Orthorcctify
Crop glacier Crop gl acier
image image
I I
Initi a! input
COSI-CorT frcqucntial
parameters
I(
eorrelator

Refined
D"p[,,,moo/
input
/
oarameters
data
Postprocessing steps. See
Figure 2.5.
Figure 4.1. Preprocessing steps for Landsat imagery.
129
banding, it is removed using a customized EDL program based upon the method described
by Crippen (1989) (Appendix G - Destripe Image.pro). If the images are from different
satellites, for example one image from Landsat-4 and the second from Landsat-5, then
orthorectification will be necessary; if the two images are from the same satellite, then
the difference in the viewing geometry between the images is minimal and any error
introduced by the difference in viewing geometry is likely less than would be introduced
by orthorectification using a DEM with potentially larger errors (Dowdeswell & Benham,
2003; Kaab et al , 2005; Mayer et al., 2008; Scambos et al., 1992). Additionally, some
Landsat images are processed to level IT, meaning terrain correction is applied, so the
effects of topography are already accounted for upon receipt from USGS. A smaller,
cropped image of the glacier is taken from each Landsat image and inserted into COSI-
Corr' s frequential correlator and run with an initial set of parameters (window size, step
size). Because there is no optimal set of input parameters that can be used for every
image pair, trial runs are necessary to adjust the input parameters specific to the location,
geometry, illumination, and dates of the imagery. Subsequent runs will include refined
input parameters based on the output of the previous run until an acceptable result is
obtained. The preprocessing chain for ASTER imagery is quite simple: orthorectify band
3N images using COSI-Corr' s orthorectification module, crop images of the glacier from
the orthoimages, and then run the frequential correlator on the cropped images. The post
processing is the same as described in Chapter 2 and illustrated in Figure 2.5, except the
output from the neighborhood analysis will not include IMCORR' s parameter space.
129
banding, it is removed using a customized IDL program based upon the method described
by Crippen (1989) (Appendix G - Destripe Image.pro). If the images are from different
satellites, for example one image from Landsat-4 and the second from Landsat-5, then
orthorectification will be necessary; ifthe two images are from the same satellite, then
the difference in the viewing geometry between the images is minimal and any error
introduced by the difference in viewing geometry is likely less than would be introduced
by orthorectification using a DEM with potentially larger errors (Dowdeswell & Benham,
2003; Kiiiib et aI., 2005; Mayer et aI., 2008; Scambos et aI., 1992). Additionally, some
Landsat images are processed to level 1 T, meaning terrain correction is applied, so the
effects of topography are already accounted for upon receipt from USGS. A smaller,
cropped image ofthe glacier is taken from each Landsat image and inserted into COSI-
Corr's frequential correlator and run with an initial set of parameters (window size, step
size). Because there is no optimal set of input parameters that can be used for every
image pair, trial runs are necessary to adjust the input parameters specific to the location,
geometry, illumination, and dates of the imagery. Subsequent runs will include refined
input parameters based on the output of the previous run until an acceptable result is
obtained. The preprocessing chain for ASTER imagery is quite simple: orthorectify band
3N images using COSI-Corr's orthorectification module, crop images of the glacier from
the orthoimages, and then run the frequential correlator on the cropped images. The post-
processing is the same as described in Chapter 2 and illustrated in Figure 2.5, except the
output from the neighborhood analysis will not include IMCORR's parameter space.
130
4.4 Positive Degree Days, Time Span, and Location
It is clear from the positive degree day (PDD) data that the continental subarctic
climate that exists in south-central Alaska causes difficulties for application of feature
tracking methods. The amount of ablation due to low elevation, subpolar latitude,
washing of the ice surface from frequent summer rains, and moderate temperatures
compared to the locations of many other glaciated alpine environs mandates selection of
imagery no more than a single ablation season apart. With the propensity of Harding
Icefield to be cloud covered, this can make finding sequential, cloud-free images one year
apart difficult, or impossible, during some years. However, because the correlator engines
are more sensitive to the time span and amount of ablation between sequential images
than towards spatial resolution, imagery with 30-meter spatial resolution, such as
Landsat-4 or 5 data, can be utilized to generate velocity fields. This allows future studies
more choices in imagery other than the standard 15-meter ASTER or Landsat-7 ETM+
data sets.
4.5 Tustumena and McCarty Glacier Velocities
The velocity fields and longitudinal profiles of Tustumena Glacier show the ice is
moving with speeds routinely between 150 and 200 m/yr, while some parts move over
250 m/yr. There is an overall trend in both the 2006/07 and 2007/08 vector fields with the
ice moving fastest upglacier while being dominated by basal slip, and the ice moving
slower in the lower half of the glacier with both basal slip and internal ice deformation
significantly contributing to movement. Similar to Tustumena Glacier, McCarty Glacier's
ice movement is due mainly to basal slip upglacier, and a combination of both basal slip
and internal deformation downglacier. This may be a coincidence, or it may be the first
130
4.4 Positive Degree Days, Time Span, and Location
It is clear from the positive degree day (PDD) data that the continental subarctic
climate that exists in south-central Alaska causes difficulties for application of feature
tracking methods. The amount of ablation due to low elevation, subpolar latitude,
washing of the ice surface from frequent summer rains, and moderate temperatures
compared to the locations of many other glaciated alpine environs mandates selection of
imagery no more than a single ablation season apart. With the propensity of Harding
Icefield to be cloud covered, this can make finding sequential, cloud-free images one year
apart difficult, or impossible, during some years. However, because the correlator engines
are more sensitive to the time span and amount of ablation between sequential images
than towards spatial resolution, imagery with 30-meter spatial resolution, such as
Landsat-4 or 5 data, can be utilized to generate velocity fields. This allows future studies
more choices in imagery other than the standard IS-meter ASTER or Landsat-7 ETM+
data sets.
4.5 Tustumena and McCarty Glacier Velocities
The velocity fields and longitudinal profiles of Tustumena Glacier show the ice is
moving with speeds routinely between 150 and 200 m/yr, while some parts move over
250 m/yr. There is an overall trend in both the 2006/07 and 2007/08 vector fields with the
ice moving fastest upglacier while being dominated by basal slip, and the ice moving
slower in the lower half of the glacier with both basal slip and internal ice deformation
significantly contributing to movement. Similar to Tustumena Glacier, McCarty Glacier's
ice movement is due mainly to basal slip upglacier, and a combination of both basal slip
and internal deformation downglacier. This may be a coincidence, or it may be the first
131
glimpse of a regional trend in the dominant mechanisms for ice movement on Harding
Icefield. Velocity fields for McCarty and Tustumena' s many neighbors are needed to
verify whether this is a regional trend or a simple coincidence.
The 2006/07 Tustumena velocity field shows the influence of a reverse-dipping
moraine along the center line while the 2007/08 velocity field does not. The influence
seen in the 2006/07 velocity field is likely caused by the images' acquisitions later in the
summer after more ablation has exposed more of the upglacier portion of the moraine.
Both velocity fields also show a deceleration of the ice as it approaches the dead end side
valley compared to the velocity along the glacier center line, with the 2007/08 velocity
field showing the greater negative velocity gradient as ice approaches the dead end. The
2007/08 velocity field is spatially extensive and accurate on HI2, while the 2006/07
velocity field for HI2 is incorrect. The failure seen in the 2006/07 HI2 velocity field may
be caused by increased ablation due to image acquisition later in the melt season and a
southwesterly aspect, or a lack of distinct features in the ice that would allow proper
correlation between the images. It is clear that the results seen in both the 2006/07 and
2007/08 velocity fields are sensitive to the timing of image acquisition. Interpretation of
annual velocities, and year-to-year changes in velocity, must account for the image
timing and the potential difference in the amount of ablation that may have occurred
during the time spans. Minor changes in annual velocity may be undetected by
acquisition dates early in the ablation season, while later dates may falsely give the
impression of velocity changes even though none have occurred when compared to data
derived from earlier dates. Images should be chosen as close to the same date as is
possible to minimize these potential errors.
glimpse of a regional trend in the dominant mechanisms for ice movement on Harding
Icefield. Velocity fields for McCarty and Tustumena's many neighbors are needed to
verify whether this is a regional trend or a simple coincidence.
131
The 2006/07 Tustumena velocity field shows the influence of a reverse-dipping
moraine along the center line while the 2007/08 velocity field does not. The influence
seen in the 2006/07 velocity field is likely caused by the images' acquisitions later in the
summer after more ablation has exposed more of the upglacier portion of the moraine.
Both velocity fields also show a deceleration of the ice as it approaches the dead end side
valley compared to the velocity along the glacier center line, with the 2007108 velocity
field showing the greater negative velocity gradient as ice approaches the dead end. The
2007108 velocity field is spatially extensive and accurate on HI2, while the 2006/07
velocity field for HI2 is incorrect. The failure seen in the 2006/07 HI2 velocity field may
be caused by increased ablation due to image acquisition later in the melt season and a
southwesterly aspect, or a lack of distinct features in the ice that would allow proper
correlation between the images. It is clear that the results seen in both the 2006/07 and
2007/08 velocity fields are sensitive to the timing of image acquisition. Interpretation of
annual velocities, and year-to-year changes in velocity, must account for the image
timing and the potential difference in the amount of ablation that may have occurred
during the time spans. Minor changes in annual velocity may be undetected by
acquisition dates early in the ablation season, while later dates may falsely give the
impression of velocity changes even though none have occurred when compared to data
derived from earlier dates. Images should be chosen as close to the same date as is
possible to minimize these potential errors.
132
The velocities for both Tustumena and McCarty Glaciers are within the range of
speeds measured for other glaciers around the Gulf of Alaska. Some glaciers, such as
Hubbard and LeConte, move at speeds up to several kilometers per year, while other
glaciers, such as Bench Glacier, move as slow as 11 m/yr. The range of speeds for
Tustumena and McCarty Glaciers falls between these extremes and most closely match
the speeds of Grand Pacific Glacier (158 m/yr), Mendenhall Glacier (172 m/yr),
Worthington Glacier (73 m/yr), and Matanuska Glacier (80 m/yr).
4.6 Combining Velocity Data with Climate Data
If a complete ice surface velocity history could be generated for Harding
Icefield's many outlet glaciers, it could be correlated with meteorological data to search
for climatic influences on glacier movement. Do warm summers or warm winters
coincide with acceleration of the ice? Does winter or summer precipitation correspond to
increases in ice velocity? Any correlations discovered between climatic data and ice
surface velocity could be used to estimate the response of glaciers to predicted climate
change and whether the glaciers will increase or decrease their contributions to sea level
rise. If no correlation between climate data and ice surface velocity is found, then do
local physical conditions such as glacier aspect, slope, terminus type, or basal topography
dictate ice surface velocity? Answering these questions through future studies will further
address research objective three.
132
The velocities for both Tustumena and McCarty Glaciers are within the range of
speeds measured for other glaciers around the Gulf of Alaska. Some glaciers, such as
Hubbard and LeConte, move at speeds up to several kilometers per year, while other
glaciers, such as Bench Glacier, move as slow as 11 mJyr. The range of speeds for
Tustumena and McCarty Glaciers falls between these extremes and most closely match
the speeds of Grand Pacific Glacier (158 mJyr), Mendenhall Glacier (172 m/yr),
Worthington Glacier (73 mJyr), and Matanuska Glacier (80 m/yr).
4.6 Combining Velocity Data with Climate Data
If a complete ice surface velocity history could be generated for Harding
Icefield's many outlet glaciers, it could be correlated with meteorological data to search
for climatic influences on glacier movement. Do warm summers or warm winters
coincide with acceleration of the ice? Does winter or summer precipitation correspond to
increases in ice velocity? Any correlations discovered between climatic data and ice
surface velocity could be used to estimate the response of glaciers to predicted climate
change and whether the glaciers will increase or decrease their contributions to sea level
rise. If no correlation between climate data and ice surface velocity is found, then do
local physical conditions such as glacier aspect, slope, terminus type, or basal topography
dictate ice surface velocity? Answering these questions through future studies will further
address research objective three.
APPENDIX A
COSI-CORR_TO_IMCORR_FORMAT.PRO
PRO CosiCorrJo_IMCORR_format, event
;This program takes data output by Cosi-Corr, in the form of an ENVI file, and produces
;a text file in the same format as IMCORR data so that the Cosi-corr data can be
;processed using IDL programs previously written for IMCORR data. This eliminates
;the need for writing an entire suite of IDL programs exclusively for COSI-Corr data.
;COSI-Corr ENVI files have 3 or 4 bands:
;Bandl is east-west offsets (x direction) with positive x to the right
;Band2 is north-south offsets (y direction) with positive y to the top (counter to
;IMCORR's reference coordinate system)
;Band3 is the Signal to Noise ratio, which ranges from 0 to 1 and which will be used in
;lieu of correlation strength.
;Band4 is the window size used for each correlation, this band is not present if statistical
;correlator is used.
filename=envi_pickfile(title-Choose Cosi-CORR data file to convert',filter='*.hdr')
envi_open_file, filename,r_fid=rfid,/no_realize
envi_file_queiy,rfid,nb=bands,ns=columns,nl=rows
hdr_position=strpos(filename,'.hdr')
;fmd position of '.hdr' so it can be removed in next command
filename=strmid(fllename, ,hdr_position)
;remove '.hdr' ending from filename
openr, ,filename
. 5{< ^1 ^jC >(C >|i ^ ijc i^S i|c ^jC ifc ^Jc ifi >JC ijt ^> >fc ^fi ' i* "t* 'J* 't* 'J* ^t* ^J* "4^ 't* ^* *H
cosi_corr_array=fltarr(columns,bands,rows)
;cosi-corr creates ENVI files with bil interleaving which places
;data in the following order (columns, bands, rows)
;Frequential correlator creates 4 bands, statistical creates 3 bands
APP"-"DlX A
COS!.coRR _ ]OR.\tA T.PRO
PRO C ... iCo rr _'" _1.\! COR R JOmu t ..... "'"
;TIn. _ Won dol. o..lpul bye .... """"'. ,n lilt f...",or .. IC"VI fil<. ord producn
;0 ,." m. ,n ,1>0 ......, _ .. NCORR data., lIw ,I>< Cooi->t'l' data be
.procnood .. P"'IP"'" pm """,Iy " 'n!"'" !'or l\lCOIUI; data, Thi 10 ... , .......
"be ..oed ror "'"''011;''' ""to", .. ". or pn>gon\S .. ol"';I,.ly !'or rOSI"""", data.
;COSI.(".., 1;.\ VI m .. ho,,, ,I or 4 bands:
.Bandl .. """'-" ... offoou I' d,,,,,""')" ,Ill _""0 , '" Illc n&hl
.Bar.l2 i. oonh .... ,h olf .... (y d,ra.;"')" ,Ill pOSi'''. Y 10 ,be lOp ('",,"''''' 10
.1\lCORR', .. oo"h ..... ) ....... )
" II>< S,gnallO ,",0,,, ""0 ... hh ""'1<$ f""" 0 '" I an.! .. hJ<h ",II be "01 '"
,hco of "",",I." ... o<rrnlP-it,
.SanJ.I " lbe ","""'" .. ,. _ for oao;h ><nlaJ.""" Ilus bAnd .. "'" rrnrn' ,r " .. ,,,.1
"""",1.."-,, _
hdr J>OIi'ion .. ' "..... fi I""", . ',Ildr')
.nod """" ... ,,(',heIr' JO " .an ... mno-ool on ... " """,mand
fil<narrlt>-, ""id(filename.'lJIdtp,ion)
'.IMl( cn<ion, fuKn fil......,.
. .... r. ll .filename


<fnl'" [). \'1 file> .. nh b,t mtal ,,", "h,eh
;dill. ,n lho fo>tloll onIer I col"""", Iw>oh. "'".)
,F""'JU""! .. I """"I."". .rnt .. 4 bands, .ut,,,.i """"n J bands

134
readu, ,cosi_corr_array ;read envi file into array
params=widget_auto_base(title-Enter parameters for conversion',/xbig)
list=['step size:','window size:','spatial resolution (m):']
vals=[4,64,15]
output=widget_edit(params,uvalue='parameters',/auto,prompt='Enter new
value',dt=2,list=list,vals=vals)
params_result=auto_wid_mng(params)
?
?
grid_spacing = pamms_rGSu\t.parameters[ ]
;scale factor for changing size of displayed image,use values 1.0 or larger
initial_window_size = params_rQSu\t.parameters[ 1 ]
;scale factor for changing size of displayed arrows
resolution = pa.mms_resu\t.parameters[2]
;spatial resolution, used to convert offsets (pixels) to velocity (m/yr)
outfile=widget_auto_base(title-Select location of UNSIFTED folder for output',/xbig)
output=widget_outf(outfile,uvalue='output_fileVauto,/directory,xsize= 5( ,prompt-Enter
name of output file (.txt)')
outfile_result=auto_wid_mng(outfile)
openw, : ,outfile_result.ow/p^/z/e,/append
;this is the IMCORR-style text file which will be processed with ;other IDL programs.
inform=['Converting to IMCORR format....']
envi_report_init,inform,base=percent_complete,title='Converting Cosi-CORR
data',/interrupt ;begin % complete widget
for i=0] , columns-1 do begin
;For loops to create the 9 data columns which mimic an IMCORR data file
for j = , rows- do begin
x_coor=i*grid_spacing+( *initial_window_size)
;x coordinate, taking into account grid spacing
y_coor=j*grid_spacing+(0.5*initial_window_size)
;y coordinate, taking into account grid spacing
'"
_ " HI,,, _a ut bOJ<'('i'Ie-'En .... pormncI<D fOr <o,,,,,,,,,,,,,'/xbia)
li .. ""\ ..... .. u:', "",ndow .... 111.,"" (m):1
valP\4,/>U <]
O"'POI ... idl ... odU(Jwams.uvol ......... ., ....... 'J.lIlIO.prompt-'Ernor ......
vaJU<.d'- 1.1i ....
__ ,""I, . .. ,,,. " 'Id_ma r(panmo)


arid _ SpaOi n. -pannu _ rcsult,pa,a_enI 0]
"".Ie r""tor for ..... sm. "' of ,m>1/< ...... ,11 ... I.U Of I""",
initiaL window . ti><: - panm._...,.ult,pa"' .... II
_",.Ie fo<tor fOr chanS'", >I,. of dl'llI.)'Cd ami'"
!'<SOlu,ion - paratJII. """1,,,,,,,,,,"<1<,,111
"""tJai n:ooIut_ uood 10 ron,,'" orr", .. (p"olsllO ,<""'") 1m. )T)
outfit..... id,.,. a.,o)'aw(ritl ... S.Iec, 10<';"" ofUl"SII'TED Ii>Ida for outpU.'JxbiIJ
011'1"" '" kI".. __ ' /{ oulfi\e.u',.lu ... oulp\l'. fi Ie' j"utoJdi=tory ,uiz ... "lI ,prompt"Enlor
name of outp'" lile , .1>.1)1
ou.1i Ie _ resuk .... '. _ " 'Id _moll"'" fiI.)

....... ,! ! "",.fi 10 _ J oppend
.. II .. 'e>! r,1o "koch ,II bt pro<e$Ol ",uk .",he! IOL .

inrorm-!-c"" ... ru",10 L'>ICORR romw., ... 1
'I_rtpo"U .I' Jnfonn.b", ... " ... u:<'mpl ..... ill .. -Co' ... en'''I Ccci-CORR
dw'jinl ..... p' oomplel< ",djICI
ror .oolum ...... 1 do bqJ
.for loops to =_ ,he: <) daIa ""Iwnns ""Iu<:h m,m", on I\1CORR data file
ror jo(ll ,,,,,,,.,.. 1 do bql
_ cooo-i ' grid _ <paCi"ll*( 0, < ' inilial _ wir>ilow _lizo)
.x ..... , .... on,o _001"II p,.t """'"1
L ooor-j ' grid _ op><i .... --I 0.:; ' ini.ial _ wir>ilow _ oi<o)
.y <OO<'d'naIC. ''''''lI on'O _""", and """,'"il
135
tot_disp=(sqrt((cosi_corr_array[i, ,j])
A
2+(cosi_corr_array[i, ,j])
A
2))/reso!ution
;total displacement, divide by resolution since cosi-corr
;output is in meters, converts to pixels
corr_str=cosi_corr_array[i, ,j]
;SNR will be used as the correlation strength
flag=
;all entries will have flag=l because all entries are correlations
x_offset=cosi_corr_array[i, ,j]/resolution
;offset in x direction, divide by resolution to convert to pixels
y_offset=cosi_corr_array[i, 1 ,j]*(-1 )/resolution
;mult. by -1 to change to y coordinates to match IMCORR's, divide by
resolution to convert to pixels
x_error=0.0 ;x,y error are set to 0 so each correlation will not be
;sifted due to large error, Cosi-corr
y_error=0.0 ;does not give x,y error, just SNR
printf,22, format='(2I5, F10.4,F15.6,14,
4F10.4)',x_coor,y_coor,tot_disp,corr_str,flag,x_offset,y_offset,x_error,y_error
IF (i mod 100) EQ 0 then begin
envi_report_stat,percent_complete, i, columns-
updates percent complete widget with each cycle of outer for loop
endif
endfor
endfor
envi_report_init,base=percent_complete,/finish
;end percent complete widget
close, 11
c!ose,22
fmished=widget_au toJbase(title-Program Complete!!',/xbig)
done=widget_string(fmished,/auto_manage,uvalue='complete',prompt='Successful
conversion to IMCORR format^default^PROGRAM COMPLETE',xsize=50)
result=auto_wid_mng(finished)
end
101 disp-( "'I n( (eo.; _ COlT _ """y[ lY'! ., eo.; _ <OIT _ OITlIy[i. 1 J lY' Z)V , .... QI. ,10
IOIaI d,<ploc"",,,,u. """,," by raol",_ OInt< """-lIT
'OUIpod " ,n moIcr&. <",,,"". 10 p"cl.
OOIT _...-.:osi _ OOIT _ """y[ i.l J I
;S" R ,,' n "" """'" .. "'" """"l.u"", """'i'h
..... '
"U ",,'n .... ,1I1u\< I b<aus< . 11 ""tn .. "'" "0<TCl .. ,,,,,"
_ "ITi<t-rosi _ con _ amoy[ i."JV,,,,,I., iotl
:orr .... ," , d,,...,,,,". d""", by ....,1",,,,,, to <.",,"" '" p".,u
Y _ "ff ... -rosi _COlT _ amoy[ i , 1 JI"(-I Y,..ol"'''
mul', I>)" -I 10 <han"" 10 Y COOl1ho .... 10 ","",h I\t(,ORR .. "".de by
!raoIutioo 10 a",,"" "' p""I
",,, 0<).0 ) """'.,.. ... '" 0 1(1 _h """"l.u"", .. ,11 not be
... nod due 10 IUJO rn<>r. C .... ..,""
y_" ,,,,...o.U ;00.. "'" &1"0 <,}' <m><.J"" S"R
pri.,r.n fonna1-,(21!, FlO FI 5.6. 14,
4F I 0,.)' .. _ _ disp.con _ Olr .fl .... _ <>ffset.y _ <>ffie!.. _error.y _ emJ<
W(i _ '(0) [Q 0 ,b .. l>oal
,ij.porl_.t.l.pero .... u'omplOl i. col""' .... l
;up.bt .. pero<>u rompkt< a Hlget ",th ca.ch <)"CI< of ""lOr r", loop
0.,1_ .. port J . il.b.. ,.,rt:mt_ >mplOloJ finioh
;tn<l f!O"'t"'" O<>mrlOlo ",dlll
fioi<l><d- " 'ldlt" _ "" 10_ b.O<j liU ... 'l'rojp"o<n CompI""" '",htbiil
_ 'IdK<I_>lriot\fini>b<dJ ... ,,,_,,,",,",ge."val uc-'romplc<e,promp,- 'S,,,,,,"""'1
c:o<!, .....,., ... ll>tCORR r.",.,..'.dof. ul,-'PRQGRAM CO.\t PUTE',xsize-'-C)
.au ,.- . " 10_ " 'Id _ ...
.. ,
APPENDIX B
DIRECTIONAL_VECTOR_SIFT.PRO
PRO Di recti onal VectorSi ft, event
;This program sifts imcorr vector files to keep rows of data with good
;matches, those with flag^l, and which
;do not have NaN in the correlation strength column, and which have a
;total displacement greater than 1 pixel
;and which have total displacement greater than x or y error and which
;fall inside the glacier, and it places these
;good vectors in a separate file.
;The second portion of this program sifts the data again to keep
;matches with total displacement less than 3 pixels
;and which fall outside the glacier, and it places these in a separate file
;The last part of the program outputs an image with IMCORR flag values
;for use in analyzing IMCORR parameter space
;This program prompts the user to enter the direction of sifting
;(n,s,e,w,nw,sw,se,ne), a name for the glacier
;and an estimate of the georeferencing error between the two images
;used to produce the IMCORR data. This
;estimate should be obtained by viewing the two co-registered images in
;ENVI and flickering between the two
;to visually estimate the offset (in pixels). If one can visually see a
;2 pixel jump when flickering between
;the two images, then a good estimate to enter into this program would be 2 or 3.
;Lines of code surrounded by ****************
a r e
\ {
n e s
which may need
;paths/filenames updated for each glacier
;EACH GLACIER WILL NEED THE FOLLOWING FILES FOR THIS PROGRAM TO
;RUN PROPERLY:
;1) a file called 'runlist.txt' which contains paths/filenames of all
APPENOIX B
,n. .. """"'" "n. ,"',,,,,, ,.",,,,, file> 10 "" .. of data" "h p><I
'''''''<11<0.. .-""h n. 1 . ...-..1 "h,<h
.00 "'" 11.1'0 ,." on lhe: """"I .. ion <lrmG'h ."Iumn . ...-..I "'h",h ""'<
tot.ol JIII'I",......." tpnt<r tIwll 1'''01
;ond "h"'h "",.< 100.1 Jospl"'om<nl ......... 1hu , y em>< ond "h,ch
,r.1I ,rISk!< ,lie: .iA< ..... ond II pboI:<S lhc:oo
.ijO<Id 1"'" ,n. oopar>t< [0 ...
,Th< ""'''on "flil" pr<>g<am .. n. !he ..... "PI" to
.""'1 ....... ,III tot.ol Uospt.rnmnl 1<>$1 .... l p".1i
,ond f.1I ,,..,,.,J, the Ji""CT. ond " 1'\.0;: .. lIIn< on .. _< [0 ..
;Th< ..... p>tI uf,he: ptOg<om ""'pu" .., ''''"II<''' "h "I("ORR nOM , . .l_
.f UK on "",,1)'''"111\\("ORII; p<Iram<O 'I*<
;Th" P">IP'" 1"'>'""l"> 1iI< ...... 1O rn"'" iii< d,r'''''' of "O,oM
.. o." ..," .... ...,.11<1 I\UJ"oC rOf iii< Jio<>CT
;ond "" .... ,""". oflil< ""'" _<ell lhe ""0 , ........
0>0d 10 f"O<I"'" ,lie: I\tCOII;II; o!;,i:a no ..
, .. "",.1< Ihoukl be obwnod b) "''''''''11 ,ho ,,,0 <o-.. ,_ on
,E.' \'1 ond fl" ....... ,l>c! .. = iii< 1"0
.10 ....... 111 ... ''''"'< ,lie: oIT"" (00 l'"d'l. Ir Oft< 0 ... " .... IICO
:2 1'''''' Jump ""!w:n n,<k"""Ill><t".,...,
.,he: '''0 u"oga. l!w:n 011""'1"'=, ,o ... ltt ,"10 ,h .. ""'lIfO"'< .. : Of 1 .
. w .... of xl< ......,..."w by ..., 1, ....... hh .... y II'<l
.""'h$.fi .......... "",,",I f <a<h Jioo;
.L\('lI (;LA(IHt "'ED THI, lOU.OWI'\(; mil; TIllS PRO(;RA \t TO
.RL''II PRDi'FRI r
137
;the IMCORR output files to be sifted, check to see that
; the drive letter and pathnames are correct for each use.
;2) a mask created in ENVI in which the glacier has values of 1 and
;surrounding terrain has values of 0, in JPEG2000 format.
;3) a file called '<glacier_name>_sifted' in a folder named 'sifted' to
;receive the output of the 1st sifting process,
; these are good vectors inside the glacier which will comprise the
; vector field for the glacier.
;4) a file called '<glacier_name>_accuracy' in a folder named
;'accuracy' to receive the output of the 2nd sifting process,
; these are vectors outside the glacier which will be used to
;calculate error/accuracy statistics for the vectorfield.
;5) a file called 'paths' in the 'accuracy' folder to recieve the good
;vectors and their paths/filenames
;template which puts data into a structure with 1 string array consisting of 9 columns
restore, 'C:\Program Files
(x86)\ITT\IDL708\products\envi46\save_add\sift_template.sav'
;template to read the file which contains list of path names for
; IMCORR runs/vector files I wish to sift
restore, 'C:\Program Files
(x86)\ITT\IDL708\products\envi46\save_add\list_template.sav'
restore, 'C:\Program Files
(x86)\ITT\IDL708\products\envi46\save_add\paths_template.sav'
;open template to read ascii vector files
ascii_path=envi_pickfile(title='Find runlist.txt in UNSIFTED folder',filter='*.txt')
ascii_list=read_ascii(ascii_path, template=list_template)
;read list of path names/vector files; structure with 1 field
runli st=ascii_li st .pa th [ * ]
; move list of path names/vector files out of structure and into 1 dimensional array
a=size(runlist) ; get size of runlist
b=a[ I ] ;get number of lines in runlist
i=0 ;index for the following while loop
.,he II.lC"ORR ""1"" flkI '" be: "ned . hod 10 >c< ,tw
"'" dme ""'0< on<! p,o<hnarneo or< ><T<>O' (Of .-",h ....
Z) ...... crmed In EX\-) ,n ... hoch .1It Iloe, .. has ,-.I.,.. of I and
;lW1'OIIndUlI lCfmn ..... '"""'" oro. '" lPEG200.) rom..,
.J) r,1e <oIled '- ,1.;, .. ,,,,,,,,,-, .. nod' In (oldrf rwn<d ' .. /kd" 10
,!'tt<:". ,hc ""'JIU' o(,he I .... Rln"" ... H,
_ .... p><>d '''''or> ,ntid< ,ho lV><,er .. ruch ,,,II >mpnl< "'"
, .. ",,,,,focld (Of ..... "''''', ....
fir.: calk<! '. ,1.;'01" name' """"""1 In . named
'">"""Y 10 """''' tho ou,,,,,, oft ... !nd .. n,"lI proc_
, .......... '-l<n ""' .... e ,1>0 III..,' .... ",<h ",II be 0>l1O
",.ku''' ........ '''' .. Ul.<y ... " .. ; .... r.,.. "'" ,<XIOrii<l.1
.S). me C211ed 'paIbo' ,n "'" 'ao:<.-)' fQld<r to """"'-. !he..,oo
.",;!"n ..... ,I\cir palh. fli<nom<o
.'emp'OI. "-h,,,h 1"'1< <1> .. ,nlo. _'''''' ''''h I ..,.,ni amy ,,(,,,",,,,,, of9 <olurn ....
' .. '0 .... 'C:\Pn>pom Files
(.86 )'JTT'IIOL 10S\p<0duo:to _ ft _""""tat .......
. ,<mjI, .... to read tho r,I< "b<h rooLll .... )", of poth ........ for
",("ORR ",,.'\ o<'or fI'.,.. I "'-"'10 "n
' .. '0 .... 'C-","","", Fil ..
(.&6 PTTIlDL 70S'1pmdac: ..... .,""""', . _ .. _ "'mp ...........
, .. 'o .... 'C,'1'ropwn Files
(dt> ),J11'\IOL 70S\p<0d1>Ctll-_vi46 .. ,-. _ odd''fMl/>I_,emp ..........
;open '..",plal. '" ..... OK" '0<..". (,1 ..
oociUi....-nd _ . ... If( .sci; -.J>I1h. lempatc-lisUempw<)
,tea! h .. or J1h _ .'0<..". fok>; """"un: nh I fi.ld
J
, mo,. I ... or p;oIh ......... '..,lOr nlco .... , of ............. and ,flto I limy
m
138
glacier_mask_path=envi_pickfile(title
=,
Find glacier mask (jpeg2000
format)',filter=**.jp2')
glacier_mask=read_image(glacier_mask_path)
;read glacier mask, must be jpeg2000 format
land_mask_path=envi_pickfiIe(title='Find land mask (jpeg2000 format)',firter='*.jp2')
land_mask=read_image(land_mask_path)
;read glacier mask, must be jpeg2000 format
reversed_mask=reverse(glacier_mask, 1)
;reverse mask so y coordinates are transposed and output is oriented correctly. This is
;necessary because IDL and velview have different coordinate systems in which the y
;direction is reversed.
glacier_image_path=envi_pickfile(title-Find glacier image (jpeg2000
format)',filter='*.jp2')
glacier_image = read_image(glacier_image_path)
;read jpeg2000 image of glacier
how_big=size(glacier_image)
columns=how_big[ ]
rows=how_big[ ]
flag_array=intarr(columns,rows) ;create array to receive flag values
flag_array[*,*]=0
filled_flag_array=intarr(columns,rows)
;create array to receive enlarged, color-coded flag values
filled_flag_array [ *,*]=()
glacier_directory=widget_auto_base(title='Select folder containing SIFTED and
ACCURACY subfolders',/xbig)
output=widget_outf(glacier_directory,uvalue='output_directoryVauto,/directory,prompt=
'Select folder',xsize=75)
directory_result=auto_wid_mng(glacier_directory)
get_name=widget_auto_base(title='Enter name of glacier')
output=widget_string(get_name,uvalue='glacier_name',/auto_manage)
name_result=auto_wid_mng(get_name)
Ii"";" _ mW;..J>aLb_ ,'I-pkkrll ,i.l.-'Flnd Ii""'''' mask (jpoJlOOD
fonnoI).(olt ....
&I",i _ mask-<.a.d _I ... _ muk JWh)
...... .. "' .... "" JPOg..'OOO ronn..
land_maskwn-od
, ..... P'''- ........ "' .... be ronn..
='.....,J nusI;- r.,.r!.t(&lad ... ou.sI<. l )
... '.,.. Ru.sk to y <OO<'lJ,,,,,",, .. ,......,.,..,. and ""'IK'I os on ... ,Ij <.......,lIy Th .. os
;nc<0IMr)' t>oc ..., IDL and ,01",.,... ba,.., d,lTCI'<fII oooN""" ')'>I<mO on ... h,ch ,he: )'
;dlJ'<C''''''''' ""..-I.
11,,,,,1..-_ irnall< J>"" ..... ,j, J<o-' Find ..... , ... ,_ (jpoJ2(lOO
fonnoI r. /ilta-'" .Jpl')
s.t .. d ... )"'"iC - . .. d_I"'I gJoci .. jmaitJlath)
:mod JP<J1((I(\ ''''''w: of .........
bow _ bir-u&l . dor
ooiLllllllt"how _ biii l ]
1'0""'_ big[ 2]
n.i.. ..... )"'I., r(oolum.....,"" .) :<=>'. amy 10 ",e',". n,, ......
nOLorray[ . ] ....
6Jlod_ lllL ...... yoi .. n"jcolurnno.row. )
ltTII.y 10 ",,1"'11<01. eoIoo-cod<d .. ,...,.
m led _1IaL amy[ . )0041
gla<:icr _ dir:IOfy->' _ '0_ b.><,(titl..-'Sclcct folder oonwn.inl SIFTED .....
ACCURACY ... bfold<ro' ,!l:J:>;il
D.
OU!pll,-.. ldttl_o'llil",,;er_di""'tor)'.u, .. lueKOUIpU!_dire<1ory',1au1oJdirectory.promp'.
'Srl. fe_.xsi .... " )
idK"_"U,o_bUli' le-'En!rr _ of p;<r')
oulp"' ... Id,... _ ''''ollgel_ nam . u"" ..... J/X,... namt' ,Iou,o _1IWllIg<:)
rwnc: _ ru.I, to _ " kI_ ... 11:(11<1 _".",.)
139
openu, 11, directory_result.outputjdirectory +'\siftedY + name_rQS\x\tglacier_name
+'_sifted.txt',/append
;open file to receive results of sifting process
openu, 22, directory_resu\t.output_directory +'\accuracy\' + name_resu\t.glacier_name
+'_accuracy.txt',/append
;open accuracy file to receive results
openu, 33, directory_resu[toutput_directory +'\accuracy\paths.txt',/append
;open file to recieve pathnames of vectors
openu, 55, directoryj:QS\x\t.output_directory +'\accuracy\georef_stats.txt',/append
;open stats file to receive direction
>
get_error=widget_auto_base(title='Estimate georeferencing error',/xbig)
output=widget_param(get_error,xsize=
q
f>,uvalue='error
,
,/auto,dt=2,prompt='Enter
estimate of georeferencing error in pixels')
error_result=auto_wid_mng(get_error)
estimate=error_result.error
get_flow=widget_auto_base(title-Enter ice flow direction',/xbig)
flow_output=widget_string(get_flow,/auto,prompt='n,s,e,w,ne,nw,se,sw',uvalue='flow_d
irection',xsize=50)
flow_result=auto_wid_mng(get_flow)
dixQiion=f[ovjj:QS\i\i.flow_direction
printf, 55, nzmG_res\i\t.glacier_name
printf, 55, direction,' is direction of sifting'
printf, 55, 'Sifted using ',estimate,' pixel estimate for georef error'
vectors_in_glacier = OL
num_long_vects_outside_glacier = OL
while (i LE b-1) do begin
; while loop runs for each entry (vector file path/name) in runlist
;open vector file using generic template
5
imcorr_results=read_ascii(runlist[i], template=sift_template)
;opens each entry in runlist into a structure
;with 1 field which is a 2-D array
imcorr_array=imcorr_results .field 1 [ *, * ]
'"

op . .... II . di=tOf)'_,"ult''''''I''',_di"",'''Y ' '-ift,.!'-,' + n&m<_,"ult.gla";., _ "","e
.. '_ .. fted ... r Jopper>d
;Open (,I< '" ""'< ... .r .. n'rIlI .,.0<'"
01' . .... n , di""'tor)'_""ult."",p'" _ di"""")' ' 'Iac.'''"''y'' + name_"""'o8l"d." _""'"
o'_""cIII'Xy, .. r Japprnd
;0f>0n """"'""Y fJk '" ""'c". """I"
op<." .. n . ditt<:1ory _ resul'.ow/M jirtoOl"'Y .. 'Ia<c.,..y.p.rho.bl" / appmd
;"""" (ok '" """e.' of "t<l<JI'S
..... u. , d;r<>ctoryJ"ult.owptd_dilW'tory .. r_ ........ o Oppend
''''''''' """ (ok 10 ...,n,.

1I<"_,,,,,. .... !dt<'l . ... ,._ b.w(titl ... E.MW .-.r......,'nll ........ Aloia)
output .... ill I" Jlonm(s _em><.> ;""'oAI- ) ,pWnIPI-'Eo,et
__ Df ...,...r"""""11 """'" '" I""eb')
o:rmr _ tUIll ... olo _ ,,-kI _ .... 1:(5'" _<ITO,)
... im.,."" '<M _....we...,.".
s<'_"",--Id, ... . . ,o_".b<i,i" e-'Enoa;"< !\ow d,=t"",'hbil:l
now _"'"pu,' '' id,.U ' rI.a(go<_Ilo"'Jauto,prompt ................. .-........ .,. ..... uc-'f1ow_d
,""'ion ... i ....... )
flo ... _ rd.I,- ,0_" id _ ",.x(gcUk>w)
dir..-tion_/low _ .... hp _ _ di""ti""
prl.'f. oarnc_ .... h,gl",,"" _"'''0'
prlalf. di=tion. . i. d,t:!_ or .,111118'
prl.,f. , 'S,fted Idi .. ,<>Iim&1C.' ",001 to. """",f <nor'
>'1OfS)n...JIaoi., _ 01
nwn _lonL v:lS _"""ide ...JIacior - 01
.. 'bit. (i LE 11- 1) do bqiII
"'h,l< loop fUlIlI to< _" miry hmor fII< pW>!WII<) ,n runh<l
,open ,,:,"'" fi.., Wi'ng 11"1>" K 1<'Inp 1.>10

irncorr _ resu l,.. .... d _ runli,,! i J. ",",pi"""; ft _ ""'pl ... )
:oo,><nS OIICh on'IY ,n "'nil .. ,nt<> ... ""', ....
, .. "h I fidd .. h"'" ... 2D"",y

140
;move data out of structure and into array for easier use
print, runlist[i],' is currently in progress'
n = size(imcorrarray) ;get size of i mcorrarray
m=n[2] ;get number of rows in i mcorrarray
inform=['Sifting Vector Data....']
envi_report_init,inform,base=percent_complete,title='Program is working',/interrupt
;begin % complete widget
for j=0L, m-1 do begin
if imcorr_array[4,j] EQ ' 1' then begin ; does row of data have flag=l?
if imcorr_array[3,j] NE 'NaN' then begin
; does row of data have correlation strength = NaN?
tot_dis = imcorr_array[2,j] ;get total displacement
x_error = imcorr_array[7j] ;get error in x direction
y_error = imcorr_array[8,j] ;get error in y direction
if t ot di s GT xer r or AND t ot di s GT y_error then begin
; is total displacement greater than x and y error?
x_beginpt = imcorr_array[0,j]
;get x coor. of beginning point for vector
y_beginpt = imcorr_array[ ,j]
;get y coor. of beginning point for vector
x_endpt = x_beginpt + fix(imcorr_array[ ,j])
;get x coor. of end point for vector
y_endpt = y_beginpt + fix(imcorr_array[ ,j])
;get y coor. of end point for vector
if reversed_mask[x_beginpt,y_beginpt] EQ 1 then begin
;is beginning point of vector inside glacier, ie. do x,y
coordinates correspond to a value of 1 in mask?
if reversed_mask[x_endpt,y_endpt] EQ 1 then begin
;is end point of vector inside glacier?
pri.,. I'IInliSl[i] ;. outm'Illy in .. Oj> .. "
m-n[! ) :goo number ofro"'" ,n tm>IT ""'Y
infonn-('SiR,"lI Vector rw.....1
,.,-1_ pon J .I,'; nfonn.boo. """' .... _ compl .... lillo-'Propam ....ru .... .rlnl<mlp\
;!>qm oo.upkt. ",Jgcl
for j"" I . m 1 do boll.
If ;!I'IroI'T _"",y(lJl ;<;!: 'NL"- I.H boll.
; Joa "''' of.., .. """e <."...1"".,. .. ,.''-''
'''' di, - ;m>rr .,.,..}P.i] 101.1
- -
X_<ITO!" - im<:oor .,.,..y[ 7d] ;goo COTOr ,n , d,,..,..,,,,,,
Y_<ITO!" - imo:= _ a:ny[ 8j] <ITO!" ,n y d,,..,..,,,",
It IOUji. CT X_<ITO!" A. .... D ,,"_di. CT LCOTOr l.n boll.
; '.lOUl d'orl..,......." 1jl'eO<<t ,hon , ..-.l Y <m>r"
"_be&iopl - im<OlT_amy[OJ)
:a<I' J<J<. ofbqmmnll pO,", r ... <tor
1_ ... 1Ii .... - imton" _ a:ny[ 1 Jl
"'" y >0<. pOI"' r ... , .. tor
, endp' - . be&inp' - 11>(;""""," amy[ <JJl
:"".oo<. of..1;)pO,.,r ... - , .. tor -
Londp' - y_ ... iPnPt - l1>(imoolT_ """Y[ "JJl
:1'" Y <1)01"_ of ..... pOI"' r", ,.",,,,,,
If ='....a_mask[x_be&inpLY _ "'i1"1"] I:Q 1 tlo'.boll.
:;, Oo,run"1l pO'"' of"""'" "",..., Kl><''' .... do . y
,,_'''', .. '01'''''''ol '" 1"" <If I '" ma/;'
If K<'....a_mulr.[. _cndpt.y_mdp<] [Q 1 ,b boil
" <:nil pO,nt of''''''''' , .. ode &1><'"
if direction EQ 'n' then begin
if imcorr_array[c>,j] LT 0 then begin
; is y displacement negative? ie., northward?
printf, 1 S, format=*(2I5, 2F10.4,14, 4F10.4)', imcorr_array[*,j]
;print vectors inside glacier to file mccartysifted
printf, ^ I, format='(2I5, 2F10.4,14, 4F10.4, A115)', imcorr_array[*j], runlist(i)
;print vectors and paths/directory to separate file
vectors_in_glacier = vectors_in_glacier +
endif
endif else if direction EQ V then begin
if imcorr_array[6j] GT 0 then begin
;is y displacement positive? ie., southward?
printf, 11, format='(2I5, 2F10.4,14, 4F10.4)', imcorr_array[*,j]
printf, , format='(2I5, 2F10.4,14, 4F10.4, Al 15)', imcorr_array[*,j], runlist(i)
vectors_in_glacier = vectors_in_glacier +
endif
endif else if direction EQ 'e' then begin
if imcorr_array[5,j] GT 0 then begin
;is x displacement positive? ie., eastward?
printf, 1 i, format='(2I5, 2F10.4,14, 4F10.4)', imcorr_array[*,j]
printf, , format='(2I5, 2F10.4,14, 4F10.4, Al 15)', imcorr_array[*,j], runlist(i)
vectors_in_glacier = vectors_in_glacier +
endif
endif else if direction EQ W then begin
if imcorr_array[5,j] LT 0 then begin
;is x displacement negative? ie., westward?
printf, 11, format='(2I5, 2F10.4,14, 4F10.4)', imcorr_array[*,j]
printf, 33, format="(2I5, 2F10.4,14, 4F10.4, A115)*, imcorr_array[*,j], runlist(i)
vectors_in_glacier = vectors_in_glacier + 1
endif
endif else if direction EQ 'nw' then begin
if imcorr_array[ j ] LT AND imcorr_array[ ,j] LT then begin
If ............ r.Q ... tII .. 1><P
110-. lm){'\iI I.TO ....
n)...,pj. ........ _,.' ........ .....
prla,f, II . bmM-,\ll'. 2nU. U. 4FIUr.. ,_ .... )f. J]
.1"'''' , ....... _ ............ " .. ''''.'Y .,1I00I
p<1 r. n , bmaI-'(llJ, '4, . 1'10 ..... A IlSr ......... _ .... )'[. runliot(ij
,I"''' '<n>B an<! '" O<!'"""< m.
,t<n)nJlocicr - ,',",'''''. iDJiKia + I
If : _ _ ... )\ 6JJ CT O110 ..
," yd,,'I ........... _,,,.'
,"",f, II, """"",,lLli. HIO.' .
porI>'f. '\' """"", .. ,W'. HIU
.......... _ .............. .. ' ....... _m..sJacia'+ I
.. dtf
.. .ur_wdin>cUon [Q'f! .... MtIoI
If i..-. ...... l'I . j] CT 0 ..... lq,.
,'" du,pi ... "".M ........... -..1"'
prJoU, 11. lbmw-1m. 21'10.' . I'. 41'10.4)" im<OlT ........ l'\ JI
prl."r. " . formal-'(l l'. 21'10.' . 1-'. ' 1'10.' , AI ur. i""""'_ ...... l'I JJ. "",Ii<l(,)
v10f'0j "..al""ior .. _ton_ inJla<ier + I
dlr
.. dif .... If dittetlon F.Q 'w' ...........
1t ......... _ ..... l1 jJ LT O ....
.n. "'.IL ............... ' ........ "...,.
,n_,r, II , ....,.215. 21'10.' , ", ' F10A1'. ; ",_ ... )'\, JI
"..',. " . """--lm.1F10.' , ", ' Flu.,U ur. - _ .... ..... I.-(i)
, _ _ .. ....-.. ,_ .. ""-""" ... 1
-,
mtt.t1f 4in>:tiool [Q_ ., ..........
""i"." ...... _ .... 0 imoon"_"""yJJ LT Q . ... bttll
'"
142
; is x negative and y negative?
printf, I I, format='(2I5, 2F10.4,14, 4F10.4)', imcorr_array[*,j]
printf, 33, format='(2I5, 2F10.4,14, 4F10.4, A115)', imcorr_array[*,j], runlist(i)
vectors_in_glacier = vectors_in_glacier + i
endif
endif else if direction EQ 'sw' then begin
if imcorr_array[ ,j] GT 0 AND imcorr_array["\j] LT 0 then begin
; is x negative and y positive?
printf, i I, format='(2I5, 2F10.4,14, 4F10.4)', imcorr_array[*,j] printf, 33, format='(2I5,
2F10.4,14, 4F10.4, A115)', imcorr_array[*,j], runlist(i)
vectors_in_glacier = vectors_in_glacier + ?
endif
endif else if direction EQ 'ne' then begin
if imcorr_array[ j ] LT AND imcorr_array[ j ] GT then begin
;is x positive and y negative?
printf, , format='(2I5, 2F10.4,14, 4F10.4)', imcorr_array[*,j]
printf, 33, format='(2I5, 2F10.4,14, 4F10.4, A115)', imcorr_array[*,j], runlist(i)
vect or si ngl aci er = vect or si ngl aci er +
endif
endif else if direction EQ 'se' then begin
if imcorr_array[ %j] GT 0 AND imcorr_array[5,j] GT 0 then begin
; is x positive and y positive?
printf, 11, format='(2I5, 2F10.4,14, 4F10.4)', imcorr_array[*,j]
printf, 33, format='(2I5, 2F10.4,14, 4F10.4, A115)', imcorr_array[*,j], runlist(i)
vectors_in_glacier = vectors_in_glacier +
endif
endif
endif
endif
endif
endif
11 . f""",, -'(1IS. lfllH. 14. 4F10.4),. i"""""_arra}i JI
"rI.,f. " . _ -,(liS. lfIO.4. 14, 4FW.4. All S). i"""""_array( JI. runlisl(i)
''1O<I)n..JU!oi., - _'o<s)nJlaci., + I
.. dif
,.dlf <l .. If dirtClion EQ ...... III,. b<V.
" imcotT _array(bJ) CT 0 ....... 0 i""""" _ ..... yJI l T U I b<-j:1
. i. , 'l<lI'''' ond Y
142
prilllf. II . f""",, -,(2IS. 2f1M. 14. 4FI0,4y. i""""" _ ..... y( . JI prl f, " . form>t-'(lIS.
lFIO.4. 14. 4FlO.4. All S). i"""'IT_array( .il. runJist(i)
... . I
.. dlf
If T O .0.:0>0 imc:orr_arrayJ) CT U btli
IS , poo,u>o """ y n<p1"."
prl.lf. II . format-'{llS. lFIO.4, 14. 4F10.4)'. imcorr_array( JI
prl f. H. fomw-'(lIS. lFUH. 14. 4FIO.4. All sr. imcotT_.",.y( j). JUllIist(i)
."'IOtI)nJlaci., - vcc"","_inJlaoier + I
.. dlf
" i"""""_ ..... y(bJJ CT 0 .0.:0>0 imcorr GT 0 I ... b<zl.
; " , POO''''(, one! Y """",."
prl., f. 11. form .. - ,!IS. lFlo.4. 14. 4fIO.4Y. imcOfl'_orray[' jl
prl.or. " . format-'{llS. lFIO.4. ", 4flOA. "II sr. i"""""_array( .iJ. run)ist(i)
,'IOtI_ iDJI.d., - ''CCIo<s_in.Jlaci<r + I
.adlf
dlf
dlf
,.dll
dlf
endif
;******commands to populate IMCORR flag array************************
if reversed_mask[imcorr_array[ ,j],imcorr_array[ ,j]] EQ then begin
;is beginning point of vector inside glacier, ie. do x,y
coordinates correspond to a value of 1 in mask?
if imcorr_array[ ,j] EQ then flag_array[imcorr_array[ ,j],imcorr_array[ ,j]]=
if imcorr_array[4,j] NE 1 then begin
if flag_array[imcorr_array[ ,j],imcorr_array[l,j]] NE 0 then begin
if flag_array[imcorr_array[ ,j],imcorr_array[l,j]] EQ 5 then begin
flag_array[imcorr_array[ ,j],imcorr_array[ ,j]]=imcorr_array[ ,j]
endif else if flag_array[imcorr_array[fi,j],imcorr_array[l,j]] EQ 4 then begin
flag_array[imcorr_array[ ,j],imcorr_array[ ,j]]=imcorr_array[ ,j]
endif else if flag_array[imcorr_array[ ,j],imcorr_array[l ,j]] EQ 2 then begin
flag_array[imcorr_array[ ,j ] ,imcorr_array[ ,j ] ] =imcorr_array[ ,j ]
endif else if flag_array[imcorr_array[ *,j],imcorr_array[ ,j]] EQ 3 then begin
flag_array[imcorr_array[ ,j],imcorr_array[ ,j]]=imcorr_array[ ,j]
endif
endif
if flag_array[imcorr_array[ ,j],imcorr_array[l,j]] EQ u then begin
flag_array[imcorr_array[ ,j],imcorr_array[ ,j]]=imcorr_array[ ,j]
endif
endif
endif
IF (i mod 100) EQ 0 then begin
envi_report_stat,percent_complete, j , m-1
;updates percent complete widget with each cycle of outer for loop
endif
endfor
envi_report_init,base=percent_complete,/finish
;end percent complete widget
;****end commands to populate IMCORR flag array************************
.oonutWIds Lo """,,1>1< I.\ICORR Ib& om)' .. .. .... ..
If ="ened_ma<k(im<:orT_arTlIy(OJ].imc:OfT_orr.I)'[ ' .il1 [Q l ib,. btti
. 11 I><onn,"i 1"""' OfHdl)t ,"""" ""',, ... .. do '.y
;>O<du'Ia'" 0"" ..... 1<1 '0' ' .. , .. of 1 In !1IUk.,
If im<Olf_ ...... EQ I ' h n.&..amy(im<Olf_ ...... ytOj].i"""""_aml'l l jll- '
lr imtOlT_ ..... y[4j] /OiE l ib ...... '.
Ir n.LarTlIy(imcorr_ ..... y(OJJ.im<OlT_orn.y( l ,ill Nt: 0 . b t..,:iIo
If llaL .... l1imco"'_ ..... )'[Ojl.imoon_arTlIy( l,ill [Q btf;1.
flaK. orn.y( im<:OlT _""YI gJ) .imc<IIT _ ..... y( 1 jJJoUncOOT _""")'[ J J
.. dlr .... It 14L ..... y(imtOlT ...... Yl nJ].;""""" aml'l l jll , ... !>oJ1.
flax.. amy( imoorr _ amol'l OJ I,i';;""" _ ..... y[ I jl _ om. y[ 4,j J
.. dlf .... If llaLarTlIy(imrorT_"""YlOJJ,im<OlT_ ..... yP,ill [Q l , b b<j::u.
II>L _ImIYl4jj
dlf .... lr lla&..amy(im<On'_ ..... 1 .. 11 [Q \ .h btt;1.
lias.. arTlIl'l imcorr _..,..y\ OJ ),imrorT _""l'I 1 Jj)oUnco!T _ omoy( 4jj
.dlf
.. dlf
If fto.a..arTlIy{im<olT_arny(Oj].imrorT_OlTlIy( l jl] [Q U '.'.1><'&1.
f\ax..am.y[imcorr ..... y( OJ),imcorr ..... y( l jll.;m<OIf ...... y[. j]
- - -
.Adlf
.",I_ .. j. m l
'"pd:n<o P<'I"onl <:OmJ'leIe" id"", ",II. oath of".. ... (0< loop
dlf
droc
...
,end rompl<tc .. td&fl
I\ICORR n ...... ) .. .. .. .. .. .. ..
'"
144
;***begin commands to sift vectors outside gi
a c
i
e r
**************
:
reversed_land_mask=reverse(land_mask, 1)
;reverse mask so y coordinates are transposed and output is oriented
;correctly. This is necessary because IDL and velview have different
Coordinate systems in which the y direction is reversed.
for j=0L, m-1 do begin
;begin process to sort out small vectors outside glacier
if imcorr_array[4,j] EQ T then begin ; does row of data have flag=l?
if imcorr_array[3,j] NE 'NaN' then begin
; does row of data have correlation strength = NaN?
x_beginpt = imcorr_array[ ,j]
;get x,y coordinates of beginning of vector
y_beginpt = imcorr_array[ j ]
x_endpt = x_beginpt + fix(imcorr_array[5,j])
;get x,y coordinates of end of vector
y_endpt = y_beginpt + fix(imcorr_array[6,j])
if reversed_land_mask[x_beginpt,y_beginpt] EQ I then begin
;are x,y coordinates of both beginning and end of vector
;outside glacier? ie, do the coordinates correspond to values
;of 0 in the mask?
if reversed_land_mask[x_endpt,y_endpt] EQ 1 then begin
if imcorr_array[2,j] GT estimate then begin
num_long_vects_outside_glacier = num_long_vects_outside_glacier +
endif
if imcorr_array[2,j] LE estimate then begin
; does row of data have displacement less than georef error estimate?
printf, 22, format='(2I5, 2F10.4,14, 4F10.4)', imcorr_array[*,j]
;print vectors outside glacier to file
.. _ ',-__ -1--.. .. .... .. .. ..
, ''".,. -_. .
.... "ftNd.. Iand.. mt1 ... tnO(land_1IWl. ! )
................. ' .................. , '
_.",1) Thoo .. _ ,I> " IDL ..... 'rn ....... " ... "'"'"
.: .'.",)'" _, ... ...... <n<d
roor i-I" . ",. 1 ... b<oJIII
.btJ>" p'"" ... 10 _ "'" ...wI
If Imcorr EO '1' ... boJI . <loos ""'- ur ""I.< ha 1"
IF i_. amYl ' JI Sf: '1<; ... '- .. bqI.
,<!un "'" ofd>!, ha'H""" ........ 1IIfm&Ib ".V'
-
""".)-......011><.", .. 01,_
- K M'", li>(imcorr_lmIrl <JI)
""''-\ ........... ' .... of .......
LcndpC . y. lIqinpI * O>(in .... , _ ..... y( . Jl)
U",'ftNd.. \and. masl<!. ) ,cpnp!.y)qi",,1 [Q 1 ",", boal.
, .... '.Y roon! ....... ofbolh bcsIm' ...... end Or I.''' ....
;""","", 51""'" oc. 110 , .... toQtI.!,,,,,, .. 10 ,.h ...
.of Il ,n the "'"""
If Imcorr. am)'\! JI CT <01;""'. 1waI.
"""'_1oaL __ . ",.'i<l<...sIacicr . ........ ............... .......... ..Jb<i 1
il lmtOn". "'111JI LE ati ..... , .... 1IqIo.
.do>a ..... oidlu ..... cd"" ... ,,= ..... _,...,..rl ........ _,
prio.r. ll, _ -lllS, ' FIUr. imcorr."'Y( JJ
""' .. '"'" ... ,.to p><r 10 iiI<
145
endif
endif
endif
endif
endif
endfor
i=i+l ; iterate index for while loop
endwhile
printf, 55, num_long_vects_outside_glacier,' = number of vectors longer than ',estimate,'
pixels outside glacier'
close, 11
close, 22
close, 33
print, 'FINISHED SIFTING VECTORS*
printf, 55, vect or si ngl aci er , ' = number of vectors in glacier'
print, vectors_in_glacier,' = number of vectors in glacier'
close, 55
;******* *commands to create IMCORR flags i
ma
ge********************
flag_base=widget_auto_base(title-Output IMCORR flags?',/xbig)
list=['yes','no']
sb = widget_base(flag_base, /row)
wt = widget_toggle(sb, uvalue-toggle' , list=list, /auto,xsize=35)
widget_result = auto_wid_mng(flag_base)
IF widgQt_rQsu\Uoggle EQ 'yes' then begin
window,4,xsize=columns, ysize=rows, retain=l ;scale display window
loadct,0 ;load grayscale color table
tvscl, glacier_image
loadct, 13 ;rainbow color table
device, decomposed = 0
dot_x=intarr(l) ;create 1 element arrays to hold x,y values to be plotted below
dot_y=intarr( 1)
for i=l I , columns-3 do begin
.odlf
.. dlf
.. dlr
rodif
.. dlf
Mor
'"
prJ.,f, <c. num. \ooi.. ,oclS. ouuideJl""i<r, * numbo< of V<C1O<'S than .... inute.'
OIl""," JI-:, ....
1<1><. 11
"OM, ll
prl." 'fINISHED SlFTr..:G VECTORS'
prlntf, '<, "oclOrS)nJlocier, - numb oh..,."," in Jloci ....
prlol , .oclOr1_'nJl"'ier, ' - llUmba .tv..,.,.. in tJaojc(
<10M
. .. .. rommmd>IO<rrak .mage .................. ..
RaL!>ase-'IdItt,. o.,o) l<'(ti,I ... 'Outpu< IlolCORR !lap?' Jxbi(c)
li01-1')'et'.'no1
sb - .... lrnw)
,>1 _ " 'idlttUoulab. "VlIl ..... li>I- l i ... I.UIO.xsiz ... .. )
widlllJe, ull - '.'0. " 'Id_ ... ... )
.. 1."" .. . 4,x.i<e"Wlum ... ysi ....... "' ... retain- ' .sea'" d' S{lla)' Indo ..
lood<t,O ,IN<! J9'lIY'<'>,e <0",," ""'I.
wlCl "",iOf. imag_
""'dOl, 1.\ ..... n_ >"" ,..".
do.'ltt, d""""posod - 0
dot. x- '." ' r( I ) :<r<ak I .lm>rnI """)""" mid <.y .. 1"",, to b< ploued belovo
doIf l.,.r" l )
;for loops to color-code and fill array to be plotted
for j =l I , rows-3 do begin
if flag_array[i,j] EQ 5 then filled_flag_array[i-l:i+2j-l:j+2]=5
if flag_array[i,j] EQ 4 then filled_flag_array[i- :i+2 j - 1 :j+2]=
if flag_array[i,j] EQ 3 then filled_flag_array[i- :i+2j-l:j+2]=3
if flag_array[i,j] EQ 2 then filled_flag_array[i- :i+!,j-l :j+2]=2
if flag_array[i,j] EQ 1 then filled_flag_array[i- :i+ , j - :j+2]=l
endfor
endfor
filled_flag_array=reverse(filled_flag_array,2)
for i=01 , columns-1 do begin ;nested for loops cycle thru all pixels
for j=01 , rows-1 do begin
dot_x[ ]=i
dot_y[ ]=j
if filled_flag_array[i,j] EQ 5 then begin
statements to plot and color-code flags
!p.co/or=250 ;red
plots,dot_x,dot_y,color=color,psym= ,/device
endif else if filled_flag_array[i,j] EQ 4 then begin
!p.co/or=200 ;yellow
plots,dot_x,dot_y,color=color,psym= ,/device
endif else if filled_flag_array[i,j] EQ 3 then begin
\p.color=5() ;blue
plots,dot_x,dot_y,color=color,psym=
1
,/device
endif else if filled_flag_array[i,j] EQ 2 then begin
!p.co/or=150 ;green
plots,dot_x,dot_y,color=color,psym= ,/device
endif else if filled_flag_array[i,j] EQ 1 then begin
\p.color=25 ;purple
plots,dot_x,dot_y,color=color,psym= ,/device
endif
endfor
endfor
annotate, wi ndow- ;
, .... Ioopo ... __ ...s 611 ..... ...... pIo>dod
'.,;-11 .......... ' ... ....
If 1IIL .... y(iJJ [Q < ..... 6Ikdjl ..... arny(i- 1 :i l .j-lti l t-"
1t 1llL ..... y(iJJ [Q . dono 6Ikd)1 .......... y(;" I:i. l .j- l :,i' 1)al
If ''''''Y(iJl [Q 1 .....
II , .... y(;JJ EQ I .. fiU"'UlaLomIy(,. 1 :;.l J. 1
,., 1-1'1 coI.....,.. 1 ... 1tqIot ;.-11'0< Ioopo <)<1< """ 011 p,,<lo
,., jooI'I .......... ' ... 1Mt;ioI
dooA"J-i
dooJl" J-j
lI filkd)L,,_ ..... y(ijJ [Q< dono ......
",. 11 ... """'- ond __ 1lop
I .. .tel. - ) .... r<ol
pIoI>.dot_".dooj'"",......,Ior.po)'lllVdnicc
.. [Q. , ..........
Ip.>I ..... : .. I .)oI .....
plol dot_,Aotj'.ooloPcolot.PI)'IIIVdo-vi
.. dlloh<lf filled_noLlmo),(iJJ [Q \ , ..........
Ip . ...,,'"" - <) .bl ..
pIot.,dooJ.,dooj'.colofoooo\or .... )'III-V4evit:
.. dlf ... 1f fillod_lla&..orr:oy(ijJ [Q ! _botbt
- 1'10 'f<CtI
pl ' ... doo_.,dooj' .... ,. __ .... )m. V40vicc
.. dil ... lt ftl1cd_IIIL ... y(ijJ [Q I , ...........
,
"-" ok p .. LL . I'
,I " .. "_ ..... .,,.-"'1" w .... .poyno-V*'"'"
-
_ ..
-,-
... 01.' ..... """", ..
147
save_base=widget_auto_base(title-Save this display?',/xbig)
list=['yesVno']
sb = widget_base(save_base, /row)
wt = widget_toggle(sb, uvalue-toggle' , list=list, /auto,xsize=35)
save_result = auto_wid_mng(save_base)
;save_result.toggle[0] = 0 ....yes
;save_result.toggle[0] = 1 ....no
if save_resulUogg7e EQ 0 then begin
display = tvrd(true= )
rotated_display=reverse(display,3)
>
write_tiff, dirQctory_vQSu\toutput_directory + '\sifted\flag_image.tif ,rotated_display,
orientation^
endif
endif
fmished=widget_auto_base(title-Program Complete! !',/xbig)
done=widget_string(finished,/auto_manage,uvalue=
,
complete',prompt='Successfully
sifted correlations',default='PROGRAM COMPLETE',xsize=50)
result=auto_wid_mng(finished)
end
save_hOI: .. I._I>"", ,;,.....sa,-...... """,. i" I . bi&)
li"-! 'yes'.'no1
... - .. _b .. .. , .. _Nst,Irow)
.. , "Mlt"_' ouJt(ob. li .... 'i ... 11U'O..<.i .....
.. ,' __ row" - ".'0_ .. 1d_maJ("'-"_bue)
;SO' . .... ll!Oglcj OI 0 -)'00
,"' . rm.luopk[0l I , no
If .. ,'._ .... 'uOUle t:Q 0 I 1><1:'.
d;spllY - ''''d('''' .. , )
'"

".1 _ , If(. direct<>ry _ .... 1 ....... ,1"" _ ,i;"""",), OW fIod\1IAL imaJe.u r ,rowod _diSplay,
onenwionoo(!
.......................................................................
nd'f
.ad'f
fo nish!. .... Idl" _. " t. _bow( ,ille-'PI Oji .Ii Complete'
_ .. ....... _ItI.,pn>mPl 'S"""_l'ully
IInod COl>tPLETE'.:"i_ J
..... 1' . .. '0_ .. Id_molt(' rmished)
...
APPENDIX C
RESIDUALS.PRO
PRO Residuals, event
; This program sorts vectors using the standard deviation of the angle
;of all vectors within a specified window size.
;A vector with an angle which exceeds the standard deviation threshold is not plotted.
;Arrows are plotted and color-coded according to correlation strength.
;A similar routine sorts according to vector length as well.
; This program will accept as input '<glaciername>_accuracy' found in ;the 'accuracy'
;folder. This file contains a list of vectors outside the glacier used for
;georeferencing accuracy calculations. When this data is run through
;Sort_Arctans_Plot_Arrows, and the mean x and y are calculated,
; then the output is the residual displacement left over from the
;error adjustment. The total displacement of the residual represents the accuracy of the
;vectors inside the glacier.
;Outputs are systematic error and residual error tifs, placed in the 'accuracy' folder.
; This program will call IDL's annotation widget which allows the user
;to label/annotate the displayed
; vectors and glacier image with appropriate title and parameters.
;A saved version of the annotation is
; found at \vectors\<glacier name>\<glacier name>_annotate.dat. The program gives the
;user the option to save the annotated display, which is then saved in the 'sifted'
; folder.
; Scroll to bottom to be sure the output name for this is set to your
;glacier name.
;Tiff files are used to preserve floating point values.
5
restore, 'c:\Program Files (x86)\ITT\IDL708\products\envi46\save_add\sift_template.sav'
C
RESIDUALS.PRcO
PRcO R .. iduol " .. ,
n".,,,,,... .. ,, SOIU ,..,.".. .. ,I><......tan! de,'"""", or .... ""!!Ie
",foil ""lOB .. "h," lj><C,fia! .. ,"""" .. "',
:A """lOI .. ,,," an ""II" .. ruch .. <ec<I> ...... ondon! .... '.""" IS "'" plol,a!,
.... ood .o.."...,oda\ O""''"K 10 rom:l>I"'" ....... ",11.
:A "m,l .. "'"" .. """ .'''''''"'"8 ,,, "C<1M imp .... <II
nu. P"'CR'" .. ,II aoc<pl .. '"P'" ", pocmomc:" "':cu .... )' f-.d '" .,1>< '"""""",),
.'oldcf, Th,. me <00"" ... hoi of""""," ""!$Ide .... ,I"" .. w.al r.,.
__ f<=1<,,'111 ",,,....,y <.kul .. ions. Wh<:n 'h" "" .... ",n !II"'"!Ih
Son .Am .... Pk>< """"" ..-.I ,he """'" , ood y..., .. l<uIOl,-,I
lh<n .... ""<pilI ...... r=duol <10",1"<l1><li1 kn O'<r from II><
.orror ""I"""""'. TIlt toLIl d""lac<m<nl 0' .... reo"'''''' oq>rn<nt> the ocnua;;)' ,,[,he
.'''''lO<'> ,..,<1< lilt "'"',..-
.(lu,,,,,,, 1111: '1sm.". orror ..-.I r<S>duol orror "r .. pl""a! ,n ..... ""<"""')' folol ...
, 11,,0 pn>FWII .. ,II <011 IDL '''''''0'''''''' .. ,de<' "hlCh oil,,, .. <he USCf
.10 \abet onnota<c tilt d''I''.)<aJ
, '11" ..-.1 g!a<, .. ,mall" "i!ll ..... "'ni ... ,ill. """
:A ""a! ,,,,,",,, orthe "'"""-'1I0Il"
: found", ,e<,,,..', .. ,!!1"",<r ....... " 1lJ..:,<r........, , lII\nOUl<.daI., TIlt P"'i'V"1"'oo ....
, ..... the ",'"'''' 10 .. ,.,he ann<Malal d, ... ... h .. h " ,...., .. ,cd ,n lilt .. n .....
. roldcf
: Setoll 10 bOil_ 10 be .......... ""11>'1' ...... for lh" ...... 10 )OW'
:alIC,a """",,,
:Tiff moo at< wal '" "".se,,,. n"""na ""'"' ,.Iuco.

' .. ' 0 ... "c; \l'rop1llll Files (d6)' .!TT\IDL 708 '.." ,4/> ___ _odd"'; ft _ ..",pl" .... ,-
, ............................................................
149
siftedj3ath=envi jickfile(title="Find <glacier_name>_accuracy.txt in ACCURACY
folder',filter='*.txt')
sifted_vectors=read_ascii(sifted_path,template=sift_template)
;read list of path names/vector files; structure with 1 field
sifted_imcorr_array = sifted_vectors./ze/<l/[*,*]
;move data out of structure and into array
q=size(sifted_imcorr_array)
columns=q[ ]
rows=q[2]
glacier_path=envi_pickfile(title='Find glacier image (jp2 format)',filter='*.jp2')
glacier_image=read_image(glacier_path)
params=widget_auto_base(title-Enter parameters',/xbig)
list=['spatial resolution (m):','time (years):']
vals=[l 5,1.0]
output=widget_edit(params,uvalue='parameters',/auto,prompt='Enter new
value',dt=2,list=list,vals=vals)
params_result=auto_wid_mng(params)
i
resolution = params_result./?araraeter,s
,
[0]
;spatial resolution, used to convert offsets (pixels) to velocity (m/yr)
years = params_result/?araraeter.s[ ]
;time between sequential images in years, to convert offsetst to velocity
;if calculating residuals set arctan threshold to 180 so it will not
;sort out vectors, but instead keep all
;all vectors outside glacier for calculations. Also set length
threshold to 100 for same reason
scale = 1.0 ;scale factor to magnify display image, use values 1.0 or
;larger, values less than 1.0 prevent
;small arrows from being plotted and make vectorfield appear more
;sparse than it really is.
arrowlength = 50.0
'"

..... <p,er_ name>-__ wvy,txl In ACCURACY
foldor' .fillor-'" .1>.1'
";fIed _ v",,,,,,,, ... d __ J>&'h.mpw ..... II_l<mpat.)
:I'<*l h .. of fIaIh ".."... """lOr fiks; """"""' ,,10 I field

i lied Jm<:OIT _array - .iftod _ o'..,lOCS,r ... 1d I ['. oJ
"""". d.aLo "'" ofIlrU<'"'" ODd Into ..... y
q iu(. iftedJ m<:OIT_ ..... y)
columns-q[ , ]
"""'"",,-11 J

.. i ... fllh .... ...." ... ''''''It (jpl fonnal)',fil,"""
JI .. i ... _im.aV"r ... fllh)


HOl -( .... hol ..... h.lbOll (m):',' ,me (yo .... ):1
".10-( I
output .... HlK"_"'I' (panm . .. to,prt>IIl!Il>""En1cr_
,-.lilt' ,dl- l ,liOl- liSl, ".1 ..... 1.)
.. lI .. _"""'h .... ! o_


"",l"tion _ J>OlV'IO_reoul'.po>"'''''''<Nj O]
;op>!'.) ....,1"10.,.., .....t to .... wen offSCl$ (p",ol., 10 ,.Iocoty (m,),)
ye .... - P"fOI"$_ reoullJ"' .... """ , ]
.11 .... Sj""""ol ,,,,.,.,. ,n ) ....... to <"." ... OffOOUlIO "loclly
, ..................................................................... .
,( oakura",.. n:oOduaa oeI ..."." ,h.....,kllO 180 00 " "'U
;00<1 oul ,,,,,ton. .. , j"" ..... hcp "u
,oil ''''' ...... ""tsHlo clo,,,,,, f,.. tal<"Wi<>Ro. 10'00 oeI
."'''''''''KI to 1(0' rOf""'" onoon
",01. _ 1.0 ,,,,",, (..,lOr 10 ",,,,,,ury di>pby """S". "'" "1Il .... 1.1) or
,"""', 1.'Ueo .... ll\;lrll ,0 pm ......
""",II from bems plot,.". and mok< Icctorfu,i .. ..,...... """"
"'"" u ",al,y II.
""",wlength -
150
if origin_result.fogg7e EQ 0 then data_origin='i'
if origin_result.toggle EQ I then data_origin='c'
arctan_array = fltarr(glacier_image_columns, glacier_image_rows)
;create new array same size as image
corr_str_array = fltarr(glacier_image_columns, glacier_image_rows)
;create separate array to hold correlation strength
x_displacement = fltarr(glacier_image__columns, glacier_image_rows)
;length of arrows, use this to stretch or shrink arrows for visual clarity
arctan_threshold = 0.75
;multiplier for standard deviation of angles ;within box defined by wi ndowsi ze
totdisp_threshold = 0.75
;multiplier for standard deviation of total displacement of vectors within box2
st dvl i mi t = 10.0 ;minimum stdv for arctangent below which vectors are ;not removed,
;ensures good vectors in uniform
;flow field are not eliminated during iterative process.
; if the grid spacing used in IMCORR is 4 then wi ndowsi ze must be ;larger than eight
;or else the following FOR loop won't find any vectors inside 'box'.
; window size should be a even multiples of grid spacing + 1, for ;example if
;grid spacing is 4 then good window sizes might be....
;4x2+l = 9
;4x4+l = 17
;4x6+l = 25
;4xl0+l =41
s=size(glacier_image)
;these commands will get the size of the grayscale jpeg2000
glacier_image_columns=s[l] ;get size of grayscale jpeg
glacier_image_rows=s[2]
origin_base=widget_auto_base(title='Origin of data?',/xbig)
list=['IMCORR','Cosi-CORR']
sb = widget_base(origin_base, /row)
wt = widget_toggle(sb, uvalue='toggle', list=list, /auto,xsize=35)
originresult = auto_wid_mng(origin_base)
;origin_result.toggle[0] = 0 ....IMCORR
;origin_result.toggle[0] = 1 ....Cosi-CORR
.kngth of ""''',,''' UK 'h" to 1Cm'" or .hfUu.. Iml .... r ...... , .... 01 "only
am.!_threshold
.mu"'pl , .. for IIW>daI'OJ "",,,","'" "r "n!lJ<$ .... ""'n box d<f,O<d ,ooJ,o ... "'e
lotdiop_threshold _ O.
.m.H,p"., for oundonl de"",,,,,, ;d,..,,"' ....... ' ohe<:tOflt ... ,th," bo,l
1td"Jimi' - 10,1) "",mmum ltd, r .... Ott""irn, bolo ...... h"'h ",''''''' .... """ 0'<1'lI0\<<1.
,<mil'" JI"O" ,.""""" ,n ",uronn
.no ... r..ld.,. ..... ohm""'ed ,' .... ,,,. "...,. .. .
, ................. , .................. , ............................... .
. ,flllo IPld <l'*m'..cd ," I\lCORR If 4 ,torn .. ,1I<lcn< .". n'''' bo .Iat'Jf ,han ngh'
.or .1", lIIo fol""" FOR loop .... "'" n .... Illy \ ""ton ,,,.,d< 'be,'
\I ,1I<lcn<' W' shoo .. bo II m.l"pln of &ri<t """'"11 I. r .... ""amp," ,f
$HI <1'*'"11 " 4 ,hat JI"O" ... ,1I<lcn< at,", m,ght boo
.4,2_1 9
.4,4+1 17
;4,6.1 25
.4.,0'1 41

1lIes< '"",m ...... " ,II &<1 ,ho: at" of,,,.
,,,", "" of "",,:><.,. JP'll
.,'" i., _imall" _",....-s( ! I

oriain_h.. "kll .. _ .. .. n <>f data?' .lxbig)
li"fl\lCORR."C ooi-CORR1
<to - .. klROI_ trowJ
..., - "klleUoul<to , . ., .... 'touk'. li>Ilin. ' o.to.,,,,eo" )
oriain_ ..... " - 0.'0_ .. id_maa(origin J'_J
;0011'" 0 0
:OO'" f'eOItit.I<>llllIoiOi I
l\!CORR
C_-{"ORR
If origin -,",ult.,oule EQ Q lb "''''_Main'';'
If oriain_r<lUluOUle EQ 1 ,b . . ..... _MiUI- .
Otttan _ ...... y - Dlo' r(.,,,;,,, j mllll<" _ oolurnl\ll, ., .. i.,Umoge _ "''"'''J
;,,,,ale",,,,, ""Y IIamc ." ...
oorr _ w _.".y - 01. r alaei ... j _ "",'um:\$, &loti ... _ im>S" _ ",.. .. )
",...,. _,.""y 10 ..,IJ """,,1;0'1<", """'I"
151
;put x displacements into separate array
y_displacement = fltarr(glacier_image_columns, glacier_image_rows)
;put y displacements into separate array
total_displacement = fltarr(glacier_image_columns, glacier_image_rows)
;put total displacement into separate array
arctan_array[*,*] = 200.0
;populate array with large value to discriminate within FOR loop
corr_str_array[*,*] = 200.0
total_displacement[*,*] = 200.0
print, 'Begin populating arctan array with angles'
FOR j=0L, rows-1 DO BEGIN
;this FOR loop calculates the angle of movement for the
;x,y coordinates of each vector in ' si ft edi mcorrarray'
;and places the angle into the proper location in ' arctanarray'
x_coor = fix(sifted_imcorr_array[
i
,j])
y_coor = fix(sifted_imcorr_array[ ,j])
x_disp = sifted_imcorr_array[5 j ] ;populate x displacement array
y_disp = sifted_imcorr_array[ ,j]*(-l) ;populate y displacement array
total_disp = SQRT(x_disp
A
+ y_disp
A
2)
;populate tot. disp. using x and y disp. calc'd with mean errors
IF arctan_array[x_coor,y_coor] EQ 200.0 THEN BEGIN
corr_str_array[x_coor,y_coor] = sifted_imcorr_array[3,j] ;populate corr. str. array
x_displacement[x_coor,y_coor] = sifted_imcorr_array[5,j]
;populate x displacement array
y_displacement[x_coor,y_coor] = sifted_imcorr_array[-: j ] *( - 0
;populate y displacement array
total_displacement[x_coor,y_coor] = SQRT(x_displacement[x_coor,y_coor]
A
+
y_displacement[x_coor,y_coor]
A
2)
;populate tot. disp. using x and y disp. calc'd
angle=
(ATAN(y_displacement[x_coor,y_coor],x_displacement[x_coor,y_coor]))/!pi* 180.0
;calc angle in degrees
arctan_array[x_coor,y_coor] = angle
;arctan_array now has angles at all the beginning x,y locations
.pul , do",,, ,,,,,,,,,,, ,nto J<TUfI.I ...... y
Y _ <Ii",'",,<m<n' - n" nUI""i'" _ imaac _ c<>IWl'InS, ilK'''' _ iO'\a& _ ,.,"",)
.pu'Y do""""......., .. Into >q>am< omy
lOIllI. _ "" ' !iil"";cr _ imaac _ oolulTUd. ilK;'" _ i.nag _ "''''',)
.pul tDl.lll d''I''><<m<nt ,nto __ te otn}
an:w>. """y( ' ,. j _ 201'1.0
,pop."". orray '" ,11110/]1< , ... "" to d.",,,,,,,,,,,,.,, ,.run fOR loop
<OI'1"_ .... _ ..... y[ . I _lOO.O
lOlal. di"""""",e,ut . ' ] - 100.0
ro,",',, ' 00 8 F.C1S
.,h ... "OR ""'" <o'c."'<o the: ""31< of m<Wcman ( ... ,he
",y oooo.l, ..... of..,h ,tor In ' .. nod 'moo<T omo)"
;and ""''''&1< Into lhe p<opc< 10< .. "", In 'at<'\JUI ..,..y
' . ""'" - n.(oill<d)moon-. """y!OJll
Y _"""If - fl.( oiflUmcorT _ ...... y[ l,i])
, . dull - tiftcd. ,moon" . ..... y[<jJ ,_'Ole, d,<plactmrnl ..... Y
Y. diop lifted . i""""'" . ..... y[0JI(-I ) .p"p" ..... Y d ."txcmrno amy
total disp _ SQItT(. disp" l+ y disp'! )
- --
,"""", ... tOO d,,,, .si,.., and y d,'l' cak'd ""m mean rn'<Ir1
I .. ""'.." . ..... )'( """'.1. """'1 [Q 100.0 T il E.. ... 8t:GI:"o'
OO<'r. w . ..... y[ """'.)'."""'j - oifted)moon" . ...... y[ ' j] .""",,1= <OtT . ..... """Y
di"""""" .... [. """",Y coorl - Iifted im>rT 1mI.y[ <JI
.populate, d,"'l>r:.....,." ..... y
y _ displ .. ,cmalllx _ """".y _coo< J - si ftljJl""," _ amyl) J JOH )
,popol.,o y d"l'lo<<m<nI ..... Y
"mt di splo<emont[. _>Of [ - SQ IIT(, _ disp looemon,[. _ eoot,y _>Of]h!
Y _ di",l.a<:omall,[ x _ >Or .1-';0 r ! )
.popoboo lOt. d"" ""'''>1' and )' d,,,,, <:ok'd
.....
(AT Al' (y _ di",\acan,,"[ _coo<.y _ eoot 1.'_ di",IOC<ITIontj. _ OO<J<, Y _ eoot I ))I!pi III(l,U
:<ok an&k ,n Jov-
....,..
_tan OrTII)'...," has angles '" .n Iho beginning y local.,....
'"
152
ENDIF ELSE BEGIN
IF arctan_array[x_coor,y_coor] NE 200.0 THEN BEGIN
;if arct anarray at x_coor,y_coor is already populated, then compare
correlation strengths of the
;two overlapping vectors. The vector with higher corr. str. is kept.
IF corr_str_array[x_coor,y_coor] LT sifted_imcorr_array[ ,j] THEN BEGIN
corr_str_array[x_coor,y_coor] = sifted_imcorr_array[ ,j]
;populate corr. str. array
x_displacement[x_coor,y_coor] = sifted_imcorr_array[ ,j]
;populate x displacement array
y_displacement[x_coor,y_coor] = sifted_imcorr_array[ ,j]*(- )
;populate y displacement array
total_displacement[x_coor,y_coor] = SQRT(x_displacement[x_coor,y_coor]
A
? +
y_displacement[x_coor,y_coor]
A
2) ;populate total displacement array
angle=
(ATAN(y_displacement[x_coor,y_coor],x_displacement[x_coor,y_coor]))/!pi* 180.0
;calc angle in degrees
arctan_array[x_coor,y_coor] = angle
;arctan_array now has angles at all the beginning x,y locations
ENDIF
ENDIF
ENDELSE
ENDFOR
arct anarray = reverse(arctan_array,2)
;reverse arrays so they will plot right-side up
cor r s t r ar r ay = reverse(corr_str_array,2)
x_displacement = reverse(x_displacement,2)
y_displacement = reverse(y_displacement, )
total_displacement = reverse(total_displacement, )
z=size(arctan_array)
zcolumns = z[1 ]
zrows = z[ ]
FOR i=01 , zcolumns-1 DO BEGIN
E:<iDlF ELSE BECI:<i
IF "", ........ YI. ooorl :<iE 1ClO.O TII F.:<i 8 1;CI:<i
- - -
.If ..., ......... y at. <_.y lOt' to populot<d. ,hcm """'II"<'
.""",,101_ .. ""'gt,," oft ....
. '''0 "'<rJar\tI"8 "lOtS. The '-""'0< ",(/0 hIgher COOl' _ at. IS
IF c:<>I'T ...... LT , ift<d_imcorT _omtYl ' J] T II[:<i 8 ECI:<i
COlT _ ... _ omYl' _ <""'.y _"""'I . .. 1Iod _ im<arr _ om)'(
,popula'e Cllft_ "'_ """Y
x _ dhlpl""<m<nt/. _ coor.Y-',o"'1 - Ii fI<d _ imcOlT _ om)'( <J1
.populOI. , d ....
y _ d;.plxoment]"_ 000f.)' _ """'] - .ifl<d Jm<:OIT _ om)'( 1)
;populOI. V .... ,-
I0I2l_ displ .. .....",". _ <OOr.y _"""'1 - SQ RT(. _ ,_lOt' .Y-''''O< )' 1 +
y_displ""emen<[x_<OOr.)'_"""'I' l ) ._ ..... IObl d,>plocornen' uny

(AT A:<i(y _ displ"".",...'] X _ ooor.y _COO< IJI_ di ..,I""emen'] X _ <OOr.y _ >Of))'!pi' I 010.0
;col. ""!Pc on
arctan_om),(,_""",.y_OOOf] _ UIjI_
,""WI "'"')" no .. !tao"IIi" all tho brstMI"lI y local,,,,,,
ESDlF
ENDlf
I: NDI:LSE
arctan_amy _ , ... n""tan ..... y. l )
;t<' ..... lhoy ,,-,11 pk>< n"" _ ..... "P
OOIT_ ... _ ...... y - ""n""",_",_orny.l)
_ ..
y_disploc..."en, _ ..... -.<><"(y_di ...
1OIal_ d;.pl"""""",, - ... ' n.c{!OI.aI_ d, '1'1"".",...,.1)
. ... i.ot(..", .. _ ...... y)

"'""". .Il)
fOR iooOl " >ro1...",... 1 00 BEGI S
153
;put NaNs in places where there are not valid angles, instead of 200.0
FORj= , zrows-1 DO BEGIN
IF arctan_array[i,j] EQ 200.0 THEN BEGIN
arctan_array[i,j] = Wahies.f_NaN
corr_str_array[i,j] = ! Values f_NaN
total_displacement[i,j] = IValues./^Afo/V
ENDIF
ENDFOR
ENDFOR
print, 'Finished populating arctan array with angles'
iterate='y'
while iterate EQ 'y' do begin
good_flow = WHERE(arctan_array GT -181.0, num_good_flow_pix)
;get indices (x,y location) of angles and place in array 'good flow'
;number of angles is equal to 'num_good_flow_pix'
keep_angle_vect = lonarr(num_good_flow__pix)
;create array same size as number of angles in arctanarray, this is
;the number contained in 'num good_flow_pix'
print, 'Searching for good vectors using arctangents'
inform=['Sorting Vector Data by Neigborhood']
envi_report_init,inform,base=percent_complete,title='Program is working',/interrupt
;begin % complete widget
FOR i=0L, num_good_flow_pix-i DO BEGIN
;loop runs number of ;interations = number of indices in 'num_good_flow_pix*
IF (i mod 100) EQ 0 then begin
envi_report_stat,percent_complete, i, num_good_flow_pix-!
;updates percent complete widget with each cycle of outer for loop
endif
fOR j "'lll =", .. 1 00 BECIN
If attlan_ ..... y(ijj tQ lOO.O TItEN 8CIN
orctm_omoy(ij) _ iVaJ_L NaN
ootr_su_arraYliJl -
toQI_dii!ploc<m"'''li,i] - !VaJ_L Na,v
ENDIF
[NDFOR
f. ..... DfOK
"bllt i'<r.I.I< [Q Y do 1M1J.
jOOd _ f\Qw WUt: Rt:(OttWl_"""Y CT . , 1.0. nurn JQo,UIo"" Jli. )
.geI ,001<<1 I',r 1o<ation) of .... co ond plio '" no..'
.numb<r of ... ""Iuol to 'n"", go<><! n.,,, "'po.-
keep_anp_ vee! . ..... ro1numJOOd_fIow...JIix)
.<rnI< """Y _ ."e. ntm'lb<r of "&los ,n """ .. _ ..... y. Ih .. "
;!IIt n"mber >n .. ,r>al,n '''''''' .i:<JC>d ,PI>'
IntOrm,,\"S<>rt"'i VOCIQ< ilII:I by
'1 Jtport _,.11, infonn.b... .... ,iU ... 'l'1 "'" ." " ........ ,,,.. /interrupt
,begin 0", romp'''''' .. ,dg<1
f OR i-01 . numJOOd_IlowJli'. 1 00 8.:(;11'
,..,.". rune nwnbot of n ..... '_ "omb of ,,.j,en on 'hum...,.t nov. _pl<'
IF (i mod 10() EQ Q tb btll
"' _ ... port _ " . , .pcr<alU:ompl<l<, i. nwn JOOd _110 ... "'pi ,
."pd""S Jl'<I'Cft" oompk1." ,d& ,,,lh _h <)I:'o .. r oolOr for loop
.. dif
'"
154
pixs = ARRAY_INDICES(arctan_array, good_flow)
; create 2-D array (list) of subscripts contained
window_size=51
width = fix(window_size/2)
while wi ndowsi ze LT 50 S do begin
;while loop to create variable window sizes
box = EXTRAC(arctan_array, pixs[(),i]-width, pixs[ ,i]-width, window_size,
wi ndowsi ze)
; create subset of arct anarray which will be
;analyzed, size and location of box is defined
;using pixs and wi ndowsi ze variables
box2 = EXTRAC(total_displacement, pixs[' ,i]-width, pixs[l ,i]-width, window_size,
wi ndowsi ze) ;subset totaldisplacement as well
good = WHERE (box GT -181.0, count)
;array 'good' contains indices of angles within 'box'
IF count LT 9 THEN begin
window_size=window_size+20
; if more than 8 vectors within 'box' then statistics will be calculated,
;otherwise window size is increased to encapsulate more vectors.
endif else if count GE 9 then begin
window_size=501
endif
endwhile
stats = MOMENT(box, /NaN, sdev=stdv)
;calc statistics on angles inside 'box', if standard deviation of
;angles is less than the threshold declared above, then the vector at
coordinate i of ' goodfl ow' is kept and placed in the array called
;'keep_angle_vect'
stats2 = MOMENT(box2, /NaN, sdev=stdv2)
;calc stats for total displacement as well, to sort via length
mean_arctan=stats [ 0]
mean_tot_di sp=stats2 [ ]
pi a ", KIt,\ ' _" Dlct:s(aretan_l/TIIY, goo,U1" ... )
, <""'. 2D omoy (10 .. ) of ....... nl". <00'''1'1<0
",,; _ _
",',dill . n.(..;.oow. lizo' l )
.. -hi" window. riz. LT 0;01 do 1><1;1.
, .. hIt. ""'" '" errol< ... ,,01> .... Indo .. ""eo
box :XTlL\ C(UCWl . ...... y. pixs[ UJ] ... idlh, "i .. .. idlh. .,i _ _ .i .....
.. indow_li.c)
........... """ of "",WI array .. hi<h .. ,11 be
"""ly,a;I. OIl< and 1o,,,,,,,", of bro. " defined
..... "11 p ... and ",,.Jo .. _ '''e ,-..,obles
'"
boxl _ [ XTlUC(tot.Cdi..,laoemML pi .. pixs[ l ,.)widlh. -';ndow""u.
window ."e) ...... l>otIlotal ",.11
JOOd Wm :Rf:jb<>. GT 181.0, """"'J
"""'Y '1I<""d' """"" .... ,f>d-= of ""Wn "" th," '1>0.'
Woount ' .T 9 TItEN .... 1.
window _oi ..... 'i _ _ ....... 19
. ,f..-" !han 8 ''''tors'' ,tho. 'bo,' 111M "'''-'''''' ",.11 ... cak"l ......
;ot/>er>o-; .. ""_ 10 co ... , .... I ... """" ,..,oors .
IIr. ... If <OWl' GE q .. I>oJl.
""indow I
.. dir
.... . MO'l F'T(bo IN .. '1 ......,dv)
;cak ... b .. ,<, "" ongko; ,_ '1>0,', If ....monllk> ,"',.," of
.. loss lh>n II>< ......,...,id Ik<Iaml abo: ..... u.... "'" ''''''Of at
;<0<>1",.,. 'of'gOOd no .. ' " and 1'1><"" , n ,II< ...... y <>Ito<!
;'\;:p angle ".1'
ows2 - \ 10.\lf' T (box2.1N .. " d...-..d>'2)
,<ok <IAl> fOr toI.al du;plac:u ... ", .. 10"'" '.0 lon,h
m<alI_arctan-""'(OJ
""""'_lOI_di_osl{OJ
155
if stdv LE st dvl i mi t then begin
keep_angle_vect(i) = good_flow(i)
;keep_angle_vect will contain indices of good vectors/angles
ENDIF ELSE
IF (arctan_array[pixs[ pixs[ 1 ,i]] LT arctan_threshold*stdv + mean_arctan) AND
(arctan_array[pixs[ ,i], pixs[ ,i]] GT mean_arctan - arctan_threshold*stdv)THEN
BEGIN
IF (total_displacement[pixs[ ,i], pixs[ ,i]] LT totdisp_threshold*stdv2 + mean_tot_disp)
AND (total_displacement[pixs[ ,i], pixs[ ,i]] GT mean_tot_disp -
totdisp_threshold*stdv2) THEN BEGIN
IF (i MOD 100) EQ 0 THEN PRINT, stdv, ' = arctan standard deviation'
IF (i MOD 100) EQ 0 THEN PRINT, stdv2, ' = displacement standard deviation'
keep_angle_vect(i) = good_flow(i)
;keep_angle_vect will contain indices of good vectors/angles
ENDIF
ENDIF
ENDFOR
envi_report_init,base=percent_complete,/flnish
;end percent complete widget
print, 'Finished searching for good vectors'
;the array ' keepangl evect ' will have empty rows due to sorting
;process above, so these are removed as follows:
good_pix = WHERE(keep_angle_vect GT 0, count_good_pix)
;the array 'goodjpix' contains indices from ' keepangl evect ' which
; contain valid angles/vectors
keep_angle_vect_short = lonarr(count_good_pix)
;create new array of correct size to house indices of good angles
keep_angle_vect_short = keep_angle_vect(good_pix)
;use indices stored in 'good_pix' to populate ' keepangl evect short'
koep .iJ - 1I""'I_1Io,,1ij
;I;<eq> artxl< 'I "',II =""n ,ooos of KOOd ''''''''t''angIes
ESDII' F. Ul I:
' t' ("",,",,_array[pixo(O.ij. pi .. ! I,ill l. T """"'_Weshokl ' <ldv" m ... _"",ton) AND
(am""_""")'\"i"I0.iI. GT moan_amm . Ill:WI. IhlahoId 5Idv)TlIr.:oo
BECI N
'"
W (toUo' _diopL"'''''''''''[piu(Q.ij. pi"'! I.ill 1. T lOIdi""_thn:ohold .... v2 .. m<&n_"". diop)
AND (tot>J _displx.",enltp;.",O.i). pi .. , I.ill GT ""'an_to'-d;",
toIdiOp. W<shold' "dvl) Tin:;\" 8ECI1"
II' (i MOD 1(0) EQ 0 TlIE"'- PRIIIo,., OIdv, - om. SIOI>Ilard d""oUoo'
II' (i MOD 1(0) EQ UTILEI' PRI1<o'T. ruM!, , _ d"P..., .......... oM .... <Iev,Ilioo'
' ''''''_art$!<"_ "iJ - 1P""'I)1" .. "(i)
.k""" uW< 'OC' .. ,II conWl> IndfUI of KOOd 'O<''''''"''H''''
[ I'DI "
t:sDl r
[ :" OFOR
' . "'_"'pon_,.I'.b". percen' complete/fini."
.M<! percatl """",1= " ,Jgc1
.Ih<..."y,. ........ JIIo "",<, ",11 ho", """"y ""'. due 10 _'1Ij
.proc .. abo,-.. '" !IIesc .... mno>I .. folk ....... ,
j<>Od.J>i. -- WJlEII(l::otp_",,&I<_ ,..." GT 0, COUn'_jOO,tpixj
,w ..... y'JIOO<l ,",' """ ....... ,n<l", .. from '\;<q> angk: ,-,' ""hr<h
,<oo";n ".1..1 ..
k<q> __ """" __ ",:,_ """" -- ..... ", COWlt J<IOd JliI )
,erato: """,' >mI)' "fcO<TC<' we to hous< ,,..jotQ ofJ<>Od onJk's
k<q>_anp_ ,",,_short . k<q>_",,""_ '''''t(aoo<tpix)
,"'" ,,..jo< .. <10.'<1 ,n 'p>od -'po.' to po>pUl >10 'l<q> """< ,OCI """"
156
;with indices of good vectors
;the array ' keepangl evect s hor t ' now contains only indices of good
; angles/vectors from the original array called ' arctanarray'
good_arctan_array = fltarr(glacier_image_columns,glacier_image_rows)
;create new array the size of the glacier image which will contain good ; vectors
good_x_displacement = fltarr(glacier_image_columns,glacier_image_rows)
;create array to hold good x and y displacement values
good_y_displacement = fltarr(glacier_image_columns,glacier_image_rows)
good_arctan_array[*,*] = WAUIES.FNAN
;populate new arrays ;with Nans (instead of zeros) so VELOVECT will not calculate
good_x_displacement[*,*] = ! VALUES.
;vectors with zero displacement at every pixel without a valid vector.
good_y_displacement[*,*] = ! VALUES. F_NAN
good_indices = array_indices(arctan_array, keep_angle_vect_short)
; goodi ndi ces will contain list of indices in arctan _array with good vectors
how_big = size(good_indices)
x_good_indices = how_big[ ]
;get number of good indices contained in ;good_indices, this represents number
y_good_indices = how_big[2]
;of good vectors to transfer into goodar ct anar r ay
FOR i=0L, y_good_indices-1 DO BEGIN
x = good_indices[0,i]
y = good_indices[ ,i]
good_arctan_array[x,y] = arctan_array[x,y]
;use indices stored ;in
,
keep_angle_vect_short' to place good vectors
;new array in correct x,y locations
good_x_displacement[x,y] = x_displacement[x,y]
good_y_displacement[x,y] = y_displacement[x,y]
ENDFOR
U = fltarr(glacier_image_columns,glacier_image_rows)
;create arrays ;to hold x and y displacements to be used to plot arrows
,Ib ,00 ..... "f p><><l '.''''H,
;,.,. ...... y 'k<q) ""Ilk .. el. ohon',.,,,, ...... ' .. ""Iy ,ooOces of p><><l
from ,.,. ""JIM! ...... y callal ' ''''tan om)'
p>d _ .... on _ ...... y - n'.rr(;1aoicr )",ai< _ _ im.llJl' _ "",.-,)
"'<ale 11<'0' ...... y ,.,. iUC "r,he lI<'cr """go> "hoch ",II "on' .. o p><><l,,,,,,'''''
p>d _x _ disp Ia=ncn, - n' Ii"""i ... _ ilDaJ<' _ ool.mns.lllocia _ ilDaJ<' _ "''''' J
.<mI'e amy 10 bolol p><><l. IItId Y d.."lournen' I>h ...
p>d_""...,_ ...... y( . , ' ) - tV ALUES,Fj"AN
new arraY' -.:.,..[,,..,<><1 "f'<rool "" H LOV<CT ",II no! c.It.I...,
fIO'ld_, _displloC<nlc,nl , ' J- tV ALUESF_NAN
.''''''''' "tlb '''''' .d",I'Io<m>on, ., "'''')' pox.1 ",!hoot. ,-.I,d ,1<>1",
good jOOicos - ...... ) -'ad it<o.( "" ... _ array, keep _""ii' _ vt _ ohon)
; fIO'ld ,nd"",." ,II con'OIn I", of ,00,,;<1 In .. ,""" ...... y ""h fIO'ld '''''''''
how_big - .1ZfIO'ld _indi<esJ
xJo",Undiocs - how_billl ' J
'JCI nwnhc!- of good ,nd""", OOIIl.:o.Inod 'n.flO'ld ,OO,ceo. 'h., n.m1hcr
1Jo"'I)""io .. - how_billl l J
,or.,oo ,,,,ton '" Ir2ftOf ... tnlO p><><l .,.,tan ..... y
good_ate"" _ omty(x,yJ .,.,1>n_array(x,yJ
, .... ,,..],<es"""'" "o"eep """" ,, ohon" o pia: good ' ........
;new amy ,n """"'" y Ioc.""""
p>d_. _displ""crn",ul' ,yJ - . _displ"".......,'( y)
fIO'ld..y _ disploc"",en'(. ,y I y _ disp'"""",en' !' ,r J
[ ,sOFOR
U - n, liilocicr j'''''II" _ oolWll1tf4locier _image _ """"J
,=alo """YO ;10 Ioold IItId r d,-II"""""""''' 10 he """" to plol ..,..,...,'
157
V = fltarr(glacier_image_columns,glacier_image_rows)
good_total_displacement = fltarr(glacier_image_columns,glacier_image_rows)
good_corr_str_array = fltarr(glacier_image_columns,glacier_image_rows)
FOR i=0L, glacier_image_columns-l DO BEGIN
FORj =0L, glacier_image_rows-l DO BEGIN
IF good_arctan_array[i,j] NE 'NaN' THEN BEGIN
;if the indice holds a legitimate value and not NaN, proceed
U[i,j] = good_x_displacement[i,j]
;transfer x displacements into array TJ'
V[ij] = good_y_displacement[i,j]
;transfer y displacements into array ' V
good_total_displacement[i,j] = sqrt(U[i,j]
A
+ V[i, j]
A
)
;transfer total displacement into separate array
ENDIF
ENDFOR
ENDFOR
FOR 1 = , glacier_image_columns-l DO BEGIN
;for loops to transfer corr. str. and parameters into new arrays
;at locations of good vectors
FORj =0L, glacier_image_rows-l DO BEGIN
IF ABS(good_total_displacement[i,j]) GT 0.0 THEN BEGIN
good_corr_str_array[i,j] = corr_str_array[i,j]
ENDIF
ENDFOR
ENDFOR
rotated_U = reverse(U,2) ;rotate so tiffs will display properly when ;viewed in ENVI
r ot at edV = reverse(V,2)
U = congrid(U, glacier_image_columns*scale, glacier_image_rows* scale)
V = congrid(V, glacier_image_columns* scale, glacier_image_rows*scale)
v .. lIIarl'(JlKier . ..... coh ....... ' ....... ....... ....... ,
JO>Od_ ..... .. .... rrUJaci<t. u.... col........p.;.,. . ...... ....... )
...... _-._ ... _ ..... ...... _ .... ....... _ ....... l
. pci<r. ima&<_ "",' ... 1 DO I tCIS
1f ..... lOr. 'l<; ... :CI."
If .... 1Rl".., hoIdo . l<a>lll>II!c ,01"" oN .... ,.,. po"""'>!
U(IJJ " ......
.lrMlf .. , d, ... lo<nenu ,,,.., amy 'Iv"
V(ijJ ..
.. ylhoplo __ any'\"
....... ...... .... u.-_li,iI - ... n(U[iJt'l . V\iJrl )
,.,.. .......... " rI .. eli..". """ __ amy
L"DfOR
L"DfOR
FOR ,0111 00 :CI:-'
,10< toopo ......... fer.....,. .... on;l ....... .en """ _ ..... )'1
, .. __ ..
fOil j .. 11 .1I .. icrJ",aSC. "","5- 1 DO 8.:(; l i'I
If AIIS(II'>ocUoUl. diopl .. emm'I'J)) GT 0,0 Or.C::: I;Ii
...... o.....,.o ... _orTlIy[iJJ .. lIT .Itr . ..... )'[ij]
r..sml'
t:.:'ilWOR

_ u .. ,"ono(U.! ) .-.. brio .. ,II ,"' "') .. !lao " .... cd '" ',-'01
_ rV . ...... ny.l )
u" _1rid(U, ........ ima&t. cohm\DI ....... ...., .... _"-_ ....... onIt)
V .. .... rloI(V. pier. ima&t. coIumDo' .rn., &Ioricr. inIafo. - .. ..... ,
'"
158
good_corr_str_array = congrid(good_corr_str_array, glacier_image_columns*scale,
glacier_image_rows* scale)
!order=0
;set display coordinate system to match convention used in
;ENVI, image is drawn from top down
window, 2 ,xsize=glacier_image_columns*scale, ysize=glacier_image_rows*scale,
retain = I ;open display window of ;correct size to hold image of glacier
loadct,0
;black and white color table , uncomment this command
;when using grayscale pea image as backdrop for arrows
5 >t
he following commands can be used to display the grayscale pea bandl ;jpeg2000 image:
enlarged_glacier_image = congrid(glacier_image, glacier_image_columns*scale,
glacier_image_rows*scale, )
;change size of jpeg2000
tvscl, enlarged_glacier_image ;display jpeg2000
device, decomposed = 0
; foreground (plotting) color value is interpreted as an index value of a color table
print, 'PLOTTING VECTORS'
;*****the following commands are a stripped-down version of VELOVECT***
s = size(u)
t = size(v)
missing = 1000.0
mag = sqrt (u
A
+v
A
)
nbad = 0 ;# of missing points
x = flndgen(s(l))
y = findgen(s( ))
good = where(mag It missing)
ugood - u(good)
vgood = v(good)
JOO<l oorr _<It _ .... y - ..... k ,jd(good_ torT _." _ amy. MIlICi ... )malle _ oolurn",,' scal .
sloe;or _image _""",' 11<&1<)
,-
;XI d,,,,loy <oon!in;W: ')'II<m to mal<h ron, m1ioo ullOd ,n
",toV!. ,nuB'" ......... " f""" top <10 .. n
"i ........ l ... ... _ im>&e_""Iumn$' ocal .. .
main - L ;open d,..,I.y ", ......... or $i,. '" Mid '""'S< of &I""'"
....
,bloc ..-.J "h". <010<....... . ...-"",..., ,hI, """"""'"
." hrn "'''I ",,)'X_Ie pc> ' ....... bo<:kdrop for "'""""
'"
...................................................... .1
h< fol1o .. onw com...ooo om> "" ""'" to d,,,,loy.he ..... pc> _I
tnlar-sl Jio<icr Jmas< - ... nvid(gI""ier )""8<. sloe; .. _ imase _ <olurnru' ",.Ie,
ila<i ... _'m&&< _ rows' scole. 1)
'" .... 11< sO or Jp<'J1000
enlargodJloc; .. j ..... . d''I'lo)' )p0s2000

d.-'itt. dccomp<><! - 0
fOn: ..... nd (pl"'''ns) color "IL>< " .... ,00", .. III< .. r. coIor..tole
'l'LOTTING VECTORS'
," .... "'" f<>lkw. '"II com...-. ""'. S1nPl""'l.Jo"," , . ........, ofVELOV 1;(,. ...
' - ' !u1:u)

miss,,,, - 1000.0
x - I ))
y
ugood - u(1P""i)
,-p>d - v(1P""i)
xO = min(x) ;get scaling
xl = max(x)
yO = min(y)
yl = max(y)
x_step=float(xl-xO)/float(s( ))
; Convert to float. Integer math
y_step=float(yl-yO)/float(s( ))
; could result in divide by 0
maxmag=max([max(abs(ugood/x_step)),max(abs(vgood/y_step))])
sina = arrowlength * (ugood/maxmag)
cosa = arrowlength * (vgood/maxmag)
;len of arrow head
;Angle of arrowhead
;sin 22.5 degs * length of head
large_num_pts = n_elements(good)
loadct, 13 ;rainbow
\p. thick = i
r =. 45
angle = * !dtor
st = r * sin (angle)
ct = r * cos(angle)
if dat aori gi n EQ 'i' then begin
; commands to color code vectors from IMCORR process....
for i=0L, large_num_pts-1 do begin
if good_corr_str_array[good[i]] LE 2.0 then begin
\p.color=25 ;purple
xO = x(good(i) mod s(l))
dx = sina(i)
xl =x0 + dx
y0 = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[x0,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,yl,yl-(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
.0- _0(0) tKo/,.
01 - .. >(.)
yO . MIoI(y)
yl u (y)
_ ..... IIeMI.l-.0yr.o( 0( 1))
, ( -_"" 10 n.. InlcF "'"'"
y _ oaop-lINI(yl-)OyllMl(o(
. ....... mool, on do,.:It b) II
mumar ... ([_ .. .. .... (oboI. VJI>OdIy_"""')J)
.... . ........ 'I<nJih . (up>4lmumq)
.... - _Imjph (vllQOd/maxmq)
r . '
anjI. ll.< !dtor
.. - r ' .,.( ...... )
.. . r ' <'Oo/.onp)
-., 1.1 ; t 'w
Ip.I_-'
,1m of"""" head
of....."., bead
;SO" l! , oklo 1m .... of ......
If ..... GriP r.Q 'i' _l>ftIo
. " 10""" <:<:de '0CI0n f""" I\tCORR .......
f.r i -tfl ...... . um.JU- 1 do b<tIo
If JO<><I. -,". IIJ. ornYlaood(iJI l l.O . ... .... ,.
!p.co/",..l< ,purpk
.O- x(p>d(i) _ 0( 1
oS< ' ''lII(i)
xl _ .O d>:
)'11 - )(pId(i)1 0( 1))
dy . coa(i)
r1 ,o <ly
"'"'.- ,..,_ ...
pIoo.J oil.>: 1 J< Hot S
.1 .. J.(ct <hIxd .... S
[)'O.yI,yI..j<t dylj<l ... ".M) )'d.. S
yl.yl-(OI dyIyd ... 4l!xd) )<I). S

color=color, /device
endif else if good_corr_str_array[good[i]] LE 4.0 then begin
lp.color=50 ;blue
xO = x(good(i) mod s(l))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[x0,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[y0,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] LE 6.0 then begin
!p.co/or=100 ;aqua
xO = x(good(i) mod s(l))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[x0,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[y0,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] LE 8.0 then begin
!p.co/or=150 ;green
xO = x(good(i) mod s( 1))
dx = sina(i)
xl =xO + dx
yO = y(good(i )/ s(l ))
1 ...... " "0 _

do - rino(i)
xl - xO+dx
to - )(p>od(i) I 0( 1))
dy - oooa(i)
yl - )O+ dy
.d .. _ .....
)'d-y_Jlq>
plob.[. o,.. l,x!.( <1' <h/xd.Jl dyl)'d) xd. $
x I ,xl.(cI dm;d ... dyryd).d). $
[)O.yl.yl -(<1dyl)d .... .w. d) )'I. s
yl.yl.(CI dylyd-II <h/xd) )Id). s
<0100 .loti\l<."",
!p.' 10<1 _
.0 - o(p>d(iJ _ 0( I ))
" - rino(i)
)0 - )(J<>OiI(i) I o( l ll
dy - oooa(i)
yl - )O.dy
.d .. _IIq>
)<I-y_"q>
ploto.!. o,..l ,x 1-(<1' <Wl<d-O!' dyl)'d)' ''''' S
,xl.("' dxhd ... S
{)O.yl.yl-(C! dyI)Id ... <h/xd) )d, $
yl.yl.(",' dyfy<Hl <Wxd) yd). S
<0* ''*>oJ<k>i<x

.0' o(p>d(i) _ 0( I ))
<b: - rino(i)
d-.O "
)0 - )(J<>OiI(i) I 0( 1))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] LE 10.0 then begin
lp.color=2()0 ;yellow
xO = x(good(i) mod s(l))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,xl,xl-(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] GT 10.0 then begin
!p.co/or=250 ;red
xO = x(good(i) mod s(l))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots, [xO,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
dy - <OII(i)
1
1
- ,0
04
1
,,1,,",_0Iq>
---
pIob,jxO .. S
.1 .. l-{ .. .w.d .... d)1yd)".dJ.S
5
11 .11-("" d)1yd-" ' 4xIld)' )':I J. S
""Iao-coIorJ&vi<c
.. dirt ... It i<'Od. OOtr. At . ...... J1fOOd[ill l : 10,n ......... 1.
ip"""' ..... IOO .)'0110 ..
O- .(toOd(i) _ 0( 1))
<Ix _ lli,.i)
xl - .O * <
,0 - 1<Jood(i) I 0(1)
dy - <OII(i)
11 - ,0 * 41
...
)Ow)r. "<P
pIob,j.O.d .. I -(Cl<kJxd..a' dyf)d)*.uL $
.1.<I-("' oW>;d .. dyf)'d) .d). S
(yO,y1 ,yl-(""dyIyd"' dltIH)' yd, S
yl.yl-{,, dyf)d' Wxd))odJ, $

1" ........... ;'1\) .t<oI
. 0 - . (p>d(i) _ I( I)
do - oino(il
.1 - .0 .....
)'0 - )'(toOd(i) I 0( III
dy - <OII(i)
yl - }4Iody
.d ... , OIq>
",,,,, 1Up
pIob,j.O"I .. 11"' .w.d ... djiyd) .4, S
d .. I.("' oWxd"' dyf)<l)".dj. S
[)O.y1.yl-(<l dyl)'ll ... .w.d) )'Il $
yl,yl-(C'O' dyl)'ll-.. ' d",.d)' ,.t). S
coIor-<:oIo<Jdevicc
'"
162
endif
endfor
endif else if data origin EQ 'c' then begin
;commands to color code vectors from COSI-Corr process
for i=()l., large_num_pts-1 do begin
if good_corr_str_array[good[i]] LE 0.80 then begin
\p.color=25 ;purple
xO = x(good(i) mod s(l))
dx = sina(i)
xl =x0 + dx
y0 = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[x0,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[y0,y 1 ,yl -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color, /device
endif else if good_corr_str_array[good[i]] LE 0.90 then begin
!p.co/or=50 ;blue
xO = x(good(i) mod s(l))
dx = sina(i)
xl =x0 + dx
y0 = y(good(i )/ s(l ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[x0,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[y0,y 1 ,yl -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
-...
.. d., ..... If <laul_orip! EQ 'c' 1IIon-"';'
"" _ I<><OIar<Odo , ....... &.-COSI.("_,.,.z.
.p"'1>l
0 I (p>d(i) ...... 0( I))
<Ix . oW(il
01 -.0 ""
)'0 . ),(JO<>i) ' 0( 1))
dy - >P(i)
11 - )<1<1)'
- -""
)'11.,.- ",""
pIoto,(.O'd .. I-{ .. <Wxd .... dyr,d)".t4. S
.1 ... S
[}O.yl,yl-(<I' dyIyd"' dl!1d)")'<1 S
yL,yl-(<I ' dyf)d-sl' <Wxd)' ydJ, S

!p . ...".",...<O .bl ...
0 - .(JOOCI(i) ...... s( I
d:< aiDll(i)
.1 -.0'"
)0 . )(tood(i) I 0( 1
dy . <OIII(il
11 - "o ' dy
''''''-ooqI
)'II.,._1ICp
pIot",.o.. I", J.(ct <Wxd .... dylyd)' .<4. S
d .. 5
[)O.yl,yJ.(CI"dyIyd .. " <!loh;d)' )'4. S
yl,yl-("' dyl)d-"' <Wxd)' ydJ, 5
cob"""""""
'"
endif else if good_corr_str_array[good[i]] LE 0.92 then begin
!p.co/or=I00 ;aqua
xO = x(good(i) mod s(l))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] LE 0.94 then begin
!p.co/or=150 ;green
xO = x(good(i) mod s(l))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,xl,xl-(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] LE 0.98 then begin
!p.co/or=200 ;yellow
xO = x(good(i) mod s( ))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
dlf ..... If ...... _ ..... _ .... LE ......
" !1In.-
.0 - >(.,.,..,) _ 0( 1))
<III - aao(i)
.1 - . 0 d>;
)0 - )(1JOOd(i) 1 0( 1))
dy - >0004')
yl - )O - dy
.r.. . .....
)"1->'. "'01'
plo ... [. O .. l .. l-{ct dxIlcd .. dylyd) .d, $
.1 .. 1-{C'I' oW'.d'''' dyl)'d)' ,dl. S
()Q.yl.yl.( .... dylyd ... dxIlcd) )d, S
Y l.y I of <1' d)'fyd ... dxIlcd)' )'d I. S
ooIor-<oIor J,,",itt
.. dl' ........ ...... corr ......... ){JQOCII,1l LE D. ... , .........
I .......... ' '10 'lJ='
. 0 . s(p>d(i) _ oi l })
... - 0UIII(i)
. 1- . 0+d:<
)'0 - rtJ<>od(il / oi l ))
dr ........ ')
y1 - )O-dy
06 ... .. .,.
)'<I'y.llop
plob. [.o,..l " '-(<l' .w.d-Sl' dyl)"l)" d, S
,I .. HC1 ' .w,d""dyf)'ll)' ,dj. S
()<I.yl.yJ.{ dyl'yd ... dxIlcd) }II, $
yl.yl -(<1 dylyd ... dxIlcd) )'II[. S
<Olot-<:oIo<Jdmcc
.. dUn.. w ............. _ IIr . ..... Jlp>OdfiJJ L[ II. .......... 10
!p"',',
. 0- x(p:od(i) _ 0( 1))
l1li ' 1Iino(i)
d - . Od>;
)Q - )(......--i) I 0( 1 I)
dy - OOA(i)
yl - )'II' dy
'"
164
if iterate EQ y then begin
xd=x_step
yd=y_step
plots,[xO,xl,xl-(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] GT 0.98 then begin
!p.co/w=250 ;red
xO = x(good(i) mod s( 1))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif
endfor
endif
iterate_base=widget_auto_base(title='Iterate the process again?",/xbig)
list=['yesVno']
sb = widget_base(iterate_base, /row)
wt = widget_toggle(sb, uvalue-toggle' , list=list, /auto,xsize=35)
save_result = auto_wid_mng(iterate_base)
if save_result.fogg7e EQ 0 then iterate = y
if s2LVQ_rQsn\ttoggle EQ I then iterate = 'n'
;save_result.toggle[0] = 0 ....yes
;save_result.toggle[0] = 1 ....no
.. dlf
fldf ..
pIoU,(xO"I .. Hct dVxd ... d,.ryd)..t, $
d .. l-(ct d>J1<t>tI d,.ryd)".>d). $
()O.yl.yl-(ct <)'d ... dVxd) yoS, S
yl,yl-(ct d,.ryd .. dVxd) )'d). s
CIJb ,>Icw/ _
tp....,.....B4I .rOO
. 0 ' . (p>d(i) mod 1( 1))
d.< lino(i)
xl . O d.<
)'11 )'(J<I<'d(i) I 0( 1 ))
II>' ' '''''';i)
yl')(I'dy

---
pIoU,(.o.. I .. l-(ct 4xh;d ... ' dyIyd) ..t, s
.1 ... Hct dVxd ... dyf)'d) .>d). s
()O.yl.yl-(ct dyfyd .. dVxd)"yd, s
yl,yl-(ct dyf)'fl. .. dVxd)")'d). s
...... ,Dloo';.se...,.
i' ...... _ .. lcIl.C "'0_ baou, ..... l .......... "' ........... Abi&)
h .. -{'yco' ..... '
ob ......... _.o.o(i""""'_ .... _)
" . . .. 1cIl'H '-"<01>. ...... 'IoiIk'. li01-liM, l..w.J.oize- t<)
a"., ....... .,o_" id __ d i _ __ )
If a" ...... EQ 0 III .. ia<nu .. Y
lf a _, "_'ak EQ l lktr ia<nu ' ,,'
M'. 41 ... l"'"
"'t Po -.It(O 1 __ __
165
arctan_array=good_arctan_array
total_displacement=good_total_displacement
x_displacement=good_x_displacement
y_displacement=good_y_displacement
adjust_base=widget_auto_base(title='Adjust thresholds?',/xbig)
list=['yes','no']
sb = widget_base(adjust_base, /row)
wt = widget_toggle(sb, uvalue-toggle' , list=list, /auto,xsize=35)
adjust_result = auto_wid_mng(adjust_base)
if ad}xist_resu\Ltoggle EQ 0 then adjustment = 'y'
if adjust_result.fogg7e EQ 1 then adjustment = 'n'
;adjust_result.toggle[0] = 0 ....yes
;adjustjresult.toggle[0] = 1 ....no
if adjustment EQ 'y' then begin
thresholds=widget_auto_base(title='Edit thresholds for neighborhood analysis',/xbig)
list=['arctangent threshold','total displacement threshold'/arctangent limit']
vals=[arctan_threshold,totdisp_threshold,stdv_limit]
output=widget_edit(thresholds,uvalue='thresholds',/auto,prompt='Enter new
values',dt=4,field=2,list=list,vals=vals)
thresholds_result=auto_wid_mng(thresholds)
arctan_threshold = thresho\ds_resu\t.thresholds[ ]
totdisp_threshold = thrQsho\ds_rQSu\Lthresholds[ ]
stdv_limit = thresho\ds_TQSu\t.thresholds[ ]
print,'Current arctangent threshold is: ',arctan_threshold
print,'Current total displacement threshold is: ',totdisp_threshold
print,'Current arctangent limit is: ',stdv_limit
print,'New arctangent threshold is: ',arctan_threshold
print,'New total displacement threshold is: ',totdisp_threshold
print,'New arctangent limit is: ',stdv_limit
endif
endif
endwhile
annotate, window=2
print, 'FINISHED PLOTTING VECTORS
om." _ lmI-rJOCMl _ .......... _amy
tot.al. _ tot&I. dioplac<:rnenl
_ displ..,emtn'- OO<l. ' _ di.., iaoemen,

ad)"" _base-.. klt<C '.'0_ boot(.i 11.-" MJ'" Ilu'nhoIdJ" I . bi&)
li .. -!')ft' ...... '
... . .. _b.so(odj"SI-"as irow)
WI - " 'idt<Uoult(ob. ", .. I..-'loulo', iiSl- liSl. la.,o.xsi,e-.")
odj ... _ ...... k .. 00'0 . .. kI. m.lI(adjOlSl),w<j
If adj.sU .... 1uOUle EQ 0 ,_ adj...",.", .. Y
If adju<uuuluaggle [Q I I adj"""", - ""
;adJ." 11._ Y"
:""Jus.! I .no
Ir adj.s""",,, [Q Y l b btt:l.
IhresI>oJdo ... '!dl<C "'0. b*'<ili,le-1idlt lhrtsholdo anaI)'S',' ,lxbiB)
li .. -('1rC\aIli"'" tInshold' .'Iotal dllplooa"""l lhrallold'._aent hm,,1
. olP(""""'. lhrcobold.lOldisp. lhrcoboklstd" . limill
""1"',.,.,'1<1 . .. _ 11.( /lulo.;>"""P'- 'En'.,. ..,..
......... d' ..... n.ld- l .li .... li ... , .. I.-vaI.)
Ilu'nholds _"""It 10_ .. 'Id . 1II01t( Ihrnh<>tds)
II1< .... U"'ahold - _ld,. resuluh",,/Joids(0J
totdi .... Ilu'nhokl - lhrtshokb _ rem 1,_,h,..,!Joidr[ I]
.IdY. limil - lhreshokl.J .. uluh,..,. ....... Jsj l ]
pri." .. ......... ..
prl.','CIImnl arcanl""l lllresholcl if: ' ,an:lM_llnsl>old
pri., .'Cumm l<IU! di'l' .... ...,..,. _1<1 i<: '.lOldi'l'_lhreshold
pri.';C""""] arcan""" 1"""'0: ',tid. _Iimil
pri.,; ..
pri.,.'N ... on:tanpt IS: ' rcwuhreabold
'New IOI.t dl'l']"" ........ Ihreabold il: .lQIdiop _lhreshold
p".'.'New ""'tanp1 Itm" '" ,tIdv Jimil
.. .. .. .. .. ...... ........ ..........
dlr
tadi'
pri." 'FINISHED PLOTTING VECTORS'
'"
166
. j ^ * * * * * * * * * * * ^ ^ ^ sorting vectors, now save display******
picture_base=widget_auto_base(title='Save this display?',/xbig)
list=['yesVno']
sb = widget_base(picture_base, /row)
wt = widget_toggle(sb, uvalue='toggle', list=list, /auto,xsize= )
picture_result = auto_wid_mng(picture_base)
if picturej-esult.togg7e EQ 0 then picture = y
if picture_result.togg-/e EQ 1 then picture = 'n'
;picture_result.toggle[0] = 0 ....yes
;picture_result.toggle[0] = 1 ....no
IF picture EQ 'y' THEN BEGIN
display = tvrd(true= )
rotated_display=reverse(display,3)
;rotate display so tiff image will orient correctly when opened in ENVI
;rotation is about y axis, which is signified by 3 in this instance
;while color band is 1, x axis is 2.
accuracy_directory=widget_auto_base(title-Select ACCURACY folder for output
files',/xbig)
output=widget_outf(accuracy_directory,uvalue='output_directory',/auto,/directory,promp
t -Choose folder to hold systematic error and residual error images',xsize=50)
directory_result=auto_wid_mng(accuracy_directory)
write_tiff, directory_rQsu\t.output_directory + '\systematic_error_vectors.tif,
rotated_display, orientation^ , /float
endif
print, 'FINISHED WRITING TO FILES'
;*****calculate systematic error, write to georef_stats file *****=
rotated_total_displacement=r everse(good_total_displacement, 2)
mean_systematic_error=mean(rotated_total_displacement,/nan)
mean_velocity=mean_systematic_error*resolution/years
stdev_systematic_error=stddev(rotated_total_displacement,/nan)
stdev_velocity=stdev_systematic_error*reso!ution/years
mean_x_systematic_error=mean(rotated_u,/nan)
Ion Mldttl_ .. l0_b .. ojti' .... S.,. "", dilfllay?' ; .big)

ob - b.'pi<""",_bale, ho ... )
... - " ' IdK'UouJ<{ob, Ii _ Ii .. , 1""1"",.i, .. , ")
- '.' 0_ MId_ .... ru.kt""'_ bale)
If pi"""'_t'eSII ll.'ou/e [Q 0 " .. pi,,_ - Y
If pi""",_r=lII,toggle I:Q 1 I . .. P"""'" - .. '
.pecl....., ....... "_lOIIIlo{OI 0 .JU
'1'""_ ....... 1' IO\W<iOl I no
If pk.,,", [ Q Y THEN B.:GI ....
display " ..-rd("" .. , )
,0 .. ui_displ' Y-U" ' ndisplay . ' )
.""". d'SpI.y SO "rr '"'"II" ,II on",,1 0001",1) "i>:n oprncd In \ 1
JOIal!Oll to _)' "-'''. "h,eh II "'i",ft<tl by 3 In
."h,,,, ",lor t..nd " I. , ",. "
""",,-y _ dit<CK>ry-M idJ<'_'. 1._ b.ot( litle-'Stll ACCUIlJo,CY folder for ouq>ut
fil .. '/ltbig)
OIIlput-"Id."_O.,/l",,,,"""y_dircctory vu . .. '''''lpUl_diR01o<y'JautoJdiroctory.promp
1-0- folokr to hold .)'SltmalI< ...... 0IId l'OS>du.ol ...... """ges' ... i . ..
dit'<Clory ,,'Id .... ((""".,...,y dit'<Clory)
- - - -

,,n to_, m. dit<Ctory_ ..... II'OOUp"'_Ji"""ot)' .. 'I&)'SltmalI< _ ...... "o<toB.tir,
routed_ disploy. ori ....... ionOO. moat

.. dlf
pn. ,. 'Fl:-:ISHED WRITING TO FILES'
," ''' .. ",.Iak 'Icm.ol'" cmt<, "nl. to i<'>"'f ...... fi", ........
mean _. yolcm.otk _ em:>t"- .... "'( route. UotoJ _ disp '"".."""tJlWI)
m.an _ vok><:ity-mcan _. )'SO ...... ;., _ cmtr" ',""
otdev_,yotomatk_w'''' . ' ldd,, (rouIOd_1OtJJ_displ.a=nrntJlWIl
otdev ".k><:i1)"'ot" ..... yotnnat'" ."",.. ,..,.1.,10. " .. "
- - -
mun _, _ .yot ...... k _ ..,..,...m .. n(rot'led_ uJlWI)
167
mean_y_systematic_error=mean(rotated_v,/nan)*(- )
;rotate to account for difference of coordinate systems
openu, 99, directoryj:es\x\t.output_directory + '\georef_stats.txt',/append
>
printf, 99, 'Systematic error analysis:'
printf, 99, 'Mean total displacement (systematic error) (pixels) = ',mean_systematic_error
printf, 99, 'Mean total displacement (systemtatic error) (meters/year) = ',mean_velocity
printf, 99, 'Standard Deviation of total displacement (systematic error) (pixels) =
', stdev_systematic_error
printf, 99, 'Standard Deviation of total displacement (systematic error) (meters/year) =
',stdev_velocity
printf, 99, 'Systematic error in x direction (pixels) = ',mean_x_systematic_error
printf, 99, 'Systematic error in y direction (pixels) = ',mean_y_systematic_error
close, 99
write_tiff, directory_resxx\t.output_directory + '\systematic_error_data.tif,
rotated_total_displacement, orientation= ,/float
>
print, 'FINISHED WRITING TO ERROR FILE'
fiTH.sh.cd c3.1cu.letting s^y stcmcttic enror"^
. * * * * * * *
r e m o v e
systematic error, plot residual error
v e c
t
o r s
* * * * * * * *
u = rotated_u - mean_x_systematic_error
;remove systematic error in x direction
v = rotated_v - (mean_y_systematic_error*(- ))
;remove systematic error in y direction
u = reverse(u,2)
v = reverse(v,2)
rotated_total_displacement = sqrt(u
A
2 + v
A
2)
!order=
;set display coordinate system to match convention used in
;ENVI, image is drawn from top down
window, 1 ,xsize=glacier_image_columns*scale, ysize=glacier_image_rows*scale,
retain =
;open display window of correct size to hold image of glacier
mean'y _. yslenwi< _ .."".._ ( fOWcd_ v.lnall) (. I )
,""",c "' """""nllOr d,lfcrcnco of "oorom",< syoocm<
'"

0pHIU, 9\1, diI'tClOlJlJesull_'"",ji.wt<>ry '

prl f. 9'1, 'SIrnud1< em>< anal,....:'
pri.,f, "", 'Mean IOIal d .... 1a<emenI (')'S\CnU1ot om>r) (p ... ,.) '.m.",_.ys,ematk_"",,,
prl.,r. 'l'I, 'M .... ..,.... diop...",O .... d (.)'SICIII ..... cnOf) (m<nI)U&') - ',m=_ velocity
poi.,f, 9'1, 'S ......... o.,'w- o,toto! dllplar:m=I (')'lIeIDa1I< ....,.) (pixels) .
',sukv _')'SI<mlIic _om><
pri.,r. <)01, 'S1mdard ne. ... .,., gftotal dupl""...,.." (oystcmllH: em><l [ __ 'ytor) -
',SIdeY _ "elocity
poi_If, 1>'1, 'SysI<llWi< em>< m din:"1>oOl (pIXelo) a ' ,JJ\UII_' _' )'S1<n'1atio_tn'Ot
pri.,r. 9'1. 'S)'IIOII1.IIJ< entII" ill Y dJlOCUoII (p",eb) .m<aIIJ_,) ......... ic_<rn>r
' ...... 99

,.-<1,._ ,nr. dim:tory _ ruul,,,,,,pu'_ d;"",,"'Y ")"I""""'''' . ""'" _ dala.uf.
routed _ touI_ ori<nt>t;on-.()/fIoa,

pn . 'FINISHED WRITING TO ERROR fILE'
............ (,"uhal <ok. 'O"ng ')'SI""'O"< <rn>r"" ............... .
.... ... 'mO .. ')_1< cnvt. p"" _dual ......- ''IOf> ........
" - __ " m"""_' _'ysIetnal;"_<m>'
;remo .. ,):M<t'I'I."" ......- ,n
,' - _ _ v. (m'''''J_.ytt,ornatk_<rn>r''(-l I)
:r=>O\o >)111""""1< ......- ,n d'''''''IM
- .. ,'. !'>t(u.l 1
v _ r .. .
1'OtlI""Uoutdi"'Ioc ........ ' - lqrt(u" l + ""'1)
'onl..-o
, ... d"" .. <oonIt ..... 'Y<O"'" to ITW<h "",'",,'1M .sed ,n
.E." VI. ,mal ... ""''''n from top do .. n
"I_d"... ! _'mag<: _ coI\IlIUlS' "'01". yJi.z ... _ int.oge _ <010.
main _ 1
"'1'<'1 d,..,I.y ,,.jo,,' o( >rrt<t .. " !<> IIold ''''''I;< of IP><'''-
168
loadct, 0
;black and white color table , uncomment this command when
;using grayscale pea image as backdrop for arrows
tvscl, enlarged_glacier_image ;displayjpeg2000
device, decomposed = 0
; foreground (plotting) color value is interpreted as an index value of ;a color table
print, 'PLOTTING VECTORS'
;***the following commands are a stripped-down version of VELOVECT****
s = size(u)
t = size(v)
missing = 1000.0
mag - sqrt (u
A
+v
A
)
nbad = ;# of missing points
x = findgen(s(l))
y = findgen(s( ))
good = where(mag It missing)
ugood = u(good)
vgood = v(good)
xO = min(x) ;get scaling
xl = max(x)
yO - min(y)
yl = max(y)
x_step=float(xl-xO)/float(s( I ) )
; Convert to float. Integer math
y_step=float(yl-y0)/float(s( ))
; could result in divide by 0
maxmag=max([max(abs(ugood/x_step)),max(abs(vgood/y_step))])
sina = arrowlength * (ugood/maxmag)
cosa = arrowlength * (vgood/maxmag)
r = .45 ;len of arrow head
angle = 22.5 * !dtor ;Angle of arrowhead
st = r * sin(angle) ;sin 22.5 degs * length of head
ct = r * cos(angle)
Iolodrl , U
.bl><k ar>il "hM colo< .., ... 0II<0IIUtI<Il' 'hI' o:onurund " .....
,U"nl Jp'-soal< PC' image: as Nol<drnp fa ........
.... 1. dooompoood _ n
: colo< ,-.1 .. IS ,"<rpmed .. .., ,0<10. , .. J .. or", colo< 0Ib'"
pri . 'PLOTTISG VECTORS'
- 'iu(uj
, Iu(v)
.bad _ 0
-
y . .. {o( l )
good - .. "'m&jI l' mi..mil
"good - uo(goocI)
vgood - v(good)
. 0 - mlo(.) ;JCI ,.,.hns
.1 -.... .)
yO - mio(y)
yl _ m .. (y)
_ "cp-Ro" I' ). (I)ltknt( 0( I))
: Con,,,,, Lo n....l. 1m .... rrwh
y _ step- """ IY I -yO)lIIoOI( 0(
: "",,101 ,...,1, ,n dll Kk by 0
OWJNl" m (! .... .. (. M(vgoodly_....,))])
.ina - arro,,-Imgth (up>dlnwnllaa)
cooa - a"""1-1"'gt/I 1'"good!"""maA>
, -
anll< !d.","
.. - r ' 01_(""31<)
<1 r roo(ong1e)
..... of arrow ......
;lin&!< or anti" 1>00<1
;>m 22.5 dcp Icnll'h ofhnd

large_num_pts = n_elements(good)
loadct, 13 ;rainbow
Ip.thick = 1
if dat aori gi n EQ V then begin
; commands to color code vectors from IMCORR process....
for i=01 , large_num_pts-1 do begin
if good_corr_str_array[good[i]] LE 2.0 then begin
!p.co/or=25 ;purple
xO = x(good(i) mod s(l))
dx = sina(i)
xl =x0 + dx
yO = y(good(i) / s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots, [x0,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[y0,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color, /device
endif else if good_corr_str_array[good[i]] LE 4.0 then begin
\p.color=50 ;blue
xO = x(good(i) mod s ( l ) )
dx = sina(i)
xl =x0 + dx
y0 = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,xl,xl-(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
-.. ,1 .... _

Ir ",,",_oripn .. botI
............. '" 0010< <ode 'octon rrom I\I("ORR I .........
rO' ;-1" . !ar)jc_nwn...J>U- 1 doiM1;l.
Ir 1P',,,U;,H"T_ .... _ ...... l1p><!li)) 1.1: :.0 ,_ .. botI.
','.'.--' -
.. -..
0 - _ 0( 1))
... - ......:.)
.1 -.0 ...
)'0 - 1 0( 1))
dy - .-(I)
yl )'O ' dy
Ild .... _*"
yd-y-",",
pIat>.j.(UI .. I .... .w.d ... dJ"yd)"1ld. s
.1 .. H<t ...,.d ... S
.... dylyd'"tl d>.Illd) yd. S
yl.yI-{ .... dylyd ... Wlcd) ydl. S
co_Ior. loo;.,
.. dlhto.e If IIOOd ton" II< ..... Ylaood/ill ... : ._ iM1;I.
- --

.0- .(p>o5(i) _ 0( 1))
cb - Ii ..... )
d-.O'"
,0. Nood(il 1 0( 1))
dy - cooa(i)
yl ,o dy

)'II-y_ .....
.. I .. H .. WlcoHl dyIyd) .oS. 5
. 1 .. ,-{ .. dxIxd ... dylyd) .d). $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] LE 6.0 then begin
!p.co/or=100 ;aqua
xO = x(good(i) mod s(l))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[x0,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[y0,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] LE 8.0 then begin
\p.color=\50 ;green
xO = x(good(i) mod s( 1))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots, [x0,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,yl,yl-(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] LE 10.0 then begin
!p.co/or=200 ;yellow
xO = x(good(i) mod s( I))
dx = sina(i)
xl =xO + dx
[)O.ylJHOI dy/)'d ... lW);d)"yd. S
11.yliOl d)'lyd ... $
"""'_A\t<Ii
.. dlr_W ..... ... 1.1: U .........
!p.LUIoo all_ ;aquo
.0 - '(Jood(i) _ 0( 1)
l1li - 1iDo(i)
.1 - . 0 l1li
)0 - )'(fOOd(i) I 0( I))
d1 - _'(
yl - yO.dy
.d-'. IIq>
)'I,),.1!q>
plo .. .,(.O"I .. I-{OI <Il<h:d .. d)'lyd) .d. S
xl .. Ii 0I .ww--. $
[)(\,yl.yHOI dy/)'d ... <Il<h:d) jd. S
yl.y Ii 01 ' d)'i)<l' II ' <WlId)' )'I 1. S
""'" wkwJ<koicc
...ur_w ...... oorr . .... OIn)'fFOdlill LI! '.<1 , ........
... -
xO - .(JOOd(i) _ 0( 1))
<Ix - .. no(i)
.1 - . O<Ix
)0 . )'(fOOd(i) I 0( 1))
dy - <OU(i)
yl - yO ' dy
xd-'. "q>
)'1')'. "41
pI<Ms.(.O"I .. liOl<Il<h:d ... d)'i)<l) .d. S
, I .. Ii 01 . <WlId..,. dyf)'d)' :uI), S
[)O.yl.rHOI d)'f)'I ... <WlId) yd. S
l' J Ii 01' d)d)od.-ll <Il<h:d)' )'I), S
cokl '_'J"",
!p .. "r
. 0 - .(JOOd(i) _ 0( 1))
<Ix - Iina(i)
xl _ xO <Ix
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,xl,xl-(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] GT 10.0 then begin
!p.co/or=250 ;red
xO = x(good(i) mod s(1))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif
endfor
endif else if dat aori gi n EQ V then begin
;commands to color code vectors from COSI-Corr process
for i=01., large_num_pts-1 do begin
if good_corr_str_array[good[i]] LE 0.80 then begin
\p.color=25 ;purple
xO = x(good(i) mod s( 1))
dx = sina(i)
xl =x0 + dx
y0 = y(good(i)/s( ))
.. dlf
M ...
,0. )'( ....... ) 111( 1
01)' . ..... ,)
yl - yO+dy
..... _ ...
)'II.,.. IC<P
I JI. I .. ' dyf)od)'.ul $
.1 .. 1.(0\ _ ... S
!)O.yl.yE -{ .... d)'l)d .... <b.I.W) )d, s
yl,1H<t' dyl)'d-st' dxhd)' ydJ, S
... .......,.,tor/<k>'ice
Ip"""",,":<11 ;Z<'d
. 0 '(JOOd(i) _ 1(1 II
ib. - oino(i)
d 0 "'"
yO - }'(Jood(i) 111( 1 I)
dy - cau(i)
yl - ,o - <I)'
.d->.. A<i'
)<1.,..-.,
pIob,(.o,..: I J< I -(<!' dxJxd ... ' dy/)d)" >cd. S
.1 .. 1-{<I <Wxd ... S
()O.yl.yl-{OI dyl)'ll ... dxhd)yd. S
yl.yl-{<I dylyd .... S
>kr<olor J"'" 'ice
n<llr .... lf dMo. on.m [Q<:: I .... 1HtiII
;<GO .... IO>Ioreo<l<.C<1On from P""''''
""' ;004'1 ....... -..JIII-1 .. t..,p.
'"
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
p!ots,[xO,xl,xl-(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,yl ,yl -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color, /device
endif else if good_corr_str_array[good[i]] LE then begin
\p.color=50 ;blue
xO = x(good(i) mod s(l))
dx = sina(i)
xl =xO + dx
yO = y(good(i) / s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,xl,xl-(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] LE 0M2 then begin
\p.color=\00 ;aqua
xO = x(good(i) mod s(l))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
dy - """':IJ
yl - )'O.dy
'-_""'P
"'"'-'"
pIob.{.o..l .. Hct' ohhd-oo' d)'f)o:l)' .<I. 5
.1",1 S
(,o.y1.yl.( .. dyf)'d .... <Wl<d))d, 5
Y I.yl ..(CI' d)7'yd .. ' 4x/J:d)' )':1 J. S
oolofoo<kw. 1d<Yi<:<
Ip .... ,bl ...
0 _ '(P>i) _ 1(1))
<l< - oinoCi)
d .G ...
)'0- )'(JDOd(i) I 0( I ))
dy - cau(i)
y1 - ,o - <I)'
._-*"
"'"'-'"
...... 0.1.0..1 .. 1 {ct<W1d ... d)O')d) .-d, S
.l .. l..j .. <hfuj .. dyf)'d) .d). 5
()'II,yl,yl {CI dyfyd .... obh;d) )d. S
y1.yl S

!p.roIoo- l (IQ oaq ..
0 - x(aoodIil _ 1( 1)
d oina(i)
.1 IO+dx
)0 - )(Jood(i) / 1( I))
dy - ccu(i)
yl - )'O.dy
.d-1_OIq>
)'11"1 __
pIoI.J.\l,>:l .. HCI dxIXd ... d)'Iyd) .4. s
.1 .. l{ .. d>hd .... d)1')d) .dJ. S
[)'O,yl.y 1.( <t' d)'>')d'" dxhd)' )'Il. S
yl ,y1 (O!' dyryd-A d>.h;d)' )<I), S
'"
color=color,/device
endif else if good_corr_str_array[good[i]] LE 0.94 then begin
\p.color=l50 ;green
xO = x(good(i) mod s(l))
dx = sina(i)
xl =xO + dx
yO = y(good(i) / s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] LE 0.98 then begin
\v).color=2Q() ;yellow
xO = x(good(i) mod s(l))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,xl,xl-(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] GT 0.98 then begin
lp.color=250 ;red
xO = x(good(i) mod s( 1))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
1,..-,',-1" _
.Fod(i) _ 0( 1))
<b - sino(i)
,1- ,0'''''
)41 - )1JOOd(i) I 0( 1))
dy - IA/i)
yl - )4)+4y
. d"". ""'I>
)'11-,. ....,
pIoI .. (.o .. l.xl-{' dxl>d", d)1)od)' . d. S
xl", I -(<1 ' <Ix/xd ... .1)'>')'<I)' .d I. $
()O.yl.yH"' dyf)<h"' <Wlcd)' yd. 5
yL.yl -(Cl' d)'lyd-"' <W>d)' yd1. S
__ J<I<\i
!IM" :ot
.O- l(Fod(i) _ 0( 1))
<b - tiBo(il
01 - .0_ ...
)4) - )1pd(i) I 0( 1))
.1y - ooo.o(i)

.1 ..... ....,
yd-y. step
pIoo' JxO.x 1.xl-{OI dIh.d ... d)'lyd) .d, S
xl .. I -(Cl ' <Wxd_' d)'i)<l )' ,.1 I. $
[)O.yl.yl-{OI' dyfyd.' cb<h.d)' yd.. S
yl,y 1 .. d)'iyd ... <Wlcd)' )'d $
wIoo_.IdM<c
!p.<-.r :raI
. 0 - >Uood(i) _ 0( 1))
... - .u,.(l)
. I_.o<b.
- )'(1'>'>;) I 0( I))
dy - eooa(i)
'"
174
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,yl,yl-(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif
endfor
endif
annotate, window=2
residual_base=widget_auto_base(title='Save this display?',/xbig)
list=['yes
,
,'no']
sb = widget_base(residual_base, /row)
wt = widget_toggle(sb, uvalue-toggle' , list=list, /auto,xsize=35)
residual_result = auto_wid_mng(residual_base)
if residual_result.fogg7e EQ 0 then residual_image = 'y'
if residual_resulUogg7e EQ then residual_image = 'n'
;residual_result.toggle[0] = 0 ....yes
;residual_result.toggle[0] = 1 ....no
IF residual_image EQ y THEN BEGIN
display = tvrd(true= )
rotated_display=reverse(display, )
write_tiff, dirQctory_rQs\x\t.output_directory + '\residual_error_vectors.tif,
rotated_total_displacement, orientation=^ I,/float
5
endif
mean_residual=mean(rotated_total_displacement,/nan)
mean_velocity=mean_residual*resolution/years
stdev_residual=stddev(rotated_total_displacement,/nan)
stdev_velocity=stdev_residual*resolution/years
mean_x_residual=mean (u,/nan)
mean_y_residual=mean(v,/nan)*(- )
tdfo,
dlf
yl _ yO + dy
xd""_SIq>
yd-Y. SI<I>
p ..... [. O .. I.:<).(.' dxI.d..., dylydj.d. $
. 1.xl.{' Wxd"" ' d)'l)d)' ,dj. S
[yO.yl.yl S
yl,yl-{ot' dylyd4l' dxlxdj' yd]. S
color-rolor Jd .. i""
... id.al ,,",. .. b.w(.;,Ic-'Sa,'. tha dupl.f" J>;big)
li,,"'I)'<o', '1101
>II .. . ddl.t. h.uc(""'id ..... baoe. lro .... )
WI _ .. UI'U .... 'Ioglt'. hn- li.., /au1O ..........
.... ;'hw. """I' - "'0. " 'kI. "",t(raidual. bue)
If residual. l'OOUll.loule .:Q 0 . ... resid ..... intai< .. Y
ir UI I t. =dual. ,m"8" - '.'
,-.l .. 1 .-1I."'8II<'IO[ 0 _ )'00
.. 1 """U.logI<{OI I ""
I F EQ y
di""lay " 'n<l("'-I )
'"

.. rlI". , jff. dir<>C1"'}'J .. ul'.O .. lp"Uf;, .... ,ary "'"'dual. ""'"
rotal"U0IaI. di""""ement, ori ...

mcan_fdid .. I- ..... (roIalod_1Ot2I_di ...
mean_ .. _<esidual '....."uU ... ) ."
SIdov _ .... idual .. 'ddt> (T<>laIcd _1OIa1_ di<placcm""l/nan)
.. <kv _ ,'<Io<:i'y-<tdcv _ reoidual' ,,,..J., ton ' .. "
m=I_ ... id..J' '''' (wnan)
",.... J _ .... idual ...... ( .. ' nan )0(. I >
175
;rotate to account for difference of coordinate systems
openu, 99, directory_res\i\Loutput_directory + '\georef_stats.txt',/append
>
printf, 99, 'Residual error analysis:'
printf, 99, 'Mean total displacement (residual error) (pixels) = ',mean_residual
printf, 99, 'Mean total displacement (residual error) (meters/year) = ',mean_velocity
printf, 99, 'Standard Deviation of total displacement (residual error) (pixels) =
',stdev_residual
printf, 99, 'Standard Deviation of total displacement (residual error) (meters/year) =
',stdev_velocity
printf, 99, 'Residual error in x direction (pixels) = ',mean_x_residual
printf, 99, 'Residual error in y direction (pixels) = ',mean_y_residual
close, 99
i
write_tiff, dirQctory_rQSu\t.output_directory + '\residual_error_data.tif,
rotated_total_displacement, orientation ,/float
print, 'FINISHED WRITING TO ERROR FILE'
print, 'PROGRAM FINISHED'
fmished=widget_auto_base(title="Program Complete! !',/xbig)
done=widget_string(finislied,/auto_manage,uvalue='complete',prompt='Successfully
computed residuals',default='PROGRAM COMPLETE',xsize= )
result=auto_wid_mng(finished)
END
'"

Ot><u. 9'1, dim:lOIY _ rau 1,._"",. dir"""", .,...,..C owo-tx .. / oppend

p<i.,f, OIl, R....tual ............ )1>s:
po1 f , '1'1. 'Mean lObI d>splooemttll (teOidoai ..",..) (pi ls) - '.m<anJ esid...t
prJ.,f, 'I'l, 'Mean ,o<aI dlspla:c ... ", (mid .... cm>r) (m<I<nIjUf) - ',mem, " Io<;'Y
prlalr, '1'1, 'SW>danIIkvI .. _ "ftotal d.lspl ...... U1. (teOid.w error) (p .cal -
..,d .. _""'idtW
plio'f, '". 'SW>ohrd o.:v.ouon "flObl disploccmcnl (rWdu.al cmw) (moIerlI)ur) -
.. 'dc, _vcloc;ty
prl.,f. '19, 'Resld .... ....,., in. d"""tioD (p".Is, - ',moan".fnid .. 1
prlDtf, "". 'ReI1dI.mI ...". in y d=""" (p, I.) - 'J>!'''' -.Y_ resi<lLl1l
. ....... '1'1

,nl,. _'iff, din<:l<Ky _ """ le"",,..,, di,....,ory + "\ta.Iduai _<nOr _ dau.!I r.
"""11_ total. di >placement. ori..,t.llion-o/fIoaJ.

'FINISHED WRlTING TO ERROR FILE'
'PROGRAM FINISHED'
ronished_ .. _ _ bHIill<-1' '<>i'_b Compl ... ! L' ,lxbis)
dono- _,,"all: r,uiollodJ"'" _ "'_lI<,U '.I .... 'tompJ ... ,prompl 'Suoceoafidly
"""'p.,td ruid..alr'.d<fo. h-1'ROGRA."'I CO."'I PLETE' oi> ...
10_ .. Id _moll: ftnished)
END
APPENDIX D
SORT_PLOT_ARROWS.PRO
PRO Sor t Pl ot Ar r ows , event
; This program sorts vectors using the standard deviation of the angle
; of all vectors within a specified window size.
; A vector with an angle which exceeds the standard deviation threshold is not plotted.
; Arrows are plotted and color-coded according to correlation strength.
; A similar routine sorts according to vector length as well.
; The user is prompted to enter x and y errors as computed using the Residuals program.
; This program takes as input the file called ' <glaciername>sifted' found in the 'sifted'
; folder for the specified glacier. It also inputs an image of the glacier to be used as a
; backdrop for the plotted vectors, this image should be a grayscale pea bandl jpeg2000
; image.
; This program outputs files named 'x_displacement.tif and y_displacement.tif into the
; <glacier_name>\sifted folder, and which are used as inputs for the Convolve
; Displacement ;program.
; This program also will optionally output the total displacement and
; correlation strength arrays to files called 'total displacement' and ' corrstrength' within
; the 'sifted' folder.
; Scroll to bottom to make sure the correct drive letter/pathnames are entered.
; This program will call IDL's annotation widget which allows the user to label/annotate
; the displayed vectors and glacier image with appropriate title and parameters.
; A saved version of the annotation is found at \vectors\<glacier name>\
; <glacier name>_annotate.dat.
; The program gives the user the option to save the annotated display, which is then
; saved in the 'sifted' folder.
; Scroll to bottom to be sure the output name for this is set to your glacier name. Tiff
; files are used to preserve floating point values.
; Variables which can be manipulated by the user and files which may
APPENDIX D
SORT]LOT_ARROWS.PRO
nus I""IP'" _. I tors ... ,,& "'" lI>ndonl dol ""_ of"'" OIls!<
of.1I ' .. :', ... " "h," Si"',r,w ",nolo" ","
A ,,,,,,or,, "h an ""jII" "h,," ",.oro. "'" >IOndanl deI,.hm Ihn:shokl " _ plotll
A""", ..... p"",,,,1 .,,,1 ... , ........... W .,...".,Ionc 'n ,,,....1 .. "'" " ..... ",10
A o;m,lor ""'"II< -. ..-.J,nllO ""!Of icngoh .... ell.
, Th,. f""II'M' ,0/;"' .. '"P"' ,he fik <.Ilod '. jlllI<l<'fIlAm<" .,nw' found '" ,he ' .. ft,-.I'
foklo< for ,he ..-,fiw p"", 11 aloa "" .. n, In ''''"11< or"", P'''' '0 he .... -.1 ...
b>dd"", for ,he plo"w ''CC ...... tin, ,nul!< """'kl he "")'"",1. pea Oand I ,1""111(100
''''''II<.
n, .. proarom ""t",,1S fit", Ram,-.I"' >nd y '"'0 "'"
<.jII""'''' ....... ,'.,01 fukkf ...... "h,." on: UKd .. ''''''' .. for !he C .... 'ol,.
Ot'l'I ... nK'" ;"""'""',
Th .. 01.., ,11 "I"""lOlIy ""'''''' ,he d,,,,),,, ....... ar.l
>rul",,,,, 10 fiks 11.-.1 '0<01 d'!IJ'I .. >nd'>IT ",,,h,n
"'" '" flod' folder
Scroll 10 ""'In", 10 maJ,.< IfU1< "'" CO<TO<f Jm. I"'er "",hnamn an: <fIlen:d
, Th" pnwam .... 11 11 IDL', _ .. "'" .. "hioh .110 ... ,he UIiOf 10 1 .... 1 """"'"'
. the <fu!>bye.l , ;lors..-.! JII",,'''' ,null<" ,," :oppropn ... "tI. >nd JUI2If>CIrB,
, " .. ,,-.I 'on_ of'l>o _'oon " r"""" .. '0<\(1<$ < gb<,'" """'" .
; .jII"",afWflO' .. _.,<""-.
: Tho ptollB'" '1>0 ...". '1>0 "1""'" 10 "". II>< _>tl ".""Loy. "h",h " '''''''
, ",'1 ,n """,iOl' fokla-
, Scroll '0 ""',"'" to "" IfUfO "'" ou'PU' ""'"" for "n. " '0 )""' fWf>< T,ff
fit<> .... UKd 10 1'<',111 ,al"<s.
177
; need their drive letters or pathnames updated are surrounded by******************
restore, 'c:\Program Files (x86)\ITT\IDL708\products\envi46\save_add\sift_template.sav'
sifted_path=envi_pickfile(title-Find <glacier_name>_sifted.txt in SIFTED
folder',filter=
,
*.txt')
sifted_vectors=read_ascii(sifted_path,template=sift_template)
;read list of path names/vector files; structure with 1 field
sifted_imcorr_array = sifted_vectors./ze/d7[*,*]
;move data out of structure and into array
q=size(sifted_imcorr_array)
columns=q[ I ]
rows=q[ ]
glacier_path=envi_pickfile(title='Find glacier image (jp2 format)
,
,filter=
,
*.jp2')
glacier_image=read_image(glacier_path)
?
5
scale
:scale factor to magnify display image, use values 1.0 or ;larger, values less than 1.0
;prevent small arrows from being plotted and make vectorfield appear more sparse than it
;really is.
arrowlength = 50.0
; length of arrows, use this to stretch or shrink ;arrows for visual clarity
arctan_threshold = 0.75
;multiplier for standard deviation of angles ;within box defined by window size
totdisp_threshold = 0.75
;multiplier for standard deviation of total displacement of vectors within box2
st dvl i mi t = f 0.0
;minimum stdv for arctangent below which vectors are not removed, ensures good
;vectors in uniform flow field are not eliminated during iterative process.
'"

, .. ,oro. '. :IPro_ Files .>86 )'JTI\lDL .. ",",'t46\a.\'C _ odd\&i ft _ lnnpwuav'


,,;fted.JUlll""<o" tpkkfilt(titl<-'Find "' .... :O .. _name.> _"fled"" ,n SIfTED
fuldcr'. fiI' ..... .. '1
oifle<l_ v<o:lOfS" .... d _ ftl J'3Ih,lOmp w....; fUcmpl ... )
,mod hSl of 1'>aII>tS"''''l<Jr filcs, olh I neld

oifl<d jmcQI'T _ ..... y ';fI",,-,-morsf<ddl(' ,' ]
,mo,. _ ObI or """"ufO and on'" """1
q .. lu( oi ft UrncOtT _ "'"'Y)
col""' ..... [ll
""'P'<I(l )

iJacicr ..J>Olh ..... '1 Jll<kflltilJe-'FiDII JI"",e:r unage (Jpl fumw.)'. fiI' ...... j pl,
Jlbei ... _ i"'"iC"""" imol" li.d ... yoI/l)


..,al - 1.0
..... Ie ("'lOr '" moSlllfy d,,,,,I.y ''''"i''. "'" \OIL ... 1.0 or .Iors ... I .... Ie", (Un 1.0
''''''''m! itIIOll atm", from bc,"II plo>tkd make "","'eM ....,.,.,- ....... ...-lll.tn ,(
.... .ally".
_
. Imglh of."",, .. \de lb,.,,, ..m," or shnnk fo ........... elari(}
otClan_"""""'ld -
!i>r "'->Il<Ianl de"",I1'" "f."SIcs ." uh,n bo, defined b) ",ndo" Ol'<
lOldi'P_LhresboId -
;",ulnphCT!Or ota!>dw de""""" "flou.! ;d,."Ia<.....,.( "h1O<> ",thin bo,l
OIdv-'uni( - 10,0
J",ru",um .. d, for II'<tanll""( bclool "h!Ch .ee("" "'" "'" """"'I. ......... jOO<l
.'tors ,n ""'f""" 1\0>1 r..ld .... "'" d,mllutal du,,"11 U"';;""e 1""<"",

178
; if the grid spacing used in IMCORR is 4 then wi ndowsi ze must be larger than eight
;or else the following FOR loop won't find any vectors inside 'box'.
; window size should be a even multiples of grid spacing + 1, for
;example if grid spacing is 4 then good window sizes might be....
;4x2+l = 9
; 4x4+l =17
;4x6+l - 2 5
;4xl0+l =41
s=size(glacier_image)
i
;these command will get the size of the grayscale jpeg2000
glacier_image_columns=s[ 1 ] ;get size of grayscale jpeg
glacier_image_rows=s[2]
i
xy_errors=widget_auto_base(title-Enter systematic x,y error from GEOREF_STATS
file*)
list=['x error','y error']
vals=[0.0,0.0]
output=widget_edit(xy_errors,uvalue='errors',/auto,prompt='Enter error
values',dt=4,field=2,list=list,vals=vals)
errors_result=auto_wid_mng(xy_errors)
mean_x_error = errorsresult.errorsf ]
me a n y e r r o r = errors_result.error^[ ]
origin_base=widget_auto_base(title-Origin of data?',/xbig)
list=['IMCORR',*Cosi-CORR']
sb = widget_base(origin_base, /row)
wt = widget_toggle(sb, uvalue='toggle', list=list, /auto,xsize=35)
originresult = auto_wid_mng(origin_base)
;origin_result.toggle[0] = 0 ....IMCORR
;origin_result.toggle[0] = 1 ....Cosi-CORR
if origm_rQs\i\ttoggle EQ 0 then data_origin-i'
if origin_result.togg-/e EQ 1 then data_origin='c'
t ot al error - sqrt(mean_x_error
A
+ mean_y_error
A
2)
arctan_array = fltarr(glacier_image_columns, gl aci er i mager ows)
;create new array same size as image
. ,fthe ",d .' ..... '"11 oscd,n I).tCORR ,,4 lIH:n ",.oov. .k. mo", be !..ger lIIan ';h'
,or ., .. 'I>< (0'10\\ FOR leo!> find any "O<1OfS iosi<l< 'be,'
. "'_ . U" o.hookl be. ",'en m"'upl<. of 1Ifid ipOCmg' I. fOf
' <"''''1''< "-'"11 " . ..... JIOOd '" ,ndo .... ",. mi&h' be .
. 4,2' \ 9
17
. ,6'\ lS
41
'"

,Ihno oonunand ",11 J<I (II< "'" of It.. I"'y",.k JP'IIlOOO
g1""icr. iml8<. c<>Iwnns-II( I J 'IV" .. t< of IVI'I-":.'< JP<iI
glad"')1Mi< _ roWJ-./ ! 1

IdK .. _ .. ... , ystcmalH: y <m>r from GEOREF _STATS
file')
Ii.., .. <na<' .')' <m>t']

OUIpu1 .... .. _ NlI'(.y. ="".h .... ..."...'/alJto,prompl -'EJller...".
... 11 ... .<11-.1 .field- ! Ji .. - li>l, vaa-v.J.)
..."... _ =u't_,. '0_ " 'Id _ ma eb _..."...,
meln. ' . aror -
mean -.y_...". - """",_mull ... I J
oriain _ "-"kI.rloo.' ". b"<j'i'le-'Ori",, ofd ... '" ,!l<bia)
'iSl"'i'!lo1CORR'. 'C"" -C01Ul ']
.., - .. _ bOW(origin), .... /row)
WI - .,..Jao-\oiIIe'. ); .. - )101.
'0_ "kI_"'dllorigin_bllS<)
.ori)lln ,.,...1t.101IlI10I01
'origin ",..,It lOzxl<!OI
O. 1\t('ORR
"C.,.;.cORR
If origin_"""h,tqj;gl. [Q 0
If origin _"""II./<>ggI. [Q I , data _ origi .... ".
O/'CWI_ orn.y _ n 1.'lilll",l.,. )!nai" _ cohon/\$. gI .,;.,.)!nai" _''''''')
,<t .. k ""'" """Y sam< we 1","#
corr_str_array = fltarr(glacier_image_columns, glacier_image_rows)
;create separate array to hold correlation strength
xdisplacement = fltarr(glacier_image_columns, glacier_image_rows)
;put x displacements into separate array
y_displacement = fltarr(glacier_image_columns, glacier_image_rows)
;put y displacements into separate array
total_displacement = fltarr(glacier_image_columns, glacier_image_rows)
;put total displacement into separate array
arctan_array[*,*] = 200.0
;populate array with large value to discriminate within FOR loop
corr_str_array[*,*] = 200.0
total_displacement[*,*] = 200.0
print, 'Begin populating arctan array with angles'
FOR j=0L, rows-1 DO BEGIN
;this FOR loop calculates the angle of movement for the
;x,y coordinates of each vector in 'sifted imcorr array'
x_coor = fix(sifted_imcorr_array[ y] )
y c o o r = fix(sifted_imcorr_array[ 1 ,j])
xdi s p = sifted_imcorr_array[ ,j] - me a n x e r r o r
;populate x displacement array
ydi s p = (sifted_imcorr_array[ ,j]-mean_y_error)*(- )
;populate y displacement array
total_disp = SQRT(x_disp
A
2 + y_disp
A
)
;populate tot. disp. using x and y disp. calc'd with mean errors
IF total_disp GT total_error THEN BEGIN
IF arctan_array[x_coor,y_coor] EQ 200.0 THEN BEGIN
corr_str_array[x_coor,y_coor] - sifted_imcorr_array[ ,j]
;populate corr. str. array
x_displacement[x_coor,y_coor] = sifted_imcorr_array[ ,j] - mean_x_error
;populate x displacement array
_ _ OlJ'_ .... ya Rt.rr(sJacief col ...... p .... _ ...... __ .. )
__ ....... ) .. _ ..... ,._ .. ah
' adio:>h- ... - n rt1Jia<ieta"'-_col_ sJacief) ...... a- .. )
..... ,.1 ,,_, ...... '
n ... _co'_ sJacief)""'''a-'''
...... _oony
lOUJ_di.,wa".". - n ntJla<:ia"_irna .. aco._ piU"_irna .. _",...)
.f'II! IOUl d'.oplac .. ' ...... ''''''''''-'''"''''Y
ortPan_"""Y( ' .' I _ lUO.G
.""""l",. omy".Ph lor"" ,oJ"" '" do ... nm' .... < ""h,n
con"aOC!"a"""y("' ' 1- 100..
lOUJ_di.,.l .. , ,><Mi". I-
..... 0. 'Bop. ' ... __ ... y .. ""..p.o'
I"()Kj '"" I """.: DO BEe.:"\"
.,h. HJIt loop < __ kala Ih< .... or _ ........ ;;" ,..
......... ,_ ..... , no, '
__ - n\l._) ........ _ ... y(JlI
y __ - th(. _ _ ;.......,_ .... y( l JlI
' adio:> - .. _),,_, O<n)j <JI' - a' _""'"
.f"'I!'UloI< , d,.,.l",,,,,.'" ..... y
Ya di.op a (oj ftl).....,.. _om y( bj I ...... J' _ ...... ). f 1 )
.""""l.p. Y d."'lac.....,,' omy
..w_w", _ + y_di",' l )
.popo .... lOt. d,,!,. _ ... ' ond) doS(I nk;"d ..
'r _ _ .... y(.a_.ya_1 EQ BI:Cll'i
_ _ Ar_ .... y(.a_.)'a_1 a .1Itd_ ;""""_ompy( ' JI
.-105<_...- .... )
"_6.,""u o]o'a-.)'a-I a .IItd) ......... _ ..... yJI - a"a""'"
._I0I0, dll\ll .............. )
180
y_displacement[x_coor,y_coor] = (sifted_imcorr_array[' ,j]-mean_y_error)*(-1)
;populate y displacement array
total_displacement[x_coor,y_coor] = SQRT(x_displacement[x_coor,y_coor]
A
2 +
y_displacement[x_coor,y_coor]
A
2)
;populate tot. disp. using x and y disp. calc'd
angle=
(ATAN(y_displacement[x_coor,y_coor],x_displacement[x_coor,y_coor]))/!pi* 180.0
;calc angle in degrees
arctan_array[x_coor,y_coor] = angle
;arctan array now has angles at all the beginning x,y locations
ENDIF ELSE BEGIN
IF arctan_array[x_coor,y_coor] NE 200.0 THEN BEGIN
;if arct anarray at x_coor,y_coor is already populated, then compare
correlation strengths of the
;two overlapping vectors. The vector with higher corr. str. is kept.
IF corr_str_array[x_coor,y_coor] LT sifted_imcorr_array[ ,j]THEN BEGIN
corr_str_array[x_coor,y_coor] - sifted_imcorr_array[ ,j]
;populate corr. str. array
x_displacement[x_coor,y_coor] = sifted_imcorr_array[ ,j]-mean_x_error
;populate x displacement array
y_displacement[x_coor,y_coor] = (sifted_imcorr_array[ ,j]-mean_y_error)*(- )
;populate y displacement array
total_displacement[x_coor,y_coor] = SQRT(x_displacement[x_coor,y_coor]
A
2 +
y_displacement[x_coor,y_coor]
A
2) ;populate total displacement array
angle=
(ATAN(y_displacement[x_coor,y_coor],x_displacement[x_coor,y_coor]))/!pi* 180.0
;calc angle in degrees
arctan_array[x_coor,y_coor] = angle
;arctan_array now has angles at all the beginning x,y locations
ENDIF
y _ disp x _>OI",y ___ ] - (lifl<d)1TICOI'T _ ..... y( J' _ cn"Or)" (. I )
'_"". Y do.""",,,,,,,,, ..... t
to!al_ d x _ <OOI".Y _<00< J _ SQ RT(. _ displac<"",,,,! x _"""9_ coorJ' 1 +
Y _ di..,locement(. _COO<.1 _>Orr 1)
;popu1>1. toL dul'. , ord )" d,"1' .ak"J
... -
( AT I\.s(y _ d;<placernen1[ x _ .-.y _ coor I .. _ diopl><ornen'] x _ coor.U:o"" J)Y! '" " 111G.U
,oal< "'111< on
""' .... _ ..... l'Ix_toOO'.y_coorj - ""lIe
'""'_ """ ... onglts _ I II ,I>e boll""""1 '.ll<>c>'_
[,sOIF ELSE Bt:GI:'i
IF "",Ian amYl. coor,y >Or] Nt: lOO.n Til ES OrCIN
- - -
.If om ......... y "', <OOI".Y <001" ... I ..... y_I."'<I. 'htn>mp>n:
;""",,1 ....... """'i'lis of,...,
.'''''' 01 ."Iop,,,", ,""' ..... n.. 'lor "h h'lI/!<"! <011" ...... " kept
COI'T_W _",",)'\x_>OI".1_000<] - . ifl.,UmcotT_orny! l jJ
._I .. OIT . .. t o ...... y
x_displ..:emen,(x_coor,y_coo,[ - lift<djmCOlT _ ..... y[. JImean_ ._ .......
. 1'0, ,,01,1<, J,<pl"'<mm' """)"
y _ di..,I""cm<D1[ x _<001",1_<001"] - (";111 )"'<<<U"I'>)'\ bj].mun J _ "",,,). (-1 )
.""",,1 ... Y d,spl""" ..... ,,, """Y
I0I&l_ displo<:anrnl[ x_toO<,y _ coor] - SQ RT (x _ displ",omen'l. _toO< ,r _ <00< J'!
y_di'l'I.I<emm1(x_coor.y_coor]'l) .""",,!.Jo. """I d''fIioc''m<'" ..... Y
"",-
( AT ""';(1_ di'l'I"'ernmt( x _0001".1_ coorJ,x _ di'l'I><<m<nt[ x _ I<>r.U'.(lfJ))I! pi 18U.O
.oak onjlle ,n <1<_
ortWt_ ..... )'(x_OOOI".)'_"""') .
:arctan ...... ). """ ha .. ... n ,I>< "",nn,"J '.). Ioca'"","
ESDII'

ENDIF
ENDELSE
ENDIF
ENDFOR
arctan_array = reverse(arctan_array,2)
;reverse arrays so they will plot right-side up
cor r s t r ar r ay = reverse(corr_str_array,2)
x_displacement = reverse(x_displacement, )
ydisplacement = reverse(y_displacement,2)
total_displacement = reverse(total_displacement, )
z=size(arctan_array)
zcolumns = z[ ]
zrows = z[ ]
FOR i= , zcolumns-1 DO BEGIN
;put NaNs in places where there are not valid angles, instead of 200.0
FOR j = , zrows-f DO BEGIN
IF arctan_array[i,j] EQ 200.0 THEN BEGIN
arctan_array[i,j] = \YaXues.f_NaN
corr_str_array[i,j] = Wahies.f_NaN
total_displacement[i,j] = ! Values f_NaN
ENDIF
ENDFOR
ENDFOR
print, 'Finished populating arctan array with angles'
iterate='y'
while iterate EQ 'y' do begin
goodf l ow = WHERE(arctan_array GT -181.0, num_good_flow_pix)
;get indices (x,y location) of angles and place in array 'good _flow'
;number of angles is equal to 'num_good_flow_pix'
keep_angle_vect = lonarr(num_good_flow_pix)
;create array same size ;as number of angles in arctanarray, this is the
E.."iDlr
E. ... DEI.5t:
[SOl'
_ ........ y ....... .-..("""""_am.y.! )
_ ......... Y' .. Ihcy .. ,U pIoI nJbl_ ..
cort_ .. __ ..... .. _ .... y.l )
K_dill'laI:emenI .. ...... f>f(. _dUplao ......... l )
y ... dioploocm<nl .. .... .-..(y _ displal:ornent. ! )
'o ... Ulitpl......",' .. ... <n .o.at ditp'''''emenI. I)
... I.!o(artlan _ omy)
>1"""" .. >( 1 J
"""' . .. . Il)
."Olt "' il . """_1 00
.puI "" .. pI.o<a .toa.: """' __ hol
fORj-CII . ".,..1 DO
" ......... \'IiJI [Q roo . TIIL ... 8ECIS
_ _ .... \'IiJI ..
"""_ .......... y\i,il !v"'-IJ,'aN
_ ... ditplKomonI(iJJ .. rVoJ_,-NaN

[SOfOM
...-y
.. _IIt _ r.Qy ........

1f>CWI. ... 1Iow .. \\ ... :Rt:( _ _ ..... y GT - 111 .(1. _ ..... '.'-'1" ........ '
.... .-' .. ' . y-..l"' .......... plo ..... )""'" f\o<o'
_, ... ,or ............... ""_...,., no.. po,'
bop ......... _ .. '" .. .... ar.,-"""'..JOOC!)lo .. .,Pi.'
,<tnI< om)....... ,," '"" """,b<r or ....... In .,1>01 ...... ) .. lh" .. Ibr nounbcr
'"
182
;contained in 'num_good_flow_pix'
print, 'Searching for good vectors using arctangents'
inform=['Sorting Vector Data by Neigborhood']
envi_report_init,inform,base=percent_complete,title='Program is working',/interrupt
;begin % complete widget
FOR i=0L, num_good_flow_pix-l DO BEGIN
;loop runs number of ;interations = number of indices in 'num_good_flow_pix'
IF (i mod 100) EQ 0 then begin
envi_report_stat,percent_complete, i, num_good_flow_pix- I
;updates percent complete widget with each cycle of outer for loop
endif
pixs = ARRAYJNDICES(arctan_array, good_flow)
; create 2-D array (list) of subscripts contained
;in goodfl ow which reference good vectors in arctan array
window_size=51
width = fix(window_size/.' .' )
;while loop to create variable window size based on # of
;vectors within window
while wi ndowsi ze LT 501 do begin
box = EXTRAC(arctan_array, pixs[, i]-width, pixs[ ,i]-width, wi ndowsi ze,
window_size)
; create subset of arctan_array which will be
;analyzed, size and location of box is defined
;using pixs and wi ndowsi ze variables
box2 = EXTRAC(total_displacement, pixs[ ,i]-width, pixs[ ,i]-width, window_size,
wi ndowsi ze)
;subset totaldisplacement as well
good = WHERE (box GT -181.0, count)
;array 'good' contains indices of angles within 'box'
IF count LT 9 THEN begin
inform-{'Soru"l V_ !>ala by
'1_ po'" _ '" II.inform.b" ... L<<Il'_ """'pine" i' .... 'Pro ...... i ... "0111 ,n,' Jin\Ol"rUPl
;1q.uI 0", >mpk1c ",ds<"
FOR ;0(>1 "wnJOOd_fIow Jli.- I [)(I Bf.CI S
:i00i> ""'" n ......... oL,n,.".."""" numtM:t of ,nd,oa ,n"'um gOOd I." .. ,p'"
It' (i mod 100) f.Q 0 I.,. btli
"IJtport_" o,.p<t<<n'_"""'pl", i. numJOOd_Oow-Pix. l
_"""', .. pm:cn. ,omp"". ""ds<' ""Ih <ach cl"'le of ou'" lOr loop
dlf
pi" - ANItA \ _1' IIICt:5("",tan_am.y, S""'<I_I1ow)
""'"'" 1-0 OJn)' (11)11 of <ul:>s<npl. """,,",<>I
," gOOd no... .. hleh ",form gOOd ",<1"", In arctan ....... y
"'ir>d<;w._.i>. .... ,
,,';dln - n'("'indow li.dl )
,,,Me loop 10 c,.,.,. \ oriAbk ",ndo .... n basOO "" of
.''''''''''' .. "run .. ,,>,10,.
box tX lRAq"",tan_"""y. p'xs(O.i]-width. pi. s( I,i)_width, ... indo", _me.
",i<>dow iii",,)
........ of."" ....... y,,"l<h " ,II be:
;moI)<cd. ",. ond Ioc ... "" ofl"" "dcfinl
:"""11 P'" ond "'.....".. II'" , .... obl""
bo<2 - f. .\TI{,\C(1WJ pi .. ro.i]-"'idlh. piul l .i]-"id!h. ,",'iodow Ii ...
",i_ .i.e) - -
;<ut>otllOl.1 d'<pIOl:<mrnI" "dl
gOOd - Wllt;ltt:(box GT 181.0. COWIl}
;arnoy ...,.r ronlaJlII ,00"'" of OII",," ,Ill," '110,'
1 f """'" t. T TIlL," i><1Il.
'"
183
window_size=window_size+20
;if more than 8 vectors within 'box' then statistics will be
Calculated, otherwise window size is increased to encapsulate more vectors.
endif else if count GE 9 then begin
window_size=501
endif
endwhile
;end of while loop which creates variable window size
if count GE 2 then begin
stats = MOMENT(box, /NaN, sdev=stdv)
;calc statistics on angles inside 'box', if standard deviation of
;angles is less than the threshold declared above, then the vector at
Coordinate i of' good flow' is kept and placed in the array called
;'keep_angle_vect'
stats2 = MOMENT(box2, /NaN, sdev=stdv2)
;calc stats for total displacement as well, to sort via length
mean_arctan=stats[ ]
mean_tot_disp=stats2 [ )]
if stdv LE stdv_limit then begin
keep_angle_vect(i) = good_flow(i)
;keep_anglejvect will contain indices of good vectors/angles
ENDIF ELSE
IF (arctan_array[pixs[0,i], pi xs[ l ,i]] LT arctan_threshold*stdv + mean_arctan) AND
(arctan_array[pixs[fi,i], pixs[l , i]] GT mean_arctan - arctan_threshold*stdv)THEN
BEGIN
IF (total_displacement[pixs[^,i], pixs[f ,i]] LT totdisp_threshold*stdv2 + mean_tot_disp)
AND (total_displacement[pixs[ ,i], pixs[ ,i]] GT mean_tot_disp -
totdisp_threshold*stdv2) THEN BEGIN
IF (i MOD 100) EQ 0 THEN PRINT, stdv,' = arctan standard deviation'
IF (i MOD 100) EQ 0 THEN PRINT, stdv2, * = displacement standard deviation'
window _ si, .. ,.,i...oov.,_ si",. 20
;If"""" ,han 8 ,..,,,,1'," ,0,," '\>0,' '1>00 _,>loa '''"\>0
:<>l<u'atO<l, OIh<f,', .. "",- ""c .. In<rnsa! 10 rn< ..... """" ' .. ..".,
.. dlf .... If coo"' Gt: 1>tt;1.
",-i.-.dow _" ' 0-"01
... <llI
........ 11
...... or", loop "hoch <1'<'>1" \'onab le" I...oov. .. ,.
If >Un' GE I .... !>oJ1
.. ." (00 . INaN.
.<.k ... " .. "'" <III ... sJ<s ,_ '1><>,', ,r otancWd do".""" of
:"'JIII i ..... trw. ,lit ,hrnl>ol<! do<t.mJ >!>ole. ,lion '"" ,-ee,,,, at
I of'SOO<! flo" ' ,, k<pl ond pix'" In ,he """y.all ...
;\!I "&I< 'ocr
"",112 - \10\1 F."I'{bo.2. m. s. od ..... ,,,d,'2)
:cak $U1I for toW d",,'ac,n><c.l .. "cll. 1000<1 \ I ..
me"" _ .,<tan ... ,otsf OJ
.,.." _""_ disp-stol.2( U]
koep_ ""s" _ ,'ee.,i) l!",,"Uk .. ,,(i)
.k""" ""II< ,.:eo" til Con"'," ",d,<c' of jlOOd ,,,,,,on.. .. 1jI<r.
I F ,,,,,,,an_arTlIyfpiXl(O,i). p, uP.ill l. T arctan_Ihr<$ho!d,,,d m<>Il_arctan) ASO
(amm _ orny(pi .. [O.il. piull.ill (IT "",.n _0t<Wl arc,an_,hrnbold',l<MTm ;N
BEGI N
'"
, .. (tolll_ pi"l l ,;]] I.T m'''''_'OI_d;..,)
A:"P (lOW_diop'""cmc",[piu(U.ij. 1.'11 GT mean_'OI_di<p.
'otd1l!uhrcoOOld >ldvl) TIIEN BEGIN
U' (, IOU) EQ O THES PItI ST, IIdv, _ arc ... 0IMdatd devimo<!'
IF (i ,\100 1(0) F.Q 0 Til [S PIII .''T, "d>'l, - .undard dtvial_'
184
keep_angle_vect(i) = good_flow(i)
;keepangle_vect will contain indices of good vectors/angles
ENDIF
ENDIF
ENDIF
ENDFOR
envi_report_init,base=percent_complete,/finish
;end percent complete widget
print, 'Finished searching for good vectors'
;the array ' keepangl evect ' will have empty rows due to sorting
;process above, so these are removed as follows:
good_pix = WHERE(keep_angle_vect GT 0, count_good_pix)
;the array ;'good_pix' contains indices from 'keep angl evect ' which contain valid
;angles/vectors
keep_angle_vect_short = lonarr(count_good_pix)
;create new array of correct size to house indices of good angles
keep_angle_vect_short = keep_angle_vect(good_pix)
;use indices stored in 'good_pix' to populate ' keepangl e vect short '
;with indices of good vectors
;the array ' keepangl e vect short ' now contains only indices of good
;angles/vectors from the original array called ' arctanarray'
good_arctan_array = fltarr(glacier_image_columns,glacier_image_rows)
;create new array the size of the glacier image which
;will contain good vectors
good_x_displacement = fltarr(glacier_image_columns,glacier_image_rows)
;create array to hold good x and y displacement values
good_y_displacement = fltarr(glacier_image_columns,glacier_image_rows)
good_arctan_array[*,*] = ! VALUES .FJSfAN
;populate new arrays ;with Nans (instead of zeros) so VELOVECT will not calculate
;vectors with zero displacement at every pixel without a valid vector.
good_x_displacement[*,*] = WALUES.F_NAN
good_y_displacement[*,*] = ! VALUE S.F_NAN
k<q>_""gIc:_ . ""I(i) - ....... _"""(i.
,k<q> ..,gk ,I" LII ron";n 'nd>e<o of ....... '""lOt<'anJln
I::-;Im'
F.:-;DJr
F5DlF

' '1_ .. ' pe .... ,,I_ temp 1=,Ifonish
.on<! pen""" <omplclc" ,4Jj01
.,he: ...... y 'keep ""Ie "",<, ",II h .... <mp'y ""'. due Lo ..... '''lI
.prt>C> o/xe .... the$< ... ......,.<'<\ .. folio",.
lI""'i"'pi. - \\' UI: IIE( k<q> _ ,'",t CT 0, cOIIn'JOOd"'pi. )
.the ..... Y , ........ "'p,,' ""',., .. mdied ""'" \\1 .. ,.",,' "'h,<h '''''''m
.""JPe<I'Ion
koq, _0"111._ "I_shon - lo .. r<ou",JOOd.,pi. )
.''''''. 00. orny of "",I >ll< Lo ....... ,ndlCeS of.,oo ... gIa
. oq,_""I#_"I_shon - k<q>_",,Ie_ .""I( ....... -"i. )
,"", " .. ,hen """"" ,n'jOOd p,,' Lo _I",. \<q> angle ".,t ihort
,,,,,h ,ndocn of JOOO ",,,LoB
.tII< ...... y'l.<q> ""gIe: , :! ihort' """ COllI .... <XII}' 'ndicn of .......
,:angJeo!"""",, from the ongo,w ..... y "'lied '"",!;.n ....... }'
aood _ .,,""" _amy - nto' r(III"d", _ imall" _ ool"m"41""i", -'01.11"_"''''')
,<r<al. IlCYo"""Y the W' oflhc gJ""oe, ''''"gO "h,'"
.,.,11 con'''. IP>d '''''''''
OO<i _ _ displ"" ., .. , nt. 'r(lIlaoi'" -,m ... _ oolum"4:I"",,,, _ im.ge _ "'" .
" ...... .... y Lo hold OO<i , and Y d'sploc<mrn' ."1",,,
JOOO_"'."Ml_ ..... }j . I 'VALUES.F_NAN
._l>t ............ )'O ,,,,(h ' ..... 1"" VELOVECT ",11 _cakub"
".,"on ""h ,,:rtI d''I'lAc.:mcnt ., "'ery p".1 ", ...... t ... loJ .",Lot.
JOOd_, _displ""<malt[ . 1- !V ALUES.F_NAN
....... J _displ""<1I1ent[, ' 1- 'V ALUES.F_II'AN
185
good_indices = array_indices(arctan_array, keep_angle_vect_short)
; goodi ndi ces will contain list of indices in
;arctan_array with good vectors
howbi g = size(good_indices)
x_good_indices = how_big[l]
;get number of good indices contained in ;goodindices, this represents number
;of good vectors to transfer into goodar ct anar r ay
y_good_indices = how_big[2]
FOR i=0L, y_good_indices-l DO BEGIN
x = good_indices[ ,i]
y = good_indices[ ,i]
good_arctan_array[x,y] = arctan_array[x,y]
;use indices stored ;in'keep_angle vect_short' to place good vectors in
;new array in correct x,y locations
good_x_displacement[x,y] = x_displacement[x,y]
good_y_displacement[x,y] = y_displacement[x,y]
ENDFOR
U = fltarr(glacier_image_columns,glacier_image_rows)
;create arrays to hold x and y displacements to be used to plot arrows
V = fltarr(glacier_image_columns,glacier_image_rows)
good_total_displacement = fltarr(glacier_image_columns,glacier_image_rows)
good_corr_str_array = fltarr(glacier_image_columns,glacier_image_rows)
FORi =0L, glacier_image_columns-1 DO BEGIN
FORj =0L, glacier_image_rows-l DO BEGIN
I F good_arctan_array[i,j] NE 'NaN' THEN BEGIN
;if the indice holds a legitimate value and not NaN, proceed
U[i,j] = good_x_displacement[i,j]
;transfer x displacements into array 'U'
V[i j ]
=
good_y_displacement[i,j]
IDOd indic .. .m,' !.dino( ... _."""y. kcq> ....... . ..... )
JOO<I """," .. ,II " _ ..... . <s.
_ mo) ..... .-1 ' ........
how.""
,....,.,.,jOldi<a . _ ..... 1]
"" .. 5 ...............
.f.-l ,;\<In Po ....... """Y
YJ_VOIdk .. . _J"dl ]
H)II; i .. 51. YJO'.UndiO<s- 1 DO lI EGIN
,oo<Ijr.licn('5j]
Y ,oo<Ijadicn( l oi]
.-I. _ . "",,)i'.)'J _ ."",,)i ' .)'J
........ _ ... l.cq> ..... ,.,;1 ..... Po ........ ,oo<I'<"<tO!$
.... wno, "'_, '.l ...... _
1.J . ... - 1...4-" I",," '0[,.)"[
,00<1.1_ 4''''1ao .... '''''''''] - Y. r ; 1a:""''''''.1]
u n,o.rtlJlo<i.,. jmal".""I""",,-laoi ... jm&JC. """O)
."'""'" 50 "" .. , or.! Y .. "'". ..... Ie plol """,,0
OJ . n5o.rtlll.d ... <:olum"'-iI.d ... im,, """ 0)
J<!O<I. IOI.I. 4i..,10C<m0,,, m. ' <1&1",i .... irna",. ",,1untna..Pa:''''. imal". "",,'oj
Jr3O'I. <On" ... , . .... Y .. n'.<>1 ...." .... im.a ... ""Iu""""",,, iOf jmallC. _,,)
FOR ;"'1 ...." ... j ...... !IunuJt. , DO BECI'1
FORj"" . p .... j_._".. , 00 BECI ....
JDOd. _.lrTlIrtij] SE " ... ' TlI.'1 BECI'
,."'" ....... ,.\ r e::aI
U[iJJ Jr3O'I.". tlisplomeftljiJI
" ... I'cr , 4""1ao"",, ....... .-ny"\:
186
;transfer y displacements into array ' V
good_total_displacement[i,j] = sqrt(U[i,j]
A
2 + V[i,j]
A
2)
;transfer total displacement into separate array
ENDIF
ENDFOR
ENDFOR
FOR i = 0 L , glacier_image_columns-1 DO BEGIN
;for loops to transfer corr. str. and parameters into new arrays
;at locations of good vectors
F O R j = 0 l , glacier_image_rows-i DO BEGIN
IF ABS(good_total_displacement[i,j]) GT 0 . 0 THEN BEGIN
good_corr_str_array[i,j] = corr_str_array[i,j]
ENDIF
ENDFOR
ENDFOR
r ot at edU = reverse(U, 2)
;rotate so tiffs will display properly when viewed in ENVI
rotated_V - reverse(V, 2)
U = congrid(U, glacier_image_columns*scale, glacier_image_rows*scale)
V = congrid(V, glacier_image_columns* scale, glacier_image_rows* scale)
good_corr_str_array = congrid(good_corr_str_array, glacier_image_columns* scale,
glacier_image_rows* scale)
! o r d e r =0
;set display coordinate system to match convention used in
;ENVI, image is drawn from top down
window, 2 ,xsize=glacier_image_columns* scale, ysize=glacier_image_rows*scale,
retain =
;open display window of correct size to hold image of glacier
loadct, 0 ;black and white color table
enlarged_glacier_image = congrid(glacier_image, glacier_image_columns* scale,
glacier_image_rows*scale,3)
;change size of jpeg2000
1I""'I_""aI_disploc<m<1l1(iJ) - "Irt(U!i,jj'l +
.tnII>fcr 'OIlII d'spl"".",..", ,nlo ..... y
[l'; OW
[ NDFOR
[NDFOli
fOR , ..... 1 . ilacier_i""F_oo1umno- l DO Bt:GlN
.forloopol<>lnn>f ... ron <Ir . ....t _ ...... '010 ........... )'0
;01 I0<0I __ of 11""'1 '.,,, ....
FOR j"'1 ilaci ... _i""F-''''''''' ' DO B.:GlN
If " lIS(lI""'I_toW_dJ<placemcnlliJll GT O.U Tllt:N BI:C IN
1I""'I_<On"_ .. ,_ ..... y(ij) ron" _il'_ ..... y(ij)
[:'lDlf
1:!'iDfOR
ENDH)R
rou'O<I_ U ""D<'( U.l )
;"">1, 00 "If." ,II "'SPlay f'IO]><rly ,,""" ".,.. '" ,n ['>VI
roul<d _V . ...... . D<'(V.1)
U - >._rld(U. ilociorJ""F_oollL/llJlll'oc.I<. ,I. d ...
V _ "aci ... Jnug,_>l umn"",.I,. ""'i ... ... ,,,.k)
11""'1_ COlT _'" _ ..... y - <ool rld( 11""'1_ ron" _ii' _ ..... Y. il..,; ... _im ... _ Ilu"",.' ",.k.
,loci ... _im.go _ "", .. ' ",.1,)
,-
;><1 d'splay <oonl, .. '. ')'0"'" 10 .....,h 1,,,.<111_ u!Oll on
.EXVI. "n.go i. dra"" ""'" ''''' ...","
",.do,,. .' ,i ... "..,i .. _ im' jI< _ olumn> ' o<.k. )'Oi .... "o<'<O" J '""jI< _ ""' .. '5<>1
=io - I
_ d,,,,I.)" .. ,nolo" of.,.,..,.", .,,' 10 I>olol ",_ of K""""
lo.drt. 1I ;blKl;....t "hll" 0010< ,abk
.. largO<! ..al..,i", _image - ,00 _ri<l(]I.Ia<:i", Jonag<. "oeier Jm.,. _columns ' onlo.
ilaciu J ..... _ ",." .' oc.ld I
;<k.n .... '. of JPCIl1I.1O()
187
s = size(u)
t = size(v)
missing = 1000.0
mag = sqrt(u
A
+v
A
)
nbad = 0 ;# of missing points
x = findgen(s(l))
y = findgen(s(2))
good = where(mag It missing)
ugood = u(good)
vgood = v(good)
xO = min(x) ;get scaling
xl = max(x)
yO = min(y)
yl = max(y)
x_step=float(xl-xO)/float(s( ))
; Convert to float. Integer math ; could result in divide by 0
y_step=float(y 1 -y0)/float(s(.))
maxmag=max([max(abs(ugood/x_step)),max(abs(vgood/y_step))])
sina = arrowlength * (ugood/maxmag)
cosa = arrowlength * (vgood/maxmag)
r = .45 ;len of arrow head
angle = 22.5 * !dtor ;Angle of arrowhead
st = r * sin(angle) ;sin 22.5 degs * length of head
ct = r * cos(angle)
large_num_pts = n_elements(good)
loadct, 13 ;rainbow
\p.thick= I
tvscl, enlarged_glacier_image ;displayjpeg2000
device, decomposed =
; foreground (plotting) color value is interpreted as an
;index value of a color table
print, 'PLOTTING VECTORS'
""'1. ".,,"" OJ'" -
.... e. "'lpIoa ... lcoIur, ..... napmm.,,
""""' ,_ 01 ....... .-
,Fl 'PI..01TThG VECTORS'
1.10< 01
- . l-oI(v)
mi .. inll - OI.U
- n. " ,.-joC I ))
Y - IIodtt*/oC ! ))
*"",, - .. IN-ro( ..... "'......,
.....,d 11(*"",,)
, . ..,., . , .(...,.,)
.0- .0100( .) $looaI ....
1 _ ... (x)

yl _ " " (Y)
""1""80 I . Op I ... 0( 1))
. ('on, ... 1<> Il<>0l, In! ..... : >uk! ....,1, ,n d" ,do (I
Y I I)
1I'W ......... ([ ... >(.I>s("llOOdI. _ .. .... I "... 1fOC>III1_ .. cpl)J)
..... - ....,.,.'1enJth ( ...........
<000 - ....,.,.'lenilh (' ... "" inw.mav
. -
"",," _ !l.'
.. . r t-Ioo( onsJe)
<1 - ' .-.0(-,")
100lI<l. 1' .... _
1
.!<nDr __
........ "r ....... _
.. lnoaIIool_
if data_origin EQ 'i' then begin
; commands to color code vectors from IMCORR process....
for i=0L, large_num_pts-i do begin
if good_corr_str_array[good[i]] LE 2.0 then begin
\p.color=25 ;purple
xO = x(good(i) mod s(l))
dx = sina(i)
xl =x0 + dx
yO = y(good(i) / s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[x0,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[y0,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color, /device
endif else if good_corr_str_array[good[i]] LE 4.0 then begin
\p.color=50 ;blue
xO = x(good(i) mod s( I ) )
dx = sina(i)
xl =x0 + dx
y0 = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,xl,xl-(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[y0,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] LE d. O then begin
It _ _ on"" loop.
,.... _ ... .->do< ,rcI<IR f __ I\\(.'ORR p"""'"
!p ............ ;jNfJIk
x{p>od(l) mod 0( I
d.-.i ..... i)
.1 - .{l+d,
yO _ 11( 1))
dy - <OSa(i)

.do, ... ",
)'<1-, .,
..-..! . 0...1-, L ........ dyo')od)".>4. S
. 1.d.(O\ d.,.d .. S
l)O.yl.yl-{CI dyI)d .. <h,1d) )d, 5
S
eo: ,<>Ia<. 60\;'"
Ip,""-""I ,hi ...
0 ' (lIOO<l(i ) mod s( I ))
d Ii""'i)
. I - . O-d.>
)0 - )'(JD<><l(i) I 11( 1))
dy . <OU(;)
yl - j(l dy
.. 1"". ,,<1'
yd' Y, ",""
(I>Iob.j "Ul .. I-(CI dx/1d .. J)dydI J<d, 5
.1-"H<t <hf>;d .. 5
bo.yl,yl-("' dylyd .. -d>lxd),yd. S
yl.yL-(<t dyl,.... .. 5
<OIuo "'<oIor , de> >
.u
189
\p.color=\00 ;aqua
xO = x(good(i) mod s(l))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,xl,xl-(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,yl,yl-(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] LE u then begin
!p.co/or=150 ;green
xO = x(good(i) mod s(l))
dx = sina(i)
xl =xO + dx
yO = y(good(i) / s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] LE 10.0 then begin
!p.co/or=200 ;yellow
xO = x(good(i) mod s(l))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
lpn' 1111' _
.0- . (Jr>Od(i) _ 0( I ))
do - llina(i)
., . O-do
)<I . )'(""""10) I 0( l )l
dy . ..... ;)
yl )<I4y
.d-.._ .. <p
)'I"'_"<p
plo" .(.o..l .. 1 {ct<hhd ... dj7')d).d, 5
., . ,.jct d.lxd .. dy!)d) 'd]. S
[,o,yl ,yl.j<ldyl)'l+,,d>.lxd) yd, $
yl ,yl.jctdj7')d ... dohd) )d]. S

dlf .... lf aood_a>n"_ ... _ ...... yjJO<><l[ill l.E .... , .... IMtI.
I,.. 1 .. ..... _
.0- ><tpod(i) _ 0( I ))
do ...... i)
d ltOdo
,0 . )'CJOOd(i, I 0( I))
dy . ..... i)
YI ,o . dy
.I- , _ .. <p
)d. y "<p
plo",[.O,' l .. , .jct d<I.I ... dyl)d).d, $
.1 .. 1.j<IdxI.d+,,dylyd).dJ, S
[,o.yl .yl {ct dyl)'l . .. d.,.d) yd. S
y1.yl.jCIdylyd-Ol .w.d)ydJ. S

l ...... ra-. !'OO. )d .....
0 - .(JOOdIi) _ 0( 1))
do - oiBoCi)
. 1 . Odo
,0 . ),(JOOdIi) I 0( I ))
dy e _i)
yl )<I.dY

yd. y_"<p
plots,[xO,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] GT 10.0 then begin
\p.color=250 ;red
xO = x(good(i) mod s(l))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif
endfor
endif else if dat aori gi n EQ 'c' then begin
;commands to color code vectors from COSI-Corr process
for i=0Ilarge_num_pts-1 do begin
if good_corr_str_array[good[i]] LE 0.80 then begin
!p.<%>/or=25 ;purple
xO = x(good(i) mod s(l))
dx = sina(i)
xl =x0 + dx
yO = y(good(i) / s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
;I!
. 0 _ .(JD<><I(i' ...... '" 1 I)
d, - "l\O(i)
.I - . Od.
yO - )'\p>d(i' I '" I))
dy - co 1iI
yl - yO.dy
.d,",,_1ICJI
)'II-r_1ICJI
.. Hct' <hI.<kI' dy'yd)".d. S
.1,1I-{ct'''''Xd-s!'d)O')<l)',d). S
r yO.yl,yl -{ ct' d)'f)'ll .. ' <hIId)')'II. S
y I ,y 1-{ct' d)7'yd ... d>h.d)' )'II). S
_ 11k-Yo:<
dlr 01 .. Ir dou._oriJin t:Q '" ' . H ......
".,,,,,,, ...... '0 ""lor cod< '''''ton from (OSI.{'.,.,.
,,..,..
. 0 - I(JD<><I(') _ "' I))
<b. _ ... i)
,.o - )(JD<><I(i} "' I ))

yl - ,.o.dy
.d",,_1ICJI
)'II-r_ .....
plots,[xO,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color, /device
endif else if good_corr_str_array[good[i]] LE then begin
\p.color=5() ;blue
xO = x(good(i) mod s( I ) )
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,xl,xl-(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,yl,yl-(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] LE . then begin
lp.color=\()() ;aqua
xO = x(good(i) mod s( 1))
dx = sina(i)
xl =xO + dx
yO = y(good(i) / s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] LE CI.94 then begin
!p. co/o/-l50 ;green
pIob,[ .o..l .. I-{<I"lWJdSI' d)'i'yd)".d. 5
d .. I-{ .... <hIXd .. S
[)O.yl ,yl-(<I'4yly,t. .. '<k!xd)")d. S
S
.............. '.f<k,.i<e
..... lr_l( pld_a>l'T_ .... _ .... )'\.,...q'11 U: ...... dI .. bttIo
........
0 'hlood(iJ _ 0( I II
d. .iTlO(.j

yO .. y(1IOOd('1 I 0( I II
dy . a>sa(i)
),I - )'O-d),
.d-x_"",,

pIoI>.j.O"'l .. l-/a ,w,d .. d,o'yd)".d. S
.1 .. 1-{ .. .... S
()O.yl,yl-(ctdylyd .. .t...d)"jd. S
)'1.yl-( .. .. <h1:o:d))'6). 5
<ok c>lorJlk-i
1.....-'-I'Q ;aq ...
0 '(fI'>Od(i) _ .1:1 I)
d . .. oil'lll(i)
,1 _ . O+dx
yO " y(good(i) I 0( 1 II
dy " """')
yl-yO_d)'
.d-, . "<P
yd-Y. II<JI
pIoItJ d) I",H .. ' lWJd.., ' d)'iyd)"d, S
d .. L-{.' .. cWxd-.. d)lf,..)" .... 5
()O.yl.rl-(<tdy'yd .. <hIXd)")'Il. s
yl.yl-{ .. d,t,.kllWJd))'II). s
...... . ...... /dni<e
'"
xO = x(good(i) mod s( 1))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy - cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] LE 0.98 then begin
\p.color=200 ;yellow
xO = x(good(i) mod s( 1))
dx = sina(i)
xl =xO + dx
yO = y(good(i) / s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,xl,xl-(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if good_corr_str_array[good[i]] GT 0.98 then begin
\p.color=250 ;red
xO = x(good(i) mod s(l))
dx = sina(i)
xl =x0 + dx
yO = y(good(i) / s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $

<b - ..... i)
.I - , Ood.
,.0 - )'Ip>d(iJ / 1( I))
<Iy - m
yl - ,.oody
. d.,._",""
)'01-,._ .....
pIoU..{.o-, I .. H<I dxhd ... S
.1 .. I-(CI d>tl.d .... dyl)'d) .dl. 5
(,.o.yl.yJ.{ctdylyd ... .w.d) )d. $
yl,yl-{c, ' dyl)'dSI' d"hd)' ydj. S

tldlf oto< it IIOod <OfT IU ...... rlsoocllill u: 0.'>11 .... 1MtIII
- - -

, 0 - t(pcI(i) _ 0( 11)
d> _ ..... 1))
.1 -.0 ...
)<1 - )'(aood(;) / 0( 11)
dy o .-(i)
yl - ,.oody
.d .. _OltP
)'1"'-"<11
plolo./oo..l .. Ho(' W.d' '' ' d)'''yd)''d. S
.1 .. 1-(<1 dxlxd ... dyl)'d) .dj. S
(,.0,1'1,1'1 -(CIdylyd ... d."'d) )'I. S
yl.yl-{CI dylyd ... d. h d) ydj. S
ro.......",lorjdc:vicc
-"'"
. 0 .(JDOd(i) _ 0( 1))
"" . oUIo(,)
,.0 ' )'( ...... il l 0( I
dy o ooa(i)
)'1 - ,.o-dy
.1 .. _...,.
)'d-Y_.CII
P'""'-l' 11.< I ... I -{ CI'd<!xd .. dylyd)'.-d. S
'"
193
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif
endfor
endif
iterate_base=widget_auto_base(title=Tterate the process again?',/xbig)
list=['yes',
,
no']
sb = widget_base(iterate_base, /row)
wt = widget_toggle(sb, uvalue='toggle', list=list, /auto,xsize=35)
saveresul t = auto_wid_mng(iterate_base)
if save_resulUc>gg7e EQ 0 then iterate = y
if save_resu\Uoggle EQ 1 then iterate - 'n'
;save_result.toggle[0] = 0 ....yes
;save_result.toggle[0] = 1 ....no
if iterate EQ y then begin
arctanarray=good_arctan_array
total_displacement=good_total_displacement
x_displacement=good_x_displacement
y_displacement=good_y_displacement
adjust_base=widget_auto_base(title=
,
Adjust thresholds?',/xbig)
list=['yes
,
,'no']
sb = widget_base(adjust_base, /row)
wt = widget_toggle(sb, uvalue='toggle', list=list, /auto,xsize=35)
adjust_result = auto_wid_mng(adjust_base)
if adjust_resulU6>gg/e EQ 0 then adjustment = y
if adjus^result./og^g/e EQ 1 then adjustment = 'n'
;adjust_result.toggle[0] = 0 ....yes
;adjust_result.toggle[0] - 1 ....no
if adjustment EQ ' / then begin
thresholds=widget_auto_base(title='Edit thresholds for neighborhood analysis',/xbig)
list=['arctangent threshold','total displacement threshold','arctangent limit']
vals=[arctan_threshold,totdisp_threshold,stdv_limit]
.. dlf
.. dif
x I.' I iC1' d, I,d'S!'dyl)'d)' ,d). 5
()O.y1.yHCI*dylyd+st*dxhd)*yd. S
yl.yl-t<1 dyl )'d .. d,o"'d) )'II). s
"" lor*<:ol<>< J<kvic
it= __ ldttl_o.,"_ boSO(.;,Ie-'ll<nIC.he: ,""" LS. lJOin1' )J:biSI
1i>l'1'yu','no')
... .. ...... _Nst. /fOW)
,,' .. . 'idt<UOUlf(ob, " .... li .. ... ,\<)
",-c" res.l, w .. to . .. ld. mD i' ...... " No.1
If .. "._ ..... EQ 0 the. it ...... .. y
If ",'c. """luOUle [Q I , ht. it""" . .. 'n'
",,'C ruull.tOSllIefO) () )ft
,"' 1 no
If ite,.,,,. EO Y lh 1><1:10
"""an_ ..... ...... y
l .... _di..,lo<.." ....
, _ diSplaccmenl,..oo _. _ displa<cmenl
Y _ d isplacm>enl- lI<"'d J _ disploc.", .. '
adju'U,asc-" au 10_ ht> till .... Adj ... tbreshokb1' Jxbijll
'i,,-('yes',""'"]
sb .. " 'i<Ig<C
'" .. . 'ldl". "'Ulab. u,'lll...-'loW.. lioI_li". lo.,o.x,u ... '<)
O<!j ... -,,,wit .. "'0_" kU'UlJ( odjUSlJ'''.)
If adjUSl_lUUluoul< [ Q II adjlUlJllcnl .. Y
If adjuSI. l'<SUluoggl. [Q I , ... adj ust"""" .. 'n'
:a..lJOSI.fUUlcU>iIIIc{O] (), ) ...
,odJUSI mull,louklO] I" no
'"
.. _ 10_ b.",'i,l.-'&li' thrahoId< !'or nail""" hood ... lyoio'Jxbig,l
I i >!-('....,Ian..,." 1hrooho1d'. 'toto.I <Ii","""""" Ihrnb<>kf. vn.n1F'" IIm,r]
"., .. [ orcu.n _llIr<sII<>ld.lOIdi", _'hresl>old.>ld __ Ii mil]
194
output=widget_edit(thresholds,uvalue=
,
thresholdsVauto,prompt='Enter new
values',dt=4,field=2,list=list,vals=vals)
thresholds_result=auto_wid_mng(thresholds)
arctan_threshold = thvQsho\ds_TQSu\tthresholds[ ]
totdispthreshold = thresholds_resulU/zras/zo/tffc[ 1 ]
st dvl i mi t = XhrQsholdsjrQSu\t.thresholds[2]
print,'Current arctangent threshold is: ',arctan_threshold
print,'Current total displacement threshold is: ',totdisp_threshold
print,'Current arctangent limit is: ',stdv_limit
print,'New arctangent threshold is: ',arctan_threshold
print,'New total displacement threshold is: ',totdisp_threshold
print,'New arctangent limit is: ',stdv_limit
print,'****************************************************
endif
endif
endwhile
annotate, window=2
print, 'FINISHED PLOTTING VECTORS
picture_base=widget_auto_base(title-Save this display?',/xbig)
list=['yes','no']
sb = widget_base(picture_base, /row)
wt = widget_toggle(sb, uvalue='toggle', list=list, /auto,xsize=35)
picture_result = auto_wid_mng(picture_base)
if picture_result.fo.gg7e EQ 0 then picture = 'y'
if picture_vesu\ttoggle EQ I then picture - 'n'
;picture_result.toggle[0] = 0 ....yes
;picture_result.toggle[0] = 1 ....no
IF picture EQ y" THEN BEGIN
display = tvrd(true= i )
rotated_display=reverse(display,3)
;rotate display so tiff image will orient correctly when opened in ENVI
;rotation is about y axis, which is signified by 3 in this instance
O\I'pu .... Id,..' _ ... J",'o.prompl-'Enl<T new
val .... A,.o.I .r..1d- 1.1iSl- 1 iSl, val.-.,.I.)
Ihre>bold, _ """I,C"" ' 0_" id _ mn II( Ihre>bokb)
......... ,hrnholdo _ rcsu [
'OId;>JI _Ihr<ohold - Ihr<oho 1<11 _l'<OIIluh"""""'d.r[ , ]
Sldv Jimi' Ihre>bold'-" .....
p ... , ....................... ...................................... .
p". ,.'Cu=nI .-.:...".,.., thrahGld io: .or<WI_lhre>bold
p ... '.'C ....... 'IOIalIli>JIiom<m thrahGld io: .'OIdisp _Ihr<ohokl
P".'.'CurTen, '-':tar\Jtn, hmll iI: .>I<Iv -"mil
p ... , ..................................... ......................... .
p ... I,'N .... amanl""'lIuahoId it: ' ,lttial IIns/IoId
p ... ,.'N .... 1OW dllp,",,= thrahoid io:
p ... I,'N ..... oman,"", hmll IS: ."rlv _Iimil
p ... ,,' .......................................................... ..
.. dif
.odlf
p".'. 'FISISHEO PLQITlSO VECTORS'
picl"n: _ bu " Idl"_' . 1._ b. ... ,i,l..-'S.u tIu. dl>JIlay?' h biV
li"-i'yoo. 'no1
... - ,,'1<1, .. _ bAI<1:ri"''''''_Nk,l"",' )
.. , . .. idl .. _'OUI ..... ,' aluc-'lolJl<. li .... lis1. I..,"' .......
P",'""'_ .... ult _ ""'0_ .. ld_moJ(pi.'un:_Nk)
If EQ U lb pic,.", ''1
If pi ....... _ ..... EQ 1 tb pic' = _ .,,'
.pIC'U'" , ..... 1' ",",<\0) 0 _yeo
:piOl .... rcsulll<>ggl<[O] I .no
If pi.'U", EQ Y TH 1::-' 61:GlS
display . " 'rdllnie'" ' )
roI.,I _ diSpla y-r., <.-..( di", lay , .1)
:rou,. dlopla)' 10 "IT i .... ll"" ,11 on ... ' .. h<n op<n<olln \'1
:roul."" .. ....,,11 y ....... hICh " ",V"fiool ) 'n 'h., .R>I....,.,
195
;while color band is 1, x axis is 2.
sifted_position=strpos(sifted_path,'\siftedV)
;find position o f .hdr' so it can be removed in next command
sifted_path=strmid(sifted_path, ,sifted_position)
;remove '.hdr' ending from filename
write_tiff, sifted_path + '\sifted\vector_field.tif, rotated_display, orientation, /float
endif
rotated_total_displacement=reverse(good_total_displacement, )
;rotate about y axis to plot correctly
rotated_good_corr_str_array=reverse(good_corr_str_array,2)
rotated_x_displacement=reverse(good_x_displacement, )
rotated_y_displacement=reverse(good_y_displacement, 2)
write_tiff, sifted_path + '\sifted\total_displacement.tif, rotated_total_displacement,
orientation= , /float
write_tiff, sifted_path + '\sifted\corr_strength.tif, rotated_good_corr_str_array,
orientation=0, /float
write_tiff, sifted_path + '\sifted\x_displacement.tif, rotated_x_displacement,
orientation- , /float
write_tiff, sifted_path + '\sifted\y_displacement.tif, rotated_y_displacement,
orientation= , /float
print, 'FINISHED WRITING TO FILES'
print, 'PROGRAM FINISHED'
fmished=widget_auto_base(title-Program Complete! !',/xbig)
done=widget_string(fmished,/auto_manage,uvalue='complete',prompt='Successfully
plotted vectors',default='PROGRAM COMPLETE',xsize=50)
result=auto_wid_mng(fmished)
END
IlIII J>OII;,j.,.,.." poo.( si ned -.POoh. ";I\f' 1
:fo tld .,.,.,10"" of' hdt '" " <>n be: In ''',,' oomrrw-.::l
oiftedyallo " ' mld(.iOed ..... oh." ... n"'U'<>Si'ionj
:mt><>'-o ' _hdt rndm, from filrnam<
roI1II_ total_ di spl"""""" -n> .nJiOOI! _1012.1_ ispl..,,,,,,mLl )
."""'. m.;.., y "' .. '" p,"" corro<lIy
", .. ,ed JOOd_ OOIT _<1,_ orr.> )"''''''''''l JiOOI! _ >IT _ ." _ ..,..y.l )
", .. ,ed _x _ d t r>JiOOI! _. _ displ""""""L! )
", .. ,ed y _ di ",'lI<em.",- '''' rw(JiOOI! J' _ di.., laccmcnLl )
'"

, ... 1,,_ Uff . i Oed fl,h "\oj ft..r """,_ displa"."""".llf. rol"cd _ total_ d, spla<anrnl,
ori"" .. ,jon-tJ. !nOlI
... II,,_, lff. , iftod fl,h 'Ioifl<d\to<T _W'tIlJIh.hf. rowedJOOd_<OIT_Ilr_ ...... y.
ori"" .... iono4l. lf\oa'
" -rift _11fT, 'il\cd...P",h + .... illed''''_dIsplaoemenl.lif. "" .. 1_"_ d isp' ocem",,'.
ori .... 'ion ...... ltIoaI
.. rlt, _'lff, siflod...J>lth . .... ,!bod'y_d'spt.;""' ... LUf. ro'''''''J_displ""emen,.
ori .... ' ;"n-tI. lf\oo'

prJ.,. 'fINISIlEO WRITING TO FILES'
prlol 'PII, OORA.\1 fiNISHED'
nn; obed . .. id..., ... uto _ boWi \itle-'l't OIP .m Compl.,.! ,. /lC bill)
oJonto .. ldt .. _.,rlnt( fin;sh<d,I.""' ......... s<.u.-.hH' ..
,'...,.,....<kf.ult-'PRQGRAM
reo"i. . u to .. " ill .. mDt( f, nish!)
APPENDIX E
CONVOLVE_DISPLACEMENT.PRO
PRO ConvolveDisplacement, event
; This program takes x and y displacements (point data) and produces
; x,y and total displacement
; rasters by applying a kernel (weighted inversely by distance) using
; the CONVOL command.
; It also outputs a tiff image of the glacier with arrows spaced at
; regular intervals and
; allows use of IDL's annotation widget to add text to the tiff image
; to keep track of parameters
; A saved version of the annotation is found in the 'rasters' folder
; under \vectors\<glacier name>_raster_annotate.dat
; This program takes as input a grayscale pea bandl jpeg2000 image as
; backdrop for the vectors,
; a glacier mask (also jpeg2000) (glacier mask has Is inside glacier
; and Os outside),
; and xdisplacement and ydisplacement tiffs which are the outputs
; from the "Sort_Arctans_Plot_Arrows.pro" program.
; The user supplies values which can change the size of the displayed
; image, the length of the arrows,
; the kernel size used in the convolution process (which directly
; affects computation time), and the
; arrow spacing in the displayed plot. (See below)
; Commands surrounded by******************** may need drive
; letters/paths updated for the program
; to work properly
; The program sends the following output tiffs to a folder called
; 'rasters' in the /vectors/<glacier_name> directory:
; convolved_x_disp.tif
; convolved ydi sp. t i f
PItO ('''''OhO lIIop'oto ..... , """,'
n". 1""111"'" w. .. , III><l Y d,,,,I..,cmcmllfk" " ""." .. ,,:.
,.) ..... ""'"
kcmc:II' .. :' .,cd ,",o ... .......,ju .....
;
I' ..... ' , ."IT_oflllt ....... ""."" ...... aI ..
. ..... ,.-. ... -
...... , ...... Is , ... """1<\, ....... , .....
; 10 kaop ".d ,,( ... " ... "
A ... ..a,.-of .... .... is....., .... ......
u .. doI
''''''J ... __ .............. .t(nJ ......
; Ioocl.drop "' .... 'o<IOtO.
.""' .......... ' ..... JPOJ2I._.H .... > ....... hooh .... 1 'I '
""" .. 'I, .... ,,),
onJ, dt"l'I.o<<m<nt.rod) d,spto<_ "If ... ho<h If< lilt rn ....
1'''''' .... "\011 An: .... Plot A ...... ,I'"I"pmarom
The u'" "'f'I'lie> IUd .. hi<h <WI "'" .... crlllt d''I'lajcd
.......... .... """" ..
lilt k<fl'o<l 0; ""'<d ",!he con'Q""_ ptUC ..... '"I*:h d'M'l,
_IT.,. ... , I m
__ .... III tho tIi.p")cd plot ISee bclt>wo,
, - t .. ac.ledlo) ....................... ,..-lon..
_'pIIIao"d"' ........ ..
.... oo-k .. I ,I)
The,"" ___ ................ l1fh"'._""""
-t ...... "" ...... "'11.<1 ... _ - d .. ", .. ", :
... I,cd,
_,ohcd ) d,'I' "r
197
; convolvedtotal_disp.tif
; convolved vectors.tif (arrows color-coded according to total displacement)
; convolved_vectors.jp2 (arrows color-coded according to total displacement)
; IMCORR uses a 9x9 array centered on the highest correlation values
; within a search area to compute
; correlation strength, therefore the base of the 3-D correlation peak
; used in correlation strength
; computations is 9x9 pixels. Based on this info, the most appropriate
; kernel size for spatial
; interpolation is a 9x9 kernel. The justification is basically
; this...if IMCORR uses a 9x9 array
; then so should this program.
params=widget_auto_base(title-Edit parameters for interpolation',/xbig)
list=['image scale:Varrow length:Vkernel size (pixels):Varrow spacing:','spatial resolution
(m):' ,' time (years):']
vals=[l,20,9,5,15,1.0]
output=widget_edit(params,uvalue='parameters',/auto,prompt='Enter new
value',dt=2,list=list,vals=vals)
params_result=auto_wid_mng(params)
scale = pamms_resu\tparameters[ ]
;scale factor for changing size of ;displayed image,use values 1.0 or larger
length = pamms_res\i\t.parameters[ ]
;scale factor for changing size of displayed arrows
kernel_size = pzrams_rGsu\tparameters[."]
;should be multiple of 4, plus 1 gives extent of square kernel, IMCORR uses 9x9 array
arrow_spacing = params_result./rarameters[ ]
;spaces arrows so program ;does not draw arrow at every pixel in raster
resolution = params_result.parameters[4]
time - params_result.parameters[5]
; Kernel Size =17 takes several minutes
; Kernel Size = 13 runs quickly, takes a few minutes
; Kernel Size = 9 runs fast, takes a minute
glacier_imagej3ath=envi_pickfile(title-Find glacier image (jpeg2000
format)',filter='*.jp2')
glacier_image = read_image(glacier_image_path)
'"
''''''01,1 toloi d .,.."r
.".".*1 1_0 '" 10,,,.1 01,,.,1..::"" .... 0
oonml,cJ """on.JP2 (..,.,v", rolor-<:o.lal .. conlmll'0 101,1 d .,.]"" ........ "
(\!CORM ...... '1>9 """Y <rnl<mil "" ,I>< 1IIxt><a """",.,,"" , .>1 ....
,,,till" "......,h ..... 10 rompu'"
<:0<1'<1.11011 ,,=I(Ih. l!Iet<f.,.. 'I>< ... or, .... 34) """""""'" pal.
u..:d '" ''''''' .. ,,'''' suenglh
"""""til"""" " P"'''' s-.l on lh" Info. ,I>< """" """"""'.,.
.. ,. r<lf .",>!,.I
'"'orpola""" " 9>.9 \; ...... 1. H,. J, "r".""" .. bu .... lI}
tho<, ,fI\t,OIUI. .... .
,hen '" """"Id "'" '" "'" "IO
.. _ ,. _ bOJ<{Ij.!eoo'Edl1 porm>oI<B for imcrpolauon'/xbiV
)iSl-{\ .... oo:tie:', __ .... &th, "''''''''' .... (p ..... ): _ """""lc',-opaI'" reoo/lIUoIl
(m);", 'l,me (ye.".):')
'-olP\ l ,10,9. <.1
.. _"'II(porams,u,.I .................. .....
,"1100:' ,d'- l .li_li ...... l.-val.)
par2II'IO _l'OOUlt 10_ .. 'Id _ m.lIpar2rno)
..................... , ............................................... .
oeale - parm\lI. result.pd""""'m! " I
,lICIt. foclOr fOr dunS'"!! w< of .d.", .. ) ... ," .. 11\' ..... , ... .,.. I.U <J< wlI'"
- par2II'IO. fdUl' .... ",""'m! I)
.... k r..,tor lOr chan",n,.". of dl'l'loyaluro""
kemetli - patamSJeoull,pa", .. ",mp]
.sho.>old" ntuillpicor 4. plu, I or_ ....... I.I\I("ORR .",,9,<lom)
am>W _"""ina - potmU _l"e$IIlt"",,"''''''m( \ ]
.space< "",," .. 0 program .-not ... ", orr"", .. 0\0f} p".' In ..........
resolu,ion - 41
,;me -

Kcmcl S,n:
K...,.,I S".
K ....... ' S"
17 .... '" II<'rntl mmuta
Il """ qUId;!}". I2kcs f ... m,n ....
9""" r"" ..... cs. nIlnut.


s*ier -,mogo ..... th- ... 1 fi ltitle-'Find .1"" .... I"..,. (jpq.lOOO
_r.fil .......
198
i
i
glacier_mask_path=envi_pickfile(title=Tind glacier mask (jpeg2000
format)
,
,filter='*.jp2')
glacier_mask=read_image(glacier_mask_path)
>
x_disp_path=envi_pickfile(title='Find x displacement in SIFTED folder (tif
format)',filter='*.tif)
x_displacement = read_image(x_disp_path)
sifted_position=strpos(x_disp_patll,'sifted
,
)
;fmd position of ;'sifted\x_displacement.tif so it can be removed in next command
filename=strmid(x_disp_path, ,sifted_position)
;remove 'sifted\x_dislacement.tif ending from filename
ydisplacement = read_image(filename+'\sifted\y_displacement.tif)
openu, 55, filename+'XaccuracyVgeoref^stats.txtVappend
x_displacement = reverse(x_displacement,2)
ydisplacement = reverse(y_displacement,2)
howbi g = size(glaciermask)
columns = how_big[ 1 ]
rows = how_big[ ]
kernelsize= [kernel_size,kernel_size]
;create kernel of size: kernel size X kernel_size
kernel = REPLICATE(0.0,kernel_size,kernel_size)
;populate entire kernel with zeros
half^size - fix(kernel_size/ )
kernel center = half size+


&looier, nwk ..JI',h ... ,t jll<knl.( ,i'le-' FiIKl al"" ... nwk (Jp",,>{lOO
formaIr.fi l' ......
&Io<i .. nu.sIc_r d 1 .... 1r(&l"' i ... orasI;JO'h)


x, di'l'JO'h ... ,t" l<knl ullc-' FiIKl , d'Opioc<menl,n SIFTED foldet (I,f
formaI)',r.I...-.li f')
' , d"l'looo111<1" - ............. I . diOpJO'h)

oifted..JlO'ilioo-.lrpoo( . , disp..Jl'llo.'oiftcdl
.find p<>SI'"'" of ;'"ned x uf"" " ..... b n:mo,ed '" ",,' 'Of11mand
fil<n&me-l lr111Id(X, diOpJliUh.O .. iflod...JlOOitioo)
.1anO'C .. fled , d .. loccmrnu,f from fiknamc:

y di."I""""",,' - r_ 1"'.I r.Icno.rnt> ..... ftcd',y


fiI .......... __ f..uIU.tJoppend

x.<Ii"".",..,....., - r ...... .
y. di'l'I"'<mmt - ... .... t(y, displ ..
ho", , big - .1u(gI",itr. nwk)
oolwruu _ ho", . bill ' J
"''''. - how .billl l ]
hmel,i_ [komel. w .komel. "',.eJ
,c"",,c of "'. suo.\ komol w<
k ..... l _ R.: PLl c ... n :(u.OJ<.,.,..I. oi ... k ..... l. lU.)
,poptJla'. """'''' ...... I ",th I"""
199
FOR i=0L, kernel si ze-1 do begin
;put weights in kernel for interpolation scheme below
FORj=0L, kernel si ze-1 do begin
IF i EQ kernel_center AND j EQ kernel_center then begin
kernel[i,j] = 1.0 ;kernel center gets weight of 1.0
ENDIF else begin
di st ancet ocent er = sqrt((kernel_center-i)
A
+ (kernel_center-j)
A
2)
kernel[i,j] = * /distance_to_center
;weight of each location in kernel is inversely proportional to distance from center
ENDELSE
ENDFOR
ENDFOR
convolved_x_displacement = xdisplacement
;create array with original displacement values and which will receive results
;from convolution process
convolved_y_displacement = ydisplacement ;same for y
nan_array - finite(x_displacement, /nan)
;create array in which Nans are replaced by 1 s and 0s elsewhere
pixels_in_glacier - where(glacier_mask EQ 1 AND nan_array EQ I , count)
;create list of pixels which are inside glacier and populated by Nans
empty_pixel_coor = array_indices(x_displacement, pi xel si ngl aci er )
;create list of indices of empty pixels inside glacier
print, count,' = NUMBER OF EMPTY PIXELS IN GLACIER'
print, 'BEGINNING CONVOLUTION PROCESS'
inform=['Interpolating Vector Data....']
envi_report_init,inform,base=percent_complete,title='Program is working',/interrupt
;begin % complete widget
FOil ;"' 1, t ....... 1 do .... ,
. fIII' ",,,,, .. In r... '''''''fIOI.",,,, "'tI<m< \0<:"",
k ..... l[ij) . 1.0 <""leT 11<" "'''''' of UI
ENOl F .1>< t.qp.
k ..... l[ij) .
lox"",. ,n " on'.."...)y "'''' .. 1 ...... 110 f,.".,.. oIt.,.
r.:O; OF. UiF.
L"OFOR
[SOFOR

.e ............ y .. tin 001'",.1 ,J"rl""rnI<Il' ond .. h"h .. ,11 """";'-c rn..l ..
from """'01 ... "", proc ...
"""_ ...... y . 1naII)
;<rnt<..,...) ,n" loch t ......... npl",,,,d by 10 """ 0. d"",!>ot<
pixds)n_pder . ... _masl< EQ I A:."U 1WI_ ...... y I:Q I,count)
""",,,to I,,, ofp".I, "h"h .... ,"""" Ill"" ... ond popul.,<oJ hy :. .....
emply..J>ixel_"""" . .... , _I"dio(>:. _ d;opl""."",nL pix<lo_in Jlx;")
"mi. I", of,I'>II" .. of OMJIly p".I, ,,,,ode
prloL <QUIlL ' . OF E!'l i'TY PIXEts IN GL.\CIER'
prinl, 'BEGIS:."I);O CO);'VOurrIOS PROCESS'
infonn-{'lnt"'flOIaI"" vcc .... 0.... .. ,1
,-,_ ... ",,"_1.1 Linform,ba, pen: "'_ """'pl .... l;' te-1'm&nm It ,,,'orInn&, Jinl<mlp'
,boogon % romp"". "'d
200
FOR i=0L, count-1 DO BEGIN
IF (i MOD 100) EQ 0 THEN begin
envi_report_stat,percent_complete, i, count-
updates percent complete widget with each cycle of outer for loop
endif
xbox = EXTRAC(x_displacement, empty_pixel_coor[ ,i]-fix(kernel_size/ ),
empty_pixel_coor[ I ,i]-fix(kernel_size/:), kernel si ze, kernel_size)
;create subset of xdisplacement which will be analyzed, location of
;box is centered at empty_pixel_coor[] and size of box matches kernel ;size
ybox = EXTRAC(y_displacement, empty_pixel_coor[o,i]-fix(kernel_size/ ),
empty_pixel_coor[ I ,i]-fix(kernel_size/.1), kernel si ze, kernel_size)
;same for ydisplacement
vectors_in_box = WHERE(ABS(xbox) GT 0.0 and xbox NE \VahxQS.f_NaN,
numve c t or s i nbox)
;get number of displacement values in box
IF (i MOD 100) EQ 0 then print, num_vectors_in_box,' = vectors in box'
IF num vectors in box GT 0 THEN BEGIN
;make sure there are values in box to prevent division by zero in convolution process
vect or i ndi ces i nbox = array_indices(xbox, vect or s i nbox)
convolved_xbox = CONVOL(xbox, kernel, missing=!Values./^Afo/V, /center,
/edge_truncate, /Nan, /normalize)
convolved_ybox = CONVOL(ybox, kernel, missingHValues./^Vo/V, /center,
/edge_truncate, /Nan, /normalize)
x = empty_pixel_coor[ ,i]
y = empty_pixel_coor[ ,i]
a = fix(kernel_size/ )+
; horiz or vert distance from upper left corner to center of box
convolved_x_displacement[x,y] = convolved_xbox[a,a]
;places value at center of convolved xbox into appropriate location in
H)II. i""l . ",.u,,,1 00 81:(; IS
IF (i 100) f.Q 0 1><1:'.
o. "IJopof1. ot" .j>OtCtn,. oompl .... i. ooun,, 1
.updates p<n:rnl oompkl. ""h .a<b of 001<1" for \<KIp
oadlf
xbox - I: XTII. M' ( em", y..Pi. eI. >O<j O,i], n l ).
.... p'y Jli I. >O<j I.il' n,(kernel kernel. liz k<meI. Iiz<)
:.",Ol .... _ <>f, d,,,,I,,,, .,.,., "'h,,,b .. ,ll bo .... 1),1. 1ocaI, ... of
:1><"" <a1'''''''''' <IIlply p,,<l <O<Jj ond Ii", ofllO, "'.,.""" kernel "".
)kIo> EXTIlAC(y em"'Y.JIi ! <O<>I'j o,i].n,(kernel
<mp'Y.JI"<l. <O<>I'j k<m<L'iz k;""'I. "'<) .
,...". for Y dlsplacemrn,
"'"'torS. to. bo. - \\' It f. IU:(AlIS(xbo. ) CT 0.0 d . bo. :'iE !VoJua/. NoN.
nurn._J".IIO.)
'i'" num ..... of d .. "Ia<<IIlOO>\ ,.1 ... In bo.
IF (; ."Oll l()1l f EQ U prl.t. "Urn ,1OtS in 110 ' ,',",,,," in box'
- - -
IF nwn. v:I""".in. box CT 0 TI .. :S Ht:(; IS
,nul;. """ Ihtfe .... \ xl .... In \>0, 10 pm ... ' by,,,.., on O><I'olu""" I""'"''
OO,,,,,"I. xbox _ COSVOI-l,bo kernel. m;";"!r'iV. I-I.I' QN. 1 .. ,,1<1',
lIge.\nI1IC"'. /Nan.InoITll.li..,)
"""'''''-..!..)'bo COS\OI'\)bo" mel. m;..;n!r"VoJL><S/. NaN. I= ter.
ledg \nI1ICOI /Nan. /norm. li ,.)
- .... P'Y.JIi tcoorjO,i l
y - .... ptYJli,.'. ooor[ I.il
(, ' (kernel.""': )+1
; !>o>rI, Of , . ..., <I ......... f""" uw<t len >mOt 10 .en'''' ofb<>,
201
;convolved x displacement array
convolved_y_displacement[x,y] = convolved_ybox[a,a]
;same for y values
IF (i MOD 100) EQ 0 then print, convolved_x_displacement[x,y],
convolved_y_displacement[x,y],' = values placed in x and y displacement rasters'
ENDIF
ENDFOR
envi_report_init,base=percent_complete,/finish
;end percent complete widget
convolved_total_displacement = fltarr(columns, rows)
. ***************commands to smooth interpolated d
a
ta********
infinite_array = finite(convolved_x_displacement, /nan)
;create array in which Nans are replaced by Is; and 0s elsewhere
good_list=where(infinite_array EQ 0, goodcount ) ;get list of locations with good values
good_indices=array_indices(convolved_x_displacement,good_list)
inform=['Smoothing Data....']
envi_report_init,inform,base=percent_complete,title='Program is working',/interrupt
;begin % complete widget
FORz=0L, good_count-S do begin
IF (z MOD 100) EQ 0 THEN begin
envi_report_stat,percent_complete, z, goodcount-1
;updates percent complete widget with each cycle of outer for loop
endif
xbox=extrac(convolved_x_displacement,good_indices[ ,z] -
fix(kernel_size/ ),good_indices[ ,z]-fix(kernel_size/ ),kernel_size,kernel_size)
ybox=extrac(convolved_y_displacement,good_indices[J ,z]-
fix(kernel_size/ ),good_indices[ ,z]-fix(kernel_size/ ),kernel_size,kernel_size)
convolved_x_displacement[good_indices[ ,z],good_indices[ ,z]]= mean(xbox,/nan)
; smooth data with mean values
convolved_y_displacement[good_indices[ ,z],good_indices[ I ,z]]= mean(ybox,/nan)
"""""I,'''' J _ di J - oon,,,lwd 31>0'(",, )
:an>< fOr) "I ....
IF Ii MOD 1(0) F.Q 0 I prl .
""",,,I,edJ'_d"l'l..,e,,,.,,,(x,r] . - val"... pi"" ... ;n on<! ydi"'I"" ....... , ...... '
[:"01."
[ :'ODFOR
,c .. porU . 1l.b.... p<ocen,_ <:<>mpl ... ; fini.h
,end pa<.." complclc '"..!xn
............ .. """'1JWI<!i1O """"'" 10''''1'''1.,,"<1 da .. .. ..
Lnlinit. _>my - II. ;'0( oonvolvcd _x _ lnan)
;cTn1o 1m)' In hleh S ...... ", ;>Iacl b)' 1>; ond 0. .!.co.hen:
'"
i""'iJi.,-..' hfrt(inf,rut<_"""y EQ $1 h>! oflo<>lions" IIh JOOld "I"""
good _ indieu-'no) _lodltn(c", ... "h'I _. _ di spl""emeI1t,good J ist)
infonn-{"Smoot/unl I)au. ... ;.,;.,=
t. ,-L rtpOrI _Iolt.inf""""... pe. ct,,, _-"1'1.,0,,;, _ a;rom .. """'\""Ii' fi nlOmlpl
,""KIn ..... pk:<c MIs
FOR roII l .1jOOd_00Wl1. 1 do 1><11.
IF (z .'101) 1(0,,) F.Q II Tit (..,; brJl
\'1_ ... port _ "".j><t<m,_ a>mpl .. c. z. JOOld _""""'. 1
."po\lIIOS pn<CIlI <0lI'l'1<1< ",dg<'l ,,"h each <)d., of oota for loop
dlf
. box" " nor( co,,,"ol,...J _x _ displirn<nt.ao<>d _ indK:es[ 0.>]-
11>(1<..".1_ .ilel:1 J.iood _indices( I .. )' I<(I: ...... L .iw .i .<,lcemel_ Ii .. )
)'bo' " '' " <011' '01"ocI J dirplocernon'.jlOO4 il>llkes( 0 .. 1_
_indices( I "I' n. (kerneC .ize/! ),lcemel_ . ittJeemel_ Ii .. )
<OII''Oh'l_. _ disploocmen,[aood j l>llices( 0 .. J.goo,Ul>llkes/ 1 .. JJ- ....... (. bo ./rwI)
."""",h """ .. "h mean ".IUd
convolved J _ displaum<1l'II""'Undkoo{ 0.. J.JIOOd _ indices/ I .. J J- "'''.()'bo. ) nan)
202
convolved_total_displacement[good_indices[ ,z],good_indices[l,z]]=sqrt((convolved_x
_displacement[good_indices[;,z],good_indices[ ,z]]
A
2)+(convolved_y_displacement[go
od_indices[ ,z],good_indices[ , z]]
A
))
ENDFOR
envi_report_init,base=percent_complete,/finish ;end percent complete widget
**********************g^^ commands to smooth data********************
rot at edxdi spl acement = reverse(convolved_x_displacement, 2 )
;rotate so tiff will plot right side up
rot at edydi spl acement = reverse(convolved_y_displacement,2)
rotatedtotaldisplacement = reverse(convolved_total_displacement, )
print, 'SAVING CONVOLVED X, Y AND TOTAL DISPLACEMENT RASTERS AS
TIFFS'
^J;- *^ ^t, ^ ^ ^* ^* ^* *;J^ J;^* ^*
5
writetiff, filename+'\rasters\convolved_x_disp .tif, rotated_x_displacement,
orientation , /float
writetiff, filename+'\rasters\convolved_y_disp .tif, rotated_y_displacement,
orientation^ , /float
write_tiff, filename+'\rasters\convolved_total_disp.tif, rotatedtotaldisplacement,
orientation= , /float
U = fltarr(columns,rows)
V = fltarr(columns,rows)
U[*,*] = \VAUJES.F_NAN
V[*,*] = \VALUES.F_NAN
FOR i=0L, columns-1, arrowspaci ng DO BEGIN
FORj=0L, rows-1, arrow_spacing DO BEGIN
IF glacier_mask[i,j] EQ 1 then begin
;points inside glacier are populated, arrows are spaced apart
;so VELOVECT does not draw arrows at every pixel in raster
U[i,j] = convolved_x_displacement[i,j]* resolution/years
;populate U and V arrays with regularly spaced values which are yearly
;offsets, convert to m/yr.
V[i,j] = convolved_y_displacement[i,j]* resolution/years
eoo,'" j,'ed_l<>Ial _displ""oment[!I'>o,Undices[O .. l,&<><>d_indices[ l.zl l-oqrt( <on,-",,-ed_"
_displ""<rn<nt[p><!_ indices[O"zl.JOOdj ndi<eo[ l .. W l }+{eoo",,I,'edJ_displx...,entlll"
od jndices[ o.zl,&<><>d _indioes[ I .. W

" .. .. .. .. md comrrunok toomooth thI ... .. .. .. ......
rot>ted_" _ displ""<m<nt
....... 0 SO t;(f",,1l plot ,,111>' ,,010 "I'
rot>ted J _ displat:<m<n< - '" ."" e<>n"<llved J _
rolat<,CI<>Ial_ displ""errI111 ..... <IV( e<>nV<llved _1<>Ial_
"SAVTh:G CO:o..'VOLVEOX, Y A<,\UTOTAL O!SPLACE.'>lENT RASTERS AS
TiffS'

..-rl ... _ tllf. filoname+""' .... I<:00 ..... lo'ed _. _ dosp.ur. rotated _x _

_ tllf. fil....,., .. "", ... I<:oo'-ol"ed J _ disp.ur, ""ated J _ displ""ement,
orienlati""o(l, Illoat
,"'rI'. _,I If, fi 1marne-"", ... ....,.,,,,,1,,0<1 _1<>Ial_ disp.tir, rolated _ IOIaL disp
ori ..... i"" . .... Ifloat

U .. , r(oolwnns..row. )
V nlO' r(ool"", ... fO\\"')
ul' , ' ) - iVALUES.F_N.fN
1,1[".) . 'VALUES.F_N.fN
FOR i.-H.,ool...",.. I, .....,..._"""'in' DO BEGIS
fOR )o(ll ,,,,,..... 1, Olrow_""",inl DO BEC)1i
IF gIat:i .. masl<!ij) I , .... 1.
,pO"" ",.,ok: P''''' .. p<Pp<tIO\ed. "",,'" on:..,.,-ed ..,""
, 10 VELOVECT docs ""' ...... """"" at co"')" p"c! on fUI<T
U( iJ ) - ,n"
.1"'1"'1..., L- an<l V """YO ",110 ","l ... ly..-otI ,alueo "'-ho<h .... ycm)
,"rr ..... <""''''' 10 "'-yr_
V(iJJ - oonvolvedJ _displooccmaoqi jJ ,,..,.,I"li .. , .. ro
203
ENDIF
ENDFOR
ENDFOR
U = congrid(U, columns*scale, rows*scale)
;scale U and V to larger size for easy viewing
V = congrid(V, columns*scale, rows*scale)
!order=0
window, 2, xsize=columns* scale, ysize=rows* scale, retain=l
loadct, 0 ;loads grayscale color table
enl argedgl aci eri mage = congrid(glacier_image, columns* scale, rows*scale)
;enlarged_total_displacement = congrid(convolved_total_displacement,
;columns*scale, rows*scale)
tvscl, enl argedgl aci eri mage
wset,2
loadct, 13 ;rainbow color table
device, decomposed = 0
print, 'PLOTTING VECTORS'
>
; commands to color code arrows according to yearly displacement
s = size(u)
t = size(v)
missing = i 0000.0
mag = sqrt(u
A
+v
A
)
nbad = 0 ;# of missing points
x = findgen(s( 1))
y = findgen(s(2))
good = where(mag It missing)
ugood = u(good)
vgood = v(good)
:->Olf

:->OfOR
u - col""""' sc .... """ .. SC".)
"".10 L: ..-..t \ 10 W"Jot"'" r ........ ) ,.,.., ,"It
V ' ""lrId( V. columru sc .... "', .... "'.1.)
onlorpl Jloci<r _ imoi . . ..... -'m.,., columns >coie. rov.',' ocoJ.)
;cnloooa! """I d,,,,,I,,,,.......,, oonjjn .... coo'Glla! ,OU]
;oI"",os'..,..lo. """,sc.le)
..... 1.1
1 .r:unbow rolor lable
d .. 'I. d<compOSC<l - n
pri "PLOTIING VECTORS'

Il")
,-,bot_'
x - fldl . (I(I ))
y - fl ndK (I(.!))
"good - u(good)
-good -
;. ofrn .... "i points
204
xO = min(x) ;get scaling
xl = max(x)
yO = min(y)
yl = max(y)
x_step=float(xl-xO)/float(s( I))
; Convert to float. Integer math
y_step=float(yl-yO)/float(s( ))
; could result in divide by 0
maxmag=max([max(abs(ugood/x_step)),max(abs(vgood/y_step))])
sina = length * (ugood/maxmag)
cosa = length * (vgood/maxmag)
r = .45 ;len of arrow head
angle = 22.5 * !dtor ;Angle of arrowhead
st = r * sin(angle) ;sin 22.5 degs * length of head
ct = r * cos(angle)
large_num_pts = n_elements(good)
large_num_pts = long(large_num_pts)
loadct, 13 ;rainbow
\p.thick =
printf, 55, 'Purple is LE 10 meters per year'
printf, 55, 'Blue is 1 to 35 meters per year'
printf, 55, 'Aqua is 35 to 60 meters per year'
printf, 55, 'Green is 60 to 85 meters per year'
printf, 55, 'Yellow is 85 to 110 meters per year'
printf, 55, 'Orange is 110 to 135 meters per year'
printf, 55, 'Red is GT 135 meters per year'
for i=0L,large_num_pts-l do begin
if mag[good[i]] LE 15.0 then begin
!p.co/or=10.0 ;purple
xO = x(good(i) mod s( I))
dx = sina(i)
xl =x0 + dx
yO = y(good(i) / s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
IIWmar ... (( .... o(bt(UjP<ML'_ .. .... .. "I'J)
tina - .... "" (u....,.vmumaal
""" - .... "" ( ...,.sIlIWIm"ll
.-
oo&lc -ll' - ldlO<
.. . . . . 18(0011<)
<t - . ' toO(onp)
.1<>1 .. r.....,. hood
.AnV<of __
"'" 1.H dop kr J'h .. rhnol
.... __ JIII
.... __ JIII . .... I:t...,._-JIII)
-"" 1' ''''_
...... . ,
p"'"f 'P'urpk .. LE 10_ pet"""
poi.,f. u. 111 .... 1 '" l' -... pet ,.....
,....If . .. , Aqua .. )5 ... 60 ........ pet ,.....
prl.,f . . .. 'CftcD .. 60 '" JJ 1II<Ien pet"""
prl.,f. ". "'1'01\00. .. ., '" 110 ........ por ,.....
prl.lf. . -0... .. It 110 10 I), ........ pet"""
p.I.,f. , 'Red" GT IlS ........ pct}"OW
If rnaa{1""'lI.ll U: 1 do .. L:><c'"
=10.0 """""
.0' -c".,'(i) _ 0( 1)
.... ....... ,)
xl "" ....
,0 - y(Jood(i) I 0( 1
<Iy - <Ooo(i I
yl - ,o . dy
.d""_ .....
)'6"-_""1'
205
plots,[x0,x 1 ,x 1 -(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[y0,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color, /device
endif else if mag[good[i]] LE 35.0 then begin
!p.co/or=50 ;blue
xO = x(good(i) mod s(I))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots, [xO,xl,xl-(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,yl,yl-(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if mag[good[i]] LE 60.0 then begin
!p.co/or=100 ;aqua
xO = x(good(i) mod s(l))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,xl,xl-(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if mag[good[i]] LE 85.0 then begin
p.o .. JxO .. I .. i1""' dxh:d .. djiyd) >.<t, S
d .. I.( .. S
[)O.yl.yi1""' dyf)'ll ... dxh:d)"Jd, S
S
10: ::I..-.,*,'icc
..... Ihloo 1t' mq[.,...qi11 u : "_,, ,lMoIlH1:Io
tp._.Mo<
. 0 - o(lI"O'I(i) !DOd 11( 1))
'" - .iN(i)


dy - <OOo(i)

.d ... _"",,
)'II."'Y_IUP
pIoU.,j.o..l .. H"' dxh:d ... djiyd)".d, S
xl .. 1 .( .. , 4>tII<d-s! S
()O.y1.yl-<"' dyI)'II. ... <Wxd)"Jd, s
yl.yl.( .. S
.. 10, <oIorJok\ .....
I p""""","," 1(10 ' ......
0 - .(aood(i) !DOd 0( 1)
d. - tiN(i)

- )iflOOd(i) I 0( 1))
dy . <OOo(l)

.<I->t_1OtP
""'-""
pIoU.,jxo.x I .. l.(,, dxh:d .. ' djiyd)" >.d, S
d .. I.("' <Wxd ... djiyd)".ul1. S
S
S
..... . ........ -Jdeo.'icc
\p.color=\50 ;green
xO = x(good(i) mod s( 1))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,xl,xl-(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if mag[good[i]] LE 110.0 then begin
!p.co/or=200 ;yellow
xO - x(good(i) mod s(l))
dx = sina(i)
xl = xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,xl,xl-(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,yl,yl-(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if mag[good[i]] LE 135.0 then begin
\p.color=235 ;orange
xO - x(good(i) mod s( J))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
1 ...... 1' ' I ~ _
I O->(Fod(1) _ 0( 1))
<be - ."",1)
I I_ IOo<be
)0 - )(aood(i) / 0( 111
dy - coa(i)
yl - )Oody
.d""_1Up
yd"'Y_1Up
pJol' J.O,ll1 ,lIHa cWlcd,, d)'iyd) ,d. S
xl,llI-(CI cWlcd", dylyd) .d). S
()O.yl,yHct dylyd.., cWlcd) yd. S
yl.yl-(", d)'lyd,,, dxhcd)"yd). 5
",,_Jdcvicc
!,....,.,.....! ' )-.1"'"
. 0 - .t(pMI(i) _ 0( 1))
<be - oiooo(i)
.1 - I O ...
)0 - )(aood(i) I 0( 1))
dy - coa(i)
yl-)O'dy
,d",,_1Up
yd"'Y_1I<JI
pJoloJxo.:.l,lI Ha"cWlcd''' ' d)'iyd)"xd, S
.1,llI-(n cWlcd ... dylyd) xd). S
()O.yl.YHct dy/ydtsl"dxhcd) yd, S
yl,yl-(CI d)'lyd .... cWlcd) yd), S
",,_J<Im
.. dl ..... lf moallPOd!ill u 1. ... 0 ..... 1M-JI.
!PAl ' !"""
0 . 1(JIood(i) _ 0( I))
... . ....... il
., .0'''''
)<I. )(p>d(i) I 0( 1)
dy- cooo(i)
yl)<Idy
,''''''_".,
yd.,-- "."
207
plots,[xO,xl,xl-(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[y0,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif else if mag[good[i]] GT 135.0 then begin
!p.co/or=250 ;red
xO = x(good(i) mod s( 1))
dx = sina(i)
xl =xO + dx
yO = y(good(i)/s( ))
dy = cosa(i)
yl = yO + dy
xd=x_step
yd=y_step
plots,[xO,xl,xl-(ct*dx/xd-st*dy/yd)*xd, $
xl,xl-(ct*dx/xd+st*dy/yd)*xd], $
[yO,y 1 ,y 1 -(ct*dy/yd+st*dx/xd)*yd, $
yl,yl-(ct*dy/yd-st*dx/xd)*yd], $
color=color,/device
endif
endfor
close, 55
annotate, window=
;brings up annotation widget to place text in display and save it
print, 'FINISHED PLOTTING VECTORS'
save_base=widget_auto_base(title-Save this display?',/xbig)
list=['yes','no']
sb = widget_base(save_base, /row)
wt = widget_toggle(sb, uvalue='toggle', list=list, /auto,xsize=35)
save_result = auto_wid_mng(save_base)
;save_result.toggle[0] = 0 ....yes
;save_result.toggle[0] = 1 ....no
.. dlf
.. dfM
plo".[xO,xI.xl-{ct' dxI. d-,, ' d)'iyd)"d, S
. I.xl {<t' cWxd""' d)'lyd)"xdj. S
[y(l.yl.yl (<l dyl)<l ... dxhcd) yd, S
yl,Y1-{<t' dylyd" , dxfxd)')'d]. S
<:o1o<-co1or / <lo\ic:
dlr .... lf masjJOOdlin GT Ib ... MlIo
,...J
.0 - . (good(i) mod 0( I ))
dx - sino{i)
xl - . 0 0 d;:
,.0 - y(p>d(i) I 0( I))
dy <000(1)
yl - yO _ dy
xd-x. "<p

1'10",(.0 .. l,xl{<l' <b</.d.,, ' d)'iyd)' xd. S
,1 .. 1 {CIdl<hcd .. dylydj .d]. S
[yO.yl.yl.{cl dyf,.......CWXd) yd. s
yl.yl{CI' dylyd" ' dl</.d)' yd]. S
ooloP<olorj oSovio
'"'
d o ...

".0'0" , window-l
;boinp up annoIal"", ,,,dg '" 1'10<. I." on d...,b.} ..-.t "'e ,I
"ri.,. 'FISISHED PLOTTING VECTORS'
.. "._bast-.. , 0_b .. . thi, dllP'_)"?' /xbill
li .. "f.,..,. .. ""'l
sb - "ldJ',. b0i",'eJ,ase. /roW)
v" _ "' .... .. li ..... i ... lau,o,x,iz_.t<j
_ .. ... ,,_but)
,"" (I .. ycl
,"'. ,.,...It.<<>uI<'!01 no
208
IF save_result.fogg/e EQ 0 THEN BEGIN
display = tvrd(true=l)
rotated_display=reverse(display,3)
write_tiff, filename+'\rasters\convolved_vectors.tif,rotated_display, orientation= 0, /float
ENDIF
finished=widget_autoJbase(title-Program Complete!!',/xbig)
done=widget_string(finished,/auto_manage,uvalue=
,
complete',prompt=
,
Successfully
interpolated velocity',default='PROGRAM COMPLETE',xsize=50)
result=auto_wid_mng(finished)
END
display - " ' r<I(U'-l )

" 'rlo< _ Cltr. filenameo'lroll ... _,..,I,,,,,,_ ve<IOn.Uf .rotaled _ displ. y. IfIoaJ.

ENDIf
finished' " .. _ 0" to _ bo.t( tiU .... Projnm C""",r...'! I . bill
"",,",," _ "rI_a( r.nish<d.lOUK> _ ......... "'" ......... nplel<' ,prompl' 'S1>CS01Id1 y
.... ,JIO ... ed .<10<;"),, .d<r ... I,.."ROGRA.\I COMPLETE' .x.i ...... "')
"",,1,' .. '0_ " 'Id _ m.a( firushed)
END
APPENDIX F
CROSS_SECTION_GENERATOR.PRO
PRO CrossSecti onGenerator, event
; This program produces longitudinal or transverse velocity cross
; sections from rasterized
; data output from the ' ConvolveDisplacement' program. The user
; employs the cursor to interactively
; select the points in the raster which will be the beginning,
; intermediate and end points
; of the cross section. Up to 3 line segments may be drawn to
; delineate a cross section
; in a glacier which may be curved.
; Use the left mouse button to select the first (beginning) point of ;the cross section,
; also use the left mouse button to select any intermediate points ;(2nd or 3rd points).
; Use the right mouse button to select the final point (end point) of ;the cross section.
; The user can comment/uncomment commands below to choose whether to
; place a first cross section
; witin a glacier velocity field or to place a second cross section
; across an existing one.
; Cross sections are plotted in m/yr vs. meters (south to north, or
; west to east). When drawing line segments
; to delineate extent of cross section, the beginning point should
; either be in the south or west extent of
; glacier (depending upon the orientation of the glacier) otherwise
; the coordinate manipulations within the
; program may not work. In other words, draw the line segments from
; south to north, or from west to east.
; Longitudal cross sections will have vertical dashed lines showing
; positions of inflection points along
; the cross section. If a transverse cross section requires more than
; 1 line segment then it should be created
; as if it were a longitudinal cross section because the transverse
; cross section portion of this program has "

-
-
.

,

!
l
H
n

.
.

n

.
.
.
.

.
.

s
-


r
l
l
l

h
'
i
E

:
i

{

-

.

!

-
!

2


i
f

=

I

I

'

.

I

;

,

r

A

"

i
l
l
<

!
I

g


,
.
.
,

.
.

.
.

h
:
n

:
;
;
'

s
-
i

,
I
'
,

I
"
'

O
!
[
,
g
'
-
i
t
"

h
l
"
h

i
i

5

I
i

i

f

H

:
;
:

-
<
-
I
i

I

'

.
.
.
.
.

:
:
i

j
o
.
f
i
l

i
f

n
i
i
l
.
,
"

-
;
;
-
.
.

1
I
"

,
.
-
i
f
'
"

H
I
!

j
'
!

,
1
,

,
I
,

j
\

I
I
:

0
;

a

1
1
/

I
I
I

.
"

a

_
_

X
I
I
I
"

!

!

i

'

,
,
'

t
.

i
l
"

i
!
.

i
f

!

!
[
!

"

"
&
"

'
"

!

'

-
p

i
f

;

;

.

!

"
"
i

!

,

i
"
!

.
.

'
;
"

.
.
.
.

;
"
l

.
:

i
i
f
i

'
i

H
!
!
;
!
!
i
l

i

.
.
.

"
-
f
"
I
a
.
Q

,

-
.
"

.
.

:
1

B
.

F
.

i
"
,

-
,

'
'
'
2
.
1
1
_

"
"

-
,


,

i

-
a

_

d
n

;


q

,

,
;


210
; no provision for drawing vertical dashed lines to show inflection points.
; Commands surrounded
D
y ******************* may need drive
; letter/pathnames updated to work correctly
; One bug has been found...when creating north/south trending cross
; sections, if a line segment is perfectly
; vertical (no deviation in x direction) the program will not work
; correctly. Line segments should have some
; slope in them, if only slightly.
;used to scale image with vectorfield to fit on screen, so cross
;section location annotation can be placed properly
windowscale=l .0
?
vectors_path=envi_pickfile(title-Find convolved_vectors.tif file in RASTERS
folder',filter='*.tif)
vectorfield=read_tiff(vectors_path,red,green,blue,interleave= )
vectorfield=reverse(vectorfield,2)
;reverse image to display right-side-up
i
totdisp_path=envi_pickfile(title-Find convolved_total_disp.tif file in RASTERS
folder',filter='*.tif)
totaldisplacement = read_image(totdisp_path)
total_displacement=reverse(total_displacement,2)
;reverse to display properly
how_big=size(total_displacement)
;get size of total displacement array
columns=how_big[ 1 ] ;# columns
rows=how_big[2] ;# rows
for a=,columns-1 do begin
;nested for loops to change Nans to 0.0 in total displacement array for sorting ease later,
for b=0,rows-1 do begin
by ... y "..,.,Jdn,.
'<1,..,. ... ,-..co Upl"cd 10 "'''''' <or=.ly
One Iw ""'" four.! .... """ "'n"", """h '_Ih
""'ion<. If. II .... O<p><nl .. p<fr.ly
\ ,<rt,cal (no <k> '011<,. In \ d"", 1100) th< I""IP"'m ",II "'" .. or\.
"""",,,'Iy. 1.111< "",",kI t..'c oomc:
......., In !hem. If ooly . lIghtly .
'"

....... to .... 1. ''''''S< .. ,til "",on,.'" to rot on .'"".", SO'fl)U
:s<ct.,., 10"'''00 0""""""'" ",. t>o r''''cd ,"_,Iy
win<IowlCale- l.O


l"1otS "'p>1h-<."t pkUIlt( ,i, le-'fil><l <0111'011'1_ V10fl.l; f fil. In RASTERS
fohl ..... fill cr-'" Ill)
\"1otfield r .. .. , '<"" l )

'"100f,.Id-"" ....... ",etorfi<Id.)
'm .... ,mop: ,u durl.y

toIdi", Ii,leoo'FiDd "","vol,'ed _1DtaI _<Ii ",.lir fil. '" RASTERS
rokler',m' ..... .lif)
toW_di",la:ancm . , .. d im' l toIdiop-P'th)

... " < ......
."',......., '" d,,,,uy properly
_ biro luftoW_ di",I"""","",)
.11<' we of ,",., d'''''>e<men, "",,)'
columns- _ bill(l] o. <olun,,,,
"',, ... bow_bid) ] ;_"",'s
fo< ooo!l.columns- I do bqI
1><$IO<l f ..... k>opo to <)gnp: ,,,'" '0 (0,0 '" "".1 d,'!'I..,,,,,,",,, arr.y 'or __ I"",.
fo, 1>-0 ......... , do b<J:1o
211
if total_displacement[a,b] EQ Wahxes.fnan then begin
total_displacement[a,b]=0.0
endif
endfor
endfor
how_large=size(vectorfield) ;get size of vectorfield image
tvcolumns=how_large[ ]
tvrows=how_large [ 2 ]
xpix=intarr(columns)
;create array of pixel numbers from zero to # of columns
ypix=intarr(rows) ;create array to hold y pixel locations
z=fltarr(columns*rows)
;create array to hold values of total displacement to be plotted in cross section graphs
z[*,*]=-l 000000.0
;set all values in z array to -1000000 so good
;values can be sorted later in a 'where' statement
x_position=intarr(4) ;create arrays to hold x,y coordinates of cursor ;clicks defined
below, maximum of 4
y_position=intarr(4) ;points to delineate 3 line segments
trend = widget_auto_base(title='Trend of cross section?',/xbig)
list = ['West to East', 'South to North']
we = widgetjpmenu(trend, list=list, uvalue-trend' , /auto,prompt- Select
direction',xsize=50)
trendresult = auto_wid_mng(trend)
;trendresult.trend = 1 ...south to north
;trendresult.trend= 0 ....west to east
direction=trendresult.?reJ initialize variable
window, ,xsize=columns,ysize=rows
;create window of proper size to ;display total displacement array
tv,total_displacement ;display total displacement array
if direction EQ 1 then begin
;if glacier is oriented N/S then proceed....
If ,oul_displooementr .. bj F;Q TVlI ..... L ""n I ........ 1.
total _ di""la=ncm( a,b )-(J,Q
Mldlf
.. dfor
.. dfor
"""'_Iarge-oiz, -,orI",old) ;JI<I .u. of ,,.".f,oId Im>j,'<
'vcolwnns- how _1"'110[ I]
, ...,.. .... _ Jargq1j
' pil- I.,,,,, rolwnns)
","'ale"""y of p,,<1 numb<D from 'm> to' ofro1umJII
... 0' " '(00)""''''' ""'-0)
'"
;<",.t. amoy t" Mhl of' .... ' .d,$pl ............. ' 10 be: pi""'" ,n ctOU <toOll p:op/II.
'ro, ' ) "')('lOOIOO.U
;>CO all '" , """I 10 )( .()OOO) .... ..,.,..
. \ ,I .... on be _I , .. .,. In ' .............. emen.
' ..J!OSi,ion- ln,.r r(" ) ;<re.le """)'110 hold y ooool, .... ' .. of ourtO< ddiO<d
"",-"mwn of.
y.JX>Oi'ion- I .... :1"0'0" to <lelo".,.,., 3 hoc "'lV" ....
U'a'Id - 'o_ b">Il' lt-"Tfmd of ""'"' 0,""''' /l<big)
li .. . [' WOOl '" Eoor, 'Soonh to Northl
",,'. " .. HlK"'Jlm ... (Itend, Ti .. - li .. , .'.I...........r.I.""'.P<Ontp,-'S<-lc<t
4i"""on ....
............. , "'0.
.It<1><l,,,,,,h.trtnd I ,O<>U1h ,0 oonh
.,rendldulurmd 0. "<01'0<001
... nd .,rutl.h,. an"'!'
.. I. do..-.1,x.l<00'C0IUI1Ul$,ysize-row.
:<rnl. "",,00.. or""""" u,. '" .d''P'ay totaJ dlSPla.<<rn<1I("""Y
If dim:,icm EQ I .... 1>0&1
. tf i1><'" """<'11'00 " S , ..... pro<""L
212
;use left mouse button to click on points delineating cross section
;use right mouse button to pick final point and end process
cursor,x,y,/device,/down ;get points to define cross section
x_position[0]=x ;place x,y mouse coordinates into array
y_position[0]=y
print,x,y
n=l ;iterator used within while loop
while (Imouse.button NE 4) do begin
;while loop allows collection of ;many points to define cross section
cursor, xl,yl,/device,/down
;get more points to define line segments if desired
plots, [x,xl],[y,yl],/device ;plot lines defining cross section
x_position[n]=xl ;place x and y mouse positions into array
y_position[n]=yl
x=xl ;current 2nd point becomes new 1st point of next line segment
y=yi
n=n+l ;iterate
print,x,y
endwhile
cross_section_length=0
initialize variables to define distance
;between successive cursor clicks (points which define cross section)
distance 1=0 ;this variable will hold length of 1st line segment
distance2=0 ;will hold length of 2nd line segment if necessary
distance3=() ;will hold length of 3rd line segment if necessary
linesegments = widget_auto_base(title-Number of line segments in cross section?')
we = widget_param(linesegments, dt=2, floor= ,ceil= % uvalue='segments',
/auto,xsize=50,prompt-Enter l,2,or 3')
segmentresult = auto_wid_mng(linesegments)
num_segments=segmentresult.segme/s initialize variable
if numsegment s EQ then begin
distancel=y_position[ ]-y_position[ ]
;calc length of line segment
slopel=((y_position[ll]-y_position[ ])* )/((x__position[ ]-x_position[l])*l .0)
""" left IDOUK bun"" to .hd OIl PO"'" dc:lineal,,,, emu _toon
..... rig/ll_l>un"" lO p><k r,,,,,, "",01 -.! end pnx<w
. u rso' .',yJ4c>'ico/oo..lI .11<' pOI"" to ""fir>< cn>SS <';00
.J>OSi'ion/O.... ;plM:< q ' _ <001, "", ...... )
Y..,POIi'""'fOM
pri . .y
. -1 ."onto< uoal ",.run .. luk loop
.. hi .. (!IIlOUK.bu/,,,,, do b ... ;1_
loop roll""""" of-many PO'''''' to ""fir><'f\>M !.',""'"
..0' , . 1.yl J<k>keJdo"'lI
'8<' ""'"' 1""""10 den .. I ......... k" ..
plo'" ( . .. I].[y,yl )Jde>icc ;plot h"", defio,,,, =>!ill ."'''"'''
.yosiliOfl/.)-.; 1 aNI Y "-'" P>O"""'" ""0 am)
Y -",,"ilion[ n J.oyl
. ... 1 ;<u=ot 1..J polnl boroma """ 1>1 poon. of ..... ' h"" IC,,""'"

"*11+1 .'lOJ"OOe
pri ..... y
d ..
oross _llOClion . length-o
,I0,,,.h,. \ .,.;obl .. 10 der. ... d'>l2n"
;br< .. """ _>On, <ono< <hds (poon"" h"h <kfi ... emu _'oonl
diOlall<:<) -O .,hi, ,-""obi ... ,II hold IMjl:lh of I .. 10"" $"11'''<'''
distanC<2.o(J .,,,11 !>old ""'KIll of 1 ... h .. sqmrnI If ....., ... rl
di5WKeJ-Il , .. ,II hold I""gth onrd h"" 0<gm<n1
Ii"" P"""" - .. ,o_b ... or I'n< kJti>mIS ID ........ _lion'")
.... . .. ... m(Iinn<"",",,'" floor- l.uil-.l, u\.l .... .. .. '.
, ... t"",.iu-'(l,ptOmPl"'E", ... l.l.ot l 1
o<gmcntrauj, .. ou,o. " id_mnl(:!in'''gmenlSj
If nwn_scgrncn .. F.Q l ib ... bttJ.
di.unc:ol --"""ili,,"[ 1]-Y J>OSilion[ 0]
"ale Icnglh of "nc scgrncn'
'"
213
;calc slope of line segment
y_interceptl=y_position[ ]-slope 1 *x_position[0]
;calc y intercept of line segment using 2 pt. formula
for i=i,distancel-I do begin
;this for loop determines the x coordinates of the line segment based
;up the equation of the line and the fact the glacier is N/S
;trending. Then total displacement values for the x,y coordinates are
;placed into the z array for plotting later.
ypix=y_position[0]+i
xpix=fix((ypix-y_intercept 1 )/slope 1)
z[ypix]=total_displacement[xpix,ypix]
endfor
endif else if numsegment s EQ 2 then begin
distancel=y_position[ ]-y_position[ ]
;get length, slope and y intercept of first line segment
slopel=((y_position[o]-y_position[ ])*! )/((x_position[ ]-x_position[l])*1.0)
y_interceptl=y_position[ ]-slope 1 *x_position[ ]
distance2=y_position[ ]-y__position[ ]
;get length, slope and y intercept of 2nd line segment
slope2=((y_position[ 1 ]-y_position[ ])* 1.0)/((x_position[ 1 ]-x_position[2])* 1.0)
y_intercept2=y_position[ ]-slope2*x_position[ ]
for i=n,distance 1-I do begin
;determine x,y coordinates along first line segment
ypix=y_position[ ]+i
xpix=fix((ypix-y_interceptl)/slopel)
z[ypix]=total_displacement[xpix,ypix]
;get total displacement values along 1st line segment
endfor
for j=),distance2-l do begin
;determine x,y coor. along 2nd line segment
ypix=y_position[ ]+j
xpix=fix((ypix-y_intercept2)/slope2)
z[ypix]=total_displacement[xpix,ypix]
;get total displacement values along 2nd line segment
endfor
endif else if numsegment s EQ 3 then begin
distance l=y_position[ I ]-y_position[ ]
.... ""',..;...-1' "" .... ...
-''''''''''', .................... 11''''00' "of".. _ ,booed
.oplloc .. =_of"'" b .. mol "'" r..... ""' .......... "
;.m>ilI"f n...o _I '" -= , ............. '.) "'">fIl, ........
,pl.-od , IIDIho: , """l fOr ploc,,",Ia&<f.
)'IIi .,. JIOI.i'ioni 0 1-;
. pi.- n. ( (WO> 'L inletUpll V ..".' )
oj)'pi .) ....... _ di",IamenI(xpiq 'pi. )
M ...
+"7 ... 2-y-",,"- ( I J
....... oIo. .......... ...
..... l"((y JOOiIiooll I h ..Jl<IOitioa(! U I,(.)I\( ...J"*Iion( ' I- .,POI"",",, !))" I .f'l
yJn ..... ; p2"'YPtioa( l }-tIope2 ..JiOiii'*'l ' ]
for ;"" ,<Ii.......,ol-1 de Iooz;'
,dc!<tTn, .. I.y >0<\1,,.., .. aIooI,IlnII,,.. ..... _<11
wU.,. ..J>O';.ion[ U]+;
1M' . n'Hwi. 'Lint<=p<! V,''''''' 1 )
>()pi. J...." .. _ di ... pi . )'pi.)
' """, , ....... ''''''. 'e ,,, .. ......
droc
'"
214
;get length, slope and y intercept of first line segment
slopel=((y_position[ >]-y_position[ ])* )/((x_position[ ]-x_position[l])*1.0)
y_interceptl=y_position[ ]-slope 1 *x_position[ ]
distance2=y_position[ ]-y_position[ ]
;get length, slope and y intercept of 2nd line segment
slope2=((y_position[ 1 ]-y_position[2])*l .0)/((x_position[ ]-x_position[2])* 1.0)
y_intercept2=y_position[ ]-slope2*x_position[ ]
distance3=y_position[ ]-y_position[ ]
;get length, slope and y intercept of 3rd line segment
slope3=((y_position[ ]-y_position[ ])* )/((x_position[ ]-x_position[ ])* )
y_intercept3=y_position[ ]-slope3*x_position[ ]
for i= ,distance 1- do begin
;determine x,y coor. along first line segment
ypix=yj3osition[0]+i
xpix=fix((ypix-y_intercept 1)/slope 1)
z[ypix]=total_displacement[xpix,ypix]
;get total displacement values along 1st line segment
endfor
for j=i ,distance2-l do begin
;determine x,y coor. along 2nd line segment
ypix=y_position[ ]+j
xpix=fix((ypix-y_intercept2)/slope2)
z[ypix]=total_displacement[xpix,ypix]
;get total displacement values along 2nd line segment
endfor
for k= ,distance3- do begin
;determine x,y coor. along 3rd line segment
ypix=y_position[ ]+k
xpix=fix((ypix-y_intercept3)/slope3)
z[ypix]=total_displacement[xpix,ypix]
;get total displacement values along 3rd line segment
endfor
endif
endif else if direction EQ 0 then begin
;if glacier is oriented E/W then proceed
;use left mouse button to click on points delineating cross section
;use right mouse button to end process
cursor,x,y,/device,/down ;get points to define cross section
.... "".-tb, ........ y of r"" 1_"", .....
oIcpt 1-(y ...... 1i ... I.' }-y .J .. In" ,ij)l((x JIOOIrioIII""-JCIOiIiooI I J)" 1 .11)
r _....-.'"')'...JIOOi!ioGIU] <I >jK I ....... """' ]
di ..... 2"')' ...... rioIII! h .... 'limo( l]
."" ..,- ' ... ) """'"flO of:..l h8t .......
oIopel-(y ..J!OOiriolll l}-y ..J!OOiriolll ! I)" , 1]' ...... rioIII !II' ".)
r _.....,.".,.,a. priolll i }-sIopol' I]
diaanoel"')' .J>OI'iriolll 1}-y.J>OOiriolll l I
JCI "'" til, 'o'oJ'<....t} """'"'" of ltd II ...... , ...
olopo3-( (y p,jon( I IY.J>OI'j' imI ' ])" 0)1((> .J>OOil""'1 I I. pilon( \ ])0 1 ,.)
Y_intM:qK3y.J>OOition[ IJ IopeJ .JIOOition[ l l
for jo(l.di_'1 do 1toJI.
,""''''''' ... \.) _. fino I .... "
)pix"')' ptioD[
''''''. II>I("' Y _ iDl=cpli Ydop<' )
>bp, JaoooaI_ <fop" ...... 1It >.pi>:.ypix I
......... . o\ucs ...... ht """ "" _ ...
.. dr ...
..... dj" 1. 1 401M1:lo
..... _ '.y""".-" !nd 1_ ,.",
ypix"')'..JIOIObon( I H
.pu.of\l(ypU..y)DI<n:qIt2)'o1ope2)
z/".} .. o CdiOf' aD<Ut(. pix.ypix]
......... ,." ......... :..1 w..'
.. df ...
_I( .... It .......,... t:Q 11 III .. .... ..
"f_ ... , .. ,.. ,ed E \\' ........... "" .
. _left _ .""'IO."<l .... p080<I< -"'",,*0<\:'_
._n"''' nb''''''''IO<n<ipoo<al
owr . YJd""I/ ..... .... p<>ml> 10 <l<f,,,,, ..- _
'"
215
x_position[0]=x ;place x,y mouse coordinates into array
y_position[0]=y
print,x,y
n=l iterator used within while loop
while (Imouse.button NE 4) do begin
;while loop allows collection of many points to define cross section
cursor, xl,yl,/device,/down
plots, [x,xl],[y,yl],/device ;plot lines defining cross section
x_position[n]=xl ;place x and y mouse positions into array
yjposition[n]=yl
x=xl ;current 2nd point becomes new 1st point of next line segment
y=yi
n=n+l iterate
print,x,y
endwhile
cross_section_length=0
intialize variables to hold total length of ;cross section line segments
distancel=0 ;length of 1st line segment
distance2=0 ;length of 2nd
distance3=0 ;length of 3rd
linesegments = widget_auto_base(title-Number of line segments in cross section?')
we = widget_param(linesegments, dt=2, floor=l ,ceil=3, uvalue='segments',
/auto,xsize= ,prompt-Enter l,2,or3' )
segmentresult = auto_wid_mng(linesegments)
num_segments=segmentresult.segme72te initialize variable
if num_segments EQ I then begin
distancel=abs(x_position[ ]-x_position[ I ])
slopel=((y_position[0]-y_position[ ])* )/((x_position[- ]-x_position[l])*1.0)
y_interceptl=(y_position[ ]-slope l*x_position[0])*l .0
for i=l ,distancel-l do begin
xpix=x_position[ -]+i
ypix=(slopel *xpix+y_interceptl )* 1.0
z[xpix]=total_displacement[xpix,ypix]
endfor
prioI' ''.1
_ I .lICr __ .. , .....
... 110 (!.'" ...... _ 1'0'[ ... """'"
, .. h Ie kq> , roll,_ of ..... ) ..... ""r" .. '-.... T'
"' ....... , xl .)'1 Jdcvi<cJdown
plol>. l ... ;plol hna; Jofinma."'" _I,on
oJ'OlltionjnJ ... 1 ,pia, and)' ........ P"t"""" '"") ..... )

. ... 1 .,orrenl lnd pol," I .. , ...... 1M poo .. of""" I ... Ap' ....
,-,'
..... 1 ,_
prioI' y
"""" ..
dip .. :2" .......... lnd
.... m) .. ....... h .... 'nI
I:' p''''>II " "ldl" __ .'o_ ofl_ Ap'''' ... ...-_1')
.... " " IdI"J ... mjlineocpneoir.. dt_l . f'oooro l ,<eil- ' ""'-...,......
1&UIO ... i'_ ' ..... b ... l.l .... l}
1<jpl'lC$l,,,,,.h "_.'0_ .. Id_ m. t\linesq:m .... )
for i-O.di. ...I ..... 1oqIoo
"PU"' __
ypix"lokopc 1 xpi>:0y_ )' I ,0
<I "pi>: t-ot ftisploc ..... <&( opi>:.ypix J
Ndf.,
216
endif else if numsegment s EQ 2 then begin
distancel=abs(x_position[ ]-x_position[ I ])
slopel=((y_position[
l
]-y_position[ 1 ])* 1.0)/((x_position[0]-x_position[ 1 ])* 1.0)
y_interceptl=(y_position[ ]-slope 1 *x_position[0])* 1.0
distance2=abs(x_position[ ]-x_position[2])
slope2=((y_position[ ]-y_position[2])*l .0)/((x_position[ 1 ]-x_position[ I])* 1.0)
y_intercept2=(y__position[ ]-slope2*x_position[l])* 1.0
for i=< ,distance 1-1 do begin
xpix=x_position[0]+i
ypix=(slopel *xpix+y_interceptl)* 1.0
z[xpix]=total_displacement[xpix,ypix]
endfor
for i=^,distance2-! do begin
xpix=x_position[! ]+i
ypix=(slope2*xpix+y_intercept2)* 1.0
z[xpix]=total_displacement[xpix,ypix]
endfor
endif else if numsegment s EQ 3 then begin
distance 1 =abs(x_position[ ]-x_position[ ])
slope l=((y_position[ ]-y_position[ I ])*! .0)/((x_position[0]-x_position[l])* 1.0)
y_interceptl=(y_position[ ]-slope 1 *x_position[0])* 1.0
distance2=abs(x_position[ ]-x_position[ ])
slope2=((y_position[ I ]-y_position[2])* 1.0)/((x_position[ 1 ]-x_position[2])* 1.0)
y_intercept2=(y_position[ I ]-slope2*x_position[ ])* 1.0
distance3=abs(x_position[ :]-x_position[3])
slope3=((y_position[ ]-y_position[3])*l .0)/((x_position[2]-x_position[ ])* )
y_intercept3=(y_position[ ]-slope3*x_position[2])*l .0
for i=v,distance 1- do begin
xpix=x_position[ ]+i
ypix=(slopel *xpix+y_interceptl )* 1.0
z[xpix]=total_displacement[xpix,ypix]
endfor
for i= ,distance2- do begin
xpix=x_position[ ]+i
ypix=(slope2*xpix+y_intercept2)* 1.0
_1f_1f _ _ ... " .. , .. t:Q ! I ....... ..
"i.p _1 .. bt( .JIOOiI>:III( "J- .J ... PI)
...... 1-(1T PIior(""".J">Sitioo( PJ)" P .0),(> ...J>OOi'ooa( vJ- ..,;>OP"1ior( 1 D' I .oj
y_iIIlaupol-(yplior( 'J d ,-I' ,plior("J),, 1 U
rOO" loo(!.di ...... do 1><'&1
pix->; ..J>OIIilioni UJt;
wi. -(.Iope P - . pi" y)ntrn:"I" I )' 1 ,G
z(.pi:< I"'!OW _ di ... pi:<.)'pi.1
61 ..
1M Ioo(P,d;"'n 2 1 cIo ......
pi>. .. ,J>OOi!i<>o( P}+i
)1IiJr-(oIopt 2' xpix..,. _ iIIlaupo2)' r .,
".pi>. J-td f rr 17 ...... oct . pi>..)pi>: I
.. _rOO"
di .... "d.bo( ..,JIOOition( r I' JIOSi'ioni ! I)
.1op<2"\ (Y"POIi'ion] I ].y ..,JIOOillon( 1 l)' r r I' "POIi'lon( ! ])- 1.0)
Y _i npor<epI2-(Y..J>OIIition( I )-o\op<2' ..,JIOOi,;on( r J)' r ,0
1M iooO,d"Im:oI , 1 boVz
.,.. ... ..,JIOOiri<oot., }+i
",:1),, 1.1)
I' ,i"'"('pi>..)1IiJrJ

216
217
z[xpix]=total_displacement[xpix,ypix]
endfor
for i= ,distance3-l do begin
xpix=x_po sition[ 2 ]+i
ypix=(slope3*xpix+y_intercept3)* 1.0
z[xpix]=total_displacement[xpix,ypix]
endfor
endif
endif
cross_section_length=distance 1 +distance2+distance3
;tally length of cross section based upon length of each segment
z_good_list=where(z NE -1000000.0, zcount)
;get locations within total displacement array to be plotted
tot_disp=fltarr (zcount)
initialize array to hold total displacement values to be plotted
for p=*M ,zcount-. do begin
;for loop extracts necessary values of total displacement array and
;places into t ot di sp array for plotting
tot_disp[p]=z[z_good_list[p]]
endfor
x_list=indgen(zcount)
;create array to use as x axis values of cross section
x_list=x_list* 15 ;multiply by 15 to convert to meters
print, ' zcount-,zcount
;print zcount and cross section lengths for comparison, these should be the same
print, 'total length-,cross_section_length
orient = widget_auto_base(title-Cross Section Orientation')
list = ['Longitudinal', 'Transverse']
we = widget_pmenu(orient, list=list, uvalue-orient' , /auto,prompt='Choose Orientation')
orientresult = auto_wid_mng(orient)
;orientresult.orient = 0.... longitudinal
;orientresult.orient = 1.... trans verse
orientation=orientresult.on'ew/ initialize variable
if orientation EQ 0 then begin ;longitudinal?
.( . pi:<)-.oW _ ,pi.,ypi. ]
.. M ...
fo.,-<t,di.tmtcl j do btt:1
pix .. J>O$ili<>n[ J.I
Wi.,,(sJo,>cJ ',pi. +y jn,mepO)' I .0
Z(' pix )_ .... _ dioplac<:rn ... o.[ .pi, .W"]
Mor
.Ddlf
.. dlf
cro. _ oe<:1ion _lMlPh-dittan<e 1 ,..jj$WIU1 .disunc.l
.... Uy ""'JIllI of <..,.. _"on _ ..".,.. I"'JIllI of...,h _,,"'tD'
.JOQd _Ii ... .. b .. " . ,<;[ . , 114''''"',0, <eo"')
_II'"' .... " ....... , .. ,,,,,j rl.<r, ............ , .... l ... I
101_ disp-n .. rr(:u;oun1}
.,..,,,10,. ..... 10 1>0'" , .... , d""I"".......,' ,.1 ... 10 I>< r""'c.l
f ... .w>UnH do ...... 1
. f".. loop t ".,.. OCSOao) .... flOl.1 d'spl""""""" """'l ..-.;I
;plilOcs ,mO tOl do." am)' f.,.. P""""J
'01_ di"PIp l-zl z ..II0o'Ui"'lp n
tadto,
x JiM- lodcu(Z<:OW1t)
,<<<ale array '" u>c .. , "-". ,-olu of .....,..1"""
li .. - . Iii,' " .m"jupl)' by I' 10 <On' .... 10 ..... ""
- -
pli . .. _ .... ,uouru
;pnn' ".<HII" ..... <ross s"on 10000h. f". coml""_. ""'"" """'kit.. u ........
prlol. 'IoIaIlmlPh'" ",,,,",,. section. length
on .. " - "ldtH _ _ booo<,;tl.-'C lOll Scc!iooI o.;<r\wiol11
Ii$! ['LoDjp.udtnaI', 'T'u .... n<1
m
"" , . .. .... lill- liS!. "'03ue-'on .... . I-'"I04'''''''P' 'O>ooo< 0ri<nI>n0n1
ori<nua.ll - "Id. mollori",n}
;oncn""",It.OOOll' (I, ,Ioo"too,,w
"' .... ,1Iraull ..... ""1 I".,..,,,. ..
If EQ 0 1N-r;I
218
tot_disp_max=max(tot_disp)
;get max of total displacement for use as
;max value in vertical dashed line in cross section
u=intarr(2)
;create arrays to hold x,y coor. of vertical dashed lines in cross ;section
v=intarr(2) ;u,v hold x,y coordinates of first vertical dashed line
uu=intarr(2)
vv=intarr(2)
;uu,vv hold x,y coordinates of second vertical dashed line
if direction EQ 0 then begin
statements to create x,y coor. of end points for vertical dashed lines
;in cross sections, these are for east trending glaciers
if numsegment s EQ 2 then begin
;for two line segments, draw 1 dashed line
u[0]=distancel*15
;create x,y coordinates for single dashed vertical line
v[0]=0.0
u[ ]=distancel*
v[l]=1000
endif else if numsegment s EQ 3 then begin
;for 3 line segments draw 2 dashed lines....
u=[distance 1 * ,distance 1*15]
v=[(),1000]
;create x,y coordinates for two vertical dashed lines...
uu=[(distancel+distance2)* \(distancel+distance2)* 15]
w=[0,1000]
endif
print,u,v,uu,vv
;print for visual clarification that program is working correctly
endif else if direction EQ 1 then begin
;these are for north trending glaciers....
if numsegment s EQ 2 then begin
;for 2 line segments draw 1 vertical dashed line
u[0]=distancel*15
v[0]=0.0
;create x,y coordinates for single dashed line
u[l]=distancel*15
.... .....
....... , ofkUI doopa..:..- lOr _
.... ,'_ .. , ... "' .... '1 ....... < ...... _
.....
;<lUI< .... ). 10>10:>l0I I.) ,-. oi,.....,.11 d
7z
M ...... en. :-ua.
....
Iot
ni! )
....... '.,.rr( l)
.UU." IIoIol IT} C<I<'IfIJ, ..... of 00<>d \ ... "'.1 .u.t.:.I h""
If di"","", [Q (0 ...... 1
... ".me .... '" "",< I,r'_ or..-.J po ..... {.,.. '1",01 doohaJ I,,,,,,,
.1" ...... O'K'"'' ......... for n>l1rmIJ,"I Il ......
It """' . ...... "'" [Q 1 1H1:I1
.b",obr .. 5 _ld"Wh ...
u( 'l-oIi ......
....... q for .... d 5"cd , ...... 01 r-
"'., ....
", I I r ......
01 ' 1-" OJ
_It ..... It """, . .......... EQ ' ...........
. 1 ll" ................... l"='''' 11 __ .
u-!diounccl ' l ......... I IJ
""'i",II' 'I
;or.". NOfl.I,1I>l<O f.,.. '''0 .... ",.1 da<h<d hnn
""-I (d; "onee' .1i .....,2 )" d,,,,,,,,.1 I' )
....-{O. IOO\OJ
.. ,If
pn., ........... w
.pnnI .... , ....... oI."rl<_ "'"' ........... <>R. -" .. t,
.. 'lftlotlf di, .. tioo EQ t _ .....
_ OR b _trm<I, ........ l-
If _ . .... p EQ l _"'"
.10< 21,.., .. ,,_"" __ 1 ,cruaI d w:41, ..
"'...-.. ' fo<Rll$kdahcd I ...
'" 11"dl......,.1 ' I<
'"
v[l]=1000
endif else if numsegment s EQ 3 then begin
;for 3 line segments draw 2 vertical dashed lines...
u=[distancel * , distance 1 * 15]
v=[0,1000]
;create x,y coordinates for 2 vertical dashed lines
uu=[(distancel+distance2)* >,(distancel+distance2)* 15]
w=[0,1000]
endif
print,u,v,uu,vv ;print to confirm program is working correctly
endif
window,4
device,decomposed=0 ;tells IDL color is indexed via a color table
loadct,0 ;black and white color table
plot,x_list,tot_disp,charsize= ,ymargin=[ , ], backgrounds ,color= ,thick= ,$
;plot x coor. and total displacement
charthick= ,xthick= ,ythick=
oplot ,u,v,linestyle= ,color= ,thick=2
;plot dashed vertical lines representing location of beginning and ends of
;the separate line segments which comprise the cross section
oplot ,uu,vv,linestyle= ,color=^,thick=2
annotate ;add text to image
save_base=widget_auto_base(title-Save this display?',/xbig)
list=['yes','no']
sb = widget_base(save_base, /row)
wt = widget_toggle(sb, uvalue='toggle', list=list, /auto,xsize=35)
saveresul t = auto_wid_mng(save_base)
;save_result.toggle[0] = 0 ....yes
;save_result.toggle[0] = 1 ....no
if save_result.fogg7e EQ 0 then begin
glacier_directory=widget_auto_base(title-Select folder for output files')
output=widget_outf(glacier_directory,uvalue='output_directory',/auto,/directory,prompt
'Choose folder to hold cross section file')
directory_result=auto_wid_mng(glacier_directory)
display = tvrd(true= 1) ;read tv display
rotated_display=reverse(display,3)
.. dlr.", ltoum .. gmcn .. t;Q 1, btli
. 1Or 1 I,"".....,...; .. 2 ,'en"ol d.a>hcd lul<O,
..-(diOW>c:<I " l <.diotanc.l " 1 <I
voo( O. H)OOI
,o!'eat. ".y .-d,natCS for 2 ,enlCol dashed 10 .....
"u"'l (distant< 1 +diSW>t< 2)' I distan 1 +diOW>c:.2)" I

.. dlf
.. v.U".,"" ;pnnt to """form pro ....... " "ori.<nll totm:tl}'
.. dlr
" I.d .....
d.,'ltt.decompoood-G ;t<1lt IDL ""lor os ,ncIc\od ,.,. color labl<
... do, .1! ;bl.d and "hu. color Ioble
PIot.x_tisLto'-'Ii'l'.chanl ....
.plot, ooor. and toUI
elw1hi<t- l lhieJ:oo 1. ylhi<J:oo!
op.... .. v."nest)1"- 1.co_.lhi<J:oo!
;plot dashed ,en", .. 1 hnes ofl><>"""" and ends of
.lIN: _ h"" "'gm<n1S .. hl<h <OIIIpn'" lII< 0I'0I0 >'_
Oplot .uu.."".linestyl..- l .co_ .lhicl<-!
........ . odd ,"" to ' .....
sa,. _twc-,,Idktl_" .'o_ba>t(ti, _.lhn di<pla)"" ""hig)
list"'l)a'.'no1
sb _ .. .. ",_Ns<. /roW)
.... - " idktUouJt{sb. u, .. I...-'1oUI<. li .. _h ... IOII1o siz ... , <)
.. "._ ...... 1' 0010_" " _IIlDl( ..
."' ....... 1','''"'<10)
"",. """11.",",,,,0)
o .. yes
I __ no
&I .. ia-_ ditccoory-..-idl"_' . '0_ btif(ti,Ie-'Sc:Ia:, Ii>Ida- ror OIl,,",' filcs,
oulplll .... idln __ , ItJla<ia-_ directoty.uval ..... 'outPII'_ <hr<etory ) ... to) directoty.promp"
"Choooe fold to hold ..-.. ,""'" file')
dir<e'ory _ .... 1'- ,. _ .. 'Id_ ... l(JIa<i ... _directory)
disploy ' , wd(,,,,,,", ' ) .m<! II' d,,,,i.ay
routed _ d""l.yo . ... < rw( display. ' )
220
;rotate to display correctly when opened in ENVI
write_tiff, directoryjresult.ow/pw_^Vecfory +
'\longitudinal_cross_section.tif ,rotated_display, orientation= , /float
i
endif
endif else if orientation EQ I then begin ;transverse?
window, I
plot,x_list,tot_disp,charsize= ,ymargin=[ , ],background= ,color= ,thick= ,$
;plot x coor. and total displacements
charthick= 2 ,xthick=2 ,ythick= 2 ,/ynozero
annotate ;add text to image
save_base=widget_auto_base(title-Save this display?',/xbig)
list=['yesVno']
sb = widget_base(save_base, /row)
wt = widget_toggle(sb, uvalue-toggle' , list=list, /auto,xsize= *)
save_result = auto_wid_mng(save_base)
;save_result.toggle[0] = 0 ....yes
;save_result.toggle[0] = 1 ....no
if saveresult.fogg/e EQ 0 then begin
glacier_directory=widget_auto_base(title-Select folder for output files')
output=widget_outf(glacier_directory,uvalue='output_directory',/auto,/directory,prompt=
'Choose folder to hold cross section file')
directoryj*esult=auto_wid_mng(glacier_directory)
display - tvrd(true= I) ;read tv display
rotated_display=reverse(display,3)
;rotate to display correctly when opened in ENVI
i
write_tiff, directoryj-esult.ow/^w/d/recfory +
'\transverse_cross_section.tif,rotated_display, orientation= , /float
>
endif
endif
""
crow.t<> di."tay """,,,'Iy .. ben opened on "\' 1

,,-rl .. _ IIff, ditt<:1O<)' _ .... 11-"",1""_ di_,,,,?,
'\Ion,''''''naI_ 0f0II_ r .1OWI_ display. ori""lationoO, IfIoaJ.

... dlf
dlhh< If on<ntatiOll [Q I ,b .. 1>tt;1 , .... ,erse'
plOl.. li ... to! disp.<l'Iarsite" t ,ym"'1i . -I6,o],ba<;kground
- -
.pklo , .-. on<l ,,,,.1 d"l'ia<cn>rnt>
cl\otllU<t! .. lIliek.!,ythkt '!J)'IIOJ:<ro
..... ;odd I,,,, '" ''''"3<
.... c_ ..... , ,,'111,"_""'0_ h.>.;' i..-'Slv. 110;. d'splJY" /lCbii,)
'i,,-['yeo','DO,
sb _ .. 1d1l .. _bo!. .. , -e_bue.lrow)
..... - .. ldl.UOUk( .... ", .. llK-'Iogale', li" liS1. IW'o ...
"'''J .. ul . . .. '0_ .. id_m .... v.J .... )
... ' ...... 1I,'ouI<lOj 0 -)'OS
;0.,. "",,11."'i$kfOJ' I DO
&JM;i .. _ dirt<tOI}'"" Idll<l _"u to_ boO<'( .itle-'Selec, folder for 00","' fi Ies')
ou!pU ..... klR<!_O"t l(&l .. ... .,..,to) ditKtory.proml"-
'Cbooo< folder '" hold OfOIIIeCI'OII file')
dirtClOI)'_ ..... I' ..... 'o_ "'Id ... _di....,.OI}')
dioplay - h' rd(ltUt"" I) ,tt'3<l I" d'opl.y
""",od _ dioplal"' ... ....-{ di opl.y, ' )
,"'""1010 d,op!>} <:O<T<CU} .. _ opmod ,n

.... , . mf, dirtClOI)' feSul' .... 'pui dirICory "
.ror.akd_dioploy, orienwion-ll, InNl

... dlf
dlf
221
window, 6, xsize=tvcolumns*windowscale, ysize=tvrows*windowscale, retain=l
;open new window to plot location of line segments delineating location of cross section
tv, vectorfield,true=3 ;image interleaved
tvcolumns=tvcolumns* 1.0
;convert integer 'tvcolumns' to floating point
columns=columns* 1.0
;convert integer 'columns' to floating point
scale = tvcolumns/columns
;calc scale factor with which to increase size of line segments to fit vectorfield display
x_position = scale*x_position
;scale x coordinates of line ;segments to fit vectorfield display
y_position = scale*y_position
;scale y coordinates of line segments ;to fit vectorfield display
If numsegment s EQ I then begin
;if statements to populate empty places in x_position and y_position and prevent plotting
;a line segment to [0,0]. Empty places (those with zeros) are given same value as last
;point in cross section, so effectively these will be overlapping points.
x_position[ .l]=x_position[ 1 ]
x_position[ ]=x_position[l]
y_position[ ]=y_position[ ]
y_position[ ]=y_position[ ]
endif else if numsegment s EQ 2 then begin
x_position[ ]=x_position[2]
y_position[ ]=y_position[ ]
endif
plots,x_position,y_position, thick= ,color= ,linestyle=,/device
;plot line segments which delineate location of cross section
annotate ;label display
save_base=widget_auto_base(title-Save this display?',/xbig)
list=['yes','no']
sb = widget_base(save_base, /row)
wt = widget_toggle(sb, uvalue='toggle', list=list, /auto,xsize=35)
save_result = auto_wid_mng(save_base)
.. I.d ..... , . ... i..-rv>lumns' wioo., ... ",m. )'Ii_,..".... windo,,lI<m. retai..-I
;open _ ",000" 10 plol k><>1,"" oflo". .. .,.....,'" dol""""", k><.""" of,,,," """"",
",'oolurnn.-lVrolumns I .0
:<0'" "" tn"- l1ooI,nl PO''''

. ..",'M ,Ol<,.er ,oh .. .,.",,,o no..'OI1IO'OI
1<ale " lvoolumns/ool"",,,,
",k 0<01. f..:lOt .. uh "h"h 10 inc,.,... "" ofl,,,. s<p...u. 10 (0, d'>pbt)
.,.POSilion .. ... I. .,.POSilion
.... 1< , 00<ml,...us ofl,,,. ,..,........ .. 10 fil 'O<1Offi.1d d .. pl.y
y..Jl<lSilioo .. ... I.' y.JlOSi1ion
.",01< Y rooru,""'" ofl,,,. oqpn<tUs. .1<1 fil ''''\Ofr.<ld d,>ploy
Uo"", 1<1P'"'''' f.Q I I . .. 1><1;1
,r .... c:men" 10 """"I.,,, ""ply pl..:cs on , lQ"''''' mel I po,,,,,,,, and fMO'''''' plol"lIj
'" h ... _<'III to (n.O). Empty pla<<:I (1_" uh ",""')...., ""<'11 ......, ,.1 .. as last
.pot"' ,n.""", >1,.,.,. '" orr""" ely' ...... " ,III>< O'oRapp,n, PO'"'"
x..Jl<lSitionf! }-> .. l,o.hion( I J
x "'position( 1}-> I J
dlhb< If nwn_sejpl><'''' [Q ! , t..aI
pIlon( l }-> .,.posItion( :J
y"'position( l M "'position( 2 J
.. dlf
plo" . thick-l ,color-l
.plot 1on< oq;mrn .. "hH:h dol,,...,o Iocol"'" of ...... >1"",
OnnO!a, . 1obe1di'l'loy
.... ". b.. bowj';lk-'So,'. Iht. <lioplay?" Abi&}
USlofya','Dol
sb " "ldV,. bo>ti .. ,'.-"ue. /roW)
,,' - .. u ... .. to,uiz<-' <)
..... ... 1d. "'.IlI",,,_base)
222
;save__result.toggle[0] = 0 ....yes
;save result.toggle[0] = 1 ....no
if save_resulU<9gg/e EQ 0 then begin
location = tvrd(true=l) ;read tv dislay
rotated_location=reverse(location, )
;reverse to display properly when opened in ENVI
write_tiff, directoryresxiltoutputdirectory +
'\vectors_with_cross_sections.tif ,rotated_location, orientation= , /float
endif
finished=widget_auto_base(title-Program Complete!!',/xbig)
done=widget_string(finished,/auto_manage,uvalue='complete',prompt='Directories and
files successfully created',default='PROGRAM COMPLETE',xsize= )
result=auto_wid_mng(finished)
print, ' PROGRAM FINISHED'
end
."'< rflUiuoukl0] {) ,)'CO
resuh.touJqOj I -'II)
Irs .. , ........ llJoggl" F.Q 0 ' b'.boI'a
localiOll - , nd(tru.,.l ) ;rnd" d ..
row<dJoc .. ion-.... rw(Ioc .. ;on. ' )
... , ...... to d'splty I>I'OP<fly " ..... opt!'IO<! ,n VI
m

,,'rI,o _'iff. dim;tory _ rflUI1.owlpul, di,....,"'Y
w,th _ en-_ -.-uons.hr".,..11 location. ori ... I2lion"", IfIoaJ.

adl'
r.ni_ .... _ . " 10_ boO", It-'P, ..... au , Complelt'" hbiK)
-"' klltt. " ri.l<finished./""'. man&I" v.lueoo'complctc'.prompl- 'Dim;IOO<I .....
r.In-=osfIJlly <_I' ,der.ult-'PROGRAM COMPLETE' ...
mult-a. 10_ "Id _ "'" t( fin; sIKd)
prlo . ' PROGRAM F1N1SflEO'

APPENDIX G
DESTRIPEIMAGE.PRO
PRO Destripeimage, event
; program to destripe Landsat 4 or 5 TM PC A images.
;rise and run should be determined in ENVI beforehand by viewing up close the north
;edge of PC A image and determining how many pixels the rise and run is.
;the kernels created in this program assume the rise is actually negative, that is
;for every so many pixels of run, the image drops 1 pixel southward, for example:
; ######
; ###### .
; ###### run= 6 pixels
; ###### rise= 1 pixel (+ downward)
; ######
; ######
filename=envi_pickfile(title-Choose data file to destripe',filter='*.hdr')
;fmd envi format pea file to destripe
envi_open_file, filenames_fid=rfid,/no_realize ;open file, get rfld #
envi_file_query,rfid,nb=bands,ns=columns,nl=rows,dims=dims
;get columns, rows, bands, dimensions (starting x,y)
hdr_position=strpos(filename,\hdr')
;fmd position of '.hdr' so it can be removed in next command
filename=strmid(filename, ,hdr_position) ;remove '.hdr' ending from filename
openr, ,filename ;open image into memory
image_array=fltarr(columns,rows) ;create array to hold image array
readu, I ,image_array ;read envi file into array
"'PPENOI)( G
. '" dean"" Londoal '" S T\\ PC' '" IrDajIlCl.
,n .. ond !WI ......... dct<mllnWln "'''\'I "f<>iwld by "1'" 'na lIP c""" tho "'"'"
;all<' ofPC'''' II'TlAj!< ond dctmnlm"f lfWIy ""cI"he: nO< ond "'n ,s.
,Ihe: crealcd In thi. P"'S"'" .. ,,,,,,,, the: no< II Ol1 ... lIy n<pI"c. th.ot ..
:for ""<ry'" m.lllY pI'"I. ofrun, lhe: '''''1[< I p",,1 f<>r " .. mpl<'

11411
,
_.
nm b p .. "l.
"" ..
me= I l",cll<
" I
"" .....

fil.nalr_ .. o:IaIa file 1(1 -.;pc'.flh ....... ttdr')
.rood "",., f ....... p<a fik: 10 deanpc
.,..rf"l,.n ... ....... I"I'O"''l,dims-cl;m
. [It! col"m"" ",... ... bonds. dllllmllOOS (OWl"', '.y.
ttdr--.POSil;"" .. ll'J>O'(fil....." . bdr')
.r. od POO'"'''' so " "., .. moo' cd In ".", """"""""
op<tl r, ll ,fiknarne .<>pII"'"I" ,''''' m<ftIOf)'
224
params=widget_auto_base(title-Enter rise and run',/xbig)
list=['rise (pixels) (+ down):','run (pixels):*]
vals=[l,4]
output=widget_edit(params,uvalue='parametersVauto,prompt=
'Enter new value',dt=2,list=list,vals=vals)
params_result=auto_wid_mng(params)
rise = params_rGS\i\tparameters[0] ;transfer rise out of structure into variable
run = params_resu\t.parameters[\ ] ;transfer run out of structure into variable
bv_threshold=2.5 ;set initial value to subtract from light bands
factor=0.15
;set initial value of multiplier for standard deviation within which bv_threshold is
subtracted
adder=0.5 ;set initial value which is added to bvt hreshol d outside factor* standard
deviation
iterate ='y'
while iterate EQ 'y' do begin ;start while loop for feedback loop
;create kernel to be applied along scan line banding direction
kernel_length=fix(101/run) ;width of kernel is 101, length of kernel is function of' run'
kernelsize=[ * ,kernel_length] ;establish size of kernel
kernel=replicate(0,101 ,kernel_length) ;populate kernel with 0s
for i=0,kernel_length- ,rise do begin
kernel[i*run:i*run+run-1 ,i]=l ;create pattern of 1 s in kernel to match rise/run of image
endfor
fl = convol(image_array,kernel, ,/center,/edge_zero)
;apply first filter which is a lowpass (mean) filter
;create kernel to be applied across scan line bands
kernelsize=[l,33] ;kernel width is 1, kernel length is 33
kernel=replicate(-1,1,33) ;populate kernel with - Is for high pass filter
kernel[ 16]=3 2 ;central value of kernel is given value which equals +sum of all - Is within
;kernel
.. _ .. 'o_baM(lil lt-'Ent ....... and "",'J. biB>
l itl-{'n .. (P ... lIH ...".."j,' ...... [pi.eI.q
'''IP{ I,'']
""'put .. _ NlI,(.,....."l,."" u.-'porarnoI<ts' ; OUIO,pn>rnp1-
'En .......... value' ,<It- Z.li .. - li ... val<-val. )
paI"ilII' ... result_ .. to _ ... HI ... male(panrn.)
ri .. ... parDlS. resull.para",,,,<'I'Z(0) ;nnsf..- rue 00' of """,,'u,,, mt" ,-"".hl.
""' ... paramo. l'eSull.pa";".",m'[ l] N" "'" of SIru<'u", Inlo ,''';:abk
Iw __ ,SOl ,"01,11 ".,,,,, '" ,ublrx, r""" light Nnd<

.001 ,n"'" ''''ue of ",ultlpher r".-. ... "d.vd ......... 11"" "hm .. h,<h", threshol<l"
.... bux'l.'\I
add" "'" ,0",;0) "I"" "h",h .. od<Icd to bv Ihrahold "",<HI< fac'Of"-..!anl
dc,-,,,,,,,,,
",rcale "m<lto be "!'Ph .... ..,an 10 .... Nnd,"i J,,,,,,,,",
'"
k ...... ,) ."gtlI n.(l Ol/runj ." \doh of ....... '" 101. IlFh of);cmel il runc,,,,,, of'" .. '
k ..... ls4e-[ IOI ):;...,.I.' .. &thl .""",It ... "'" on""""
for ,-(I,kand) ""gth. I .ri .. do MJI.
",ruo. ,,''''em of I. '" m.,eh n>e'"", of '".at<
odf'"
n ... >o'-oljirruo&e ..... I. 1 DI / ....... / odae .....,)
'''PI''1 fi", fil .... "Ii",h ., ""'"....,""' .. ) fill..- -
",reato kemel to bo: oppl'ro ocrooo """" I ... bands
kernel, ;"",, I. ' ' I .),<mol .. rdlh " I. );<mol ""'lI'h " .ll
kemel! I0j- '! .""" .. 1 ,01 ... of'."",1 " 1"'" ,.1 ... "Noh eq .. r. -",m of.n 1 ... "h,n
....... 1
225
f2 = convol(fl,kernel,/center,/edge_zero) ;apply second filter (high pass) to output of 1st
;filter
minf2 - min(f2,/nan)
f2=f2-minf2 subtract min negative value to get all + values in array
max2=max(f2,/nan)
f2=f2*( /maxf2) scale values in f2 array to be between 0 and 255
f3=f2 ;create f3 array which will receive values which will be subtracted from original
;image
f2mean=mean(f2,/nan)
2stdv=stddev(f2,/nan)
for i=01 ,columns-l do begin ;for loops classify O according to 2 mean BVs and Stan.
Dev.
for j=0L,rows-l do begin
if f2[i,j] GT f2mean+f2stdv*factor then begin ;BV outside mean and factor*st.dev?
B[i,j]=bv_threshold + adder ;add threshold plus extra value
endif else if 2[ij] LE (f2mean+f2stdv) AND f2[i,j] GE (f2mean-f2stdv*factor) then
begin ;BV between mean and factor*st.dev.?
f3[i,j]= bvj hreshol d ;add threshold
endif else if 2[i,j] LT (f2mean-f2stdv*factor) then begin ;BV less than mean?
f3[i,j] = 0.0 ;add nothing
endif
endfor
endfor
f4 = image_array - 3 + 128
subtract noise image from good image to get clean image, add 128 to help keep values
;positive.
window, 2, xsize=l 000,ysize=l 000
tvscl, f4 ;view destriped image to gauge whether to iterate again or accept.
iterate_base=widget_auto_base(title-Iterate the process again?',/xbig)
list=['yes','no']
sb = widget_base(iterate_base, /row)
wt = widget_toggle(sb, uvalue='toggle', list=list, /auto,xsize=35)
save_result = auto_wid_mng(iterate_base)
if save_result.fogg/e[0] EQ 0 then iterate = y
22S
1'2 - sond nit.,. ("'iIh p.aaJ 10 oo'J>II' of 101
.rol'<I"
minf2 - ml.(f2Jnan)
f2- f2mmf2 ._, min 1qI'l"" , .. II>< 10 F' an Hluco In ..... Y
muf2 ...... (f2Jnan)
f2- f2 ' {Z"6Irna:<f2) ,""" ... , ... ," 1'2 amy 10 "" "..".." 0 ..-.J lSS
0 - 12 ,nn'e 13 ...... y ... nlO" .... ' " =<1, ... I,," ... hlo" .. ,11 be ....,.....,11 f""" ""111'"
,-
12mcan- ..... (12Jnm)
12$ld .... ,dd .. {12/1W11
for i.,(" .colwnns- I do lM-K'o .ro. kIops olui!ify 13 aoronlmJ '" r. = B". ..-.J Stall.

, .. j oo(l l .ro-o .... , do ilqi
d'f .,,,, If l2[iJJ L[ (12m<an+12$ldv) A.. .. D G[ (12mcan12$ld,' f .. lOI) Ibo.
bord BV """'om mean and f.."",... ... oJe-?
D[i,i J- b,_'hrahoki
dif .Ii. " l2[i,ij l.T (I2moan l'2otdv' r"'''''J ,b'.lM-KI H\, .... ""'" ",.,..,'
l:I[i,i) - U.O ,Idolnollu"s
dl'
.. dfo.
,adro'
f4 - i"""'_ .... Y_I:I+
",ubnot no..., lmag< fiom ,m'lI< 10 g<I .Io." Im>go.1dol118 '0 IIolp \ .1_
4">JO
t
" ,
" I.dow . l .",i>.e- I ooo.)'Oi_l 00II
" ... f4 _nptd ' ..... 10 pus< .. .."I\cr '0 Il<rOIe "i',n Q{ ""'cpI
b .. ,i,le-"lltrlt< lbe IX"''' 1IPi .,. hbig)
li"; "ya' ."no'J
.., _ ... t._baoo. froy,.)
" 1- 'OU' .... ",'. , ..... ""'"'"". li5l- li5l. ' .. IO ... i .... ' ''I
.. .. kI_m.r( il<rOl<_bue)
EQ 0 ,h il ..... - Y
226
if save_resulUogg7e[0] EQ 1 then iterate = 'n'
;save_result.toggle[0] = 0 ....yes
;save_result.toggle[0] = 1 ....no
if iterate EQ y then begin
adjust_base=widget_autoJbase(title='Adjust BV to subtract?',/xbig)
list=['yes','no']
sb = widget_base(adjust_base, /row)
wt = widget_toggle(sb, uvalue='toggle', list=list, /auto,xsize=35)
adjust_result = auto_wid_mng(adjust_base)
if adjustj"esult.fogg7e[ ] EQ then adjustment - 'y'
if adjust_result.togg/e[ ] EQ then adjustment = 'n'
;adjust_result.toggle[0] = 0 ....yes
;adjust_result.toggle[0] = 1 ....no
image_array=f4 ;if image still needs more destiping, set newly created partially destriped
;image equal to original image and run process again
if adjustment EQ 'y' then begin
thresholds=widget_auto_base(title='Edit Parameters',/xbig)
list=['BV to subtract from light stripes','Scale factor for St.Dev. of BV','Value added to
BV outside St.Dev.','Mean of noise','St.Dev. of noise']
val s=[b v_threshold, factor, adder, f2mean,f2stdv]
output=widget_edit(thresholds,uvalue='thresholds',/auto,prompt='Enter new
values',dt=4,fleld=2,list=list,vals=vals)
thresholds_result=auto_wid_mng(thresholds)
bv_threshold=thresholds_result.^re5/i6>/J5[0] ;place new parameters into variables
factotthresho\ds_resu\tthresholds[\ ]
adder=thresholds_resulU/zras/2o/ds[ ]
endif
endif
endwhile ;end of feedback loop
map_info=envi_get_map_info(fid=rfid)
;get map projection and geolocation info from original file to use in header of output files
inherit = envi_set_inheritance(rfid,dims, /full)
;get additional header info from original file to use in header of output files
Ir .. " . . ...... IUO!l!'IO) [Q I , i'....,. -...
,sa,. """"'OSikIOJ '0 " yeS
,"" ..,..It_touIeI0j ' 1 __ 110
"'j" .. ... ,u'''. b.OC'(li" .... AdJ\lIIIIV J<biaJ
lioI-('ya"""'l
ob .. .. .. odj U'_' ",,",,'J
.. , - "ldl<UouIsb. .''''ue-'loJIIc', list-lill.
odj .... """II _ ""'0 . .. 1d. mDr{odj .... ) .... )
If odj"'U., .. IIJegg't[O) Q 0 til odj....".", - Y
If odj .. sUaoll,roal<\Oj EQ I t b odj..uncrn - ....
011)"" n:su1t ."'UkIOj-- 0 _ -l""
' ... , .... ...."" '''tlII1.{1I1 I ....
,,.
irna&<. arTlI)""f4 "r,m.", 1,,11 ...,.,.;. """" (\aI,p'''Io >eO n<>\ Iy <Iftlod fWU.lly deslnpal
"m"ll< "loa!,,, o<>d run phJSS.pn
Ih dj .. Im<tl' EQ Y '."boa"
P ......... jxbiil
li"",\'BV 1O...tKrxI ""'" l'aN ...,.,..','Scale: r..,,,,, Ibo- S',[)ev. or BV,'Vol"" _ 10
BV __ S'.o.:.- '.'M..., of no"". 'St.Dev . .. r.......,'
valP{b'",
ou'p .. '_Id .... !iI(_Ids. ..... ' ..... 'thresIIoId.'J ... ""p"""pI""EnIer .......
,111 ..... .<1<--'. field_ ! ,li". list. ".1 .... 111.'
thresholds _ rauh_ .. to _ .. Id _ mDr( Ilunhokb)
b. .ploc< I><" panmeI<n ,nt<> ,ariableo
fO<1oo-1tt!n/>olds _ I )

IN!> _in _ .'1..tt1_ "'. P J nfo( fid-rlid)
.... <Mp 1""')00""" and looloc.""n Info from ""SInai m .. '" .... In h<adocr of ou'pu, fit.:.
inIIcri, - ... ,1_ .. ,_ioktrl' trfid,dim.,lfull)
.,a odd,,,,,,,") hooJer 'nfo from onl!"'"l fik: "'''''' '" I><atkt of ou'pu, fit.:.
227
;write fl... .result of first filter which should have scanline means
envi_write_envi_file, fl,out_name=filename + '_fr,offset= ,nb= ,nl=rows,$
ns=columns,data_type=4 ,/no_realize,bnames=['scanline_means'] ,inherit=inherit,$
map_info=map_info
;write f2....result of second filter, should have noise and artifacts, no good data from
;original file
envi_write_envi_file, f2,out_name=filename + '_f2',offset= ,nb= ,nl=rows,$
ns=columns,data_type=i,/no_realize,bnames=['noise
,
],inherit=inherit,map_info=ma^
o
;write f3 will contain values which will be subtracted from original file to eliminate
; scanline ;bands
envi_write_envi_f!le, f3,out_name=filename + '_f3',offset=0,nb=l,nl=rows,$
ns=columns,data_type= 4 ,/no_realize,bnames=['subtracted_values'] ,inherit=inherit,$
map_info=map_info
;write f4....destriped image
envi_write_envi_file, f4,out_name=filename + '_destriped',offset= ,nb^ ,nl=rows,$
ns=colurims,dataJ;ype=4,/noj-ealize,bnames=[
,
pca_destriped
,
],inherit=iru^
map_info=map_info
print, 'PROGRAM FINISHED'
finished=widget_auto_base(title-Program Complete! !',/xbig)
done=widget_string(finished,/auto_manage,uvalue='complete',prompt='Successfully
destriped image',default='PROGRAM COMPLETE',xsize=50)
result=auto_wid_mng(finished)
close,! 1
END
n .,.,..1, of fi ... fih.".,,,,<h.,.,.,,,, ha, .. S<aIII" ... meano
t 't ,,-nit _ '1_ n k , n "",,,_ namc-fitcnam.: + '_ n' ,oI1kt-o.nb-1 .nl-rowlS
,..,..",1 .............. _'ype-lJrto _ rali ... bnatnrp('O<ml"' __ 1.inboritoinberit$
""II_tnr_Jnr.
, .. 'nl. t:! '""" of 0<C0nd filt .... "-... /Ia,-. ""' .. .,... on,f.,($. "" aood,bl. r"""
:on" .... m
.. ,1_ .. rI,._ ' _OI., f2.ou'_twne"fil<rwne + '_ IT .ol1kto(l.nb- I,nJ.", ... ..s
m
no-rolllDlllt,dat.o_,ype-I./m_rcalIU.bnamcs"\'no,.cJ.inhcrit..w..ril,rn2p_inr"""",,_ inr
"
.... nl. f3 .. ,II ron!> .. " ", ..... ho<h " ,II ... oubtDcll from onlP .... nI. '" .I ,m,""'.
:0<2111" ... ;_
1_ .. -rl,o_ ,'t m . f3 ...... _name-fi\ename + '_
no-rohunns.d.a .. _ t)'pe-Voo _ ..... i ... bnam..-( .. btr>< .... _ ".,u .. 1.inheri'-inh<rit.S
mop)"f_).f"
... nl< .dosInpro ''''"lI''
.... e ,,'rU<_ ,,_m ... + " "''''r-'' .<>If""' -<l ....... , .nl'""',,
...-ro1 .............. _, yp-.lJno _ rnI4<.bnam..-('pea _
nup _ info-rn.;Unfo
'PROORAM FlI'ISUED'
r",,>hcd_ _ _ b.W'( title-1'. "" am Compl<t.,,' "" bi il
done-.. klJt' _"'i .r(finisllodj."IO_II'IaI'>a&< , al ..... oompk1c',prompt-'S""" ... folly
dosInp<d ,,,,......d<fiuIt-'PROGRA.1.t COMPLTE',,"ize-<o)
resu_ .,o_ .. id_mnd fuUohed)

APPENDIX H
FLOW_LINES.PRO
PRO Fl owLi nes, event
;This program draws flow lines on a glacier to test the directional accuracy of a velocity
;field.
;The cursor is used, RIGHT click, to choose seed points which are traced along the
;velocity field
;and their course is plotted on an image of the glacier.
;Any number of flow lines can be plotted...
glacier_image_path=envi_pickfile(title='Find glacier image (jpeg2000
format)',filter='*.jp2')
glacier_image=read_image(glacier_image_path)
5
5
x_disp_path=envi_pickfile(title-Find interpolated x velocity in RASTERS folder (tif
format)',filter='*.tif)
x_velocity = read_tiff(x_disp_path)
5
rasters_j3osition=strpos(x_disp_path,'rasters') ;find position of
;'rasters\interpolated_x_displacement.tif so it can be removed in next command
filename=strmid(x_disp_path, i ,rasters_position) ;remove
;'rasters\interpolated x_dislacement.tif ending from filename
yvel oci t y = read_tiff(filename+'\rasters\interpolated_y_velocity.tif)
?
n
total_displacement =
read_image(filename+'\rasters\interpolated_velocity_magnitude.tif)
APPENDIX l!
.Th" JH"I'it"'" d,.,,, no,, \,,,.,. "" gboo,er '0 ' ... tilt d,rcc".,...1 of.
. f'old
.The: <uno< .. .....J. RIGHT <lI<k. "' <I>0000 Iftd PO'''''' "'luch "'" tro<ed ....
. '<loc"r ro.k!
.1Ind ,ho,,,, ..... ,,,, It piQued "" an ''''"< of 11", ,boo,cr,
"'nr numb<"r ofllo" lI",,an ho ploned_
...................... , ............ ................................... ..
gloc;er _imas< ..J",,,.,!pk tille-'find Ii""'" ;"'"< (JprslOOO
....
glri .. .. d .. _imal< j>Oth)


' _disp j>O ....... ' JlkUlllille-"Fino:\ ;nlOfllOlat\ . v<Io<:II1 in IlASTERS rokk< (tif
fonnaly.filter-"" .lil")
_velocity ",ad _ tliT(, _ disp JIOthl

rul ... ption .. , 1"fIO"(' _ disp JI>IlI. ........ ") .find polIt"'" or
, ......... ,"''''''''I''ed , d,,,,I""""""'t " f 110 "'on be "","""ed '" ... " """'nWld
r, I<name-otrmld( . _ disp J"Ih. J'O'Iilion) .,..."." .
,h ..... m'apoloted , di>iOmrn""r rnci,n m.... folrnamc:

y _ "oloci'y r.ad _ ' iiT( fi1<nam<->'Ins,,,,,,,,,crp>la,ed J ,doclty.l1r)


toUl_displOmrnl .
ad_I"'.g fi' .. ...,... ....... m\inoerpo ... ed_ ,.10<:"1 __ "ode.u!,)
229
j
total_displacement=reverse(total_displacement,2) ;reverse to display properly
x_displacement=float(x_velocity)
;convert byte to float...for some reason x,y velocity rasters open in byte format
y_displacement=float(y_velocity)
x_displacement=reverse(x_displacement,2) ;reverse to orient correctly
y_displacement=reverse(y_displacement, 2)
how_big=size(x_displacement) ;get size of displacement array
columns=how_big[ 1 ]
rows=how_big[2 ]
coords=intarr(2) ;create array to hold x,y coordinates of cursor-selected seed points
data=fltarr( ,columns,rows)
;create data array which will hold x and y displacement values for particletrace routine
data[0,*,*]=x_displacement ;put x displacements into data array
data[ I ,*,*]=y_displacement ;put y displacements into data array
device,decomposed=
loadct,0 ;load black and white color table
window, 4,xsize=columns,ysize=rows ;create window to display glacier image
tvscl,glacier_image
window, ,xsize=columns,ysize=rows
;create window of proper size to display total displacement array
tv,total_displacement ;display total displacement array
flag=0 ;set flag for the WHILE loop
while (flag EQ II) do begin ;WHILE loop to choose seed points and plot flow lines.
wset,2 ;activate image with velocity magnitude to pick seed point
cursor,x,y,/device,/down ;get seed point with RIGHT mouse click
coords[(),0]=x ;put x,y coordinates of seed point into array
coords[ , ]=y
seeds=[coords[ , ],coords[ 1,0]] ;array of seed points necessary for particle tracing
procedure
loadct, 13 ;load rainbow color table


"''''''"t1 bY'<' to lloal. '.y ..... on opm ,n bY'<' rom\&!
... t(y_ vclo<ily)
, _diopl""rnlan' ", .m ..... 10 on",,' ,,",wly
y 3isplac.,. .... '. ,., r>r(y _ dlsplaccmett,.) )
how_big-olu(. _displKClTlCDt} ;"" oi of d...,laca"a" ttny
""1= ..... 1>0 ... _billl l ]
"",,-.-how _billl l ]
""'''''$'''"to''11) ;Creal. """Y I" hold x.y """nIL .. , .. of .....,.ocloc'oo ..,..j pom,"
da\a. n'.''11.oohunnuo .... )
;crn/C d .... om)' .. h"h ",II hold oM y d'splMmt ... , , . 1 ... fOr pattldo ..... , nl<IIi ...
<bta[o,' .]-x_displa=non' '1"'" dlsplamrn .. 10'0 doto .... y
da,aI. 1.' .'] y-displ"".."..., ,pm y .. '"to daIa ..... )
d,,'kr,docompooedoO
... d<t.n ,load on..! ""h,1< """"" 1.>1>1
.. ,."' ..... ,odow '0 d,spl.y llxl<f lmoll<
"""'!.glacier image
I.do" .1,xliU"l:OIwnns.ysizeorov.'.
'",*"" ofp<op<r SIf, 10 d'spl ,.,..1 d,sp\acern<ftl ..... Y
,,".,oll.l_displMmt ... , ;dlspl.y '01,1 d,sp'-:<mrn' ..... y
"ag-(l ."'" n'lI f.,..,he WHILE loop
" 'bll< (n"ll F- Q 0) do 11<11" . WHILE loop 10 .bo<>o< S<ftI potnts ond ploo no.. hnos.
"' .... ) ".,,,,,..., 'mas< .. Ltlt ",Io<n)' mapitud< '0 P'" S<ftI PO'"'
,uroo, ,x.y; de>'i,,,,; doII .. JI<I ""'" I""n, ""It RI(;IIT _ .h.l
coor<b(O, O]-x ;put ' .y ..,.,ru,rwcs of""'" po,nt ,"'0 """Y
oooods/ l. "]-Y
Je<ili-{ooonloI. O,O).ooordsI 1,0]] , ..... yof 00<\l PO'"'' _<OAr)' (or I'l'l"k """'"'
,""""""
230
PARTICLE JTRACE,data,seeds,verts,conn,max_iterations=500
;particle tracing procedure
x_points=verts[ ,*] ;place x vertices of flow line into x array for plotting
y_points=verts[ I ,*] ;place y vertices of flow line into y array for plotting
wset,4 ;activate window with glacier image
plots, x_points, y_points ,color=l50,thick=2,linestyle= ,/device
;plot flow line using x,y vertices
choose = widget_auto_base(title-Plot another streamline?')
list = ['Yes', 'No']
we = widget__pmenu(choose, list=list, uvalue='choose', /auto,prompt='Choose another
point?')
chooseresult = auto_wid_mng(choose)
;chooseresult.choose = 0....yes
;chooseresult.choose = l....no
choice=chooseresult.c/zoo5e initialize variable
if choice EQ 0 then flag = 0 ;yes, choose another point
if choice EQ 1 then flag =1 ;no, end while loop, finished choosing seeds
endwhile
annotate, window=4 ;annotate glacier image with flow lines
save = widget_auto_base(title='Save display?')
list = ['Yes', 'No']
we = widgetjpmenu(save, list=list, uvalue-save' , /auto,prompt- Save this image?')
saveresult = auto_wid_mng(save)
;saveresult.save = 0....yes
;saveresult.save = l....no
saved=saveresult.5flve initialize variable
if saved EQ 0 then begin
streamlines = tvrd(true=l) ;read tv dislay
streamlines=reverse(streamlines,3) ;reverse to display properly when opened in ENVI
write_tiff, filename + '\rasters\streamlines.tif ,streamlines,orientation= ,/float
endif else if saved EQ I then begin
endif
finished=widget_auto_base(title-Program Complete!!',/xbig)
' ARTLCLE_ dolo ' .... U 'cnt,C<IIU'I,RWI_ileril' iono-<OO
,pani<: Ie tnoc, OJ proccdur<
x""poin"-"<I"III(Q.O] ;place. "<I"Ii< .. or no.. h"" ,n"" ..ray fOr pl""'n,
y..,POin..-."a't$( l . ] .place y ,'11< .. of no.. I,,,,, ,"'0 y ..... y for ploo"",
plo .... ..,.POin,,, Y""poiruJ .>kN- 1
:plolllo,,' II"" .""11 '.1 .. ",ees
.hooK - .. 'ldt<1_".,o_b".ojti,I ... 'l'Ioo ....,obcr
Ii" ,, (', ..... ')<;01
,,'e - " 'd' .. ..JI ...... (choooe. li"Eli ... u ... ono!IIet
,.,..,.,
01""' ....... 11 " ".'o_"Id_m"iI<hoooe)
;<"'-""'sull,ehoooe O._)"OS
;<1""'''' ..... 1',<1>000<: 1" no
If cho'" EQ U I " flag " 0 .)n <hoooe """' ..... fJO,m
If choit:. t:Q I I tbJ - 1 :00. rnd .. hik kIo!>. fimshed .""""""11 .......
.. ,'. - "'ldl"'_'.'O_ bOH(ti, le-'Savo display"')
lil1 - (' Y .... '1\;0' ]
we - .. Id, .. ..JI_".( .. ,' . liSl- li., . ,'.I ............. iI.lO.prompo-s.'. tIIi. ,.--n
,,"auul, - '.'0_ wld_mnil .. ' -e)
'''I<",""lua,. 0 .. ) ....
... ,'...,..lua,. I _no
Ir .. , cd t:Q 0 I><I'"
'ltUmlinos " n 'rd(we- I ) ...,..t" d .. l.y
I) ,r<' .... 10 d"l'l.y ",,,,,,,,Iy ,,""" ,n E'>:VI
_ rl1<_dff.filerwne + -...._li __
.. dirt ... If .. ,"Cd EQ 1
dif
231
end
done^widget_string(finished,/auto_manage,uvalue='complete',prompt=Tlow lines
fmished
,
,default='PROGRAMCOMPLETE
,
,xsize=50)
result=auto_wid_mng(fmished)
print, ' PROGRAM FINISHED'
...,.,.,....'ldt<U 1 rI. K( finisI>e<IJ&IIlO _1NI>I&" "al .... O>mplol .. .prompl-1'\Qoo" lineo
fUlUbod.d. faul ... 'PROGRAM COMPI.TE".xliz.-J)
~ I t " 10_" kI_ mol( finishod)
prl PROGRA.\I F1SISHED'
'"
REFERENCES
Adalgeirsdottir, G., Echelmeyer, K.A., & Harrison, W.D. (1998). Elevation and volume
changes on the Harding Icefield, Alaska. Journal of Glaciology, 44 (148),
570-582.
Anuta, P.E. (1970). Spatial registration of multispectral and multitemporal digital
imagery using fast Fourier Transform techniques, IEEE Transactions on
Geoscience Electronics; GE-8 (4), 353-368.
Arendt, A.A., Echelmeyer, K.A., Harrison, W.D., Lingle, C.S., & Valentine, V.B. (2002).
Rapid wastage of Alaska glaciers and their contribution to rising sea-level.
Science, 297 (5580), 382-386.
Arendt, A.A., Luthcke, S.B., Larsen, C.F., Abdalati, W., Krabill, W.B., & Beedle, MJ .
(2008). Validation of high-resolution GRACE mascon estimates of glacier mass
changes in the St Elias Mountain, Alaska, USA, using aircraft laser altimetry.
Journal of Glaciology, 54 (188), 778-785.
Ayoub, F., Leprince, S., & Keene, L. (2009). User' s guide to COSI-Corr. California
Institute of Technology Tectonics Observatory available at: http://www.
tectonics.caltech.edu/slip history/spotcoseis/index.html.
Bernstein, R. (1983). Image geometry and rectification. In R. N. Colwell (Ed.), Manual
of Remote Sensing (pp. 881-884). Falls Church, VA: American Society of
Photogrammetry.
Berthier, E., Raup, B., & Scambos, T. (2003). New velocity map and mass-balance
estimate of Mertz Glacier, East Antartica, derived from Landsat sequential
imagery. Journal of Glaciology, 49 (167), 503-511.
Bindschadler, R.A., & Scambos, T. A. (1991). Satellite-image-derived velocity
field of an Antarctic Ice Stream. Science, 252 (5003), 242-246.
Bindschadler, R.A., Fahnstock, M.A., Skvarca, P., & Scambos, T.A. (1994). Surface-
velocity field of the northern Larsen Ice Shelf, Antarctica. Annals of Glaciology,
20,319-326.
REFERENCES
Adalgeirsd6ttir, G., Echelmeyer, K.A., & Harrison, W.D. (1998). Elevation and volume
changes on the Harding Icefield, Alaska. Journal of Glaciology, 44 (148),
570-582.
Anuta, P.E. (1970). Spatial registration of multispectral and multitemporal digital
imagery using fast Fourier Transform techniques, IEEE Transactions on
Geoscience Electronics, GE-8 (4),353-368.
Arendt, AA, Echelmeyer, K.A., Harrison, W.D., Lingle, C.S., & Valentine, V.R (2002).
Rapid wastage of Alaska glaciers and their contribution to rising sea-level.
Science, 297 (5580), 382-386.
Arendt, AA, Luthcke, S.R, Larsen, C.F., Abdalati, W., Krabill, W.R, & Beedle, M.J.
(2008). Validation of high-resolution GRACE mas con estimates of glacier mass
changes in the St Elias Mountain, Alaska, USA, using aircraft laser altimetry.
Journal of Glaciology, 54 (188), 778-785.
Ayoub, F., Leprince, S., & Keene, L. (2009). User's guide to COSI-Corr. California
Institute of Technology Tectonics Observatory available at: http://www.
tectonics.caltech.edulslip history/spot_coseis/index.html.
Bernstein, R. (1983). Image geometry and rectification. In R N. Colwell (Ed.), Manual
of Remote Sensing (pp. 881-884). Falls Church, VA: American Society of
Photogrammetry.
Berthier, E., Raup, R, & Scambos, T. (2003). New velocity map and mass-balance
estimate of Mertz Glacier, East Antartica, derived from Landsat sequential
imagery. Journal of Glaciology, 49 (167),503-511.
Bindschadler, RA, & Scambos, T. A (1991). Satellite-image-derived velocity
field of an Antarctic Ice Stream. Science, 252 (5003), 242-246.
Bindschadler, RA, Fahnstock, M.A., Skvarca, P., & Scambos, T.A (1994). Surface-
velocity field of the northern Larsen Ice Shelf, Antarctica. Annals of Glaciology,
20, 319-326.
233
Bindschadler, R., Vornberger, P., Blankenship, D., Scambos, T., & Jacobel, R. (1996).
Surface velocity and mass balance of Ice Streams D and E, West Antarctica.
Journal of Glaciology, 42 (142), 461-475.
Bruckner, M.Z., Goetz, S., Ham, N., Strasser, J., & Lawson, D. (2005). Ice velocities near
the terminus of the Matanuska Glacier, Alaska, during an unseasonably
warm melt season. Geological Society of America, 39
th
Annual Meeting (May
2005)37(5), 83.
California Institute of Technology, Caltech Tectonics Observatory available at:
http://www.tectonics.caltech.edu/slip history/spotcoseis/index.html.
Copland, L., Sharp, M., & Dowdeswell, J. (2003). The distribution and flow
characteristics of surge-type glaciers in the Canadian High Arctic. Annals of
Glaciology, 36 (1), 73-81.
Copland, L., Pope, S., Bishop, M., Shroder, J., Clendon, P., Bush, A., Kamp, U.,
Seong, Y. B., & Owen, L. (2009). Glacier velocities across the central
Karakoram, Annals of Glaciology, 50 (52), 1-9.
Crippen, R. E. (1989). A simple filtering routine for the cosmetic removal of scan-line
noise from Landsat TM P-tape imagery. Photogrammetric Engineering and
Remote Sensing, 55, 327-331.
Dowdeswell, J.A., & Benham, T.J. (2003). A surge of Perseibreen, Svalbard, examined
using aerial photography and ASTER high resolution satellite imagery. Polar
Research, 22, 373-383.
Fatland, D.R., Lingle, C.S., & Truffer, M. (2003). A surface motion survey of Black
Rapids Glacier, Alaska, U.S.A. Annals of Glaciology, 36, 29-36.
Forstner, W. (1982). On the geometric precision of digital correlation. In Proceedings
I.S.P.R.S. Commission III Symposium, Helsinki, 24 (3), 176-189.
Fudge, T.J., Harper, J.T., Humphrey, N.F., & Pfeffer, W.T. (2008). Diurnal fluctuations
in surface water input, subglacial water pressure, stream discharge, and glacier
surface velocity, Bench Glacier, Alaska. Journal of Glaciology, 54 (185),
297-306.
Global Land Cover Facility available at: www.landcover.org.
Gray, A. L., Short, N., Mattar, K. E., & Jezek, K. C. (2001). Velocities and flux of the
Filchner Ice Shelf and its tributaries determined from speckle tracking
interferometry. Canadian Journal of Remote Sensing, 27 (3), 193-206
233
Bindschadler, R, Vornberger, P., Blankenship, D., Scambos, T., & Jacobel, R (1996).
Surface velocity and mass balance of Ice Streams D and E, West Antarctica.
Journal o/Glaciology, 42 (142), 461-475.
Bruckner, M.Z., Goetz, S., Ham, N., Strasser, J., & Lawson, D. (2005). Ice velocities near
the terminus of the Matanuska Glacier, Alaska, during an unseasonably
warm melt season. Geological Society 0/ America, 39
th
Annual Meeting (May
2005) 37 (5), 83.
California Institute of Technology, Caltech Tectonics Observatory available at:
http://www . tectonics.caltech. edu/ slip hi story/ spot _ coseis/index.html.
Copland, L., Sharp, M., & Dowdeswell, J. (2003). The distribution and flow
characteristics of surge-type glaciers in the Canadian High Arctic. Annals 0/
Glaciology, 36 (1), 73-81.
Copland, L., Pope, S., Bishop, M., Shroder, J., Clendon, P., Bush, A., Kamp, u.,
Seong, Y. B., & Owen, L. (2009). Glacier velocities across the central
Karakoram, Annals o/Glaciology, 50 (52), 1-9.
Crippen, R E. (1989). A simple filtering routine for the cosmetic removal of scan-line
noise from Landsat TM P-tape imagery. Photogrammetric Engineering and
Remote Sensing, 55, 327-331.
Dowdeswell, J.A., & Benham, T.J. (2003). A surge ofPerseibreen, Svalbard, examined
using aerial photography and ASTER high resolution satellite imagery. Polar
Research, 22, 373-383.
Fatland, D.R, Lingle, C.S., & Truffer, M. (2003). A surface motion survey of Black
Rapids Glacier, Alaska, U.S.A. Annals o/Glaciology, 36, 29-36.
Forstner, W. (1982). On the geometric precision of digital correlation. In Proceedings
ISP.R.S Commission III Symposium, Helsinki, 24 (3), 176-189.
Fudge, TJ., Harper, J.T., Humphrey, N.F., & Pfeffer, W.T. (2008). Diurnal fluctuations
in surface water input, subglacial water pressure, stream discharge, and glacier
surface velocity, Bench Glacier, Alaska. Journal o/Glaciology, 54 (185),
297-306.
Global Land Cover Facility available at: www.landcover.org.
Gray, A. L., Short, N., Mattar, K. E., & Jezek, K. C. (2001). Velocities and flux of the
Filchner Ice Shelf and its tributaries determined from speckle tracking
interferometry. Canadian Journal o/Remote Sensing, 27 (3), 193-206
234
Hall, D.K., Giffen, B.A., & Chien, J. (2005). Changes in the Harding Icefield and the
Grewingk-Yalik Glacier Complex, Proceedings of the 62
nd
Eastern Snow
Conference, Canadian Geophysical Union, Waterloo, Ont., Canada.
Harper, J.T., Humphrey, N.F., & Greenwood, M.C. (2002). Basal conditions and glacier
motion during the winter/spring transition, Worthington Glacier, Alaska, U.S.A.
Journal of Glaciology, 48 (160), 42-50.
Howat, I., Joughin, I., Fahnstock, M., Smith, B., & Scambos, T. (2008). Synchronous
retreat and acceleration of southeast Greenland outlet glaciers 2000-06: ice
dynamics and coupling to climate. Journal of Glaciology, 54 (187), 646-660.
Hunter, L.E., Powell, R.D., & Lawson, D.E. (1996). Flux of debris transported by ice at
three Alaskan tidewater glaciers. Journal of Glaciology, 42 (140), 123-135.
Jackson, M., Brown, I., & Elvehoy, H. (2005). Velocity measurements on Engabreen,
Norway, Annals of Glaciology, 42, 29-34.
Joughin, I. (2002). Ice-sheet velocity mapping: a combined interferometric and speckle-
tracking approach. Annals of Glaciology, 34 (1), 195-201.
Joughin, I., Abdalati, W., & Fahnestock, M. (2004). Large fluctuations in speed on
Greenland's Jakobshavn Isbrae glacier. Nature, 432, 608-610.
Kaab, A. (2002). Monitoring high-mountain terrain deformation from repeated air- and
spaceborne optical data; examples using digital aerial imagery and ASTER data.
Photogrammetry and Remote Sensing, 57, 39-52.
Kaab, A. (2005). Combination of SRTM3 and repeat ASTER data for deriving alpine
glacier flow velocities in the Bhutan Himalaya. Remote Sensing of Environment,
94, 463-474.
Kaab, A., Lefauconnier, B., & Melvold, K. (2005). Flow field of Kronebreen, Svalbard,
using repeated Landsat 7 and ASTER data. Annals of Glaciology, 42, 7-13.
Kaab, A., & Vollmer, M. (2000). Surface geometry, thickness changes and flow fields
on creeping mountain permafrost: Automatic extraction by digital image
analysis. Permafrost and Periglacial Processes, 11 (4), 315-326.
Konig, M., Winther, J., & Isaksson, E. (2001). Measuring snow and glacier ice properties
from satellite. Reviews of Geophysics, 39 (1), 1-27.
Krimmel, R.M., & Vaughn, B.H. (1987). Columbia Glacier, Alaska: Changes in velocity
1977-1986. Journal of Geophysical Research, 92 (B9), 8961-8968.
Hall, D.K., Giffen, B.A., & Chien, J. (2005). Changes in the Harding Icefield and the
Grewingk-Yalik Glacier Complex, Proceedings of the 62
nd
Eastern Snow
Conference, Canadian Geophysical Union, Waterloo, Ont., Canada.
234
Harper, J.T., Humphrey, N.F., & Greenwood, M.C. (2002). Basal conditions and glacier
motion during the winter/spring transition, Worthington Glacier, Alaska, U.S.A.
Journal of Glaciology, 48 (160),42-50.
Howat, 1., Joughin, 1., Fahnstock, M., Smith, B., & Scambos, T. (2008). Synchronous
retreat and acceleration of southeast Greenland outlet glaciers 2000-06: ice
dynamics and coupling to climate. Journal of Glaciology, 54 (187), 646-660.
Hunter, L.E., Powell, R.D., & Lawson, D.E. (1996). Flux of debris transported by ice at
three Alaskan tidewater glaciers. Journal of Glaciology, 42 (140), 123-135.
Jackson, M., Brown, 1., & Elveh0y, H. (2005). Velocity measurements on Engabreen,
Norway, Annals of Glaciology, 42,29-34.
Joughin,1. (2002). Ice-sheet velocity mapping: a combined interferometric and speckle-
tracking approach. Annals of Glaciology, 34 (1), 195-201.
Joughin, 1., Abdalati, W., & Fahnestock, M. (2004). Large fluctuations in speed on
Greenland's Jakobshavn Isbrae glacier. Nature, 432, 608-610.
KiUib, A. (2002). Monitoring high-mountain terrain deformation from repeated air- and
spaceborne optical data; examples using digital aerial imagery and ASTER data.
Photogrammetry and Remote Sensing, 57, 39-52.
KiUib, A. (2005). Combination ofSRTM3 and repeat ASTER data for deriving alpine
glacier flow velocities in the Bhutan Himalaya. Remote Sensing of Environment,
94,463-474.
Kaab, A., Lefauconnier, B., & Melvold, K. (2005). Flow field of Krone breen, Svalbard,
using repeated Landsat 7 and ASTER data. Annals of Glaciology, 42, 7-13.
Kaab, A., & Vollmer, M. (2000). Surface geometry, thickness changes and flow fields
on creeping mountain permafrost: Automatic extraction by digital image
analysis. Permafrost and Periglacial Processes, 11 (4),315-326.
Konig, M., Winther, J., & Isaksson, E. (2001). Measuring snow and glacier ice properties
from satellite. Reviews of Geophysics, 39 (1), 1-27.
Krimmel, R.M., & Vaughn, B.H. (1987). Columbia Glacier, Alaska: Changes in velocity
1977-1986. Journal of Geophysical Research, 92 (B9), 8961-8968.
235
Larsen, C.F., Motyka, RJ. , Arendt, A.A., Echelmeyer, K.A., & Geissler, P.E. (2007).
Glacier changes in southeast Alaska and northwest British Columbia and
contributions to sea level rise. Journal of Geophysical Research F: Earth Surface,
112(1).
Leprince, S., Barbot, S., Ayoub, F., & Avouac, J.P. (2007). Automatic and precise ortho-
rectification, coregistration, and subpixel correlation of satellite images,
application to ground deformation measurements. IEEE Transactions on
Geoscience and Remote Sensing, 45 (6), 1529-1558.
Leprince, S., Ayoub, F., Klinger, Y., & Avouac, J.P. (2007). Co-registration of optically
sensed images and correlation (COSI-Corr): an operational methodology for
ground deformation measurements. IEEE International Geoscience and
Remote Sensing Symposium (IGARSS2007), Barcelona.
Li, S., Benson, C, Gens, R., & Lingle, C. (2006). Motion patterns of glaciers in the
eastern Wrangell Mountains, Alaska, seen on ERS-1 SAR interferograms.
Eos, Transactions, American Geophysical Union, Fall 2006, 87 (52).
Lucchitta, B.K., Mullins, K.F., Allison, A.L., & Ferrigno, J.G. (1993). Antarctic glacier-
tongue velocities from Landsat images: first results. Annals of Glaciology,
77,356-366.
Luthcke, S.B., Arendt, A.A., Rowlands, D.D., McCarthy, J.J., & Larsen, C.F. (2008).
Recent glacier mass changes in the Gulf of Alaska region from GRACE mascon
solutions. Journal of Glaciology, 54 (188), 767-777.
Mayer, C, Lambrecht, A., Hagg, W., Helm, A., & Scharrer, K. (2008). Post-drainage ice
dam response at Lake Merzbacher, Inylchek glacier, Kyrgyzstan. Geografiska
Annaler, Series A: Physical Geography, 9 (1).
Meier, M.F., Dyurgerov, M.B., Rick, U.K., O' Neel, S., Pfeffer, W.T., Anderson, R.S.,
Anderson, S.P., & Glazovsky, A.F. (2007). Glaciers dominate eustatic sea-level
rise in the 21
s t
century. Science, 317 (5841), 1064-1067.
Meier, M., Lundstrom, S., Stone, D., Kamb, B., Engelhardt, H., Humphrey, N.,
Dunlap, W.W., Fahnestock., M., Krimmel, R.M., & Walters, R. (1994).
Mechanical and hydrologic basis for the rapid motion of a large tidewater
glacier 1: Observations. Journal of Geophysical Research, 99 (B8),
15219-15229.
Molnia, B. F. (2007). Late nineteenth to early twenty-first century behavior of Alaska
glaciers as indicators of changing regional climate. Global and Planetary Change,
56(1-2), 23-56.
235
Larsen, C.F., Motyka, RJ., Arendt, A.A., Echelmeyer, K.A., & Geissler, P.E. (2007).
Glacier changes in southeast Alaska and northwest British Columbia and
contributions to sea level rise. Journal of Geophysical Research F: Earth Surface,
112(1).
Leprince, S., Barbot, S., Ayoub, F., & Avouac, J.P. (2007). Automatic and precise ortho-
rectification, coregistration, and subpixel correlation of satellite images,
application to ground deformation measurements. IEEE Transactions on
Geoscience and Remote Sensing, 45 (6), 1529-1558.
Leprince, S., Ayoub, F., Klinger, Y., & A vouac, lP. (2007). Co-registration of optically
sensed images and correlation (COSI-Corr): an operational methodology for
ground deformation measurements. IEEE International Geoscience and
Remote Sensing Symposium (IGARSS2007), Barcelona.
Li, S., Benson, C., Gens, R, & Lingle, C. (2006). Motion patterns of glaciers in the
eastern Wrangell Mountains, Alaska, seen on ERS-l SAR interferograms.
Eos, Transactions, American Geophysical Union, Fall 2006, 87 (52).
Lucchitta, B.K., Mullins, K.F., Allison, A.L., & Ferrigno, J.G. (1993). Antarctic glacier-
tongue velocities from Landsat images: first results. Annals of Glaciology,
17, 356-366.
Luthcke, S.B., Arendt, A.A., Rowlands, D.D., McCarthy, J.J., & Larsen, C.F. (2008).
Recent glacier mass changes in the Gulf of Alaska region from GRACE mascon
solutions. Journal of Glaciology, 54 (188), 767-777.
Mayer, c., Lambrecht, A., Hagg, W., Helm, A., & Scharrer, K. (2008). Post-drainage ice
dam response at Lake Merzbacher, Inylchek glacier, Kyrgyzstan. Geograjiska
Annaler, Series A: Physical Geography, 9 (1).
Meier, M.F., Dyurgerov, M.B., Rick, U.K., O'Neel, S., Pfeffer, W.T., Anderson, RS.,
Anderson, S.P., & G1azovsky, A.F. (2007). Glaciers dominate eustatic sea-level
rise in the 21
st
century. Science, 317 (5841),1064-1067.
Meier, M., Lundstrom, S., Stone, D., Kamb, B., Engelhardt, H., Humphrey, N.,
Dunlap, W.W., Fahnestock., M., Krimmel, RM., & Walters, R (1994).
Mechanical and hydrologic basis for the rapid motion of a large tidewater
glacier 1: Observations. Journal of Geophysical Research, 99 (B8),
15219-15229.
Molnia, B. F. (2007). Late nineteenth to early twenty-first century behavior of Alaska
glaciers as indicators of changing regional climate. Global and Planetary Change,
56 (1-2), 23-56.
236
Motyka, R.J., O'Neel, S., Conner, C.L., & Echelmeyer, K.A. (2003). Twentieth century
thinning of Mendenhall Glacier, Alaska, and its relationship to climate,
lake calving, and glacier run-off. Global and Planetary Change, 35 (1-2),
93-112.
NASA Goddard Space Flight Center Global Change Master Directory, website last
accessed Oct. 20, 2009. Available at: http://gcmd.nasa.gov/records/GCMD_
CAMP_Himalayas_EOP-3_sfc.html.
NASA Jet Propulsion Laboratory ASTER. Available at: http://asterweb.jpl.nasa.gov/
characteristics.asp.
NASA Landsat Program. Available at: http://landsat.gsfc.nasa.gov/about/L5_td.html.
National Snow and Ice Data Center, Antarctic Glaciological Data Center. Available
at: http: //nsidc. org/data/velmap/imcorr.html.
NOAA Climate Data Online. Available at: http://www7.ncdc.noaa.gov/CDO/cdo.
Oelermans, J., & Reichert, B. K. (2000). Relating glacier mass balance to meteorological
data by using seasonal sensitivity characteristic, Journal of Glaciology, 46 (152),
1-6.
O' Neel, S., Echelmeyer, K.A., & Motyka, R.J. (2001). LeConte Glacier, Alaska, U.S.A.
Journal of Glaciology, 47 (159), 567-578.
Oreskes, N., Shrader-Frechette, K., & Belitz, K. (1994). Verification, validation, and
confirmation of numerical models in the earth sciences. Science, 263,
(5147), 641-646.
Quincey, D.J. & Glasser, N.F. (2009). Morphological and ice-dynamical changes on the
Tasman glacier, New Zealand, 1990-2007. Global and Planetary Change, 68,185-
197.
Rees, W.G., & Arnold, N.S. (2007). Mass balance and dynamics of a valley glacier
measured by high-resolution LiDAR. Polar Record, 43 (227), 311-319.
Rolstad, C, Amlien, J., Hagen, J., & Lunden, B. (1997). Visible and near-infrared digital
images for determination of ice velocities and surface elevation during a surge
on Osbornebreen, a tidewater glacier in Svalbard. Annals of Glaciology\
24, 255-261.
236
Motyka, RJ., O'Neel, S., Conner, C.L., & Echelmeyer, K.A. (2003). Twentieth century
thinning of Mendenhall Glacier, Alaska, and its relationship to climate,
lake calving, and glacier run-off. Global and Planetary Change, 35 (1-2),
93-112.
NASA Goddard Space Flight Center Global Change Master Directory, website last
accessed Oct. 20, 2009. Available at: http://gcmd.nasa.gov/records/GCMD_
CAMP _Himalayas_EOP-3_sfc.html.
NASA Jet Propulsion Laboratory ASTER. Available at: http://asterweb.jpl.nasa.gov/
characteristics. asp.
NASA Landsat Program. Available at: http://landsat.gsfc.nasa.gov/about/L5_td.html.
National Snow and Ice Data Center, Antarctic Glaciological Data Center. Available
at: http://nsidc .org! data/velmap/imcorr.html.
NOAA Climate Data Online. Available at: http://www7.ncdc.noaa.gov/CDO/cdo.
Oelermans, J., & Reichert, B. K. (2000). Relating glacier mass balance to meteorological
data by using seasonal sensitivity characteristic, Journal of Glaciology, 46 (152),
1-6.
O'Neel, S., Echelmeyer, K.A., & Motyka, R.J. (2001). LeConte Glacier, Alaska, U.S.A.
Journal of Glaciology, 47 (159),567-578.
Oreskes, N., Shrader-Frechette, K., & Belitz, K. (1994). Verification, validation, and
confirmation of numerical models in the earth sciences. Science, 263,
(5147),641-646.
Quincey, D.J. & Glasser, N.F. (2009). Morphological and ice-dynamical changes on the
Tasman glacier, New Zealand, 1990-2007. Global and Planetary Change, 68,185-
197.
Rees, W.G., & Arnold, N.S. (2007). Mass balance and dynamics of a valley glacier
measured by high-resolution LiDAR. Polar Record, 43 (227), 311-319.
Rolstad, C., Amlien, J., Hagen, J., & Lunden, B. (1997). Visible and near-infrared digital
images for determination of ice velocities and surface elevation during a surge
on Osbomebreen, a tidewater glacier in Svalbard. Annals of Glaciology>.
24,255-261.
237
Roush, J., Lingle, C.S., Guritz, R.M., Fatland, D.R., & Voronina, V.A. (2003). Surge-
front propogation and velocities during the early-1993-95 surge of Bering
Glacier, Alaska, U.S.A., from sequential SAR imagery. Annals of Glaciology,
36(1), 37-44.
Scambos, T. A., Dutkiewicz, M. J., Wilson, J. C., & Bindschadler, R. (1992). Application
of image cross-correlation to the measurement of glacier velocity using satellite
image data. Remote Sensing of Environment, 42, 177-183.
Scambos, T. A., & Bindschadler, R. (1993). Complex ice stream flow revealed by
sequential satellite imagery. Annals of Glaciology, 17, 177-182.
Scherler, D., Leprince, S., & Strecker, M. (2008). Glacier-surface velocities in alpine
terrain from optical satellite imagery - accuracy improvement and quality
assessment. Remote Sensing of Environment, 112, 3806-3819.
Scott, R. H. (1884). Nature, 30, 354.
Shekarforoush, H., Berthod, M., & Zerubia, J. (1996). Subpixel image registration by
estimating the polyphase decomposition of cross power spectrum. Proceedings
IEEE Computer Society Conference on Computer Vision and Pattern
Recognition, 18-20 June 1996. San Francisco, USA. 532-537.
Short, N. H., & Gray, A. L. (2004). Potential for RADARSAT-2 interferometry: glacier
monitoring using speckle tracking. Canandian Journal of Remote Sensing, 30,
(3), 504-509.
Steffen, K., Box, J. E., & Abdalati, W. (1996). Greenland Climate Network: GC-Net, in
S. C. Colbeck (Ed.), CRREL 96-27 Special Report on Glaciers, Ice Sheets and
Volcanoes, trib. To M. Meier, (pp. 98-103).
Strozzi, T., Luckman, A., Murray, T., Wegmuller, U., & Werner, C. L. (2002). Glacier
motion estimation using SAR offset-tracking procedures, IEEE Transactions on
Geoscience and Remote Sensing, 40 (11), 2384-2391.
Trabant, D.C., Krimmel, R.M., Echelmeyer, K.A., Zirnheld, S.L., & Elsberg, D.H.
(2003). The slow advance of a calving glacier; Hubbard Glacier, Alaska, U.S.A.
Annals of Glaciology, 36, 45-50.
USGS (2004), Shuttle Radar Topography Mission, 1 arcsecond scenes
SRTM_u01_n059wl50, SRTM_u01_n059wl51, SRTM_u01_n060wl50 and
SRTM_u01_n060_wl51, unfilled unfinished 2.0, Global Land Cover Facility,
University of Maryland, College Park, Maryland, February 2000.
U.S. Geological Survey Global Visualization Viewer. Available at: http://glovis.usgs.gov.
Roush, J., Lingle, C.S., Guritz, RM., Fatland, D.R., & Voronina, V.A. (2003). Surge-
front propogation and velocities during the early-1993-95 surge of Bering
Glacier, Alaska, U.S.A, from sequential SAR imagery. Annals of Glaciology,
36 (1),37-44.
237
Scambos, T. A, Dutkiewicz, M. J., Wilson, J. C., & Bindschadler, R (1992). Application
of image cross-correlation to the measurement of glacier velocity using satellite
image data. Remote Sensing of-Environment, 42, 177-183.
Scambos, T. A., & Bindschadler, R. (1993). Complex ice stream flow revealed by
sequential satellite imagery. Annals of Glaciology, 17, 177-182.
Scherler, D., Leprince, S., & Strecker, M. (2008). Glacier-surface velocities in alpine
terrain from optical satellite imagery - accuracy improvement and quality
assessment. Remote Sensing of Environment, 112, 3806-3819.
Scott, R. H. (1884). Nature, 30,354.
Shekarforoush, H., Berthod, M., & Zerubia, J. (1996). Subpixel image registration by
estimating the polyphase decomposition of cross power spectrum. Proceedings
IEEE Computer Society Conference on Computer Vision and Pattern
Recognition, 18-20 June 1996. San Francisco, USA 532-537.
Short, N. H., & Gray, A L. (2004). Potential for RADARSAT-2 interferometry: glacier
monitoring using speckle tracking. Canandian Journal of Remote Sensing, 30,
(3), 504-509.
Steffen, K., Box, J. E., & Abdalati, W. (1996). Greenland Climate Network: GC-Net, in
S. C. Colbeck (Ed.), CRREL 96-27 Special Report on Glaciers, Ice Sheets and
Volcanoes, trib. To M Meier. (pp. 98-103).
Strozzi, T., Luckman, A., Murray, T., Wegmuller, U., & Werner, C. L. (2002). Glacier
motion estimation using SAR offset-tracking procedures, IEEE Transactions on
Geoscience and Remote Sensing, 40 (11), 2384-2391.
Trabant, D.C., Krimmel, RM., Echelmeyer, K.A., Zirnheld, S.L., & Elsberg, D.H.
(2003). The slow advance of a calving glacier; Hubbard Glacier, Alaska, U.S.A.
Annals of Glaciology, 36, 45-50.
USGS (2004), Shuttle Radar Topography Mission, 1 arcsecond scenes
SRTM_uOl_n059wI50, SRTM_uOl_n059wI51, SRTM_uOl_n060wI50 and
SRTM_uOl_n060_wI51, unfilled unfinished 2.0, Global Land Cover Facility,
University of Maryland, College Park, Maryland, February 2000.
U.S. Geological Survey Global Visualization Viewer. Available at: http://glovis.usgs.gov.
238
VanLooy, J., Forster, R., & Ford, A. (2006). Accelerating thinning of Kenai Peninsula
glaciers, Alaska. Geophysical Research Letters, 33 (21) L21307,
doi: 10.1029/2006GL028060.
Warren, C. R. (1992). Iceberg calving and the glacioclimatic record. Progress in Physical
Geography, 16 (3), 253-282.
Whillans, I., & Tseng, Y. (1995). Automatic tracking of crevasses on satellite images.
Cold Regions Science and Technology, 23, 201-214.
Williamson, S., Sharp, M., Dowdeswell, J., & Benham, T. (2008). Iceberg calving rates
from northern Ellesmere Island ice caps, Canadian Arctic, 1999-2003. Journal of
Glaciology, 54 (186), 391-400.
Young, N. W., & Hyland, G. (2002). Velocity and strain rates derived from InSAR
analysis over the Amery Ice Shelf, East Antarctica, Annals of Glaciology, 34 (1),
228-234.
Zwally, H.J., Abdalati, W., Herring, T., Larson, K., Saba, J., & Steffen, K. (2002).
Surface melt-induced acceleration of Greenland ice-sheet flow. Science, 297
(5579), 218-222.
218
VanLooy, J. , Forster, R., & Ford, A. (2006). Accelerating thinning of Kenai Peninsula
glaciers, Alaska. Geophysical Research Lellers, 33 (21) L2 I 307,
doi: 10. 1 029I2Q06GL028060.
Warren, C. R. (1992). Iceberg calving and the glacioclimatic record. Progress ill Physical
Geography, 16 (3), 253-282.
Whillans, I., & Tseng, Y. (1995). Automatic tracking of crevasses on satellite images.
Cold.Regions Science alld Techl/o/ag)' , 23, 201-21 4.
Williamson, S., Sharp, M., Dowdeswcll , J., & Benham, T. (2008). Iceberg calving rates
from northern Ellesmere Island ice caps, Canadian Arctic, 1999-2003. Journal of
Glaci%gy. 54 (186). 39\-400.
Young, N. W., & Hyland, O. (2002). Veloci ty and strain rates derived from lnSAR
analysis over the Amery Ice Shelf, East Antarct ica, Annals o/Glaciology, 34 (1).
228-234.
Zwal1y, H.J. , Abdalati, W., Herring, T., Larson, K., Saba, J., & StetTen, K. (2002).
Surface melt-induced acceleration of Greenland ice-sheet flow. Science, 297
(5579), 218-222.

You might also like