User Tools

Site Tools


arma3:terrain:qgis-real-world-data

This is an old revision of the document!


Disclaimer WIP

This page is work in progress, this is not a complete tutorial. This is notes written down from our discord arma server #terrain_makers channel discussion. I will try to finish this page into tutorial as soon as possible, so far I have not been successfully with my efforts to get real world data through QGIS into terrain builder and arma3.

If you're lurking in the channel, read this page and know some new information or different way to do something; please let me know by @Snake Man highlight in the channel, thank you.

btw you can scroll to bottom of this page to see last update time in lower right corner.

Goal of this WIP page

Goal of this work in progress page is to learn how to get real world data for:

  • terrain
  • satellite texture
  • satellite mask
  • roads
  • vegetation

And process these through QGIS (free open source program) into terrain builder and finally into finished arma3 terrain addon.

I do not know if all of the above is possible, terrain is but mask? vegetation? No idea yet, I'm learning one step at the time.

Real World Terrain Data to ArmA 3

HOWTO get real world terrain data into ArmA 3

Terrain Heightmap

ALOS World 3D - 30m data from opentopo.sdsc.edu

Go to opentopo.sdsc.edu website, click Global Data tab, click satellite data → “ALOS World 3D - 30m”. Now you should see world map with red boxes marking the areas for available data.

Use mouse wheel (middle button) to zoom in / out of the globe map, LMB and drag to move the map.

Once you have zoomed enough in to a smallish area, click “select a region” button in left side of the globe map screen. Mouse cursor changes to a cross now and you can drag a box to select region. Below you can see the data selection coordinates.

In coordinates box, if you choose to do so, you can tick “manually enter selection coordinates” box and then manually type in lat/lon coordinates. This is the only sure way to grab perfect square power of two data selection.

Once you are satisfied with your selection, scroll down to data output formats. Choose “Arc ASCII Grid” from the drop down.

On visualization untick “Generate hillshade images from DEMs” box.

Finally on job description box “Enter your e-mail address” just type in whatever asdf@aol.com some fake email address, unless you specifically want them to email you of course. At some point if you try to get huge amount of data that there is long waiting period while site is processing it, perhaps its good way to add your own email here so you get notification when the download is ready. But for normal small size data selections, there is no need for real email.

When fake email is in, click submit.

Once processing is done you get “Raster Job Report” page which has your download. On “Download compressed raster results:” click the “rasters_alos.tar.gz” downloadable file to… you know, download.

This download is always the same file name so please be careful and unpack this file into a directory, use winrar RMB “extract to rasters_alos/” and then rename the directory to some good name which you recognize because the terrain Asc ASCII Grid file inside is also named just “output_alos.asc” every time you download new data. This way you never overwrite your existing terrain data downloads.

You should be able to import the tar gunzip (.gz) file into QGIS, however you should unpack it first like explained above. You can save the heightmap from QGIS into TIF file format and then read the tif with L3DT. L3DT can then save the heightmap as ASCII grid or XYZ.

Install QGIS Plugins

Use plugins → manage and install plugins…

Select OpenLayer and click install, select OSMDownloader and click install.

QGIS Settings

QGIS settings → options → CRS, allows you to setup default CRS for new projects and layers. Set this to EPSG:32631, WGS 84 / UTM zone 31N

Clip Data to Power of Two

Terrains used in arma3 can only be power of two grid, like 256 x 256, 512 x 512, etc. When you get real world data from various web sources its usually downloaded in “hand drawn box” which is not perfect square (power of two), so you must clip this data into square power of two.

PMCTODO now idea how to select power of two square other than typing in lat/lon coordinate numbers

OpenStreetMap

Once you have terrain loaded in QGIS, you can get streets / roads to show transparent on top of it.

Use web → openlayers plugin → openstreetmap → openstreetmap (heh yes twice).

This opens open street maps layer in your project on top of your terrain heightmap. On layers panel double click openstreetmap layer to bring up its properties. Select transparency tab and move global transparency slider to about 50% then click apply and ok.

Now you can see your terrain heightmap and openstreetmap road data together.

You can click the X button in layer panel on each layer to turn them on/off.

Google Maps Satellite

Use web → openlayers plugin → google maps → google satellite

Hydrra: Under Open Layers plugin there will be google maps and bing maps tabs that you can use to get your sat image. On both street map and sat map there will be a button two rows under new file icon called download OSM data. Use it then select the area you want to use. let it download then when you have both your street map and sat image use the vector tool and align them. I do believe you also need to set the SRS layer as well. UTM 31.

Hydrra: to get to the vector tool hit Ctrl + alt + T and your toolbox will pop up. Just type in vector and the tool you will most likely need is the transform tool in case your sat image and street map aren't alligned.

Hydrra: Yeah, The plugin provides both sat image and street map. just make sure to separate the layer groups so it's easier to keep track of.

Convert Geodetic .ASC

Terrain Processor should be able to convert geodetic .ASC heightmap into something that terrain builder would read. I have not managed to get it to work, terrain processor always does (Not Responding) freeze, meaning my file and/or settings were wrong.

Source bis wiki terrain processor tutorial: heightmap.

Terra Incognita

Terra Incognita should be able to download high resolution satellite textures for you.

Source SOURCEFORGE.NET - be warned! sourceforge.net/p/terraincognita2.

If you browse to sourceforge.net/projects/terraincognita2/files/ you'll find ZIP files in there like the moment of writing this tutorial “TerraIncognita241_net4.zip”, this is a portable version, meaning you do not have to use the stupid terra incognita .bat installer which forces install dir to your desktop.

Ice: Also in TerraIncognita zoom right in so it says 1m\px or something right at top of your screen, then export your image as OziExplorer, import that to GM and it will place it exact over your height map

Select map source → maps.google.com → google satellite map.

Ice: if you don't have any map source the .dll may be blocked. So you have to unblock it like you would with the x-cams one

Use mouse wheel to zoom in / out of the globe map, LMB drag to move the globe map.

Once you have found a nice area you want to save as satellite texture, use menu selection → rectangle selection, now you did not see any difference in your mouse cursor but you can LMB drag a box in the globe map. This is your selected area.

Apparently there is no way to make perfect square, power of two selection as you are doing it freehand, if anyone knows a way please let us know.

You can move the selection if you LMB inside the red rectangle and drag. If you LMB drag outside the rectangle you will make a new selection losing the old one.

Please be careful when making a selection, try to visualize how large it is, you can easily make larger than 40960 x 40960 resolution images which has been the largest we have been able to import into photoshop. It is easy to just choose “cool looking area” and then it turns out to be 200k x 200k resolution, yikes! :)

When you are ready, use mouse wheel to zoom IN until the header says (1m/px) resolution. Now use file → save map → oziexplorer map, to save your selected satellite texture.

Once downloading there is no abort button, you just have to close terra incognita if you wish to abort your download.

Terra Incognita doesn't appear to have any kind of save project feature, but on restart it does open the last location you had on previous session.

You can use QGIS (or Global Mapper) to open oziexplorer .map files.

QGIS layer → add layers → add raster layer, choose pcraster .map and select your terra incognita saved oziexplorer .map file. appears in QGIS main view OK.

Selecting Square Area

[PTR] brenden0309: in terraincognita your right you can't enter a square selection but I make my map selection starting in this program by making a square and in bottom left you can see size in pixels and meters/kilometers and I resize by dragging outer edges to desired size and get it 100% square in size the double check the pixles because it won't always be the same and just move it a little more to make sure both values are square and then I download , I do that first because you can copy the four coordinates from that selection and collects max and mins to but in the opentopo website and then your selections are 100%accurate

[PTR] brenden0309: You can also save it as an arcview and will make tiles you can put together to have a solid png or jpg

[PTR] brenden0309: It's painstaking but works and a good tip when you download through opentopo you get a Google Maps kmz or something you can open in Google Earth and allows you to show where your map is helping with buildings and roads without guessing where your boundary is

[PTR] brenden0309: I can't remember if it puts a dark overlay on it or not but it definitely selects the area and then you can put any image as an over lay and change transparency

QGIS Print Composer

Print Composer will save an image of your current view.

Open it by Project → new print composer, or use CTRL-P

Make it a square pare size, for example 100mm x 100mm.

Select layout → add map, drag a box around the white area.

The view should look like your current QGIS main view, hide/show layers to get the view you want like google satellite.

Item properties → extents, no idea what to do with those :)

FinCenturion: you need to know now exactly how large of a chunk you need. and the coordinates / extents of this data. I have changed up everything to match arma worldspace by using the methods in my QGIS Reproject & Transform Tutorial.

FinCenturion: but you need lower left corner x,y and upper right corner x,y coords
FinCenturion: if you have more data than you will need you can of course use an area that is in power of two - so you can keep the horizontal scale 1:1 with real life
FinCenturion: say you want to do a 4096 x 4096 m map, and your lower corner is in the (fictive) coords of x 1000 and y 1000 - > exents 1000, 1000 and 5096 and 5096
FinCenturion: if that made any sense :smile:

To save the image use composer → export as image

Export Highres Satellite using QGIS

A simple guide for exporting high resolution satellite maps using QGIS by pooface

Install openweb layers for QGIS

Set your CRS (Coordinate Reference System) in QGIS of which you already know the coordinates of your map extents.

To make this possible, first find your real world location via the openweb layers plugin in QGIS, and give yourself an approximate field of view. The extents do not need to be exact, but it helps print composer.

In toolbar of QGIS find Project → new print composer (CTRL-P) This will open a new window.

  1. add new map button on left side (white paper icon with a green “+”)
  2. draw a generic rectangle

On left side infobar inside composer find:

  1. Item properties tab
  2. under extents, set your coordinate extents based on the CRS you are using (in QGIS at the bottom right)
  3. under Main properties, change from Cache (default) to Render
  4. Go back to Composition tab and under Resize page to content, click Resize page
  5. You should be looking at a preview of your final satellite export framed nicely.

Now you may export:

In the toolbar of the print composer window, under Composer: export as image

  1. set page widgth and height in pixels.
  2. Depending on how you plan to import into terrain builder, set these accordingly

example:
I want my satellite image to be 0.5 meters / pixel.
My terrain is 8192 meters by 8192 meters.
Therefore, I want my page width and page height to both be 16384 pixels.

  1. Save and then wait for export. If you are exporting images of these large sizes, it MAY take a WHILE!
  2. Check your exported image after print composer finishes processing. Often times (for reasons I'm not sure) it may leave holes in your image, in which case I suggest re-exporting.

If you wish to reimport this to QGIS to guide your shapefile creation, you must include a .wld file of the same name as the image you just created.

Open Questions

Snake Man: ok when you choose area of terrain you want to download, do you just get “bulk” data with large amounts of room to maneuver or do you get square power of two exact size for arma3 use like 10km x 10km?

arma3/terrain/qgis-real-world-data.1484138156.txt.gz · Last modified: 2017-01-11 12:35 by snakeman