Use IDL programming to detect surface changes
1) develop a algorithm that detects land surface change
2) provide estimates of the total surface area where land cover change has been detected by your algorithm over all years (1992-2010) and the change that occurs between each year (i.e. the rate of change).
3) produce a map highlighting the areas that have changed and in which year that change occurred. The map must be of publication quality.
GEOG 6088 : IDL Coursework Assignment
Assignment Deadline : 9th January 2019
1.) Introduction
The IDL sessions that formed part of this module have introduced you to the functionality of
IDL and illustrated how procedures and functions are developed in order to solve a task.
This assignment will require you to make use of a number of the functions and techniques
that will be learnt during this module.
You can start this assignment whenever you wish as some aspects of the assignment do not
require IDL programming skills. As the module progresses and new IDL coding practices are
introduced, incorporate these into the algorithm you are developing.
2.) The Assignment
Detecting change between two or more images (i.e. land cover change over time) is a
common application of remote sensing. There are numerous approaches to detecting
surface change which vary with sensor, the land cover being monitored, the spatial &
temporal resolution of the instrument etc.
For this assignment you are required to :
1) develop a algorithm that detects land surface change
2) provide estimates of the total surface area where land cover change has been
detected by your algorithm over all years (1992-2010) and the change that occurs
between each year (i.e. the rate of change).
3) produce a map highlighting the areas that have changed and in which year that
change occurred. The map must be of publication quality.
The approach you take for detecting the land surface change is up to you but it must be
supported by the literature. For example, one common approach is by monitoring variations
are vegetation indices (such as the Normalised Difference Vegetation Index, NDVI).
Whichever approach you take will require you to define a threshold which indicates
CHANGE/NO CHANGE. From the literature, consider how these are defined but they need
to be based on a statistical analysis of the data (using IDL functionality). This assignment
therefore concerns not only developing an algorithm in IDL but also a consideration of the
factors that affect estimating land cover change and classification.
2.1) Datasets
For this assignment, 4 Landsat binary images have been provided that were acquired over a
region of South America between 1992 and 2010. These data contain the 1st 5 bands of
Landsat (in order : Blue, Green, Red, NIR, SWIR). The image dimensions are 3500 columns
and 2500 rows and are of byte data type (i.e. pixel values are digital numbers). The image
file name format and file names are :
Landsat_[year]_[month]_[day]_[bands]_subset.img
Landsat_1992_08_06_b12345_subset.img
Landsat_2001_04_25_b12345_subset.img
Landsat_2006_06_26_b12345_subset.img
Landsat_2010_07_07_b12345_subset.img
Note : the data are in digital number (DN) format. There is no need to convert them to
radiance or reflectance (to do this you would need the gain and offset information that is
available with the original (raw) image files). There is no need to atmospherically correct the
data.
Also included with the data are an image of Latitude and Longitude that are 3500 columns
and 2500 rows and have a double data type. These images are provided to allow you to
produce a map of areas affected by land surface change.
In this example, only 4 Landsat images are being used over a small region. In this case it
might be more efficient to use ENVI to conduct this analysis. However, if you were
interested in mapping land surface change over time across the entire South American
continent a programmatic approach is required.
NOTE: To assist you in this assignment you can use plotting, colour and mapping functions
(e.g. plotting related functions) written by other people e.g. David Fanning’s website. All
other code needs to be written by yourself or be part of the IDL functionality. You can use
ENVI to inspect the imagery in order to help in developing your methodology (e.g. help in
defining any thresholds etc). However, all aspects of processing the data (reading, detecting
change and producing the map) must be performed in IDL. If you use plotting/mapping
routines provided by other people then you need to reference them. You are not to use
iTools to plot or map the data.
I am looking for you to display your understanding of IDL (plotting, graphics, commands)
and logic in terms of how you go about solving the problem(s).
3.) Assignment Components
This assignment has 3 different components. The overall purpose of the assignment is for
you to develop an IDL procedure to read data, process that data and to output the results in
different formats. Before you start writing your code it would be a good practice to the
steps that you need to go through in order to produce the outputs (i.e. a detailed plan –
referred to as pseudocode or flowchart :
https://www.bbc.co.uk/bitesize/guides/z3bq7ty/revision/1).
https://www.bbc.co.uk/bitesize/guides/z3bq7ty/revision/1
4.) Writing your IDL procedure
Having developed your pseudocode of your algorithm you then need to write it in IDL. Make
use of the notes from the practical sessions and the online help. Having a detailed and
thorough set of pseudocode will make developing the procedure more straightforward.
When developing your procedure there are a number of routes you can take to meet your
objective (i.e. mapping land surface change. Areas for you to considering during this process
are :
a) Error checking
It is important to include checks for potential errors in your code. For example, if you
make use of the where() function, ensure that you consider what might happen if
the result of the where() function is negative. When you first run your code, step
through it and check the variable and their values to ensure that it is working as you
expect.
b) Neatly structured
It is good practice to write your code in a logical and clear manner. Always make
good use of comments so that it is easy for both yourself and other users to look at
your procedure and quickly grasp what it is doing. Use TABS to indent your code
within loops so it is easy to read. Make use of FUNCTIONS and LOOPS to write
aspects of the procedure which might be used a number of times either in this
procedure or other procedures (i.e. try to make your programs modular).
c) Efficient
This is also related to making your code modular (i.e. create functions where
suitable). If you use a loop processing an array, consider what other calculations can
be implemented within that loop rather than create another loop later in the code.
5.) Write Up
The assignment write up will consist of 3 parts :
a) A discussion of use of remote sensing for detecting land cover change using Landsat
and of the methodology you implemented to detect the surface change (1 page)
(5%)
b) The IDL procedure for detecting land surface change with comments on what
sections of code are doing. Commenting code is important as it helps other people
using or reading the code understand what the code is doing. Include the comments
in the IDL procedure (these should be detailed enough for other people to
understand what different aspects of the code are doing) (70%)
The final results of the algorithm and (if relevant) a discussion of any difficulties
found in implementing the methodology, potential improvements to the code, any
problems encountered. (25 %) [no more than 5 pages]
The results should include :
1) one or more maps illustrating areas of change for each time period (e.g.
1992-2001, 2001-2006, 2006-2010 and 1992-2010). There is no need to
include a scale bar but you can include a colour bar and any other
elements you think would be useful to include on a map. Extra marks will
be given for mapping the input imagery such as the NDVI images.
2) numerical land cover change estimates (i.e. the rate of change, area of
change)
i. in tabular format using word or excel
ii. as graph(s). The graphs need to be produced using IDL code and
provided either as a separate IDL script than or contained as part of the IDL
code used to produce the data. You can use plotting functions provided by
David Fanning if you wish (remember to reference these however).