CDB Creation Long Beach Tutorial
Builder_Tutorial
DTT_CDB_Builder Tutorial
On this page we will present a tutorial for using the GAJ-Geospatial Digital Twin Tool CDB_Builder to create a database centered around Long Beach California. CDB is
now an International Standard adopted by the Open Geospatial Consortium (OGC). CDB started as an open industry specification designed as for US SOCOM and utilized originally
in helicopter simulation. The format is designed to provide a common format across all phases of a simulation including out the window visualization (OTW),
Night Vision Goggle visualization (NVG), Radar simulation, Forward Looking Infrared Simulation (FLIR), and Computer Generated Forces simulation (CGF). This support is
provided in one common format. It was originally referred to as Common Database however with its adoption by OGC the name was shorted to CDB. When adopted by OGC the version
number was reset to 1.0 thus the older industry specification actually has a higher version number. The two industry specifications that are still in common use are
versions 3.0 and 3.2. DTT_CDB_Builder provides a What you see is what you get (WYSIWYG) approach to building and editing CDB as well as a high performance CDB compiler
that can be used to setup an entire production in a que and run in an automated fashion. In this tutorial we are going to use the tool using the hands on interactive
approach and discuss where the content goes in the CDB folder structure. The data used in this tutorial can be provided via a download link, to obtain this link,
please contact us here. To view this tutorial as a video you can find it here.
The first step in the CDB creation will be to create a directory on your system to build the CDB into. This directory should be near the top of the directory structure to avoid
having any file paths that are too long. Make sure you have at least ~60GB of free space on the drive that you are using.Start DTT_CDB_Builder. Open the CDB Tab. Press the Select
on the CDB Root Directory panel. If you should already have a CDB that is selected use the caret on the right side of the Select button and press clear to remove the current
selection. Navigate to your output location. You may either pre create an empty directory named Tutorial CDB or create the directory I the file dialog. Select the Tutorial_CDB folder.
On the Specification Version on the same CDB Root Directory panel, select 3.0. Press the Initialize button on this Panel to initialize the CDB directory structure. When the
initialization is complete you are prompted to exit and restart the application. Press ok and then restart DTT_CDB_Builder. See Reference Image Below.
After initialization you will see, that the root directory of the Tutorial_CDB has a Metadata subdirectory. This folder contains the required top level xml files for CDB within it.
You will also see the GTModel directory. Under this directory structure are the initial Geotypical models and textures for this CDB.
In the GTModel folder you will find the 500_GTModelGeometry directory. This contains the initial set of GeoTypical models for this CDB. GTModels also contains the
501_GTModelTexture directory. This contains the initial set of textures used by those models and are commonly used as textures for the GeoSpecific models created
in this tutorial.
After restarting the application select the CDB Tab You will see that your output directory is selected in the Root Directory box. The rest of the panels on this tab are
empty as we have not yet incorporated any coverage. To start our production select the Imagery Tab. The first thing we will do here is set the initial limits for the CDB
that we are going to create. On the Process Limits (all categories) panel use the keyboard and mouse to make North 34, make South 33, make East -118 and make West -119.
These are the limits of the GeoCell containing Long Beach. After entering the limits, click on the caret on the Save button and select Trim. This will shrink the limits
to just within these geocell bounds. We are going to first insert NASA Blue Marble data at CDB LOD 0 to cover the entire geocell. On the Image Services panel change the
Service Selection to WMTS. Then on the WMS Server selection select gibs.earthdata.nasa… service. It will be at the top of the list. Press the Query button to the right of
the WMS Server selector. It will take a second or two to get the layer listings from the server. The ribbon will be inactive until this is complete. When it has completed
select the BlueMarble_ShadedRellief_Bathymetry layer. It will then take a couple of more seconds to get the layer information from the server. When this is complete
you should see that Format is set to jpeg, CDB Level is set to 0, and Image ov is -1 on the Image Services panel. We can see information on the processing that is occurring
by enabling the log window. To do this select the Home Tab and press the Show Log button on the Build Options panel. The log window can either be docked or undocked and
placed on a secondary monitor if it is available to you. Reselect the Imagery tab and press the Process button on the Image Services panel to start the process of inserting
the BlueMarble imagery. You will see processing status at the bottom left corner of the DTT_CDB_Builder screen. The BlueMarble is a very quick insertion and you will see
Done in the Status pane when it is complete.
When the operation is complete select the CDB tab. You should see the Limits panel filled in and that Imagery is checked on the Layers panel. Check the Enable box next to Imagery in order to view the data that was inserted into the CDB. Shift to the CDB Viewing tab. On the Preview Settings panel be sure that the Use Limits and Enable Edit boxes are checked. Press the Preview button on the Preview Settings panel to display the CDB. With the mouse in the CDB_Preview.earth window roll the mouse wheel forward to zoom out, back to zoom in. Left mouse down and drag to move in the window. Left and Right buttons down to rotate the windows view. Move out to view the entire geocell. This is very low resolution data at this point. The BlueMarble is only to give us filler content for the geocell. The Long Beach are that we will incorporate high resolution information for can be seen in the upper left corner of the geocell.
When the operation is complete select the CDB tab. You should see the Limits panel filled in and that Imagery is checked on the Layers panel. Check the Enable box next to
Imagery in order to view the data that was inserted into the CDB.
Shift to the CDB Viewing tab. On the Preview Settings panel be sure that the Use Limits and Enable Edit boxes are checked. Press the Preview button on the Preview Settings panel
to display the CDB. With the mouse in the CDB_Preview.earth window roll the mouse wheel forward to zoom out, back to zoom in. Left mouse down and drag to move in the window.
Left and Right buttons down to rotate the windows view. Move out to view the entire geocell. This is very low resolution data at this point. The BlueMarble is only to give us
filler content for the geocell. The Long Beach area that we will incorporate high resolution information for can be seen in the upper rogjt corner of the geocell.
In your Tutorial_CDB directory you will now see a gdalcache directory. This is temporary space and the directory can be deleted as it does not contain cdb content. In the
Tiles directory you should see a N33 directory and in that Directory you should see a W119 directory. In the W119 directory you will see a 004_Imagery directory and in this
directory you will find L00 for lod 0 and LC containing the negative CDB Lod files.
The next step will be to insert an area around Long Beach of 1 meter National Agriculture Image Program (NAIP) data. Fisrt close the CDB_Preview window by clicking on the x next
to CDB_Preview.earth. In DTT_CDB_Builder go back to the Imagery tab. Select the caret on the right side of the WMS Server Query button and on the drop down select
clear. This will clear the Imagery Services panel. On the Single Images panel press the Select button next to Image Files and navigate to your download of the
New_CDB_Tutorial_Data_LongBeach folder. In this folder further navigate to 001_Imagery, then to the NAIP_LongBeach_Imagery_1meter folder and select LosAngeles_1M_Tutorial.img.
To get information on this image after selecting it select that image on the Image Files section box. You will see that CDB level is set to 7. If you press the preview button
you will see that our 1m image is loaded in the SingleImagePreview.earth window. You may navigate this window using the same controls as CDB.
Close this window by clicking the small x to the right of SingleImagePreview.earth. Press the Process button on the Single Images panel to
start the insertion of the 1 meter data. When the build is complete (Done in the status window at the bottom left of the app) Select the
CDB Viewing Tab and press Preview on the Preview Settings panel to view the cdb. When the data is loaded use the mouse to zoom into the
Long Beach area to view the 1m data insert.
Looking at the directory structure created you will see in the 004_Imagry subfolder of the W119 directory that you now have lod folders for L00 thru L07. Each of the image
files is a JPEG 200 image using a .jp2 extension.
Next we will insert a 1ft GSD section of imagery around the harbor area. To do this go back to the Imagery tab. Dismis the CDB_Preview window by clicking on the x next
to CDB_Preview.earth. Clear the 1m imagery selection by useing the caret on the right side of the Select Button on the Single Images panel and select clear to clear the
Single Images panel. Press Select and navigate to New_CDB_Tutorial_Data_LongBeach\001_Imager\LA_1ft_Imagery and select LosAngels_1f_demo_section_Image.img. Select this
image in the Image Files selection to show the information for this image. You should see that CDB Level 9 is selected. Press the Process button again on the
Single Images panel to start the processing of this image.
When the process is complete (Done in the status pane) select the CDB Viewing tab and press Preview on the Preview Settings panel to bring up the cdb in the viewer.
Zoom into the port area to see the highest resolution data that has just been inserted.
In your 004_Imagery folder of the Tutorial_CDB you will now see L00 thru L09 lods.
Next we will add Elevation to the CDB. We will start with ~10m data. Select the Elevation tab. In the Single Elevation Files panel press the Select button and navigate
to New_CDB_Tutorial_Data_LongBeach\002_Elevation\Long Beach E and select imgn34w119_13.img. Select this file in the Elevation Files selection box to pull up information
on this image. You will see that CDB Level is set to 4 and that Has NoData is checked. For this file check the GeoCell block. This will tell the system to only incorporate
data that falls in the interior cell and ignore the boundary pixels that will map into other geocells. Press the Process button on the Single Elevation files panel to start
the processing of this data.
When the processing is complete select the CDB tab you should see that Elevation is present (check box to the left of Elevation). Check the Enable box to the right of this
to enable elevation in the viewer.
Dismis the CDB_Preview window by clicking on the x next to CDB_Preview.earth. Move to the CDB Viewing tab and press Preview on the Preview Settings panel to load the view.
In the viewer you may see the current wireframe view by pressing the w button with you mouse in the view.
In your CDB folders you will now see in the W119 directory that you now have folders for 001_Elevation and 002_MinMax_Elevation.
In the 001_Elevation folder you should see L00 thru L04 directories. If you navigate down to file level you will see that the elevation files are stored as
GeoTiff files .tif The will all have selectors S001_T001 at this point in our process.
Next we will insert a section of 1m elevation data around the port area. Dismis the CDB_Preview window by clicking on the x next to CDB_Preview.earth.
Select the Elevation Tab. On the Select button in the Single Elevation Files panel use the caret on the right side of the button and select Clear to clear
the Single Elevation Files panel. Also uncheck the GeoCell check box for our 1m insertion as the files we will be using are much smaller than a geocell.
Press the Select button and navigate to New_CDB_Tutorial_Data_LongBeach\002_Elevation\1M_Long_Beach and select all six files in this directory. On the
Elevation Files selection select the top file in the selection to bring up the files information. You will see that CDB Level is set to 7 and Has
NoData is checked. Press the Process button to start the insertion of these files.
When the processing Is complete move to the CDB Viewing tab and press the Preview button on the Preview Settings panel to bring up the cdb view. Zoom into the
port and wait for the cdb to finish loading.
In your output CDB folders you should now see that W119/001_Elevation now has L00-L07 present.
Next we will continue with Bathymetry. Dismis the CDB_Preview window by clicking on the x next to CDB_Preview.earth. Select the Elevation Tab. On the Select button in the
Single Elevation Files panel use the caret on the right side of the button and select Clear to clear the Single Elevation Files panel. On the Options panel select
Subordinate Bathymetry in the Component Layers selection. On the Single Elevation Files panel press the Select button and navigate to
New_CDB_Tutorial_Data_LongBeach\005_Bathymetry and select topo15.grd. Select this file in the Elevation Files selection to bring up information on this file. You will
see that CDB Level is 0 and Has NoData is checked. Set the Limit check box in the Single Elevation Files panel for this file. This tells the system to only process data
from our current CDB bounds. Press the Process button on the Single Elevation Files panel to start the processing of the Bathymetry.
When processing of the Bathymetry is complete close the CDB_Preview window if it is open. Go to the CDB Viewing tab. Note on this tab there is a No Bathymetry check box on
the Elevation panel that can be used to disable the viewing of bathymetry if desired. Also on the Home Tab there is an Ocean panel that can control a water level polygon.
To use this, the enable checkbox must be set prior to starting the preview. On the CDB Viewing tab press the Preview button on the Preview Settings panel to launch the
CDB Viewer. Note when viewing CDB on the Bottom of the window you may see the latitude longitude and elevation under the cursor. If you move the cursor over the water area
of the cdb you should see negative elevations.
In your CDB Folders if you navigate to your elevation files you should see GeoTiff files with selectors S001_T001 and S100_T001 for areas containing bathymetry data.
Next we will create the CDB Network layers for Roads, Rivers, Railroads, and powerlines. This demo will use OpenStreetMap data for this. The data is supplied in a
GeoPackage file. Select the Features Tab. On the Vector File Format selector on the Input Vector Base Map panel select .gpkg for the Vector File Format. Press Select
to the right of the Feature Maps (files) selection. Navigate to New_CDB_Tutorial_Data_LongBeach\004_GISData and select longbeach.gpkg. You may also select the file
Feature Maps (files) selection to get more info on the file. After doing this you may see the layers available in the file in the WFS Feature Type selection. On the
Base Map Attribution Model panel select OpenStreetMap in the Attribution Model selection. On the Input Vector Base Map panel select 3 in the CDB Level for insert selection.
The Use Limits check box should also be checked if it is not already. Press Process on the Input Vector Base Map panel to create the Base Map GeoPackage files the will be
used to create the CDB Network Layers. The Base map layer may also be used to derive other 3D content as well such as buildings, powerlines, ect.
When the process is complete go to the CDB tab. On the VectorBase panel check the Roads Rivers Rail Power and Water check boxes.
Close the CDB_Preview window if it is open. On the CDB Viewing panel press the Preview button on the Preview Settings panel to start the cdb view. Note the vector
addition to the view is somewhat slow and only happens when the scene is completely loaded and only if you view is close enough to the vectors locations. When the view
is fully loaded view you will see roads, railroads, water boundaries in the view. If you mouse over items in the view you will see the names of the items
pop up.
In your CDB folder structure in the W119 directory you will now see a 901_VectorBase extension layer. If you navigate down to the file level you will see pairs of
GeoPackage(.gpkg) and xml files.
The next step is to create the CDB network layers from the BaseMap files to do this go to the Features tab. On the Create CDB Vector Layers from Base Map panel
check the Road Network check box. Press the process button on the Process Data panel to start the process.
When the process is complete uncheck Road Network and Check the RailRoad Network box. Press the process button to process this layer.
When the processing is complete for this layer uncheck the RailRoad Network box and check the PowerLine Netowrk box. Press the process button to process this layer.
When the processing is complete for this layer uncheck the PowerLine Network and check the Hydrography Network box. Press the processing button to process this layer.
When the Hydrography Network is complete uncheck the Hydrography Network box and check the Hydrography Area box. Press the processing button to create this layer.
When the Hydrography Area is complete uncheck the Hydrography Area box and check the GeoPolitical box. Press the processing button to create this layer.
In your CDB in the W119 directory you should now see 102_GeoPolitical 201_RoadNetwork, 202_RailRoadNetwork, 203_PowerLineNetwork, and 204_HydrographyNetwork.
Next will add the GeoSpecific buildings for the area. These will be based off of building footprints and use GeoTypical textures for the sides of the buildings.
We will first import these textures into the CDB. Go to the Textures Tab. In the Import Texture Library panel press the Select button and navigate to
C:\ProgramData\GAJ-Geospatial Enterprises LLC\gaj-geospatial-data\TextureLibrary\textures_us and select catalog.xml.(Assuming the Installation is on the C drive)
Press the Import button on the Import Texture Library panel to copy the data to the CDB. When complete go to the Models tab.
On the Import Models or Building Foot Prints panel press the Select button to the right of the Vector File selection and navigate to
New_CDB_Tutorial_Data_LongBeach\003_Buildings and select LongBeach_Bldgs_clip_FINAL.shp. On the Height Attr selection select HEIGHT.
This file has height in feet so in the Height Scale edit box set the scale to 0.3048 to scale from feet to meters. The texture library
has GeoTypical textures that can be used for building walls but for this demonstration we will create the roof textures from the CDB
Ortho Imagery. On the Options panel check the Roofs <- Image check box. The first step in this process will be to generate the
roof textures. To do this press the Gen Roof button on the Import Models or Building Foot Prints panel.
When the Gen Roof process has completed in you CDB W119 Directory you will see a 902_BuildingFootPrint extension Layer. If you navigate down to the file level
using L06 you will see GeoPacakge and xml file pairs which contain the sorted location information. In the R directories under these you will see the individual
roof textures as both Geotiff and rgb textures.
The next step is to create the individual OpenFlight models for the buildings. This is done in the Prepare process. To start this process press the Prepare button on the
Import Models or Building Foot Prints panel. Note you may run several prepare processes with different data files prior to a finalize process. Finalize always works on
the entire geocell of data.
After the prepare process is complete you will see in those final Rxx subfolders that we saw the textures in now contains OpenFlight models, Xml Descriptor files along with
the roof textures as rgb files. The GeoTiff files are no longer needed and were deleted.
To finish the process we must no run the finalize process. This sorts all of the GSModels in this case into their final CDB locations. In General you may run several prepare
processes to get data ready prior to one finalize process for each geocell of data. Press the Finalize button on the Import Models or Building Foot Prints panel.
When the Finalize process completes we are now ready to view the CDB with Buildings. Go to the CDB Tab. Uncheck all of the VectorBase map boxes to save time and check the
Enable check box next to G-S-Features on the Layers panel.
Go to the CDB Viewing Panel and press Preview on the Preview Settings panel. Don’t forget to close the CDB_Preview window prior to this if it is open or the buton
will not be enabled.
In the CDB folders you will now see that in the W119 directory the 100_GSFeatue layer, 300_GSModelGeometry, 301_GSModelTexture, and 303_GSModelDescriptor layers have been added.
Next we will use the Feature Mapping tab to place tree models from the GTModels folder. Go to the Feature Mapping tab. Press the Select button in the Populate Geotypical Models
from Base Map panel. Navigate to New_CDB_Tutorial_Data_LongBeach\006_Trees and select LongBeach_Demo_Trees.shp. The Layer selection box will populate with LongBeach_Demo_Trees
Points. On the Feature selection select TYPE. Then on the Value selection select deciduous. On the Heiight Attr selection select HEIGHT_M. In the Height Scale window enter 1.0.
Press the Select Model button and the Model Selector dialog will pop up. In the model selector dialog select E_Vegitation for the Main Category. Select C_Woodland for the
SubCategory. Select 030_Trees for the Feature ID. Select the 4poak_tree_medium.flt model in the Model selection. Press the Display button and the model will appear in the
Model Selector window. Press the Select button followed by the Close button. You will see the selected model name in the Selected Model edit bar in the Additional Data panel.
The mode insertion happens in two phases press the Prepare button in the Populate Geotypical Models from Base Map panel to start the process.
When the prepare process has completed you will see in the CDB that your W119 directory now has a 903_WorkingGTModelImport folder. If you navigate down to the individual
file level at L06 you will see pairs of GeoPackage files and xml files.
In DTT_CDB_Builder now press the Finalize button on the Populate Geotypical Models from Base Map panel to finish the insertion process. As with the Models tab you may
run multiple prepare process before Finalizing.
After the Finalize has completed, close the CDB_Preview window if it is open. Go to the CDB tab and check the Enable checkbox by G-T Features in the Layers panel.
Close the CDB_Preview.earth window if it is open. Go to the CDB Viewing tab and press the Preview button in the Preview Settings panel to start the CDB viewer.
You will now see the trees populated when the view is completely loaded.
In the N33/W119 directory of your CDB you will now see the 101_GTFeature layer present that houses the references to the GeoTypical models.
It is advantageous to limit the scope of loaded data when editing CDB and improve our graphics performance. This can be down using the BaseMap files to house the
imagery and elevation content. To do this go to the Features tab. Press the Add Image to Basemap button on the Input Vector Base Map panel.
After the process completes press the Add Elevation to Basemap button on the same panel.
After this is complete go to the Interactive Models tab. Note to modify the individual models in the CDB you will need an external modeling tool such as CAE’s Creator,
Remo3d, Blender... … Prior to starting an editing session on the Edit Tools panel you will need to select the modeling tool that you want to use by navigating to its
executable. Also select a working directory to store the temporary models in. We generally create a directory “Working” at the top level of the CDB for this. For our
demo we have selected the free version of Remo3d (view only) to demonstrate the capability. If your editing tool does not natively accept OpenFlight you may convert
the data on export and import by selecting the format on the Edit Format selector.
Press the Open for Edit button on the Select Geocell For Edit Panel. If you have a multiple geocell CDB the limits in this panel must be set to a single geocell limit.
In the Edit Data Panel press the Select button and navigate to Tutorial_CDB\Tiles\N33\W119\901_VectorBase\L03\U5 and select the U5_R5 GeoPackage file. Press the
Preview button on this panel to start the viewer. The area being edited is limited to this 1/64th geocell. Once the view is completely loaded, mouse over a building.
You will see the building highlighted. Use the right mouse click and chose “Select Object”. The Model Updater dialog will appear. With the object selected you may
modify its location using your keyboard arrow keys, Change the Heading or Z placement using the slider bars in the dialog. If the model selected is GeoTypical you
may change its scale values with the sliders as well. To bring a model up in your external model editor press the Edit Model button in the dialog. After you exit
your model editing session if you have modified the model or made other changes in the dialog you may select the Save Update button the update the model in the
CDB and the updated model will be loaded the next time you load the cdb.
DTT_CDB_Builder also provides the capability to store the entire CDB content for an area in the CDB in a single GeoPackage file. To do this for the BaseMap tiles go to
the Features tab. Press the Add Models to Basemap button on the Input Vector Base Map panel.
After the process is complete you may view the GeoPackage in DTT_CDB_Builder by going to the GeoPackage Import tab and pressing the Select button on the Viewing panel and
navigating to Tutorial_CDB\Tiles\N33\W119\901_VectorBase\L03\U5 and selecting the U5_R5 GeoPackage or any other base map GeoPackage file. The entire contents of the display
are coming from the selected GeoPackage file. You may also make customer areas of coverage from the CDB by going to the GeoPackage export tab and create you GeoPackage
from there. These files may be viewed with our Geo_3dView app that ships with DTT_CDB_Builder or any other product that utilizes our open source cdb read API.