Virtual Planet Builder

How to extract dataset parts

Supported OSG Versions

Versions of OSG since February 10th 2012 (>3.0.1) support the caching of OSG models from local sources. This is required to follow this tutorial.


The idea behind this example is to take an existing database that was built with VPB and use osgfilecache to 'cache' the local terrain database to another local directory. osgfilecache supports level/extends limitation, so it is possible to extract only terrain within certain bounds or level of detail.



One note before we start with the commands: pagedLOD nodes store the database path, which is the path to the file. This path is overwritten by osgfilecache. To get a independent new sub database with relative paths, you mast enter the directory of the large source terrain database before you invoke osgfilecache. Otherwise you will get a terrain dataset with absolute paths which will cause OSG to continue loading from the original database instead from the extracted limited dataset.

Enter the source terrain dataset

cd /home/large_database

The command structure is 'osgfilecache --file-cache <your destination folder> <options to control the new database extents> <relative path to your source database root file> For example for the above assumptions, it would be the following to extract the database until LOD level 3 ('-l 3'):

osgfilecache --file-cache /home/database_part -l 3 ./terrain.osgb

According to the osgfielcache help, the following extend definitions are allowed:

 -e level minX minY maxX maxY                                                  
                    Read down to <level> across the extents minX, minY to maxY,
                    maxY.  Note, for geocentric datase X and Y are longitude and
                    latitude respectively.
  -l level          Read down to level across the whole database.


To extract lon 11-15 and lat 30-40 until level 8:

osgfilecache --file-cache /home/torben/test -e 8 11 30 15 40 ./terrain.osgb

Advanced usage

Note: You can run osgfilecache multiple times in the same directory to 'compose' a new database with different extends. E.g. worldwide<=level 5, europe<=level 8 and germany<=level 25