• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

MSFS MSFS Toolkit by Nool Aerosystems

Paavo

Resource contributor
Messages
189
Country
estonia
Version 0.50 is now out:

Before v0.50, runway profiles were intended for use with high resolution sources like 5 m LIDAR data, which does not need interpolation. Raw values were read directly from elevation values and it gave good results. When used with low resolution sources like this 100m example, it created a stepping effect and noticable bumps along the runway:

profile_100m.png


With the interpolation introduced in v0.50, the same 100m source gives this result:

profile_100m_resample.png


It is surprisingly close to what you can get from a 1m source:

profile_1m_resample.png


On top of that, v0.50 contains experimental watermask tool. Feed border shape and water polygons into the tool and will output terrain shapefiles that you can directly copy to your project and use as a watermask to alter where water and land appear.

Below are golf courses near EEPU with custom aerial imagery + custom watermasking that matches the imagery very closely:

wm_06.jpg


A detailed example will follow in a few days.
 
Last edited:
Messages
30
Country
indonesia
Version 0.50 is now out:

Before v0.50, runway profiles were intended for use with high resolution sources like 5 m LIDAR data, which does not need interpolation. Raw values were read directly from elevation values and it gave good results. When used with low resolution sources like this 100m example, it created a stepping effect and noticable bumps along the runway:

View attachment 74489

With the interpolation introduced in v0.50, the same 100m source gives this result:

View attachment 74491

It is surprisingly close to what you can get from a 1m source:

View attachment 74492

On top of that, v0.50 contains experimental watermask tool. Feed border shape and water polygons into the tool and will output terrain shapefiles that you can directly copy to your project and use as a watermask to alter where water and land appear.

Below are golf courses near EEPU with custom aerial imagery + custom watermasking that matches the imagery very closely:

View attachment 74493

A detailed example will follow in a few days.
Is interpolation automatically applied for runway/airport or is it another option that I need to choose? I have 0.27-arcsecond DEM. After importing it inside SDK using your tool, I found out the data is rough, and a 3rd party airport isn't usable anymore. Its apron and runway really bumpy. I confirmed the runway elevation profile of my DEM data inside QGIS and it's indeed bumpy. My project is set up for DEM region, so I added no airport (because the airport is 3rd party). I'm trying to smoothen the data but haven't found any solution. Sorry if this post is a mess, I'm using phone. Thanks
 

Paavo

Resource contributor
Messages
189
Country
estonia
v0.50 changes the way elevations are read for airport elements. You don't need to change anything.

If you input airport XML file (-airport), height maps will be written to the airport file and airport elements will be updated (incl runway).
If you don't input it, a standalone XML file is created with only height maps.

If your standalone area contains any airports that you are not modifying, you may want to exclude them, see https://msfs.nool.ee/tools/elev/#excluded-areas
 
Messages
6,538
Country
us-illinois
Hi Paavo:

Many thanks for making this MSFS Toolkit available to the MSFS Community. :wizard:

v0.50 changes the way elevations are read for airport elements. You don't need to change anything.

If you input airport XML file (-airport), height maps will be written to the airport file and airport elements will be updated (incl runway).
If you don't input it, a standalone XML file is created with only height maps.

Although I have not yet had time to test this in detail in order to become more appropriately familiar with the extent of its current methods / capabilities, I am already particularly curious as to implications of the latter work-flow described above.

A few questions come to mind for me, with regard to what the MSFS Toolkit v0.50 now makes possible, when considering Pasha's inquiry:


Is interpolation automatically applied for runway/airport or is it another option that I need to choose? I have 0.27-arcsecond DEM. After importing it inside SDK using your tool, I found out the data is rough, and a 3rd party airport isn't usable anymore. Its apron and runway really bumpy. I confirmed the runway elevation profile of my DEM data inside QGIS and it's indeed bumpy. My project is set up for DEM region, so I added no airport (because the airport is 3rd party). I'm trying to smoothen the data but haven't found any solution. Sorry if this post is a mess, I'm using phone. Thanks


Pasha's inquiry above, when considered in light of his reported ongoing work with Kertajati Airport in Indonesia (ICAO WICA):

https://www.fsdeveloper.com/forum/threads/3ds-max-ground-poly-design.447258/post-840993

https://www.fsdeveloper.com/forum/t...hat-follows-msfs-dem-model.451670/post-876022

...seems to involve not only an effort to more accurately render at run time in MSFS, the IRL ground textures, but also the IRL terrain contour and slope configuration at that airport.


IIUC, Pasha has acquired a 0.27 Arc Second (~10 Meter) DEM that is being considered for use in 3D modeling airport G-Polys, and also for use in creating MSFS-2020 compatible sloped flattens that may be used to smooth the navigable airport infrastructure object surfaces, while also aesthetically blending their edges into the surrounding terrain "mesh".



And IIUC, Pasha is concerned with eliminating 'some' of the Altitude variations within the navigable airport infrastructure object surfaces, while also retaining their local 'major' "geoid undulations" along the course of the paved RWYs, Taxiways, Aprons etc., ...but not to the extent where surface variations are so numerous as to cause the surface to be perceived as having a "bumpy" GroundRoll attribute that evokes aircraft gear suspension movement / Fx / sound rendering attributes associated with a non-paved airport surface type.



Whereas in FSX / P3D we are able to change GroundRoll attributes by changing ground surface type with a SCASM SurfaceType hack such as Arno implemented via MCX, or by use of different airport 'paved' surface polygons implemented via ADE that underlie draped imagery or G-Polys, I do not recall seeing a mechanism yet in the current build of the MSFS-2020 SDK, to control the aircraft GroundRoll attributes that trigger commensurate changes in the aircraft aircraft gear suspension movement / Fx / sound rendering attributes.


I thought it might be helpful in better understanding what Pasha initially had to work with, if Patrick Germain's CvxExtractor GUI is used to export a ESRI *.SHP file from MSFS-2020's Kertajati Airport in Indonesia (ICAO WICA) default CVX vector airport flatten polygon:

[MSFS-2020_Packages install path]\Official\OneStore\fs-base\scenery\0904\CVX7634.BGL

Once de-compiled, we get this data set (seen here exported as *.BLN code output from CvxExtractor GUI)

Code:
18,1,AirportBounds_18_0
106.638278961182,-6.29787504673004,36.5777053833008
106.637921333313,-6.29745662212372,36.5777053833008
106.637299060822,-6.29741370677948,36.5777053833008
106.636798381805,-6.29773557186127,36.5777053833008
106.636662483215,-6.29799842834473,36.5777053833008
106.636304855347,-6.29837930202484,36.5777053833008
106.636061668396,-6.29955410957336,36.5777053833008
106.635904312134,-6.30051970481873,36.5777053833008
106.635718345642,-6.30161941051483,36.5777053833008
106.635718345642,-6.30280494689941,36.5777053833008
106.635825634003,-6.30381345748901,36.5777053833008
106.636340618134,-6.30395829677582,36.5777053833008
106.637020111084,-6.30385100841522,36.5777053833008
106.637141704559,-6.30271911621094,36.5777053833008
106.637570858002,-6.30034804344177,36.5777053833008
106.637892723083,-6.29902303218842,36.5777053833008
106.638200283051,-6.29823982715607,36.5777053833008
106.638278961182,-6.29787504673004,36.5777053833008

KEY to record structure: X,Y,Z = Lat,Lon,Alt (Meters AMSL)


Note that this ICAO WICA default CVX vector airport flatten polygon data would render a ~37 Meter (120 Foot) AMSL flat / level surface.

IRL, that RWY is sloped with an end-to-end height differential of at least 10 Feet (source: Google Earth).


AFAIK, edited Altitude values for vertices may allow ICAO WICA's CVX vector Airport Boundary flatten to render as sloped.

That would assume MSFS-2020 still allows CVX vector Airport Boundary flattens to over-ride other terrain mesh modifiers. :pushpin:


FYI: It is interesting to note that other MSFS-2020 airport CVX BGLs I have de-compiled in this way have instead had Alt values of -9999.

Additionally, other MSFS-2020 CVX vector Airport Boundary flatten I de-compiled, have instead had Altitude values of 0.


As you may already know, -9999 or -32767 are commonly used in GIS and in the FS SDK as "NO_DATA" - 'fall back' null values

Where such a value is used, the rendering of ex: local terrain Altitude will 'fall back' to another data source and 'inherit' Altitude.

IIUC, in the case of MSFS-2020, this 'fall back' is to Altitude values derived from either the Airport XML or a discrete *.SHP file.


Is such an Altitude 'fall back' what you are alluding to in your explanation of methodology now available via MSFS Toolkit v0.50 ? :scratchch

[EDITED]

If your standalone area contains any airports that you are not modifying, you may want to exclude them, see https://msfs.nool.ee/tools/elev/#excluded-areas

"When developing a regional terrain that covers multiple airports (without including them), you may want to cut out holes around airports to avoid conflicts with third party airport packages.

You can use -exclude option to assign a vector file with polygons that define excluded areas. These areas will retain their original elevation and remain free from any influence."


IIUC, when using MSFS Toolkit v0.50, we "should" (...now must always ? :oops: ) implement either:

* An Exclude to force existing airport flattens to NOT be modified

...or:

* Altitude data to Replace specified airport flatten vertex values (...AFAIK: user-defined 'Airport Elevation Corrections' aka "AEC's" ? :coffee: )

[END_EDIT]


Should Pasha, for example, seek to further interpolate his elevation data points, or just implement sloped CVX vector flattens ?


One might wonder, if we were to use "legacy" FSX / P3D methodology to create CVX vector Airport Boundary flattens with either ADE or SBuilderX, and compile them to BGL using FSX or P3D SDK SHP2VEC ...whether these would be compatible with the methodology now implemented via MSFS Toolkit v0.50 and/or MSFS-2020 SDK compilers. :idea:


Thanks in advance for your further clarification of what we may achieve using the current build of MSFS Toolkit v0.50. :)


PS: Pasha mentions he is creating custom content for MSFS at ICAO WICA for a "3rd party" airport scenery package.

Perhaps Pasha might tell us whether the ICAO WICA 3rd party airport scenery package he alludes to ...is this one: ;)



GaryGB
 
Last edited:

Paavo

Resource contributor
Messages
189
Country
estonia
Terraforming polygons are still available in MSFS: https://www.fsdeveloper.com/forum/threads/msfs-toolkit-by-nool-aerosystems.452363/page-2#post-881969

If DEM gives poor results because of its quality, then terraforming polygons can be used to make smaller changes.
Larger and more complex changes can be made in GIS software (eg burning elevations from a polygon into DEM).

I think I could also support converting Wavefront OBJ meshes into height maps. Then you could sculpt meshes with very fine control in Blender and easily turn them into MSFS terrain.
 
Messages
3
Country
poland
There is a chance for the possibility of generating heightmaps for CGL files that are intended for this and take up much less space?
Currently, doing this with the elev tool in the MSFS Toolkit, which creates BGL files from xml files after compilation, is not optimal for creating a DTM for the entire country, so you have to go down to 10 or even 20m resolution.

Theoretically there is a toolkit to generate CGL files on github from muumimorko / MSFS2020_CGLTools but despite several attempts the documentation is so unreadable for me [as well as probably many people] and in addition there is the need to use Blue Marble Global Mapper instead of "QGis" that it would be nice if someone managed to rewrite it to a more accessible method of generation integrating with MSFS Toolkit.
 
Messages
30
Country
indonesia
Hi Paavo:

Many thanks for making this MSFS Toolkit available to the MSFS Community. :wizard:



Although I have not yet had time to test this in detail in order to become more appropriately familiar with the extent of its current methods / capabilities, I am already particularly curious as to implications of the latter work-flow described above.

A few questions come to mind for me, with regard to what the MSFS Toolkit v0.50 now makes possible, when considering Pasha's inquiry:





Pasha's inquiry above, when considered in light of his reported ongoing work with Kertajati Airport in Indonesia (ICAO WICA):

https://www.fsdeveloper.com/forum/threads/3ds-max-ground-poly-design.447258/post-840993

https://www.fsdeveloper.com/forum/t...hat-follows-msfs-dem-model.451670/post-876022

...seems to involve not only an effort to more accurately render at run time in MSFS, the IRL ground textures, but also the IRL terrain contour and slope configuration at that airport.


IIUC, Pasha has acquired a 0.27 Arc Second (~10 Meter) DEM that is being considered for use in 3D modeling airport G-Polys, and also for use in creating MSFS-2020 compatible sloped flattens that may be used to smooth the navigable airport infrastructure object surfaces, while also aesthetically blending their edges into the surrounding terrain "mesh".



And IIUC, Pasha is concerned with eliminating 'some' of the Altitude variations within the navigable airport infrastructure object surfaces, while also retaining their local 'major' "geoid undulations" along the course of the paved RWYs, Taxiways, Aprons etc., ...but not to the extent where surface variations are so numerous as to cause the surface to be perceived as having a "bumpy" GroundRoll attribute that evokes aircraft gear suspension movement / Fx / sound rendering attributes associated with a non-paved airport surface type.



Whereas in FSX / P3D we are able to change GroundRoll attributes by changing ground surface type with a SCASM SurfaceType hack such as Arno implemented via MCX, or by use of different airport 'paved' surface polygons implemented via ADE that underlie draped imagery or G-Polys, I do not recall seeing a mechanism yet in the current build of the MSFS-2020 SDK, to control the aircraft GroundRoll attributes that trigger commensurate changes in the aircraft aircraft gear suspension movement / Fx / sound rendering attributes.


I thought it might be helpful in better understanding what Pasha initially had to work with, if Patrick Germain's CvxExtractor GUI is used to export a ESRI *.SHP file from MSFS-2020's Kertajati Airport in Indonesia (ICAO WICA) default CVX vector airport flatten polygon:

[MSFS-2020_Packages install path]\Official\OneStore\fs-base\scenery\0904\CVX7634.BGL

Once de-compiled, we get this data set (seen here exported as *.BLN code output from CvxExtractor GUI)

Code:
18,1,AirportBounds_18_0
106.638278961182,-6.29787504673004,36.5777053833008
106.637921333313,-6.29745662212372,36.5777053833008
106.637299060822,-6.29741370677948,36.5777053833008
106.636798381805,-6.29773557186127,36.5777053833008
106.636662483215,-6.29799842834473,36.5777053833008
106.636304855347,-6.29837930202484,36.5777053833008
106.636061668396,-6.29955410957336,36.5777053833008
106.635904312134,-6.30051970481873,36.5777053833008
106.635718345642,-6.30161941051483,36.5777053833008
106.635718345642,-6.30280494689941,36.5777053833008
106.635825634003,-6.30381345748901,36.5777053833008
106.636340618134,-6.30395829677582,36.5777053833008
106.637020111084,-6.30385100841522,36.5777053833008
106.637141704559,-6.30271911621094,36.5777053833008
106.637570858002,-6.30034804344177,36.5777053833008
106.637892723083,-6.29902303218842,36.5777053833008
106.638200283051,-6.29823982715607,36.5777053833008
106.638278961182,-6.29787504673004,36.5777053833008

KEY to record structure: X,Y,Z = Lat,Lon,Alt (Meters AMSL)


Note that this ICAO WICA default CVX vector airport flatten polygon data would render a ~37 Meter (120 Foot) flat / level surface.

IRL, that RWY is sloped with an end-to-end height differential of at least 10 Feet (source: Google Earth).


AFAIK, edited Altitude values for vertices may allow ICAO WICA's CVX vector Airport Boundary flatten to render as sloped.

That would assume MSFS-2020 still allows CVX vector Airport Boundary flattens to over-ride other terrain mesh modifiers. :pushpin:


FYI: It is interesting to note that other MSFS-2020 airport CVX BGLs I have de-compiled in this way have instead had Alt values of -9999.

Additionally, other MSFS-2020 CVX vector Airport Boundary flatten I de-compiled, have instead had Altitude values of 0.


As you may already know, -9999 or -32767 are commonly used in GIS and in the FS SDK as "NO_DATA" - 'fall back' null values

Where such a value is used, the rendering of ex: local terrain Altitude will 'fall back' to another data source and 'inherit' Altitude.

IIUC, in the case of MSFS-2020, this 'fall back' is to Altitude values derived from either the Airport XML or a discrete *.SHP file.


Is such an Altitude 'fall back' what you are alluding to in your explanation of methodology now available via MSFS Toolkit v0.50 ? :scratchch

[EDITED]



"When developing a regional terrain that covers multiple airports (without including them), you may want to cut out holes around airports to avoid conflicts with third party airport packages.

You can use -exclude option to assign a vector file with polygons that define excluded areas. These areas will retain their original elevation and remain free from any influence."


IIUC, when using MSFS Toolkit v0.50, we "should" (...now must always ? :oops: ) implement either:

* An Exclude to force existing airport flattens to NOT be modified

...or:

* Altitude data to Replace specified airport flatten vertex values (...AFAIK: user-defined 'Airport Elevation Corrections' aka "AEC's" ? :coffee: )

[END_EDIT]


Should Pasha, for example, seek to further interpolate his elevation data points, or just implement sloped CVX vector flattens ?


One might wonder, if we were to use "legacy" FSX / P3D methodology to create CVX vector Airport Boundary flattens with either ADE or SBuilderX, and compile them to BGL using FSX or P3D SDK SHP2VEC ...whether these would be compatible with the methodology now implemented via MSFS Toolkit v0.50 and/or MSFS-2020 SDK compilers. :idea:


Thanks in advance for your further clarification of what we may achieve using the current build of MSFS Toolkit v0.50. :)


PS: Pasha mentions he is creating custom content for MSFS at ICAO WICA for a "3rd party" airport scenery package.

Perhaps Pasha might tell us whether the ICAO WICA 3rd party airport scenery package he alludes to ...is this one: ;)



GaryGB

Thanks for your explanation Honestly I need to read a few times more to understand it fully. It is very thorough describing my problem, even more. So I'm sorry if there are some misunderstanding in my response :)

I'm still in progress creating WICA and intended to use my obtained DEM data for this and future projects. I obtained this 0.27 arcsecond (advertised as 8.3 meter) data from Indonesia's national geospatial information body for free. Anyone can check it out here, you only need to register once: https://tanahair.indonesia.go.id/demnas/

For ground poly currently I'm modelling it flat then just use projected mesh inside SDK. But I'm trying to recreate the runway slope as real as possible.

The problem with my obtained data, it is rough. There's a vertical variation about +-1 meter per 100 meter or so, at random line I drew across the runway (checked using QGIS). I don't really understand how the geospatial body create the data but AFAIK they're not using LIDAR, hence the roughness. It's more than just bumpy, I can see sinusoidal wave function by looking at runway :)

After seeing Paavo's example, that's the result I wanted. From a rough input data, the tool will smoothen the result. Not for every single part of input DEM, but for important areas only such as runway, taxiway, apron. A little bit of roughness at surrounding mountains looks better than stock DEM. For GroundRoll attributes I don't understand yet and need to read more resources on that.

The real runway has a slope of 0.052% transversal and 1.5% longitudinal (from national civil aviation agency). Then for the part about altitude value, I need to read more resource. This may be helpful

I can use -exclude for other 3rd party airports in the vicinity, but it would be great if I can also modify the contour/slope of those airports to match real world.

Then for interpolate elevation data points or implement sloped CVX vector, I think I lean more into using DEM and just exclude the "broken" 3rd party airports.

Lastly, for 3rd party airport that I happen to use for my project are: https://flightsim.to/file/16484/wicc-husein-sastranegara-international-airport-bandung
and WI1B airport (not available in flightsim.to), that are located in vicinity.

Just extra info/trivia: WICA is planned to replace overloaded WICC, and WICC will be returned to full military airport, not mixed use like nowadays. WI1B is a military airport located few kilometers west.
 
Messages
120
Country
italy
Just tried with your link in the CFG but, no luck. Also, since I got the "non-online" version of the installer, where can I get the missing packages? Google wasn't much of help
 
Messages
330
Country
austria
Download osgeo manually and install it into the folder of the toolkit. That should work too.
 
Messages
120
Country
italy
Thanks! Done it but I couldn't find the proj-datum.world (or what else the name was, not at the PC right now) in the packages list🤔
 

Paavo

Resource contributor
Messages
189
Country
estonia
Messages
419
Country
us-ohio
is it possible to use this method on an almost complete airport? Id like to have a better version of the ground for KSTL, but I don't wanna chance messing up the 20000 hours I've got invested so far..lol
 
Messages
419
Country
us-ohio
when I initially start the command screen, it asks to install OSgeo4, but after clicking "y", the installation fails. I have Qgis installed already. Is this step skippable?
 
Messages
120
Country
italy
You can get latest changes with updated OSGeo4W installer from Code > Download ZIP:

It will go out as a release later today.
when I initially start the command screen, it asks to install OSgeo4, but after clicking "y", the installation fails. I have Qgis installed already. Is this step skippable?
It is explained in the post above where they answered my same question :)
 

Paavo

Resource contributor
Messages
189
Country
estonia
Messages
84
v0.51 has been out for a few days, it fixes the installer URL:
https://github.com/noolaero/msfs-toolkit/releases

There's new documentation on watermasking tool and a new tutorial on how to create a landscape with custom aerial imagery, mesh and watermasking:
https://msfs.nool.ee/tools/watermask/
https://msfs.nool.ee/tutorials/custom-landscape/

Example files also have a batch script that automatically goes through all the steps and builds the project to show how scripting can be done.
Hi Paavo,

Question about Geotiff, why is Geotiff required, when a user already provides a placement/border file via KML?
The barrier I'm facing is I need to make specific hand edits to the satellite imagery via Photoshop, then save as tiff to be exported by msfs toolkit. The problem of course is once you save from PS, you lose the Geotiff data, but why can't it use the border or bounds data?

Thanks in advance :)
 
Messages
3
Country
poland
Hi Paavo,

Question about Geotiff, why is Geotiff required, when a user already provides a placement/border file via KML?
The barrier I'm facing is I need to make specific hand edits to the satellite imagery via Photoshop, then save as tiff to be exported by msfs toolkit. The problem of course is once you save from PS, you lose the Geotiff data, but why can't it use the border or bounds data?

Thanks in advance :)
if you work in QGis, you can generate a .wld / .tfw file wiki: [raster -> projections -> Extract projections] which has the original raster data saved. then, after editing in PS, if you only edit and do not change the tile dimensions after import, georeferencing will be restored. TIF file name and WLD / TFW file name must be the same. then you can already export geotiff from qgis with georeference
 

Paavo

Resource contributor
Messages
189
Country
estonia
Hi Paavo,

Question about Geotiff, why is Geotiff required, when a user already provides a placement/border file via KML?
The barrier I'm facing is I need to make specific hand edits to the satellite imagery via Photoshop, then save as tiff to be exported by msfs toolkit. The problem of course is once you save from PS, you lose the Geotiff data, but why can't it use the border or bounds data?

Thanks in advance :)
The border file only describes the area that should be cut out from source data. It does not know anything about the positioning of other source files.

A new tool will soon help with restoring metadata in manually edited imagery files.
 
Top