This tutorial guides you through creating height maps for Viljandi airfield (EEVI) in Viljandi, Estonia.
It is a small club airfield with a 800 m grass runway, one end at an elevation of 76 meters (250 ft) and the other at 68 meters (223 ft). Its slope is particularly pronounced near the lower end.
Stock terrain is very bland at this location and our goal is to update it with high-resolution data to get a sloped runway and realistic surroundings. Terrain features are not overly dramatic at this location, but the airfield will still noticeably benefit from these changes.
Fully assembled project folder with all files mentioned in this tutorial can be found inside eevi-imagery example, which you can download from Examples.
1. Create project
First, let’s create a project folder.
Open a command window and type:
msfs project -name noolaero-airport-eevi-viljandi -id EEVI -title "EEVI Viljandi airfield" -creator "Nool Aerosystems" -type scenery -scene "C:\Dev\EEVI"
This initializes a scenery project at “C:\Dev\EEVI” and adds scene component to hold airport information.
2. Add elevation data
Open “C:\Dev\EEVI” folder and create Source folder. Place your elevation data there.
For EEVI, we have a GeoTIFF elevation tile 53684.tif from land survey authorities.
Now you need to draw a border for the area you want to cover with new elevation data.
Open the imagery in mapping program like QGIS, draw a polygon and save it into “C:\Dev\EEVI\Source\border.shp”.
Border polygon’s shape does not matter, but it has to be fully within elevation imagery.
3. Load the project
Start Microsoft Flight Simulator. Enable Developer mode in Settings and load yourself to EEVI airfield.
Then open “C:\Dev\EEVI\noolaero-airport-eevi-viljandi.xml” from DevMode menu to open the previously created project.
Select scene component and finally click on Load in Editor.
You can now edit the airfield with Scenery Editor.
4. Add runway
Using Scenery Editor, place the runway. Don’t forget to add runway starts.
Click Save Scenery once finished. This saves changes to “C:\Dev\EEVI\PackageSources\scene\EEVI.xml” file.
5. Add elevation data
Now it’s time to use elev tool to load elevation data from source imagery, generate heightmaps for the terrain and update elevations of runway elements.
In command window, type the following:
msfs elev -imagery "C:\Dev\EEVI\Source\53684.tif" -border "C:\Dev\EEVI\Source\border.shp" -airport "C:\Dev\EEVI\PackageSources\scene\EEVI.xml" -res 5 "C:\Dev\EEVI\PackageSources\scene\EEVI.xml"
This updates EEVI.xml airfield data file inside the scene folder with custom elevation data, resampled to 5 meter resolution.
6. Reload the project
Return to MSFS. In Project Editor select scene component once again and in Inspector click Load in Editor to reload the changes we made to the airfield.
Switch to Scenery Editor tab and you will see height maps that were generated for the airfield:
Move closer to the runway and you will see it split into orange sections. These are runway profile segments, which were also generated in addition to height maps:
Elevation profile visible inside the editor matches perfectly with surveyed data:
And when we take a grassroots level view towards the northeast, we only see treetops at the far end - just like in real life:
The terrain isn’t anymore an endless flat plane with almost infinite view. In fact, the slope hides a Cessna 152 sitting at the other end.
7. Build the project
You are now free to continue editing the project. At any moment, you can save the scenery in in-game editor and run elev tool again to update the airfield. For example, you can change the border shape and elev will produce new height maps.
elev tool only replaces height maps with the same priority level (default: 0). If you want to add custom tweaking on top of the imported elevation data, set your height maps to a higher priority.
After you have finished, select noolaero-airport-eevi-viljandi in Project Editor and click Build package in Inspector.
MSFS will build a redistributable package, which you will find at C:\Dev\EEVI\Output\noolaero-airport-eevi-viljandi.
Copy the folder to MSFS Community folder to add the package to MSFS.
As you could see, importing your custom elevation data is simple procedure. Essentially you’re just updating the airport XML file.