Instructor: Prof. Brian Fiedler email: firstname.lastname@example.org
This website deﬁnes the tasks needed to complete the University of Oklahoma’s courses METR 4330/5330 and DSA 5021.
In the Fall of 2016, this course transitioned to using the jupyter notebook (also know as ipython notebook) for developing and running programs. Prior to the Fall of 2016, the course would be completed in a student account on a remote server. In the current version of the course, the student coursework could be conceivably be assessed using Dropbox, for example. Nevertheless, knowing Linux and knowing how to connect to, and use, a remote server is an extremely important professional skill. This course still retains a requirement for using a server account, but the required purpose is to maintain a simple website on a shared server running the Linux operating system.
Students METR 4330/5330 and DSA 5021 have access to the METR 1313 website, which has the same username/password as this site. METR 1313 is a “freshman” course in Python programming. That course also requires the “freshman” to use a server account, identical to the one issued for this course.
After being given their password for their server account, students in METR 4330/5330 and DSA 5021 are invited to jump into using it. The recommendation is to follow these tutorials:
- Server Connect (DSA 5021 students should begin the ﬁrst quiz on their Janux platform)
- First Files
- First Programs
- First Python
You will need your own installation of Anaconda Python for METR 4330/5330 and DSA 5021. Here is some information I have put together on installing and using Anaconda Python. That page invites METR 1313 students to try out spyder for developing Python programs.
In METR 4330/5330 and DSA 50121, we will use jupyter notebook.
At tmpnb.org you are invited to run “Welcome_to_Python.ipynb” on a free remote server. But you may want to skip that. For a “Welcome” notebook it seems unnecessarily complicated. I oﬀer a simpler one in the next section.
Here is a video introduction to jupyter notebooks. If you were successful at installing and invoking spyder, you just need to type jupyter notebook on the command line of your Windows|OSX|Linux computer, and the jupyter notebook opens in your browser. Note the terminology jupyter versus ipython. Here we learn that “jupyter” is the language-agnostic part, the notebook, which can be used for several languages.
So, more accurately, we may say METR 4330/5330 uses ipython as the kernel in jupyter.
Jupyter/Ipython warm up
DSA 5021 and METR 4330/5330 are here oﬀered some ipython notebooks as tutorials. Completion of the exercises in the notebooks is advised, but are not assessed as part of the grade.
Here is a notebook on the level of METR 1313: pi.ipynb. Click on “Download” and save it to your computer. You may want to save it in a directory named notebooks, or something like that. Follow the instructions in the notebook. From your Jupyter dashboard, open pi.ipynb.
One step up from the py.ipynb is foreverbody-scrabble.ipynb. You will also need the text ﬁle scrabble.txt.
I make no claim that either my pi.ipynb or my foreverbody-scrabble.ipynb is the ideal place to start for you. You may want to investigate A gallery of interesting IPython Notebooks.
You may also ﬁnd my matplotlib1.ipynb useful.
The graded tasks
The required ﬁrst task for all courses: Making a Password-protected website (DSA 5021 students should begin the second quiz on their Janux platform)
METR 4330/5330 has variable credit. Here are the requirements of the various levels of credit.
3 credit hours: 6 more tasks (your choice) plus and an independent project required
2 credit hours: 5 more tasks (your choice) required 1 credit hour: 3 more tasks (your choice) required
DSA 5021 is for one credit hour. In addition to making a Password-protected website, DSA 5021 students are required to complete Hot summer, Forecast Veriﬁcation and Gridded Data
Note: the “independent project” is similar to a task, but you conceive of it. Present a plan to the instructor via email, for approval.
The remaining tasks may be selected from the following. There are 9 here now.
Hot summer. Elementary analysis and plotting of data from a text ﬁle.
Recommend you start here. The notebook should have instructions on how to download any required ﬁles. But here is a link to the anaconda directory of my data ﬁles.
Forecast Veriﬁcation. Reliability diagrams, ROC curves, and Relative Value plots.
Raster Graphics. Converting Level II data into pixels with colors signifying reﬂectivity. You will need radarbytes.data from the anaconda directory of my data ﬁles.
Gridded Data. Emphasizes converting data in a netCDF ﬁle into animations like these.
Fancy Numpy Raster Graphics from Nexrad netCDF ﬁles, with numpy and PIL. Not just simple numpy, but with great eﬃciency using Fancy Indexing.
Plot NARR Advanced Basemap techniques for plotting North American Regional Reanalysis data
Scalable Vector Graphics Applied to Radar Revisiting the Level II data of Raster Graphics, but now applying Vector Graphics
Elementary time-series analysis of the PDSI Examine how drought is correlated around the globe (correlation) and how it is correlated with itself in time (autocorrelation).
Plotting GFS output with numpy arrays extracted from GRIB ﬁles Maybe next year I will add these:
Writing CF compliant netCDF ﬁles Python Data Analysis Library