GIS 540

Project proposal


The proposal submitted on Moodle should communicate project objectives and help you create an organized approach. The completed project will include Python script(s) which performs some kind of batch processing and a map document which calls a Python script and a script tool which has a graphical user interface. The project topic should also be sufficiently challenging (See more about this below). For this proposal, do not include any discussion of the graphical user interface component yet. Be sure to put your name and unity id at the beginning of the document. Do include the following (use roman numerals and the given titles to organize your description):

  1. Title: A short title indicating the topic
  2. Abstract: a description of the overall application problem that you would like to investigate (required).
  3. Input data: A description of the data being processed (if known).
  4. Data Products: What new information does this project produce that did not exist before? What are the tangible outputs? Modified road data? Statistical analysis? Pictures or illustrations to visualize the input and output or workflow are strongly encouraged.
  5. Batch processing: A description of the processing problem that you want to handle with Python (required).
  6. Pseudocode: Pseudocode for the problem described in the previous step (required).
  7. Keywords: Comma separated list of keywords relating to the project. These should include topic area, data types, and tools. This is meant to help other students search for related project topics.
  8. Informal context (only include this in the first draft of the proposal for internal use):   In this section please share with us the kind of information that you wouldn’t put in a formal project proposal.  Here are some questions that aren’t always made clear but would help us to understand the context in which your project arises.
    1. My project proposal is related to...
      1. my full-time job, a task that I perform manually, but want to automate.
      2. my full-time job, a task that a colleague performs manually but wants to automate.
      3. my part-time job, a task that I perform manually, but want to automate.
      4. my part-time job, a task that a colleague performs manually but wants to automate.
      5. my research in my degree program.
      6. a research project that I am assisting with.
      7. work for a charitable cause or other altruistic purposes.
      8. one of my hobbies.
      9. a topic that I found interesting.
      10. a dataset that I found so I could have a project topic.
      11. a project that I did for another class.
      12. Other. Briefly explain.
    1. Which of the following statements best describes your progress thus far.
      1. I have written the proposal, but have not yet found the data.
      2. I have written the proposal and identified the data I’ll work with.
      3. I have completed (b)  and inspected the data.
      4. I have completed (c) and written a small amount of code.
      5. I have completed (c) and written more than 50 lines of code.
      6. Other, briefly explain.
    2. Have you worked on this or a similar project for a different class or for work, but you’d like to automate?  If so, which class, and which in what format (Modelbuilder? Hand running tools, etc.) Briefly explain.
    3. I am currently still uncertain about the following aspects of my project:
      1. The type of the data.
      2. The source of the data.
      3. The geoprocessing steps that will be needed.
      4. The workflow that will be needed.
      5. The questions I want to answer.
      6. The output I want to generate.
      7. Other, please explain.
    4. Which of the following statements best describes your feelings towards this project:
      1. I feel very passionate about the project topic I have selected and will commit to come up with substantial extensions, if it is not sophisticated enough in its current form.
      2. I feel somewhat excited about the project topic I have selected, but could become interested in other ideas if they were suggested.
      3. I put this proposal together because it was required, but I don’t feel particularly attached to the idea I have proposed.
      4. Other, please explain
    5. Any additional informal but pertinent remarks/questions that don’t fit in elsewhere:
    6.                

The proposals will be evaluated on the following criteria:

1. Is the required proposal format followed?
2. Is the idea clearly and BRIEFLY presented? (can we understand your idea? did you provide a useful illustration?).
3. Is there batch processing in the pseudocode?
4. Is the complexity sufficient?
5. Is the pseudocode efficient and correct?

Each proposal that is submitted will be scrutinized by the instructor for appropriate application of the scripting concepts and sufficient complexity. If the proposed project is not sufficiently complex or challenging, the proposal will be declined and a project will be assigned, in which case the project topic is non-negotiable.

Two sample proposals are provided below. Evaluate these examples yourself based on the given criteria and compare your evaluations to these. (Hint: Sample proposal # 1 does not meet the formatting and complexity requirements. Sample proposal #2 only needs improvement in the clarity requirement.)

Sample proposal #1 (not complex enough and some of the required components are missing)
View the instructor feedback at this link.

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.

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 lake
         PRINT area of lake
IF the shapefile is a river
         CALCULATE the length of the river in feet
         COMPUTE buffer of the river
         PRINT length of river



Sample proposal #2 (sufficiently complex, but needs to be described in lay-terms)
View the instructor feedback at this link.
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