Intro to Modeling redesign
From GeoMod
- "All models are wrong, but some are useful."
Contents |
[edit]
Goals
- Goal: Enable students to create basic examples of the broadly different types of physical and behavioral models.
- sub-goal: Enable students to identify the advantages, disadvantages and applicability of the broadly different approaches to modeling physical and behavioral problems.
- sub-goal: Students will be able to assess the quality and appropriateness of modeling approaches used in the literature (with examples of good and bad).
- Goal: Students will be able to create and calibrate a computer model applicable to a topic in their field.
- Sub-goal: Students will be able to compare model results to actual data and assess the effectiveness of the models.
- Sub-goal: Students will be able to convert observed physical/behavioral processes into equations then into computer models.
[edit]
Ancillary Goals
- Develop quantitative skills
- Relate physical processes to mathematical equations
- Reduce fear of differential equations (Observations by Tom Lehrer http://www.archive.org/details/lehrer)
[edit]
Content
Go into depth in specific methods useful to students in current class and do a general survey of other methods (with examples). Give good and examples of the application of each type of model.
[edit]
Introduction to VPython Programing
- Intro to modeling: Using Andy Fould's webpage, have students create a step by step set of instructions showing how the elastic browser might be programed.
- This trains students to recognize models and start considering how they work and how they might be programmed.
- Gallery walk: a rubric to critically evaluate models in the literature - Elements of a model
- Introduction to Python for Geoscience models (bouncing ball)
- Refresher on programming
- Numerical error
- 2d array class (Raster class)
[edit]
Modeling Methods
- Survey of Modeling Methods:
- Conservation of mass/energy models
- Lumped parameter
- FD (and FE)
- Stochastic (baysian)
- Agent based
- Random walk
- Conservation of mass/energy models
- Emergent themes
- Emergent behavior
- Importance of parameter sensitivity analysis
[edit]
Project
Create a model to solve a problem in your field. Model must be related somehow to the Mississippi Embayment.
- Identify a problem
- Write a description of the problem (1 page)
- Describe the approach you will take to modeling this problem and why (1 page)
- Create a model
- Test the model (calibrate)
[edit]
Case studies
Looking at models in the literature to critique their application.
[edit]
Assessment
Portfolios - (Meta: http://serc.carleton.edu/NAGTWorkshops/assess/portfolios.html)
- Blogs for peer-review.
Programming assignments (group)
- Programs graded on completion and presentation to class.
Oral presentation of individual term project model:
- Peer review.
[edit]
Course Outline
- In the first two weeks of class, students will learn to program some simple models in the Python programming language. This will serve as an introduction/refresher to programming, and an introduction to different modeling techniques.
- The key element of this class will be the development of individual models by students over the course of the semester.
- In the fourth week students will begin presentations about the problem they wish to solve with their class project. (If you don't have anything in mind please see me for suggestions).
- In the fifth week students will give presentation discussing the method they will employ to solve their problem. Specifically, why they chose that method and what alternative methods are available.
- In order to aid students in the development of their models and expose the entire class to different modeling methods, from the sixth week students will be required to
- post progress reports, including code, to this website.
- Each student will update a page on this website. (See me for a username and password)
- read the reports and post comments on their peers on the Discussion page (see the tabs at the top of the page).
- post progress reports, including code, to this website.
[edit]
Topics
[edit]
Some basics
- Week 1
- Introduction to physical modeling
- Learning to program models: Create a program showing a bouncing ball using VPython.
- The objective of this assignment is to introduce students to the basics of programing and demonstrate how physics equations can be translated into computer code.
- Week 2
- Distributed models - Dealing with spatial data in arrays
[edit]
Other types of modeling
The order of the following topics is flexible. It will depend on the interests and priorities of the class
- Week 3
- Agent based models (Inspired by my love of the movie Matrix)
- Week 4
- Finite differences
- Lecture notes using groundwater flow as an example.
- Finite differences
- Week 5
- Finite elements
- Week 6
- Arm Wrestling Tournament for Title of Greatest Programmer
[edit]
Assignments
- Adapt the bounce.py code to give the ball a horizontal component and make it bounce between two walls.
- Write a list of guidelines for programming in Python based on what we have covered in class.
- Agents assignment
[edit]
Lecture Notes and References
- Basic Python References
- Introduction to programming with VPython
- Variable types
- Lists and Arrays
- Loops
- Logical statements - if, else, and, not etc.
- A 2D array of tiles
- Functions
- A list of built in Python Functions
- Basic matrix solvers - Jacobi, Gauss-Seidel, successive over-relaxation
- Classes
- Inheritance
- Tips for maximizing performance
[edit]
Useful Classes
- Raster Class - for importing and displaying raster grids into arrays.
- User controls - useful slider bars and buttons to introduce user controls to your Python programs
- 1-D Finite difference code for Ground Water
[edit]
Useful Functions
- Importing a raster file from GIS
- How to export a raster file from Arc/GIS? See
- Monica's instructions, or,
- Ryan Csontos' instructions
- How to export a raster file from Arc/GIS? See
[edit]
Useful Snippets of code
- Setting the size of a window - useful for recording animations
[edit]
Modules
[edit]
Useful Programs for Reference
- Chertman - agent based anthropological application.
- Interactive Earth Science Models - Examples of VPython models with interactivity.

