Home | Trees | Indices | Help |
|
---|
|
Tools for analysing the relationship between tidal stresses and tectonics on icy satellites.
Written by Zane
Selvans (zane.selvans@colorado.edu
) as part of his Ph.D.
dissertation research.
SatStress
is released under GNU General Public License
(GPL) version 3. For the full text of the license, see: http://www.gnu.org/
The project is hosted at Google Code: http://code.google.com/p/satstress
Hopefully getting SatStress
to work on your system is a
relatively painless process, however, the software does assume you have
basic experience with the Unix shell and programming within a Unix
environment (though it should work on Windows too). In particular,
this installation information assumes you already have and are able to
use:
gcc
and
g77
, so those should definitely work. On other
systems, with other compilers, your mileage may vary.
make
utility, which manages dependencies between
files.
To get the SatStress package working, you'll need to install some other (free) software first:
In addition, if you want to use GridCalc, you'll need:
If you want to actually view GridCalc output, you'll need a netCDF file viewing program. Many commercial software packages can read netCDF files, such as ESRI ArcGIS and Matlab. A simple and free reader for OS X is Panoply, from NASA. If you want to really be able to interact with the outputs from this model, you should install and get familiar with:
Once you have the required software prerequisites installed, uncompress and unarchive the SatStress distribution:
tar -xvzf SatStress-X.Y.Z.tar.gz
then go into the distribution directory created:
cd SatStress-X.Y.Z
To build and test the package, run:
make test
If the test cases pass, go ahead and install with:
make install
And you'll be able to write your own Python programs using the
SatStress
library.
If you're not using the GNU Fortran 77 compiler g77
,
you'll need to edit the Makefile
for the Love number
code:
SatStress/Love/JohnWahr/Makefile
and tell it what Fortran compiler it ought to be using.
If you have any trouble getting SatStress
working,
feel free to post to the SatStress discussion board: http://groups.google.com/group/satstress
A few notes on the general architecture of the
SatStress
package.
In writing this software and documentation, my hope is that an undergraduate research assistant who has been hired for the summer, and who has at least some experience with programming (though not necessarily in Python), should be able to understand how the system works, and make fruitful use of it. So if it seems like things are sometimes over-explained or over-commented, that's why.
The SatStress
package is not itself a stand-alone
program (or not much of one anyway). Instead it is a set of tools
with which you can build programs that need to know about the
stresses on the surface of a satellite, and how they compare to
tectonic features, so you can do your own hypothesizing and
testing.
The package attempts to make use of object oriented programming (OOP) in order to maximize the re-usability and extensibility of the code. Many scientists are more familiar with the imperative programming style of languages like Fortran and C, but as more data analysis and hypothesis testing takes place inside computers, and as many scientists become highly specialized and knowledgeable software engineers (even if they don't want to admit it), the advantages of OOP become significant. If the object orientation of this module seems odd at first glance, don't despair, it's worth learning.
Python is a general purpose, high-level scripting language. It is an interpreted language (as opposed to compiled languages like Fortran or C) and so Python code is very portable, meaning it is usable on a wide variety of computing platforms without any alteration. It is relatively easy to learn and easy to read, and it has a very active development community. It also has a large base of friendly, helpful scientific users and an enormous selection of pre-existing libraries designed for scientific applications. For those tasks which are particularly computationally intensive, Python allows you to extend the language with code written in C and Fortran. Python is also Free Software. If you are a scientist and you write code, Python is a great choice.
Because science today is intimately intertwined with computation, it is important for researchers to share the code that their scientific results are based on. No matter how elegant and accurate your derivation is, if your implementation of the model in code is wrong, your results will be flawed. As our models and hypotheses become more complex, our code becomes vital primary source material, and it needs to be open to peer review. Opening our source:
Of course, it also means that other people can use our code to write their own scientific papers, but that is the fundamental nature of science. We are all "standing on the shoulders of giants". Nobody re-derives quantum mechanics when they just want to do a little spectroscopy. Why should we all be re-writing each others code ad nauseam? Opening scientific source code will ultimately increase everyone's productivity. Additionally, a great deal of science is funded by the public, and our code is a major product of that funding. It is unethical to make it proprietary.
Version: 0.1.2
Date: Fri Apr 4 22:33:20 2008
Author: Zane Selvans
Contact: zane.selvans@colorado.edu
Copyright: 2007-2008 Zane Selvans
License: http://www.gnu.org/licenses/gpl.html
Submodules | |
|
Home | Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Fri Apr 4 15:33:21 2008 | http://epydoc.sourceforge.net |