Using GIS Tools and Data

Recently(…-ish) I found something on the Zompist forum that I found interesting. Gareth3 was using an existing real world data(in this case, Stewart Island off of the southern tip of New Zealand) scaled up to represent an entire continent.

There are a number of problems with that rescale. First off, with a simple rescaling of the existing elevations, tall, steep mountains become wide, gentle slopes. To some degree, this can be handled by also scaling up the elevation range to something a bit more continent-worthy. The second thing is to raise the existing elevations to an exponent greater than one. This will tend to make the high points sharper and pointier and flatten out the lower areas between. Secondly, there’s the problem of climates. There is some discussion in the thread about the perils of using existing maps. The entire island is fairly small and looks to be covered pretty much entirely with what I figure would be a maritime west coast climate. An actual continent would have a variety of climates, including, in Gareth3’s modeling, significant desert areas, covered on existing maps with many streams. Our own stream mapping(down the line) would be based on the modified elevations and climate mapping(Precipitation – Evaporation for each grid point and propagated downhill).

Here is a little something I cooked up to import and modify the elevation map. I’ll describe my methodology, as it could prove useful to others. Affairs of climate and stream mapping will be dealt with later as I’m currently putting my GIS tools back in order after a major crash and system upgrade.

First, I went to the EarthExplorer site. I used to use seamless.usgs.gov, but that seems to have gone away 😡 . To download data, you need to be logged in, but setting up a profile is free. So, why not?

Under the Search Criteria tab, I selected the Address/Place tab and entered “stewart island” and tapped Show. Click on “Stewart Island / Rakiura, Southland 9818, New Zealand”. Zoom in a lot and tap Clear Coordinates. Click on the map to define the outline of the area you want to use. Now select the data sets tab. In the hierarchical list click on Digital Elevation, then SRTM. Under SRTM check SRTM Void Filled and SRTM Water Body Data. Then click on the Results tab. You should get four elevation data sets, and four water body data sets. Click on the footprints for each of these to insure that they cover the desired area., if they’re where they should be click on the download button for each data set in the SRTM water body data. Then click on each of the SRTM void filled elevation data sets, in the resulting window, click the Download button next to TIFF, although it looks like Wilbur can handle DTED.

Now that you have the data, this next step will require QGIS. You can get QGIS free here.
Next add the four raster layers to QGIS.From the main menu, select Raster>Miscellaneous>Merge…
Select the four input files, then browse a location to place the resulting merged elevation file. I named it merged_elevations.bt, and selected VTP .bt as the type. Now, I like to double click on the new layer in the legend area to open properties. In the Style tab, under load min/max values, I select Min/Max and Actual(slower), then hit Load and OK. This just makes the display look nicer.

Next, I’m going to clip the coverage area of the final raster to just the island. Start by clicking the New Shapefile Layer tool. This will create an empty new vector graphics object. Give it a name and set its type to polygon. We will fill that with the boundaries of our desired area. With your new shapefile selected, tap Toggle Editing in the Digitizing toolbar. This will allow you to define the area of the island’s raster. Click the Add Feature tool in the Digitizing toolbar. Now click in the water areas around the island to create a new polygon encircling the island. As a guide, you can create a “landarea” raster using Raster Calculator under the raster menu. Simply set the expression to “merged_elevations > 0.0”. Place that below the shapefile layer as a guide. Tap Toggle Editing again to finish your polygon.

Now pull down Raster>Extraction>Clipper… to actually clip the elevations. Set the input file to your merged_elevations, set the Clipping Mode to Mask Layer with the shapefile you just created as the Mask Layer. Name the resulting file to something like “clipped_elevations”.

Open Wilbur and open up clipped_elevations.bt.
Use the paintbrush with value set to something tiny like 0.001 and the Operation set to Maximum to paint over areas below zero within the island. These may be a fault in Wilbur, I’m not sure. I don’t see them in QGIS.

Next Surface>Locate>Flip Vertically to get roughly the same arrangement as has been used previously in this thread.

We’ll need to use an exponent operator to contract the mountain areas. Realistically, most continents would have a bit less highland, so that’s what I’m going to do here. Select>From Terrain>Height Range… from Minimum: -1 to Maximum: 0. With that selection, Filter>Fill>Set Value… Set Value: -1. Otherwise the exponential operation tends to mess things up. Deselect. Next, Filter>Mathematical>Exponent… Set the exponent to 2 for the Land(above sea level), and 0.5 for the Sea(below sea level), 0 for the Sea Level. Preserve Height should be set to Absolute Low set to -1, Absolute High set to 791.

Use rectangle select to select an area very close all around the island. Now, Surface>Crop to Selection.

Finally, to place this where it belongs, sort of, Surface>Find Min/Max… Top: 60, Left: 80, Right: 140, Bottom: 0. File>Save As… set the type to Binary Terrain Surface(*.bt). Name it something like “squared_elevations”.

Back to QGIS. While we used Wilbur to assign the new coordinates which were stored in the VTP .BT format, but the projection is hardwired as UTM. So, when the elevations file is loaded we need to reassign a WGS 84 latitude-longitude “projection”(Raster>Projections>Assign Projection… elevations.bt as the Input file, EPSG:4326 as the Desired SRS. This will be an equirectangular “latlon” coordinate system). Looking back on it, I think I can manage the projection described in this thread using georeferencing and probably a polar equidistant projection.

Finally, I’m going to use the Raster Calculator one more time. I’ll use the expression: 4*squared_elevation + 2.375*unsquared_elevations to give me a range. That will give us our final elevations.

For now, I’m going to leave it at that. There’s a lot more you can do, particularly when you’ve created a vector representation of the landmasses. The image below has streams everywhere and labels helping to identify some broad regions. None of this is final, particularly the streams(They were made using the D8 River Finder in Wilbur, so I’m not too excited by the results. Also, Wilbur has no really good way to edit down rivers in dryer places), but it’s good as a demonstration.

Advertisements
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:

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s