Use 3D Basemaps

The 3D Basemaps solution delivers a set of capabilities that help you leverage existing data (for example, lidar, building footprints, utilities), develop a standard set of 3D layers and visualize your community in an immersive way.

In this topic, you’ll learn how to use the solution by assuming the role of a user and performing the workflows below.

Getting to know 3D Basemaps

You will assume the role of a mapping technician responsible for creating a 3D basemap for your community. The 3D Basemaps ArcGIS Pro project includes a series of tasks to help guide your through these workflows. The first set of tasks will help you get to know 3D Basemaps

  1. Start the ArcGIS Pro application and open the 3D Basemaps project.
  2. On the View tab, in the Windows group, click Catalog, and click Catalog Pane.
  3. In the Catalog pane, expand the Tasks folder, and double-click on the Getting to know 3D Basemaps task and go through the various sub tasks.

Understanding the 3D Basemaps solution

The 3D Basemaps solution leverages existing data within the organization such as lidar, building footprints, power lines and underground pipe features. Your 3D basemap can be created at different Levels of Detail (LOD) depending on the quality of the input lidar data. This first task will guide you through the data requirements and help you learn how you can utilize your 3D basemap in other workflows and applications.

Download sample data

Sample data is provided to help you learn how to use the 3D Basemaps solution. A link is provided to download sample data for Naperville and Philadelphia. Using the sample data the first time will help you learn how to use the tasks and how to organize your data.

Start using 3D Basemaps

The 3D Basemaps project includes a task workflow which provides a structured sequence using tasks and steps. Follow the steps in this task to learn how to use the 3D Basemaps solution.

Publish data for your 3D Basemaps

After you have reviewed the Getting to know 3D Basemaps you can begin using it with your data. The following set of tasks will help you learn how to use 3D Basemaps.

  1. On the View tab, in the Windows group, click Catalog, and click Catalog Pane.
  2. In the Catalog pane, expand the Tasks folder, and double-click on the How to use 3D Basemaps task and go through the various sub tasks.

Publish ground elevation surface

Detailed elevation layers can be automatically generated from the input lidar data. These layers are used to create buildings and vegetation layers. The ground elevation layer can be used to enhance the existing elevation in your 3D scene.

To publish your ground elevation surface, click on the Publish ground elevation surface task and follow the steps provided.

Extract elevation surfaces from LAS dataset

This task extracts 3 elevation surfaces from the LAS dataset. A ground elevation (dtm), a surface elevation (dsm) and a normalized surface elevation (ndsm). These surfaces are used to create buildings and vegetation layers. The ground elevation layer can also be used to improve the ground in your scene.

Publish ground elevation

This task publishes the ground elevation layer to your organization. Reprojection to Web Mercator with height in meters is only required if you wish to use the published layers in a global web scene.

Publish buildings

Buildings with simple roof structures can be generated automatically from the lidar. Attributes such as building height, eave height and the roof form are extracted from the lidar and added to the building footprints. Procedural rules are then used to create the 3D roof structures. High density lidar (point spacing less than 3 feet) and building footprint segmentation are needed to model complex roof structures.

Note:

The quality of the roof structures is dependent on the quality of the input lidar and building footprint data. A lidar point spacing of 3 feet or less is required, 1 foot or less is recommended. Building footprints with one roof type within their boundary (for example, suburban areas) will produce higher quality roof structures than footprints with multiple roof types (for example, city centers). These footprints require splitting, segmentation and updating of the roof form attributes.

To publish your buildings, expand the Publish buildings group task and follow the steps provided.

Extract building footprints (optional)

Run the Extract building footprints task to optionally extract building footprints from lidar. It is not required if you have an accurate footprint feature class.

Preprocess building footprints (optional)

Run the Preprocess building footprints task to prepare the building footprints for a realistic 3D visualization. Some building footprints may contain several different roof types and roof parts. To accurately represent these buildings, they need be split into their separate parts. Building footprints can be split with another feature class or by differences in elevation.

Result of building extraction before preprocessing of building footprints

This image shows the result of building extraction before preprocessing of building footprints

Result of building extraction after preprocessing of building footprints

This image shows the result of building extraction after preprocessing of building footprints

Tip:

Separate features with similar size into separate feature classes before running segmentation to improve segmentation quality. Use different spectral and spatial detail for each of these feature classes to tweak the roof segmentation for your data. Merge the feature classes when finished.

Create buildings

Run the Create buildings task to create a 3D building layer. This task uses the elevation surfaces and building footprints to find both flat and sloped planar areas within a roof area of a building. It estimates a standard architectural form for the roof based on the attributes collected from these planar surfaces. These attributes are then used to inform a procedural rule that generates these features in 3D.

Roof types that will be automatically classified

This image shows the roof types that will be automatically classified

Review buildings

Run the Review buildings task to inspect your building roof forms. The Confidence Measurement tool reports the following measurement (attribute added to the building footprints):

Note:

The RMSE field shows the root-mean-square-error of the generated building multipatch to the underlying surface model. The higher this number, the more likely that the building creation encountered an error in classification. In general, a value of 1 meter (3 ft) or less is desirable, though this depends on the required application of the output features, and the resolution of the input data.

Modify buildings

Use the Modify buildings task to further improve the quality of the building roof forms. The building roof form is driven by the attributes that are generated by the Create buildings task and by the underlying the building footprint. To refine the building roof form, modify the attributes and/or the building footprint.

Tip:

The attributes that control the roof form are building height, eave height, roof direction, and the type of roof are BLDGHEIGHT,EAVEHEIGHT, ROOFFORM, RoofDirAdjust. By editing these attributes, you can adjust your building models to better match the lidar data.

Attributes that control the roof form

Building footprint attributes that control the roof form.

Building height

If the ridge of the building is not at the correct height, identify the elevation of a LAS point on the true ridge by clicking on the LAS point while having the Explore tool active. You will need to subtract the BASEELEV value from the LAS elevation to get the correct BLDGHEIGHT value.

Manual update of the BLDGHEIGHT attribute

Results of manual updating the BLDGHEIGHT attribute

Eave height

Similar to building height, reference the lidar to obtain the correct eave height. You will need to subtract the BASEELEV from the lidar elevation to get the correct the EAVEHEIGHT value.

Manual update of the EAVEHEIGHT attribute

Results of manual updating the EAVEHEIGHT attribute

Roof form

If your roof type does not match the lidar data, change the roof type by choosing the correct roof form from the drop-down list.

Manual update of the ROOFFORM attribute

Results of manual updating the ROOFORM attribute

Roof direction

Adjust the direction of the roof by modifying the RoofDirAdjust field. The default value is 0. A value of 1 will rotate the roof counterclockwise 90 degrees or 2 will rotate it 180 degrees.

Manual update of the RoofDirAdjust attribute

Results of manual updating the RoofDirAdjust attribute

Split roof segments

Some building footprints may contain several different roof types and roof parts. To accurately represent these buildings, you can split the footprints into separate features manually and update the attributes for each feature accordingly.

To edit the building footprints, complete the following steps:

  1. Select the feature you wish to segment.
  2. Use the Split tool in the Roof Segmentation task, or on the Modify Features pane to segment the selected feature.
  3. Edit the attributes as needed with the new sections of the building footprint.
Manual splitting of buildings

Results of manual splitting of buildings

Modify building vertices

Sometimes building footprints may have been created incorrectly and do not represent the building adequately, resulting in lower quality roof forms.

To edit the building footprints, complete the following steps:

  1. Select the feature you wish to modify.
  2. Use the Vertices tool in the Modify Building Vertices task, or on the Edit tab to modify the selected feature.
  3. Edit the attributes as needed with the modified building footprint.
Manual updating of building vertices

Results of manual updating building vertices

Create cross gable roof forms

You can also use vertex editing to make cross gable roof forms, by completing the following steps:

To create cross gable roof forms, complete the following steps:

  1. Select the feature you wish to modify.
  2. Use the Split tool in the Roof Segmentation task, or on the Edit tab to segment the building footprint according to the roof forms present within the footprint.
  3. Use the Vertices tool in the Modify Building Vertices task, or on the Modify Features pane to extend one gable roof into the other one.
  4. Edit the attributes as needed with the modified building footprint.
Manual updating of cross gable roof forms

Results of manual updating cross gable roof forms

Fuse buildings

If you have segmented some building footprints into separate features, you can use the Fuse buildings task to fuse the building features that represent building parts, back together in the resulting 3D building features

Note:

Review and modification of buildings is done on the building footprint layer with procedural symbology. Fusing saves the modification to multipatch format for texture adding and publishing.

Add textures to buildings (optional)

Use this task to add realistic textures to the previously extracted buildings.

Note:

Textures depict generic usage of buildings and are applied based on footprint size. Usage high resolution textures will result in large output potentially leading to decreased visualization performance.

Publish buildings layer

This task publishes the building layer to your organization. Reprojection to Web Mercator with height in meters is only required if you wish to use the published layers in a global web scene.

Update buildings (optional)

Use this task if new lidar is available. It compares an existing 3D multipatch building layer with a new lidar dataset to check if there are any updates required due to new construction or demolition. If changes have been detected, these can then be merged back into the original 3D building layer.

To update your existing buildings, you will need the following data:

  • Multipatch buildings.
  • Lidar with ground and buildings classified.

The Update Buildings process accomplishes the following purposes:

  • Detects changes between input 3D multipatch buildings and new lidar. The output is building update polygons where changes have been detected depending on the input parameters.
  • Creates LOD2 update buildings using the building update polygons and the lidar.
  • Merges the LOD2 update buildings with the existing 3D buildings.

Publish floors

Building Floors can be created using the Publish floors task. The input is multipatch buildings which can come from the Publish buildings task or from other sources such as CityEngine or 3rd party providers. The output is building floor plates and floor volumes. Floors can be created using a Building Space Use table where the building will be split into tiers or groups of floors, each with their own number of floors, floor height, space use, and color. Alternatively, building attributes such as number of floors, ground floor height, upper floor height, and roof height can be used to create the floors.

Note:

Splitting buildings into floors can take a long time to run especially when the initial split failed, and a more time intensive splitting algorithm must be used. Ensure you only split the buildings that are required. Also, factors such as building size and complexity will affect the processing time.

In the Task Pane, click on the Publish floors task and follow the steps provided.

Create building floors

This tool splits existing 3D buildings into floors based on building attributes. You can use the buildings created in the Publish buildings task or bring in your own buildings.

One option to create building floors is to use the building space use table to split the building into tiers or groups of individual floors with defined space use. The building space use table has several attributes that describe the different tiers within the building. Each tier has an attribute defining space use, number of floors, floor color, and floor height. The BuildingTypeName attribute is the identifier that links the Building Space Use table to the building features. An example building space use table can be found in the tables folder of the 3D basemaps ArcGIS Pro project.

Create floor volumes

If you require floor volumes, use the Create floor volumes task to create floor volumes out of the 3D floor plates. The Extrude By Attribute geoprocessing tool requires a building feature class with space usage information that includes floor height.

Publish trees

Tree location, size and width can be extracted from ground classified lidar as point features. Tree point features are then symbolized using procedural rules and can be schematic or realistic. If trees are classified in the lidar, the quality of the tree extraction will improve.

In the Task pane, expand the Publish trees group task and follow the steps provided.

Classify trees in lidar using deep learning

Run this tool to optionally classify trees in the lidar using a deep learning model. Classified trees will improve the vegetation extraction but keep in mind that deep learning is computationally very intensive, and a powerful GPU is needed to process large datasets faster. Depending on data size and available hardware, it can take hours to finish. Start with 1 las file to see processing time on your system.

To work with the deep learning tools in ArcGIS Pro, you need to install supported deep learning frameworks packages. Please see install deep learning frameworks for ArcGIS.

A tree classification model trained by Esri can be downloaded from the Living Atlas or you can create your own model using the ‘Training a Deep Learning model for Point Cloud Classification’ notebook that can be found in the notebooks folder of the 3D basemaps ArcGIS Pro project.

Extract tree points using surface analysis

Use this tool to extract tree points from the lidar using surface analysis. This type of extraction is faster for large lidar datasets but the results are less accurate than using cluster analysis for dense lidar (point spacing less that 1.5ft/0.5m).

Extract tree points using cluster analysis

Use this tool to extract tree points from the lidar using cluster analysis. This type of extraction is slower for large lidar datasets but the results are more accurate than using surface analysis.

Note:

When creating the 3D trees, make sure to check the Vegetation class code. The correct class codes for vegetation, typically 5. The tool will check if your lidar has this code but trees might be represented by other codes as well. Visually check your lidar and check what class code tree points have by clicking on a tree lidar point. If the vegetation has not been classified, enter the class code that represents the vegetation, for example, 0 or 1.

Tip:

Use the Extract tree points using surface analysis tool to create an initial vegetation layer. Run the Extract tree points using cluster analysis tool for lidar files that you need detailed trees and replace the trees from the initial layer with the more detailed trees where needed.

Publish bridges

If bridge surfaces are classified in the lidar and the lidar is dense enough, it is possible to extract the bridge surfaces as 3D polygons. 3D bridges can then be created by applying procedural rules.

In the Task pane, expand the Publish bridges group task and follow the steps provided.

Create bridges

In the Extract bridge surfaces from lidar step, enter the following:

  • Class Code—The class code that represents the bridge surfaces.
  • Sampling Value—Experiment with this value to improve processing speed and output quality.
  • Bridge Area—This is the minimum area that defines a bridge surface.
Note:

The bridge surface should be a separate class code. If bridges surfaces are not classified in the lidar, you can interactively classify the bridge surfaces in ArcGIS Pro.

Note:

Only rectangular bridge surfaces and models are supported.

Publish power lines

Use your existing GIS data to visualize distribution and transmission lines in 3D. Procedural rules are used to create the 3D support structures and conductors. A wide variety of conductor and tower configurations are supported.

In the Task pane, expand the Publish power lines group task and follow the steps provided.

Create transmission lines

Run the Create transmission lines task to create 3D transmission lines. Enter the following:

  • Voltage—Select the voltage for the transmission line. The values for the voltage list are read from the TowerLUTable table located in the project tables directory. Change these values to modify conductor and tower features.
  • Tower configuration—Experiment with these parameters to create the desired towers.

Create distribution lines

Run the Create distribution lines task to create 3D distribution lines. Enter the following:

  • Pole configuration—Experiment with these parameters to create the desired poles.
Note:

Both tools support line and point feature input. You can use existing features, features that have been extracted from lidar or manually create new features. In case of line features, the vertex locations are used to create towers. In case of point features, a line and tower attribute must be present. The line attribute should describe which line the points belong to and the tower attribute should describe the tower order per line. Connected lines are not supported.

Note:

This tool requires that the Microsoft Access Database Engine driver is installed.

Publish underground pipes

You can turn your existing 2D underground utility features into 3D features leveraging elevation attributes.

In the Task pane, expand the Publish underground pipes group task and follow the steps provided.

Create gravity mains

Run the Create gravity mains task to create 3D gravity driven mains. The first time you run this step, you evaluate the current state of the gravity mains and highlight errors. After reviewing the errors and updating fields that are incorrect, run Interpolate gravity mains to calculate any remaining missing values.

Create manholes

Run the Create manholes task to create 3D manhole features.

Create laterals

Run the Create laterals task to create 3D lateral features.

Create a surface trench

Run the Create a surface trench to better visualize underground pipe features.

Publish 3D Basemaps

The 3D basemap is a web scene that can be leveraged across the ArcGIS platform.

In the Task pane, expand the Publish 3D basemap web scene group task and follow the steps provided.

Tip:

For more information on creating a web scene, see Get started with scenes.