eXtra projects Index Page Pages FAQ First steps Lab 1 Lab 2 Lab 3 Lab 4 Lab 5 Lab 6 Lab 7 Lab 8 Lab 9 Lab 10 Lab 11 Auto test demo Testing tips Software installation Finding Python and Spyder Slides Snippets Support Textbook Timetable Xprojects Home | Xprojects Additional projects If you know Python already and have some spare capacity, how about these projects: NGCM OS X onboarding Write a (shell?) script that installs the software typically required for NGCM students via a shell script (presumably using brew) on a fresh OS X installation. Software sutainability analysis Automatically clone and analyse git repositories to find out how long different scientific computing software projects 'survive'. A similar study has been done for Java code, and the first task is to look at that, and then consider how to extend it (for example for Python code). Ask for more details. Strava data fetching and plotting Strava (https://www.strava.com) provides online storage of tracks from jogging and cycling enthusiasts and amateurs who can record their tracks with their smartphones using GPS signals. The IOS Strava App displays the track on a standard map, which does not provide satellite imagery. Can you find a way of downloading the track data from the website (Hint: there is at least one Python library for the Strava API) Plot this track on a (satellite) map? (Many Python libraries for plotting maps and data on mas are available) Create a 'heat map' showing multiple tracks together in the same map, with high intensity where multiple tracks co-incide? Code refactoring Take an ancient piece of code with the aim to refactor (i.e. rewrite internally and improve) without changing the behaviour of the code. For example, one could use http://www.southampton.ac.uk/~fangohr/software/ovf2vtk/ Suggested steps: Create unittest/integration/system tests (if not available) that execute parts of the code and check that each part works as it should. Refactor and improve the code to be easier to read (or if you wish: faster / different paradigm / easier to extend); making sure the tests still pass (to make sure the behaviour hasn't changed). You may need to update tests as you refactor. Publish new code (on github?) Data processing and webpage generation Many amateur weather stations use the (Python-based) weewx software (http://www.weewx.com) to record local weather data. There are two options: Given the database in which weewx stores the weather data (lecturer can provide an example), write a script to extract data from it, and display it interactively in the Jupyter notebook. Make use of Widgets to allow users select which period / data style to present the data. Develop a new 'skin' for weewx (https://github.com/weewx/weewx/wiki#skins) which creates statis webpages within the weewx framework. (This requires installing weewx, and running it with 'the simulator', understanding the templating of 'skins'). Consider using a plotting framework such as Plot.ly (https://plot.ly/python/line-charts/) which can create interactive plots as static html. Return to Top Page last modified Tue Sep 20 08:49:08 2016. |