Geologic Time Scale
Category: Educational, Media
—
Other products by this author
Current release
No stable release available yet.
Experimental releases
Upcoming and alpha/beta/candidate releases
- Alpha releases should only be used for testing and development.
- Beta releases and Release Candidates are normally released for production testing, but should not be used on mission-critical sites.
- Always install on a separate test server first, and make sure you have proper backups before installing.
Project Description
- Project resources
LICENSE
- GPL: See GeologicTimeScale.py header.
CREDITS
- The people behind the geological data sources at www.stratigraphy.org; Update: Adam Lugowski and Jim Ogg have a Java program to create graphical time scales. See the link from www.stratigraphy.org.
- USGS (United States Geological Survey) color scheme, which is shown at www.stratigraphy.org/codus.pdf (There is a different set of colors for Europe at http://www.stratigraphy.org/codeu.pdf.)
- RenderableCharts, by Dirk Datzert, which is a Zope product at: http://www.zope.org/Members/Dirk.Datzert/RenderableCharts/
- Dinu Gherman's presentation on generating graphics using ReportLab, http://starship.python.net/~gherman/presentations/rlzope-dzug2003.pdf, and rlzopecatalog.py, a modification of rlzope.py.
- Jerome Alet's rlzope.py, http://cortex.unice.fr/~jerome/RLfromZope/
- colorstr, http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/325823
- wordWrap, http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/148061
- SVG all around help, http://www.carto.net
- SVG emitting, http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/325823
- SVG and javascript tooltips, http://svg-whiz.com/svg/Tooltip.svg
- Javascript tooltips are done with Walter Zorn's tooltip library (http://www.walterzorn.com/tooltip/tooltip_e.htm).
- the textbook "Evolution of the Earth", 7th edition, by Donald R. Prothero and Robert H. Dott, Jr, from which the range events were estimated.
AUTHORSHIP
- initial coding: Jeff Pittman, http://www.geojeff.org
DESCRIPTION
GeologicTimeScale uses the ReportLab toolkit to generate the geologic time scale using data from the International Commission on Stratigraphy (ICS) website (http://www.stratigraphy.org), which is based on:
- Gradstein, F.M., Ogg, J.G., Smith, A.G. (coordinators), 2005. A Geologic Time Scale 2004. Cambridge University Press, 610 pages. You may see a photo of Felix Gradstein and Jim Ogg at http://stratigraphy.org/jimfelix.jpg, holding a copy of the book.
and
- the "GeoWhen" dataset by Robert A. Rohde, Dept. of Physics, Univ. of California, Berkeley (http://www.stratigraphy.org/geowhen/index.html).
GeologicTimeScale is a folderish Archetypes-based Plone/Zope product. The idea is to use various renderers to create images, PDF files, and/or SVG versions of the time scale and store them. This allows flexibility for a user of GeologicTimeScale to offer several format versions, if needed. GeologicTimeScale takes input of the following items:
- image size (width and height, in pixels)
- position (x and y of upper left corner, in pixels)
- start and end time (in millions of years)
- a setting for scale-to-fit
- choice of a simplified or full version
- optional range events, entered as comma-separated values on separate lines
for the events. Range events are specified by:
- label placement (top, bottom, left, right, center, relative to the vertical bar that will mark the event)
- label angle (0 for horizontal, 90 for vertical, or any other angle)
- x position (same dimension as time, in millions of years)
- end time (in millions of years)
- start time (in millions of years; note that end < start)
- text (not word wrapped, presently)
- color - changed to a SelectColumn with a few colors. (considering use of ATColorPickerWidget)
- optional point-in-time events, entered as comma-separated values:
- label placement (top, bottom, left, right, center, relative to the symbol that will mark the event)
- label angle (0 for horizontal, 90 for vertical, or any other angle)
- x position (same dimension as time, in millions of years)
- time (in millions of years)
- symbol type (ellipse or rect)
- symbol width
- symbol height
- text
- color - just a few colors for now (see comment above under range events)
REQUIREMENTS
- DataGridField, which you will need to install in your Products directory, in parallel with installation of GeologicTimeScale. You can get DGF at plone.org at http://plone.org/products/datagridfield.
- Archetypes (tested with Archetypes that comes with the 2.5.1 bundle)
- Plone (tested with Plone-2.5.1)
- PIL (Python Imaging Library), http://www.pythonware.com/products/pil/
- ReportLab Toolkit, from http://www.reportlab.org
- renderPM, from the ReportLab Toolkit, as an addon module, from: http://www.reportlab.org (renderPM provides the full functionality for formats other than ps and pdf) (Can get it when you do an svn checkout of reportlab).
- Adobe Acrobat Reader,
Original comment about this:
for fonts, from http://www.adobe.com/products/acrobat/readstep2.html. On Linux, v. 5 works; not sure about the new v. 7. On Linux, you can install v. 5 from http://ardownload.adobe.com/pub/adobe/acrobatreader/unix/5.x/linux-5010.tar.gz, which will put it in /usr/local/Acrobat5 and the needed font files will be in /usr/local/Acrobat5/ResourcE/Font. renderPM will find them there.
Update:
Very helpful explanation and instructions available at:
http://www.sebastien-verbois.be/python/render-pm-help.txt/view
PLATFORM NOTES
- Original development and testing was done on Linux. Starting with version 0.5alpha, work is on a Mac.
INSTALLATION
- Install Adobe Acrobat Reader, taking note of its installation directory.
- Install the ReportLab toolkit, first editing rl_config.py in the reportlab directory to set the Acrobat directory, if needed, so the fonts will be found by the renderer. (See specific note above about that helpful link).
- Install the renderPM addon from ReportLab.org. (See same note above).
- Put DataGridField in your Zope Products directory.
- Put GeologicTimeScale in your Zope Products directory.
- Restart Zope.
- Install DGF and GeologicTimeScale into your Plone site. Select "site setup", click on "Add/Remove Products" and install.
BUGS AND FEATURE REQUESTS
Please report bugs and feature requests to Jeff Pittman, who can be reached at geojeff@geojeff.org. Jeff is often on the #plone irc channel as geojeff.
IDEAS
- First, it should be easy to look at the ReportLab examples, including the chart examples, and modify this for showing dynamic charts. See also RenderableCharts. [There are new products at plone.org for image and graphics generation, e.g., http://plone.org/products/textimage.]
- Hopefully this product will save some time for those wishing to make their own drawing types. [See other similar products in the collective, which follow the same design: PhylogeneticTree, TeachingSchedule, VacationPlanner]
- A basic derivation would be a simple traditional number line with tick marks, or an enhanced bar scale. Transformations could be added for presenting the number line horizontally vs. vertically, left-to-right vs. right-to-left, increasing-down or up, etc.
- And, of course, don't forget the history of the universe, which I could use in teaching several courses.
TODO:
- Images are generated as Files, but they could be Image types. Or, with the new ATCT types in Plone-2.1.1, maybe these could be used. [Not new anymore].
- Phylogenies (there are several code packages out there for drawing
diagrams to show relationships, for presentation within time). For an
example of a phylogenetic diagram on a time scale, see this one:
http://palaeo.gly.bris.ac.uk/Palaeofiles/Triassic/ammon.htm that
includes abundance range bars also.
[Note: PhylogeneticTree is now a Plone product. It can be potentially used with this software.]
- A horizontal layout would be a welcome addition for some uses.
- A RangeEvent could be used for a lineage, which as it is now would be shown with a simple rectangle, but as shown on the ammon.htm diagram, a varying width would be nice to show abundance. This would require a data series consisting of start_time/abundance pairs and an ending time, or a similar scheme.
- It is common to show phylogenetic lineages as "bubble" plots for changing abundance or diversity through time, with the "bubbles" being smooth-sided shapes showing the abundance history of the lineage. The same sort of data series described above could work for this, along with a smooth sided polygon drawing routine.
- Certainly lines and perhaps primitive shapes would be useful, and not too difficult to implement, but perhaps most users would tend to use standard built-in drawing features. Choice of stroke type and line thickness would allow control so background time lines could be kept as a subtle backdrop to the plotted items. String labels would be easy to add, to do plots like this: http://www.ldeo.columbia.edu/~polsen/nbcp/trj.html
- Curve plotting would be relatively easy to implement, given the availability of example code, and would be needed for drawing sea level curves, elemental abundances in chemical analyses, etc.
- Similar to curve plotting, a simple horizontal bar chart plotting, where the value items would be distributed in time, using a data series scheme like that mentioned above for drawing abundance on phylogenetic lineages.
- Lithology patterns would take this into the realm of a measured section drawing system, which would could be split into another programming effort. It really depends on the scale of use. At finer time scales, this sort of thing might be needed. Without getting into a huge effort on lithology patterns, just a set of simple patterns would allow useful plotting, as in: http://www.ldeo.columbia.edu/~polsen/nbcp/breakupintro.html
- It would be easy to make a black-and-white or color magnetic reversal columnar plot. An example of this, can be seen at: http://www.ldeo.columbia.edu/~polsen/nbcp/cyclcicity.html
- Symbol plotting. If symbols are bitmaps, there is functionality in ReportLab to plot images. Vector symbols would be nicer for scaling.
- The initial use of this software is for preparing a study aid for a historical geology class. One simple feature would be a blank line drawing substitution choice which would show a fill-in-the-blanks chart for quizzing or study.
- Image maps or SVG rollover effects could be used as well for quiz making.
[Javascript tooltips and an image map rendering have been added, but with the new html stripping code in CMFDefault/utils.py, which removes such things as onmouseover tags, the image map functionality has been stubbed out until further notice.]