Placing Raster Features Using GPlates

Today we’re going to look at using the gplates program to place pre-created raster features on the globe. For minimal distortion, we will begin by placing the raster at the center of the map, where the central meridian crosses the equator. If we were placing raster features taken from particular parts of Earth, we would want to make sure they were in equirectangular(or geographic, or plate carée or latlong) projection and place them in the position they were in on the original map(this is good for importing real world data from sources such as the SRTM 90-m database). I am going to give instructions both for the use of real world data and island maps from Amit Patel’s Polygon Map Generation Demo.

A few tips I’ve picked up through previous experimentation. Raster layers which are imported into the same location(since we’re dropping unprojected imagery as close to the center as possible to minimize distortion) need to have separate associated vector shapefiles.

In my filesystem, I create a separate directory for each raster. Within that directory, I create a “raster” subdirectory, where I place the raster itself and a “vector” directory, where I place the associated shapefile. This will make it easier to keep track of everything.

To start with, I created a patch in photoshop. Just an ordinary tiff image. I used tiff to test whether I could import and reproject 16-bit or 32-bit rasters. GPlates choked on the 32-bit tiff, but successfully loaded the 16-bit version. The patch I created was small and silly, so I decided to make its geographic extent small, if this works in 16-bit I might, perhaps use it as a set of elevations for the somewhat outscale raster I imported as a continent earlier. So how do I set the georeferencing. Nine meter resolution is pretty common and excellent for moderately close in work, so I’m using that. To reference this to Earth, the  diameter of our planet is close enough to 12,756,000 meters. Given that the circumference of a circle is equal to its diameter times π(about 3.14159265…), that gives us a circumference of about 40,074,156 meters. As back of the envelope as this is getting 1-meter precision is more than sufficient. The resolution of my image is 1k-square(1024×1024), so that’s an extent of 9,216 meters square. A degree comes to about 111,317 meters, so, keeping track of units,

9,216 meters / 111,317 meters/º = 8.279-yada-yada x 10^-2º

I want this centered at the [0,0] point, so divide that by two to get the extents. Top latitude of 0.0414º N, bottom latitude of 0.0414º S(-0.0414), left longitude of 0.0414º W(-0.0414) and right longitude of 0.0414º E. Unfortunately, this throws an inescapable exception on gplates. I successfully import the raster with the extent being 0.2º on a side. That gives me a pixel size of about 21.7 meters(about 71 feet). Once I get that imported, I digitize a new polygon geometry roughly covering the area of the image. I gave it a classification of gpml:UnclassifiedFeature, a plateID and a name. I also made sure that the checkboxes for Distant Past and Distant Future were filled, not that it matters for what we’re doing here, but whatever… Create and Save to a shapefile in the Vector directory associated with the raster. In the Layers window click on the arrow next to the Reconstructed Raster you just imported. Under inputs, find Reconstructed polygons, click on “Add  new connection” and select the Reconstructed Geometry you just digitized. Use the Choose Feature tool to select the polygon associated with your raster. You can now use the Modify Reconstruction Pole tool to move the raster to where you want it. In my case I placed it somewhere in the mountains of the small continent I had placed while practicing to do this. Place it where you want it, hit Apply and hit OK a couple times. I had to jockey mine around a bit to get it right where I wanted it. If all of your edits are done without changing the Time setting, there will only be one entry on the rot-file.

Speaking of the rot-file, go to File>Manage Feature Collections(cmd-M or ctrl-M), and make sure all changes are saved.

Now, I’m going to load in an island generated on the Polygon Map Generation website. To figure out the extent for this, I looked at a map of the Hawaiian Islands and observed that the Big Island fit into a space a little over a degree on a side. The islands generated by Mr. Patel’s generator just have the feel of being much smaller than Hawaii. I’ve decided to give it an extent of about half a degree each way, and, since the island shapes seem to roughly fit with the look of the other islands, I’ll center it at 21.5º N by 157.5º W. That would be just off Oahu, and maybe just a bit bigger. So, I used a top latitude of 21.7º N, a bottom latitude of 21.3º N, left longitude of 157.7º W(-157.7) and a right longitude of 157.3º W(-157.3). I reduced the extent a little ’cause the island still seemed big.

This time, we’ll roughly hug the coast with the shape feature we create. This will minimize the amount of water color we have to clean up later. In this case, I’m just going to play around and pretend like the slop represents shallow water. Once you’ve digitized and created the feature with a unique plateID, save it to a new shapefile. I actually like this thing’s rough location, so I’m going to move it just a little, mostly rotating it. Maybe I’ll plant it over Oahu’s position and call it Notoahu…

Now, I’m going to add another couple of islands, but I’m going to add them both to the center of the map. The first one will re-use the same shapefile as the previous import, and I will locate it at 0.2,-0.2,-0.2,0.2, in the usual order. I’ll digitize an outline of this island and save it to the previously created shapefile. A possibly late word of warning, it’s best to give all of your files easily recognized names. It’s maddening to try to find, “planet_island-61462-2AF,” somewhere between “planet_island-61462-1TR,” and “planet_island-61462-2JL.” Anyway, I wound up using the Pole Rotation tool to place that island somewhere in the space between Maui, Lanai and Molokai on the Earth map.

The next island I placed at 0.3,-0.3,-0.3,0.3. Since the initial location of this island coincides with the previous, it needs its own shapefile, otherwise overlapping will be a problem. Once I’ve got everything digitized and connected, I’ll shift it over with the rest of my little island chain.

For my last trick, I want to move a tile of countryside taken from the SRTM Database at TileX 54 TileY 3. I select the GeoTiff radio button before hitting the button marked, “Click here to Begin Search. I observe from the download page that the filename is The latitude has a minimum of 40º N, and a maximum of 45º N, the longitude has a minimum of 85º E and a maximum of 90º E. We also observe that the center point is at latitude 42.5º E by longitude 87.5º E. I chose Data Download(HTTP) to download the tiff.

Sadly, gplates has some serious problems with the 16-bit geotiff. This is really a shame, as moving fragments of real-world elevations and piecing them together is probably the single most useful aspect of this technique. Popping down pictures of islands is all well and good, but not a terribly powerful use-case.

It seems I might need to convince the developers of gplates to implement the import and reconstructed export of multi-byte elevation data. Failing that, the raster import/reconstruction/export abilities of this program are going to be functionally limited to imagery. Shame, really.

Hopefully, this could prove useful.

The Astrographer

This entry was posted in Mapping, 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