TerraGear GUI: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
m ((Very) Small update)
(Update, rewriting for the upcoming GUI release.)
Line 2: Line 2:
| title                = TerraGear GUI
| title                = TerraGear GUI
| image                = TerraGearGUI.jpg
| image                = TerraGearGUI.jpg
| developedby          = Alex Park, Gijs de Rooy
| developedby          = Gijs de Rooy (original by Alex Park)
| initialrelease        = March 24, 2009
| initialrelease        = March 24, 2009 (original)
| writtenin            = C++ (Qt)
| os                    = Windows
| os                    = Windows
| website = http://gitorious.org/terragear/terrageargui/
| website = http://gitorious.org/terragear/terrageargui/
}}
}}
Since March 2009 a '''GUI''' tool for '''[[TerraGear]]''' is available at [http://www.flightgear.org/forums/viewtopic.php?p=30238#p30238 the forum], available on Windows. This tool makes the use of commandlines redundant, through which it's easy to use for everyone not familiar with commandlines.
The '''GUI''' tool for '''[[TerraGear]]''' allows people to create [[scenery]] for [[FlightGear]] without using commandlines.
 
= Manual =
Create a <tt>TerraGearWork/</tt> folder somewhere on your computer and create the following three folders inside that one:
* '''Data/''': used to collect the raw unprocessed data we need to feed the tools.
* '''Output/''': used at the very end and is where your newly processed scenery is finally stored.
* '''Work/''': we will keep the files and folders here we will be generating with the TerraGear Tools.
 
== Obtaining data ==
==== Elevation data ====
The best elevation data currently available is from the Shuttle Radar Topography Mission (SRTM). There are two types of SRTM data:
* '''SRTM-1''': Highly accurate 1-arcsecond resolution data, for the USA.
* '''SRTM-3''': Less accurate 3-arcsecond data, for the rest of the world.
From now on, we will assume that you are using SRTM-3 data. Unless otherwise noted, the process for SRTM-1 is identical.
 
Create a new folder in your <tt>TerraGearWork/Data/</tt> folder called <tt>SRTM-30/</tt>. Now download appropriate data from ftp://e0srp01u.ecs.nasa.gov/srtm. You want ALL .hgt.zip files covering the area you want to create. Depending on the size of your scenery, there may be quite a few. The reason why the directories are called SRTM-30 is because genapts (a tool we will meet further on) will look for a few known, hard-coded directories in its working directory. SRTM-30 is one of them and this is the least confusing in that list.
 
Unzip all of the .hgt.zip files using your favorite software.
 
=== Land use data ===
The final piece of data we need to download is the land-use data. In general, this is taken from the VMAP0 dataset, but other sources can be used as well. The landuse data can be split into a number of different types:
* '''Landmass''': separates the land from the sea. It is used as a mask for all other data. The most common used is the VMAP0 Landmass, but GSHHS can be used as well.
* '''Land use data''': defines whether a piece of land is forest, urban, sand, lava, glacier etc. These are usually VMAP0 data, defined as polygons.
* '''Line data''': includes railroads, streams, roads. Typically VMAP0, but also [http://www.openstreetmap.org Open Street Map] for roads.
* '''Point data''': currently only used for defining towns.
By far the easiest way to get this data is to download shapefiles from the [http://mapserver.flightgear.org FlightGear Mapserver]. This webpage provides access to a database, and allows you to download the specific shapefiles for your scenery area. Click on the Download Shapefiles link, enter in the bounding box of the scenery you want to generate, select the shapefiles you want, and click download. For your first scenery generation, you want all of the ones listed under VMap0 (with prefix v0_). Download each of them into a seperate Data/Shapefiles directory. The v0_landmass shapefiles goes into a <tt>Data/Shapefiles/v0_landmass/</tt> directory for example and v0_urban should be downloaded into <tt>Data/Shapefiles/v0_urban/</tt>.
 
You can load these shapefiles into a GIS editor such as QGIS or GRASS to view and edit. This is a good idea to verify you have the correct files! There is [http://stattosoftware.com/flightgear/tutorial/index.html a tutorial available] written by John Holden which shows you how to create your own shapefiles. Later on, you can experiment with replacing various shapefiles with other versions (GSHHS for coastline, OSM for roads etc.).


== Using the GUI ==
== Using the GUI ==
Now we can finally launch the <tt>TerraGear Toolset GUI.exe</tt>. If you click on the Tools button the list of available tools will be shown. The first tool will be needed first, then the seconds and so on. This manual follows the same steps.
The GUI exist of several tabs. For normal scenery creation, all the tabs should be gone through in the order they are arranged.


=== HGTchop ===
=== Start ===
The HGTchop tool uses the .hgt.zip files you have downloaded earlier on and converts it into a form that FlightGear can read. First we need to create yet another folder, this time it's <tt>Work/SRTM-30/</tt>. The processed data will be output to this folder, if you set the correct Output path.  
# Set the TerraGear directory, in which you'll find ogr-decode, fgfs-construct etc. TerraGear must be downloaded/build seperatly from the GUI!
# Set the project's directory. In this directory, all project related stuff will be stored throughout the process. You best choose an empty directory specific to your project.


Select the first .hgt.zip file and click the Start button. A command box will open and you will see the tool working away. It will produce numerous .arr.gz files which is quite rough data and requires more refinement with Terrafit (see below). At the moment you need to repeat this step for every file in your <tt>Data/SRTM-30/</tt> folder.  
=== HGT chop ===
This will convert the .hgt.zip files you have downloaded earlier on and converts them into a form that TerraGear can read.


Once completed we can move onto the next tool.
=== Genapts ===
What is scenery without airport in a flight simulator? If your tile does not contain any airports, you can skip this part and continue with [[#ogr-decode|ogr-decode]].


=== Terrafit ===
First create the <tt>data/Airports/</tt> directory. Then locate FlightGears <tt>apt.dat.gz</tt> file, which is usually in <tt>[[$FG ROOT]]/Airports/</tt> in the just created directory. Unpack the file before you continue.
The Terrafit tool is used to process the .arr.gz files that you just created into a more refined data. The data collected so far would show flat land and requires more work, so lets use Terrafit to enhance our data.


The three boxes Min Points, Max Points and Max Error can be left blank, unless you are an advanced user. The tool currently uses the default setting for these figures which are sufficient for use in FlightGear. Now simply use the browse button to point the tool to the <tt>Work/SRTM-30/</tt> folder where the .aar.gz files are stored. Press the Start button and Terrafit will converte all our data to the correct elevation data required, leaving .fit files in the <tt>Work/SRTM-30/</tt> folder.
Use the button to browse to the (unpacked) .dat file. If you only want to create the scenery for a specific airport you can enter the ICAO name into the relevant field. If you do not enter any information in any of the boxes, the tool will run through the entire apt.dat file, which can take a long time.


=== Genapt ===
=== OGR Decode ===
What is scenery without airport in a flight simulator? If your tile does not contain any airports, you can skip this part of the manual on continue with [[#ogr-decode|ogr-decode]].
Now we need to decode the shapefiles into TerraGear format, which we do with OGR Decode. After clicking the "Retrieve shapefiles" button, the left list will be populated with the shapefiles from your project's data directory. On the right list you'll add the materials, per shapefile. Each single shapefile on the left, should have a material assigned on the right. By dragging materials up&down, you can finetune the material assignments.


First create the <tt>Data/Airports/</tt> directory. Then locate FlightGears <tt>apt.dat.gz</tt> file, which is usually in <tt>[[$FG ROOT]]/Airports/</tt>.
'''Warning: *_landmass MUST be mapped onto the material Default.'''
Copy this file to your newly created <tt>Airports/</tt> folder. Unzip the file before you continue.


Use the upper browse button to locate your, just unzipped, apt.dat file. In the second box, use the browse button to locate your <tt>Work/</tt> folder.
You can delete shapefiles and materials from the lists by double-clicking on them.
If you only want to create the scenery for a specific airport you can enter the ICAO name into the relevant field. If you want to create a larger piece of scenery you can also enter min/max lat and lon co-ordinates. If you do not enter any information in any of the boxes, the tool will run through the entire apt.dat file, which can take a long time.


Click the Start button. Genapts will create two sub-directories in your <tt>Work/</tt> directory, namely AirportArea and AirportObj. These define the definitions of the airport layout and any objects present (e.g. windsocks and beacons). Right, that’s the airports sorted out.
=== FGFS Construct ===
The fgfs-construct tool brings all your gathered data together, throws it in a washing machine and spits it out the otherside in format ready for use with FlightGear. Click the "Update list" button to populate the field with all decodes shapefiles. In the list you select all types that you'd like to include in your scenery.


=== ogr-decode ===
Then set the center of the to-be-created scenery area; and the radius, all in degrees.
Now we need to decode the shapefiles into TerraGear format. This is done with the ogr-decode tool. There are several important command-line arguments to OGR decode:
* Filename of the shapefile (without the .shp extension for shape decode) you want to decode.
* Directory you want to write the data to.
* Material type to use.
Each of the shapefiles maps onto one of the material types defined in your <tt>[[$FG ROOT]]/materials.xml</tt> files. The mapping is pretty obvious, e.g. v0_roads maps to Roads etc.


'''Warning: v0_landmass MUST be mapped onto the type Default.'''
After clicking the "Generate scenery" button, it may take a long time for TerraGear to finish. Depending on the size of the area you are creating the scenery for and the level of detail in your shapefiles. Simple and small sceneries will take a couple of minutes, where larger, more detailed areas can take over an hour! So trying new things on small areas first will save you a lot of time.


So this is what we need to begin. A shapefiles directory in your <tt>Data/</tt> folder. Then for each of the different shapefiles you are going to create a folder with that name in the <tt>Work/</tt> directory. see the image below for example.
The folders and files in your project's <tt>output/</tt> directory are ready to use as scenery. You can set the scenery path of FlightGear to this directory to check if the scenery is generated correctly.


=== fgfs-construct ===
== GUI development ==
The fgfs-construct tool brings all your gathered data together, throws it in a washing machine and spits it out the otherside in format ready for use with FlightGear.
 
Using the Browse button, select the <tt>Work/</tt> directory. Then select the <tt>Output/</tt> directory we created at the start of the manual. The next two fields are for the centre of the area you have chosen. The next two fields are the outward distance from the centre in degrees. If you click on the Get Folders button it will populate the empty field with all the folders in your <tt>Work/</tt> directory. Highlite them all, holding Shift and clicking the first and last items in the list.
 
Press Create Scenery to fianlly generate your scenery. This may take a long time depending on the size of the area you are creating the scenery for and the level of detail in your shapefiles. Simple and small sceneries will take a couple of minutes, where larger, more detailed areas can take over an hour! So trying new things on small areas first will save you a lot of time.
 
The folders and files in the <tt>Output/</tt> directory are ready to use scenery. You can set the scenery path of FlightGear to this directory to check if the scenery is generated correctly.
 
= GUI development =
The GUI is currently undergoing a complete rebuild and re-written in [http://qt.nokia.com Qt]. This will allow us to build the GUI on multiple OSes (Mac OS X, UNIX, Windows).
The GUI is currently undergoing a complete rebuild and re-written in [http://qt.nokia.com Qt]. This will allow us to build the GUI on multiple OSes (Mac OS X, UNIX, Windows).


Line 90: Line 51:


=== Requested features ===
=== Requested features ===
* <strike>--tile-id option in fgfs-construct, to easily generate just one tile which can be used for fast scenery in-cooperation.</strike>
* <strike>A larger list or maybey a dropdown menu with the ogr-decode tool to select shapefiles and material mappings. Right now it's very hard and takes a long time to search through the list for the correct shapefiles/materials.</strike>
* <strike>Materials (in fgfs-construct) in alphabetical order.</strike>
* <strike>Ability to select multiple (non linear) folders using the Ctrl key (so not selecting everything between click and click, but just the folders I click).</strike>
* Resizable dialogs.
* A topmenu showing all the tools, so there's no need to return to the mainmenu every time you continue to the next step.
* Creating automatically all needed folders for shapefiles and the decoded ones. This includeds automated decoding all shapefiles in a directory.
* Creating automatically all needed folders for shapefiles and the decoded ones. This includeds automated decoding all shapefiles in a directory.
* Maybe error reports possible? So you get a message when a certain file isn't found, or a certain path isn't set. Right now it only appears in the console, but it's hard to read the fast scrolling text.
* Maybe error reports possible? So you get a message when a certain file isn't found, or a certain path isn't set. Right now it only appears in the console, but it's hard to read the fast scrolling text.
=== Bug reports ===
* Decoding with points width gives no output.
* <strike>Just using airport ICAO in genapts gives no output.</strike>


[[Category:Scenery enhancement]]
[[Category:Scenery enhancement]]

Revision as of 19:00, 11 March 2011

TerraGear GUI
TerraGearGUI.jpg
Developed by Gijs de Rooy (original by Alex Park)
Initial release March 24, 2009 (original)
Written in C++ (Qt)
OS Windows
Website

The GUI tool for TerraGear allows people to create scenery for FlightGear without using commandlines.

Using the GUI

The GUI exist of several tabs. For normal scenery creation, all the tabs should be gone through in the order they are arranged.

Start

  1. Set the TerraGear directory, in which you'll find ogr-decode, fgfs-construct etc. TerraGear must be downloaded/build seperatly from the GUI!
  2. Set the project's directory. In this directory, all project related stuff will be stored throughout the process. You best choose an empty directory specific to your project.

HGT chop

This will convert the .hgt.zip files you have downloaded earlier on and converts them into a form that TerraGear can read.

Genapts

What is scenery without airport in a flight simulator? If your tile does not contain any airports, you can skip this part and continue with ogr-decode.

First create the data/Airports/ directory. Then locate FlightGears apt.dat.gz file, which is usually in $FG ROOT/Airports/ in the just created directory. Unpack the file before you continue.

Use the button to browse to the (unpacked) .dat file. If you only want to create the scenery for a specific airport you can enter the ICAO name into the relevant field. If you do not enter any information in any of the boxes, the tool will run through the entire apt.dat file, which can take a long time.

OGR Decode

Now we need to decode the shapefiles into TerraGear format, which we do with OGR Decode. After clicking the "Retrieve shapefiles" button, the left list will be populated with the shapefiles from your project's data directory. On the right list you'll add the materials, per shapefile. Each single shapefile on the left, should have a material assigned on the right. By dragging materials up&down, you can finetune the material assignments.

Warning: *_landmass MUST be mapped onto the material Default.

You can delete shapefiles and materials from the lists by double-clicking on them.

FGFS Construct

The fgfs-construct tool brings all your gathered data together, throws it in a washing machine and spits it out the otherside in format ready for use with FlightGear. Click the "Update list" button to populate the field with all decodes shapefiles. In the list you select all types that you'd like to include in your scenery.

Then set the center of the to-be-created scenery area; and the radius, all in degrees.

After clicking the "Generate scenery" button, it may take a long time for TerraGear to finish. Depending on the size of the area you are creating the scenery for and the level of detail in your shapefiles. Simple and small sceneries will take a couple of minutes, where larger, more detailed areas can take over an hour! So trying new things on small areas first will save you a lot of time.

The folders and files in your project's output/ directory are ready to use as scenery. You can set the scenery path of FlightGear to this directory to check if the scenery is generated correctly.

GUI development

The GUI is currently undergoing a complete rebuild and re-written in Qt. This will allow us to build the GUI on multiple OSes (Mac OS X, UNIX, Windows).

The current source code can be retrieved from Gitorious.

Feel free to add feature requests and/or bug reports.

Requested features

  • Creating automatically all needed folders for shapefiles and the decoded ones. This includeds automated decoding all shapefiles in a directory.
  • Maybe error reports possible? So you get a message when a certain file isn't found, or a certain path isn't set. Right now it only appears in the console, but it's hard to read the fast scrolling text.