GIS 540

Project proposal examples


Sample proposal #1 (not complex enough and some of the required components are missing)

AGRICULTURAL LAND BEST MANAGEMENT PRACTICES

Abstract: The purpose of this program will be to apply farmland best management practices(BMP) to parcels of land entered by the user. Examples of BMP are stream and water body vegetation buffers, and runoff control from roads and other compacted surfaces. This program will also output area of lakes or ponds, and lengths of rivers, creeks, and roads in feet.

Input Data: Examples of data would be shapefiles such as lakes, roads and streams. However, the ideal program would extract this data from the entire parcel of land, sort the usable shapefiles and perform the BMP on the shapefiles.

Batch Processing: Out of the shapefiles the program will perform a buffer tool on all water bodies. It will also calculate length of roads and slope to determine in what lengths of road erosion control is needed.

Pseudocode:

OBTAIN shapefiles from workspace
DETERMINE the nature of the shapefile
IF the shapefile is a lake then
         CALCULATE the area of the lake
         COMPUTE buffer of polygon
         PRINT area of lake
IF the shapefile is a river
         CALCULATE the length of the river in feet
         COMPUTE buffer of the polygon
         PRINT length of river


Instructor Evaluation of proposal #1:

1. Format correct?
--Neatly organized, but missing the 'data product' section, student name, unityID, 'keywords' section, and the roman numerals for each section.

2. Clear/brief?
--Yes, it's well-defined.

3. Batch processing?
--No. It's implied but keywords FOR or WHILE are missing.

4. Is the complexity sufficient?
--No. This project is equivalent to one or two homework scripts. The core functionality could be written in less than 50 lines of code.

5. Is the pseudocode efficient and correct?
--No. When two mutually exclusive conditions are used, the ELSEIF should be used form the second condition. The THEN keyword is lower-cased in the first conditional statement and missing from the second one. The keyword ENDIF is also missing. Corrections are shown in red below.

OBTAIN shapefiles from workspace
FOR each shapefile in the workspace
         DETERMINE the nature of the shapefile
         IF the shapefile is a lake THEN
                  CALCULATE the area of the lake.
                  COMPUTE buffer of polygon .
                  PRINT area of lake.
         ELSEIF the shapefile is a river THEN
                  CALCULATE the length of the river in feet.
                  COMPUTE buffer of the polygon.
                  PRINT length of river.
         ENDIF
ENDFOR



Sample proposal #2 (sufficiently complex)
Name:  Engelbert Humberdinck (eghumber)

I. TITLE: Water Supply Model Sensitivity Analysis

II. ABSTRACT:

The U.S. Forest Service’s Eastern Forest Environmental Threat Assessment Center (EFTETAC) has developed a Water Supply Stress Index Model (WaSSI) that uses a set of 11 soil moisture parameters developed by the National Weather Service for use in flood forecasting. When properly calibrated, these soil moisture parameters can help accurately model daily hydrographs. However, the WaSSI model predicts water supply issues on a time frame of months to years and over areas where the parameters cannot be calibrated to actual runoff values. Ideally, a sensitivity analysis could determine which soil parameters are necessary and which could be eliminated from the model. A cursory analysis showed that only four parameters had a substantial effect on twenty year average annual runoff values. However, the model underestimates runoff during dry months, which is compensated by over estimation during wetter months. A more sophisticated analysis at the monthly time frame needs to be conducted.

III. INPUT DATA:

* Eleven soil moisture parameter rasters for the conterminous U.S.
* Boundary shapefile for 2099 watersheds by HUC-8 code.
* Water supply model:
         * Input parameter file (CSV) of average soil parameters by HUC-8
         * Output monthly data (CSV) from 1981-2000 by HUC-8 code.
* Historic runoff data for a set of 10 watersheds from 1961-2007

IV. DATA PRODUCTS:

* Table of average sensitivity index values for each HUC for each month (12 columns x n rows, where n is the number of HUC)
* Map with 12 layers (one per month) showing the sensitivity index values with color.
* HTML report with screen shots of the output layers and a summary of the findings.

V. BATCH PROCESSING:

* Create 22 input files, by modifying each parameter by one standard deviation.
* Run the model for each input file.
* Calculate a sensitivty index or the percent difference between the outputs.
* Pivot each index so that columns are average month index data by HUC-8

VI. PSEUDOCODE:

FOR each soil parameter
         FOR each HUC-8
                  GET standard deviation.
                  GET row from default input file.
                  PUT row with plus parameter value in new input file.
                  PUT row with minus parameter value in new input file.
         ENDFOR
ENDFOR

FOR each new input file
         COPY file into model input directory.
         CALL WaSSI model.
         COPY output file into working directory.
ENDFOR

FOR each pair of plus/minus output files
         FOR each soil parameter
                  CALCULATE sensitivity index.
         ENDFOR
ENDFOR

FOR each index file
         CALCULATE average index value by month for each HUC-8.
ENDFOR

VII. KEYWORDS: water supply model, soil moisture parameter, sensitivity analysis, arcpy, Python


Instructor Evaluation of proposal #2:

1. Format correct?
--Yes. Keywords should distinguish this project from the others in the class. All projects will use arcpy and Python, so these should be left off the list.

2. Clear/brief?
--An expert in hydrology might find the proposed work easy to understand. A lay-person might would need to read it a few times and then would still have questions. The main idea seems to be runnng the sensitivity analysis on monthly flood model output so as to identify the most influential parameters amongst a large number of model input parameters. This purpose should be stated first before getting into details about the model. The description is, however, laudably brief, but don't use acronyms without spelling them out at least once (e.g., HUC for hydrologic unit code) Also, run a spelling check (e.g., sensitivty->sensitivity)

3. Batch processing?
--Yes, there are several loops, some nested.

4. Is the complexity sufficient?
--Yes. It's easy to see how this project could require some of the advanced techniques for code-reuse which are taught in the second half of the course.

5. Is the pseudocode efficient and correct?
The pseudocode is correct and seems to be efficient, though if any of these loops are consuming the same data, they could be combined. In this proposal, it doesn't seem to be the case, but a simple example of this is shown in the following pseudocode:

FOR each input file:
         COMPUTE a 1-mile buffer.
ENDFOR

FOR each input file:
         COMPUTE the record count.
ENDFOR

This would be more efficiently combined as follows:

FOR each input file:
         COMPUTE a 1-mile buffer.
         COMPUTE the record count.
ENDFOR