The TSCreator file format is structured as a tab-delimited text file. The tabs are used to separate cells, each cell containing some data. This structure means that the datafiles can be opened directly in a spreadsheet program like Excel or OpenOffice.org Calc. This is recommended because the cells will then neatly aligned. When done editing, save the file as a tab-delimited text file.
Note: TSCreator supports non-English characters through the Unicode character set (UTF-8 or UTF-16).
The datafile starts with a header, followed by the data columns. The header is separated from the data columns by a blank line. The columns are also separarated from each other by a blank line. No data column definition can have any blank lines.
Each line has several cells, each separated by a tab. A spreadsheet program will automatically place tabs for you between cells. The rest of this guide will assume that the file is being edited by a spreadsheet program.
For the rest of the guide, words appearing in CAPS surrounded by <angle brackets> mean text that you
enter.
Required cells are marked with a red asterisk: *required
All features in this file are available as of TSC PRO 1.3.5. If a feature requires a later version, the required version is marked in blue superscript: 1.4
Every data file must begin with a header which includes some information about the datafile. The header consists of the following lines:
| *format version: | <VERSION> |
| *date: | <DATE> |
| age units: | <UNITS> |
| default chronostrat: | USGS or UNESCO |
| chart title:1.4 | A title for the chart |
<VERSION> is the version of the datafile format, NOT of TSCreator. As functionality is added to TSC we have to
increment this number. Currently use "1.5" *required
<DATE> is the date of the datapack, in mm/dd/yyyy format. *required
<UNITS> refers to the unit of the data columns' age value. The default is Myr. For core samples you can use m
(meters) or ft (feet) or any unit you deem appropriate.
The default chronostrat is the default option for the color scheme used to color periods, epochs, stages, etc. The
two choices are USGS and World Geol. Map (Paris) (default).
format version: 1.5 date: 04/01/2009 age units: m default chronostrat: USGS
Data columns can be grouped together under one heading using a meta or grouping column.
A grouping is created on a single line:
| *<GROUP TITLE> | *: | *<CHILD COLUMN 1> | <CHILD COLUMN 2> | <CHILD COLUMN 3> | _METACOLUMN_OFF or _METACOLUMN_ON |
_TITLE_OFF1.5 or _TITLE_ON |
<POPUP> |
<GROUP TITLE > is the name of the group. *required
The second cell must contain just a colon (:) *required
Next follows a list of the columns belonging to this group. There can be as many as needed, including other groups.
*At least one child column is required
By default, groups are on. A group can be turned off by adding a _METACOLUMN_OFF as if it were a child column. To
include the group or any of its child columns in the generated chart the user will have to enable it in TSC's
Settings. _METACOLUMN_ON explicitly says to make the group on.
_TITLE_OFF can be used to turn off displaying the title on the generated chart. The title will still appear in the
Settings. Default is _TITLE_ON
A popup can be included at the end of the line by leaving a blank cell in a spreadsheet, or two consecutive tabs in
a text editor, followed by the text of the popup. See below for more on popups.
Standard Chronostratigraphy : Era Period Series Stage Substage
Every data column begins with a one-line header, followed by the column data. Some columns have additional, optional,
headers.
The format of this universal header is:
| *<TITLE> | *<TYPE> | <WIDTH> | <COLOR> | notitle | on or off | <POPUP> |
<TITLE> is the name of the column. *required
<TYPE> is the type of the column. This has to match one of the types below. *required
<WIDTH> is the width of the column, in SVG units. These are analogous to pixels, but not exactly. The default
for most columns is 100.
<COLOR> is the background color of the column, specified as red/green/blue where each color is an integer
value from 0 to 255. For example, an aqua background would be 0/255/255.
By default, the title (specified by <TITLE>) will be shown on the chart. Sometimes it is prefered that it
isn't, and this can be done by including a "notitle" (without the quotes) in this cell.
<POPUP> is the popup text. See information about popups below.
| *<TITLE> | *block | <WIDTH> | <COLOR> | notitle | on or off | <POPUP> |
Following the header is the actual data. The base age of each block is specified on its own line:
| * | *<LABEL> | *<AGE> | <LINESTYLE> | <POPUP> | <COLOR>1.4 |
Note that the line begins with an empty cell (or a tab in a text editor).
<LABEL> is the label that goes inside the block. *required
<AGE> is the base age of the block. *required
<LINESTYLE> specifies the type of line at the base of the block. It can be one of the following:
<POPUP> see below for information about popups.
<COLOR> is the background color of that particular cell, and that cell only. It can be specified as "r/g/b" where each of r,g,b is an integer from 0 to 255 representing red, green, and blue, respectively.
The first row in a block column should specify the TOP of the first block, see the note above about TOPs.
Period block USGS-Named off TOP 145.5 Jurassic 199.6 2 Series block 120 USGS-Named notitle TOP 145.5 Late 199.6 2 Lower Jurassic is my popup
| *<TITLE> | *chron | <WIDTH> | <COLOR> | notitle | on or off | <POPUP> |
Chron columns are often displayed in three columns on the chart. The leftmost shows the polarity, and middle is a
block column which shows the LABEL, and the rightmost is a block column which shows the SERIES. All three are
automatically created based on the data below.
It is possible to NOT automatically generate the two block columns by specifying "chron-only" as the
column type instead of "chron". 1.4
Before any data is given we need to establish what series the data is in. This is done using a line like the following. The series can be changed at any time.
| *<SERIESNAME> | (leave blank) | <WIDTH OF SERIES COL> |
<SERIESNAME> is the name of the series.*required If you would like to stop a series,
begin a new one with <SERIESNAME> just a space, or in 1.4 you can use
the string "BASE" (no quotes).
For historical reasons leave the next cell blank (two tabs in a row in a text editor).
<WIDTH OF SERIES COL> allows you to set the width of the rightmost block column which shows the series.
The actual data can now follow:
| * | *<POLARITY> | <LABEL> | *<AGE> | <POPUP> |
Note the blank cell at the start of the line.
<POLARITY> can be:
*required
Geomagnetic Polarity chron Austria series Hettangian magnetic polarity intervals are not correlated to ammonite zones. Pattern is schematic only. TOP 202 N 202.47 R 204.18 R 204.56 No Data 205.7 Newark Basin series Series_Popup_text TOP 206 N l+ 206.66 N j+ 213.5 R i- 215.852 N h+ 218.348 R g- 219.668 Data popup text N f+ 220.82 R e- 221.445 N d+ 222.229
Facies columns are exactly the same as CHRON COLUMNS, except the column type is "facies" instead of "chron" and <POLARITY> can be:
Similarly to chron columns, it is possible to NOT automatically generate the two companion block columns by specifying "facies-only" as the column type instead of "facies". 1.4
![]() Example of pattern widths |
Facies columns show the grain size by varying the width of the box containing the pattern like in the example on the left. The patterns built into TSCreator already have widths associated with them. These widths are changeable by specifying them in the datafile. Note that pattern widths are global throughout TSCreator, so changing them in one datafile will also change them in all currently loaded columns. The widths are specified in a manner similar to a data column. First comes a header:
Followed by the pattern name and its width:
<PATTERN NAME> is the facies pattern name, like in the facies column. Example:patternwidths patternwidths Halite 70 Gypsum-Anhydrite 75 Evaporite 72.5 Saline 72.5 Brackish 75 Soil 70 Coal 80 Pelagic_marl 80 Shallow-marine_marl 80 |
Event columns are used to show the First appearance of something (FAD), the Last appearance of something (LAD), or an Event.
| *<TITLE> | *event | <WIDTH> | <COLOR> | notitle | on or off | <POPUP> |
Deviations from column defaults:
The default <WIDTH> of an Event column is 150.
By default, event columns are OFF. To specify one to be on, use the "on" keyword in the appropriate cell
as shown above.
The three types of data an Event column can display are split into three sections. Each section is optional, but at least one must exist. Each section has a header:
| *<TYPE> |
Where <TYPE> can be one of the following: *required
After the type, the points follow:
| * | *<LABEL> | *<AGE> | <LINESTYLE> | <POPUP> |
Note that the line begins with an empty cell (or a tab in a text editor).
<LABEL> is the label that goes inside the block. *required
<AGE> is the base age of the block. *required
<LINESTYLE> specifies the type of line at the base of the block. It can be one of the following:
FAD/LAD event 200 nocolor LAD Limbosporites lundbladii 205.7 A. laevigatus 205.7 R. tuberculatus 205.7 some popup text G. rudis 206.97 FAD V. ignacii (common) 210.98 U. imperialis 249.9
Range columns show ranges. For example, when a certain critter lived and how its abundance changed over time.
| *<TITLE> | *range | <WIDTH> | <COLOR> | notitle | on or off | <POPUP> |
Note that a range colun's width is based on the number of critters in the time frame. It calculates the width that it needs. The width from the header (<WIDTH>) is ignored by a range column.
Ranges are automatically parsed from the points given next:
| * | *<LABEL> | *<AGE> | <ABUNDANCE> | <POPUP> |
Note the empty cell at the beginning of the line.
<LABEL> is the name of the critter, or whatever the range represents. *required
<AGE> is the base age of this part of the range, or the age of a sample. *required
<ABUNDANCE> specifies the thickness of the line that will be used to draw the range:
Range range donald 0 donald 1 rare donald 2 donald 3 frequent donald 4 flood mickey 3 mickey 4 rare mickey 5 missing mickey 6 flood mickey 6 sample mickey 4.5 sample mickey 3.3 sample goofy 4 goofy 6 abundant pluto 0 rare pluto 3 frequent pluto 5 flood minnie 5 minnie 6 abundant scroodge 2 scroodge 4 flood scroodge 6 frequent
Sequences and Trends have identical formats except for the name of the column. The differences on the chart are a different background color, and the different drawing of severities.
| *<TITLE> | sequence *or trend |
<WIDTH> | <COLOR> | notitle | on or off | <POPUP> |
After the column header comes the actual data. Each line is specified like this:
| * | <LABEL> | SB *or MFS |
*<AGE> | *<SEVERITY> | <POPUP> |
Note the empty cell at the beginning of the line.
<LABEL> is the label for the event, it is optional.
The direction can be either:
*required
<AGE> is as usual *required
The Severity can be one of the following:
*required
SomeSequence sequence name SB 201.5 Major name2 MFS 202.5 Medium Popup text goes here. name3 SB 203.5 Minor
Graph/Point columns draw an X vs. Age graph.
The drawing style of the graph can be selected with an optional line immediately following the main column header.
| *<TITLE> | *point | <WIDTH> | <COLOR> | notitle | on or off | <POPUP> |
| *<POINT TYPE> | line or noline |
<FILL COLOR> | <RANGE LOW> | <RANGE HIGH> | smoothed |
<POINT TYPE> is *required if the optional second line is present, but can be omitted if none of the extra options are desired. It can be one of the following:
line or noline: whether or not to draw a black line connecting the points
<FILL COLOR> a color specified in r/g/b format, or "nofill", to fill the area between the
points/line and the edge of the column.
<RANGE LOW> and <RANGE HIGH> specify the range of the graph in the X dimension. Both values must either
be present or omitted. If omitted, TSCreator automatically calculates the range so that all points fit inside.
smoothed: Whether or not to smooth the line connecting the points. Smoothing is done using a Bezier curve. The
smoothed curve passes through every point and maxima/minima are preserved.
Following the header are the points:
| * | *<AGE> | *<X VALUE> |
Note the empty cell at the beginning of the line.
<AGE> is the Y coordinate of the point *required
<X VALUE> is the X coordinate of the point *required
SomeGraph point nopoints line nofill 0 6 205 0 mylabel Popup text 206 5 Popuptext
SomeGraph point 205 0 mylabel Popup text 206 5 Popuptext
CompoundGraph point nopoints right 1 10 2 9 3 7 3.1 1.3 3.9 1.1 5 1.5 5.3 9 CompoundGraph point-overlay rect 0/0/255 left 1 8 2 5 3 3 3.1 1.1 3.9 1.0 5 1.3 5.3 9
A blank column is meant to leave space in the graph which is later filled in with some custom drafting.
| *<TITLE> | *blank | <WIDTH> | <COLOR> | notitle | on or off | <POPUP> |
Blank columns contain no data, so just the column header is sufficient.
Freehand columns allow straight drafting and can be used to draw on top of other columns.
| *<TITLE> | *freehand | <WIDTH> | <COLOR> | notitle | on or off | <POPUP> |
Note that a freehand column can also have a type of "freehand-overlay" or "freehand-underlay". That means that this freehand column will be drawn on top of, or under, the last column specified in the datafile before this freehand column.
Images:
| *image | *<FILENAME> | <TOPAGE>1.4 | <BASEAGE>1.4 |
<FILENAME> is the filename for the image file. This should be a relative path from this datafile. For example,
if you put your images in a subdirectory "images" located in the same directory as the datafile, the path
can be "images/something.jpg".
Supported formats are JPG, PNG, SVG. *required
If <TOPAGE> and <BASEAGE> are specified then the image is assumed to be centered both horizontally and vertically between those ages. If you'd like more control, you can use these extra two lines:
| *agetype | *<TYPE> | <TOPAGE> | <BASEAGE> |
| *xtype | *<TYPE> |
where <TYPE> can be:
Note that the xtype line is optional, center is the default.
Scotese PALEOMAP freehand 720 0/0/0 Scotese, C.R., 2002, http://www.scotese.com, (PALEOMAP website). image 000.jpg agetype center 0 7 xtype center image 014.jpg 7 21
Transect columns show the changes of facies in a certain direction, such as showing the stratigraphy between two wells. This is done using polygons and the same patterns used in a facies column.
A transect column's datafile format is an extension of the Facies column format into two dimensions. There is a grid of points, which lines connecting the points and forming polygons. Each polygon can have a pattern fill.
| *<TITLE> | *transect | <WIDTH> | <COLOR> | notitle | on or off | <POPUP> |
The point grid follows:
| * | * | [x coordinate] | [x coordinate] | [x coordinate] | ... |
| * | [age coordinate] | ||||
| * | [age coordinate] | ||||
| * | [age coordinate] | ||||
| * | ... |
Each of the shaded cells has both an age and an x-coordinate and can contain an 'X' which means there is a point there. X-coordinates are percentages (values from 0 to 100) of the column width. Points are linked together with lines to form polygons. Lines are a series of cells containing an 'L'. Each 'X', i.e. point, should be used in all polygons that go through that point. This way you are guaranteed to not have any gaps between polygons. Here is an example column with the resulting chart to the right:
|
|
Notice that not all of the lines in the grid have an age. When an age (or an X coordinate) is missing TSC will linearly interpolate between the two closest ages (or X coordinates) to find the missing age (or X coordinate). For example, the age of the point of the "spike" of claystone (cell marked with *) is interpolated to be 24.5.
Notice also how the "L" cells are used. A line is NOT drawn at a coordinate just because there is an "L" at that position. The "L"s are only a means of linking points. The path taken by the "L"s does not matter as long as it is continous (no breaks) and unambigous (two lines don't meet in the middle).
It is possible to give lines a style like this: "L:<style>". <style> can be one of the following:
Note: When two lines with styles are close together in the final chart, the amplitude of the wave/jagged portion may be reduced to make sure that the lines do not intersect.
Like is shown in the example, a polygon is a set of points ("X"s) joined by lines ("L"s) to form a closed region and a pattern somewhere in that region. These are pattern names like "Granitic" or "Sandstone". The pattern may be specified multiple times to make the table easier to read, but all instances must be the same.
The template can be generated using the "Save Transect Template..." option in the File menu of the Image
Editor. A window like this appears:

Enter the ages you are interested in working in and click Save Template As. Open the resulting SVG file in your
drafting package and it should look similar to this:

Also note that the patterns/swatches list has been filled with all the patterns loaded into TSC.
Now fill the red box with polygons and fill the polygons with one of the included patterns/swatches. You can show
unconformities or interfingering by taking the wavy/interfinger lines in the template, making a copy of them, and
crossing them with whatever lines you want to be wavy/interfingered. Here is an example:

Note that the Base Age has also been changed. You also do not have to cramp everything into the small box, you can
make the box bigger by resizing it, even though it was kept small here to fit into the guide.
Once the template is done, save it and load it into TSC using "Load Transect Column from Template..." from
the File menu of the Image Editor. A window like this appears:
There are three main options to help with loading: point merge distance, and snap to grid for age and X. Point merge
distance helps to make sure that points which are shared between two polygons are found correctly.
For example, here is what one part of the above template looks like when zoomed in 800%:

Notice the two points in the lower left and the space between them. Those are intended to be coincident, so the
points should be the same and there should be no gap. The points are within the point merge distance so TSC merges
them and there is no gap:

The grid simply forces all points to fall on the specified grid. This helps align everything.
If you look closely, you will notice that there are some lines in the preview highlighted red. That means that there
are intersections in the template, which is not allowed. One can play with the point merge distance and grid and see
if that takes care of the problem, but in this case it won't. Zooming in closely on the region of the template we
notice that one polygon doesn't have a point where the neighboring polygons do:

Note that there is no point in the blue polygon, while there are points in the brown and yellow polygons. This is
the source of the gap and the intersection shown in the preview. Adding this missing vertex to the blue polygon in
the drafting package and reloading the template fixes the problem.
Once there are no problems in the template you can add the transect as a column to TSC or save it out to a
datafile.
Note that this saved datafile stores lines and polygons separately from the point grid in a listed immediately
following the point grid. This is to guarantee that the saved polygons are unambigous. When copying the saved column
into your own datapack, be sure to copy the entire grid and polygon set.
Popups, or mouseover info, is extra information which doesn't fit on a static, printed graph. When enabled in Settings, popups appear as highlighted areas on the chart. When the user clicks, a window pops up with extra information. Nearly all data types in TSCreator support a popup. All column headers support one as well.
Since the "Information and References" section in Settings also displays the popup text of the selected column's header popup, that is a good place to put references and citations for the data in the column.
Popups can also contain hyperlinks. The format is exactly like in HTML. For example, a link to the TSCreator homepage
would be written like this:
TSCreator homepage
The best way to make sense of all this information is to see an actual datafile. We've prepared a very stripped down version of the default dataset to use as an example in plain text or as HTML (looks similar to a spreadsheet). You can download the txt sample file at: https://engineering.purdue.edu/Stratigraphy/tscreator/download/download.php