Plate Tectonics with GPlates and QGIS

Final-rasterLast time, in Building a World with a Globe and Paper, I described a simple hands-on model/game for simulating some of the effects of continental drift. Now we’re going to play the same game using gplates and qgis on the computer. I, personally, am using an Apple Macintosh, but the apps are open-source and compiled versions are available for major platforms.

I’ll start by creating a rotations file. The process is described in detail in an earlier post. For now, just enter the following code into a plaintext file and name the file, world_rotations.rot.

1000 0.0 0.0 0.0 0.0 0 !first
1000 150.0 0.0 0.0 0.0 0 !first
2000 0.0 0.0 0.0 0.0 0 !second
2000 150.0 0.0 0.0 0.0 0 !second
3000 0.0 0.0 0.0 0.0 0 !third
3000 150.0 0.0 0.0 0.0 0 !third
4000 0.0 0.0 0.0 0.0 0 !fourth
4000 150.0 0.0 0.0 0.0 0 !fourth
5000 0.0 0.0 0.0 0.0 0 !fifth
5000 150.0 0.0 0.0 0.0 0 !fifth
6000 0.0 0.0 0.0 0.0 0 !sixth
6000 150.0 0.0 0.0 0.0 0 !sixth

That will be sufficient for up to six separate plates. While the term, “Euler rotations,” is a bit intimidating, you really don’t need to know the math for what we’re doing here. You can just copy one of the pairs of rows above, just altering the plateID, which is the first column, and, possibly the identifying comment, which is the last column after the exclamation mark or “bang”(!).

Load your fresh new rotation file into gplates by opening the menu File>Open Feature Collection…, and selecting, “world_rotations.rot.”

Now we can start drawing some continental coastline polygons. Click the, “Digitise New Polygon Geometry G” button, digitise_polygon_35. To avoid polar pinching, make sure the view is set to, “3D Orthographic.” You can place the vertices

A nice view of the farside of the globe, showing, clearly, just how big I made that First continent.

A nice view of the farside of the globe, showing, clearly, just how big I made that First continent.

of your desired polygon by clicking on the globe. You can also rotate the

of the view by holding down the command key(ctrl for Windows) and dragging on the globe. When your satisfied with the shape of your continent, hit Create Feature near the lower right corner.

Since this is a polygon representing a continental shoreline, select gpml:Coastline from the list. If we wanted to define the edge of the continental slab(located roughly at the edge of the continental shelf), we could select gpml:ClosedContinentalBoundary, but coastline works for now. Hit next.

In the next window you only need to change the PlateID to 1000, to associate this polygon with the first two rows in the rotation file, check Distant Past and Distant Future to make the polygon visible for all times

and select a name. For other polygons, you would select a different PlateID if you want them to rotate independently. If, for example you wanted to add a feature representing a mountain range on this continent, you would also use PlateID 1000 for that feature, or a different ID corresponding to the continent that mountain range is associated with. Features can also be made to follow a given plate but still able to move independently, but that is beyond the scope of this discussion. Hit Next.

You can examine the existing properties of the new feature in this window. When you’re done with your ogling, hit Next.

In this window select < Create a new feature collection >. You now have a new continental coastline and an unnamed feature collection to contain it.

To keep things simple, we’ll save the feature set and give it a name.

Select the menu, File>Manage Feature Collections… Under Actions in the beige area next to New Feature Collection, click Save As. It’s the floppy disk icon with a pen. For Format select ESRI shapefile(*.shp), this will allow us to manipulate the features in qgis. Give it a clear name like Coastlines.shp. Hit Save.

Create additional continents as desired, giving them PlateIDs 2000, 3000, 4000 and 5000 up to 6000. Make sure to save your new features to Coastlines.shp or whatever you decided to name the shapefile. In the Layers window, check “Fill polygons” under “Reconstruction options” for the Coastlines layer. I like to set “Fill opacity” to 0.50 and use the menu View>Choose Background Colour… to give the basic globe a dark unsaturated blue color. Not necessary, but it’s why my screenshots look the way they do.

I made some really big continents, so I could only fit PlateIDs 1000 through

Not much room to move around...

Not much room to move around…

4000 on the globe, as shown in the Rectangular View to the right. Since their so big, I can split those little buggers up without overruning the PlateIDs I have already defined in the rotations file. But first lets move those things around a bit…

Fritz, set the time to 75.0 Ma in the Time text box in the upper left corner. Now use the Choose Feature F africa_highlight_clicked_35 tool to select one of your polygons. Now that you have selected a continent to move, use the Modify Reconstruction Pole P africa_pole_rotation_35 tool. With this tool you can simply drag around the globe to move a ghost image of the continent around on the globe. Hold down <shift> and drag to rotate the continent around the other axis. How cool is thaaat? When you get the ghost where you want the continent, hit Apply in the lower right.

The only thing you can really change here is the comment that will be inserted to the right of the exclamation mark in the corresponding row of the rot-file. You can leave it as is or put the name of your continent in there or some other descriptive comment that would make it easy where this is in the rotations file. That could be instructive. Do as thou wilt! Hit OK.

There’s your continent, in its new position. Go ahead and move all your other continents. I decided to create a supercontinent by dragging all my continents together at 75.0 ma. This will serve me well in the next stage. For purposes of the tutorial, at least try to have at least two of your continents collide. You’ll notice I’m not really following the rules of the little game here. I’d like to demonstrate some of the useful features of qgis and gplates, so I’m going to cheat a little. If I were playing the game straight, I’d move in smaller time intervals, perhaps 0.0 to 5.0 to 10.0, etc. making small movements in the directions dictated by the dice roll at each interval. This would leave the resulting rot-file and animation based on it as a record of my moves. That’s cool, too, but for now…

Now that you have your continents in their 75.0 Ma position with at least one collision, select the menu Reconstruction>Export… Press the Select Single Snapshot Instant radio button and set the tim to 75.0 ma.

Hit the Add Export button. Data type is Reconstructed Geometries. Output File Format is Shapefiles(*.shp). Maybe select Wrap polyline and polygon geometries to the dateline??? Hit OK.

Set your Target Directory. I like to have a separate subdirectory for each reconstruction date. That way, if I screw something up, I can throw it away before anyone notices!

Export Snapshot. Close.

Okay. Now, in gplates, I’m going to do something a little wild, here. Call this an advanced project. Especially if it doesn’t work.

Select one of the continents using the Choose Feature tool. Now hit the Edit Feature button in the lower right or click cmd-E(ctrl-E). Select the gml:validTime property in the list under the Edit Properties tab. Uncheck Distant Past and set the Begin(time of appearance) text field to 75.0. Then click Close. Repeat for each continent. This will cause all of your continent polygons to disappear for all times before 75.0 million years ago.

There’s two ways of making the collided continents polygons into a single polygon. Both of them will involve qgis. I will start with setting up QGIS.

First thing we’re going to do is make sure the Attributes, Digitizing and Advanced Digitizing toolbars are checked in the View>Toolbars menu. If they’re checked then the Attributes toolbar will contain the Select Single Feature QGISActionSelect button. The Digitizing toolbar will contain the Toggle Editing QGISActionToggleEditing button, the Current Edits QGISActionAllEdits button and the very useful Add Feature QGISActionAddPolygon button. The Advanced Digitizing Toolbar will contain the Merge Attributes of Selected Features QGISActionMergeAttributes button and the Merge Selected Features QGISActionMergeFeatures button as well as the Split Features QGISActionSplitFeatures button. Besides the usual panning and zooming tools this is all we’ll be using in qgis today.

For the first method we’ll start by importing the reconstructed shapefile for 75.0 Ma that we just exported from gplates into qgis. Now we’ll click on the Layers window to select the resulting vector layer. With that layer selected click Toggle Editing QGISActionToggleEditingto allow editing of the continental polygons.

I want the final supercontinent to be a solid polygon without voids. To do that, I will create a new polygon to cover the internal void areas using the Add Feature QGISActionAddPolygon tool. Simply click around so that the new polygon covers all the void areas internal to the outer coast shared by all the polygons without allowing any part of the polygon to go outside of the new supercontinent’s area. Right click to complete the polygon. We don’t give a flip about any of the attributes as these will be discarded anyway, so just click OK.

Now, using the Select Single Feature QGISActionSelect tool select one of the collided polygons. Holding down the cmd-button(ctrl for Windows), select the rest of the continent polygons we wish to merge into the new supercontinent.

With all of those selected let’s click Merge Attributes of Selected Features QGISActionMergeAttributes. In the resulting window, select the polygon with the PlateID1 attribute of 1000. Click “Take attributes from selected feature.” Now click OK.

This will allow us to merge the polygons together. Click Merge Selected Features QGISActionMergeFeatures to make the magic happen. All the features should have the same set of attributes, so just pick one. I guess this means the last step was unnecessary. Oh well. Voila. You now have a new supercontinent.

To save your changes click the little triangle in the Current Edits QGISActionAllEdits button and select Save for All Layers. OK. Now click Toggle Editing QGISActionToggleEditingto be safe.

Now import that shape into gplates in the usual way. Okay, as it turns out I made some mistakes. I really don’t want to re-use Plate ID 1000, because at 75.0 Ma it will be moved from it’s current location(which is it’s correct location for 75.0 ma) in the same way that the 1000 continent was moved from it’s 0.0 Ma location. Not good. PlateIDs 5000 and 6000 are still available so I’ll use 5000 for the supercontinent. After 75.0 ma, because all the older continents are gone, I can and will re-use the old PlateIDs. Though I will have to add a line to the rotation file for each PlateID re-zeroing them. I also need to reset the gml:validTime attribute to Distant Past to 75.0 Ma.

The other possible way of creating the supercontinent is to create a new continent manually in gplates by tracing the outer boundary of the collided continents. In some cases, this might be the better setup, especially if you one or more polygons that cross the edge of the rectangular map. Digitizing a new polygon geometry has already been covered, so I won’t review that here. This would also allow you to keep 1000 as the PlateID for the supercontinent, but will run into trouble later.

QGIS, showing my rift seed. The yellow polygon is the 100.0 Ma location of my supercontinent and the red polygon is the 75.0 Ma location of the same polygon.

QGIS, showing my rift seed. The yellow polygon is the 100.0 Ma location of my supercontinent and the red polygon is the 75.0 Ma location of the same polygon.

Now you can move your supercontinent around a bit, but eventually it will rift and separate. I’ll do that at 100.0 Ma. Set the Time to 100.0. Now I’m going to Export the 100.0 Ma Reconstruction to a shapefile as done before and import it into qgis. This time, I’m going to plant three rift seeds and split up the supercontinent using the rifting method given in my last post.

I will use the Split Features QGISActionSplitFeatures tool in Advanced Digitizing to make the rifts. Two of the three rifts will be made in a single cut through the seed. The third rift will be made in a second cut passing through the seed. Once the cuts are made, I’ll toggle editing off and save the changes.

Import that shapefile into qgis. Reset the valid dates for the supercontinent to

This is the way my rifts split.

This is the way my rifts split.

100.0 Ma to 75.0 Ma. Set the valid dates for the new continents to Distant Past to 100.0 Ma. Finally set the PlateIDs for your new continents to some value that corresponds to a zeroed out PlateID in the rotation file. I’ll use 1000, 2000 and 3000. To make things work properly make sure the three rotations are set to zero at the date of appearance of the polygon.

Go ahead and rotate things around to your heart’s content till you reach 150.0 Ma. I’m actually kind of running time backwards here since I’m going to use the 150.0 Ma shapes and position as “present day.” This could be done a lot more cleanly by running the initial shapes as 150.0 Ma and changing things as you run toward the present time, but this works. In retrospect, there’s a lot of things I could have done more cleanly…

For instance, the slice nearest the south pole has a little bit of a topological problem. It doesn’t match the coastline of the existing supercontinent. This is because qgis made different assumptions about the nature of the projection when it made the cut. Basically, it ignored the projection altogether and placed the vertex at the end of the cut on a straight line within the projection. this then got distorted by the projection. You can move the end vertexof one of the neighboring polygons around in gplates to make it as close as possible to the edge of the supercontinent. Do this at the highest magnification possible. Then select the corresponding vertex in the neighboring polygon. This won’t be perfect, but flaws should be essentially invisible at all but the highest magnifications. If doing this professionally, you’d want to use topological tools for this, but professional use is well outside the scope of this exercise. After a few millennia of erosion, the pieces wouldn’t fit perfectly anyway.

Looking at the animation, I can see one of the pitfalls of cutting corners on this kind of thing. My continents all start out kind of passing through each other like ghosts. This wouldn’t really have been an issue if I’d actually played the game, but I’ve decided to add a few in between rotations just to get things looking better. The plates are still going to jerk around a lot, but they should be a lot better.

My last post did… about the same thing… manually with bits of paper stuck to a globe. The fidelity was very low and I’ll be buggered if I’m anywhere near to converting the result into a useable form for mapping. It would practically require surveying instruments. What I had required most of a days work just to do the thing and take some pictures. Writing it up was extra time…

What I did on the computer today took a few hours, but a lot of that time was spent on writing, wrangling pictures through Photoshop and making this blog. The final result of my work includes shapefiles, animations which, while I can’t post them, could be useful and a final landsea image which would be quite useful as a basis for a map in itself.

You could run this thing straight into Photoshop or Campaign Cartographer and make a map out of it straightaway. With some guides generated from the animation I could make a very nice heightmap in Wilbur.

You could run this thing straight into Photoshop or Campaign Cartographer and make a map out of it straightaway. With some guides generated from the animation I could make a very nice heightmap in Wilbur.

I kind of wish I hadn’t made such huge continents to start with, but I think it turned out pretty darned well. Better than the globe. Now to try the actual game with a better set of initial and cut shapes.

I hope this proved useful to you,
The Astrographer

This entry was posted in Mapping, Planetary Stuff, World Building and tagged , , , , , , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s