Scientific Computing Topics
- The starting point for all things Python is: http://python.org
- There are a large number of instructional videos available, follow this link for an example. Just google "python tutorial" for many great options.
- Python is widely used outside the USGS, so there are lots of great resources hosted in the wide world. We should really participate there, instead of building our own microverse. See the Python Forum, and http://stackoverflow.com/tags (type in "python").
Packages for Python
Generally useful stuff
- Integrated Development Environments (IDEs) - There are lots of choices, many of which allow a user to write in more than one language. See the sub-page on this.
- iPython Notebook- kind of an IDE, but a great web-based user-interface for mixing markup, code snippets, and results in a unified presentation. This is a fantastic way to teach! Especially because the code snippets are live, meaning users can adjust and rerun them to update the results.
- Rich Signell's colleague Massimo (last name?) has been working with this, configuring server images that he can virtualize. He's got one that has python, R statistics, and GRASS. Very cool!
- Would be interested to see if this could be made to work in conjunction with ArcGIS (probably the Server product) so folks can explore with the ESRI arcpy object for python.
- Would also be very interested to see, if this server image matures, we can encourage folks developing ArcGIS Server images for cloud deployment to include these add-ons/work with us.
- This also makes one wonder about web-accessible/executable python-based functionality. iPython Notebook uses 0MQ for messaging, but this almost doesn't matter. Might be best to focus on using OGC WPS instead.
- NetworkX - a pretty hard-core library for making complex networks and graphs. Could also be useful for TINs.
Python and ArcGIS
Python, aside from being a standalone general scripting language, has become the main scripting language for the ArcGIS platform. Versions of Python 2.x and Python libraries that are included in different versions of ArcGIS are as follows:
- The Enthought Python Distribution (EPD) version 7.3 is fully compatible with ArcGIS 10.1. This means you can install the EPD, then install ArcGIS and Arc will see the EPD distribution and simply add the arcpy modules without installing another python instance. Since the EPD 7.3 comes with an OPeNDAP-enabled NetCDF4 Python, there is no need to run Gohlke's installer (described below).
- The netCDF4 module compiled for ArcGIS 10.0, 10.1 allows fairly straightforward access of netCDF and OPeNDAP data from ArcGIS Python scripts. Thanks to Rich Signell and, most of all, Christoph Gohlke (who compiled the module so it will work with Arc). Rich and Curtis Price provided this python script and script tools (zipfile).
- The image below shows an example of a raster that has been loaded into ArcMap from a remote dataset using a Python script tool that accesses data using the netCDF4 library and the OPeNDAP access protocol. (Click it for a full-resolution view.)
MATLAB is commonly used for data and compute-intensive scientific analysis.
Known USGS MATLAB users: Rich Signell, Ashley Van Beusekom