/ How to extract dataset parts

OpenSceneGraph

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.

Overview

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.

Assumptions

  •  Let /home/large_database = the root of the original (large) database, i.e. the directory where the top-level .osgb file is located.
  • Let /home/database_part = the root of the destination database with limited extends. It should be writable to allow osgfilecache to write the files into it.
  • The large source database root was called terrain.osgb (/home/large_database/terrain.osgb)
  • The large source database was build in geocentric mode.
  • Using bash on Linux. Replacing the pathes it should be possible to follow the recipe also on windows. Be aware of he limited NTFS performance and stability if you try to extract giga-/terabyte size datasets'''

Procedure

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.

Example

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