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.
Get 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 you through these workflows. The first set of tasks will help you get to know 3D Basemaps.
- Start the ArcGIS Pro application and open the 3D Basemaps project.
- On the View tab, in the Windows group, click Catalog, and click Catalog Pane.
- In the Catalog pane, expand the Tasks folder, and double-click the Getting to know 3D Basemaps task and go through the various subtasks.
Understand the 3D Basemaps solution
The 3D Basemaps solution uses 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. Click to expand the Getting to know 3D Basemaps task group and double-click the Download sample data task. Click the sample data hyperlink 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 that 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 Get to know 3D Basemaps section, you can begin using the solution with your data. The following set of tasks will help you learn how to use 3D Basemaps.
- On the View tab, in the Windows group, click Catalog, and click Catalog Pane.
- In the Catalog pane, expand the Tasks folder, and double-click the How to use 3D Basemaps task and go through the various subtasks.
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 the Publish ground elevation surface task and follow the steps provided.
Extract elevation surfaces from LAS dataset
This task extracts three 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 want 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 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.
This image shows the result of building extraction before preprocessing of building footprints.
This image shows the result of building extraction after preprocessing of building footprints.
Tip:
Separate features of 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.
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 feet) 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 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.
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 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.
Results of manual updating of the BLDGHEIGHT attribute are shown.
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.
Results of manual updating of the EAVEHEIGHT attribute are shown.
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.
Results of manual updating of the ROOFFORM attribute are shown.
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 a value of 2 will rotate it 180 degrees.
Results of manual updating of the RoofDirAdjust attribute are shown.
Split roof segments
Some building footprints may contain several 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:
- Select the feature you want to segment.
- Use the Split tool in the Roof Segmentation task, or in the Modify Features pane to segment the selected feature.
- Edit the attributes as needed with the new sections of the building footprint.
Results of manual splitting of buildings are shown.
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:
- Select the feature you want to modify.
- Use the Vertices tool in the Modify Building Vertices task, or on the Edit tab to modify the selected feature.
- Edit the attributes as needed with the modified building footprint.
Results of manual updating of building vertices are shown.
Create cross gable roof forms
You can also use vertex editing to make cross gable roof forms. To do so, complete the following steps:
- Select the feature you want to modify.
- 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.
- Use the Vertices tool in the Modify Building Vertices task, or in the Modify Features pane to extend one gable roof into the other one.
- Edit the attributes as needed with the modified building footprint.
Results of manual updating of cross gable roof forms are shown.
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. Using 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 want 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 verify whether 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 third-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 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 one 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. See deep learning frameworks for ArcGIS.
A tree classification model trained by Esri can be downloaded from ArcGIS Living Atlas of the World 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 than 1.5 feet/0.5 meters).
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 verify the Vegetation class code. The correct class codes for vegetation is typically 5. The tool will verify whether your lidar has this code, but trees might be represented by other codes as well. Visually review your lidar and verify what class code tree points have by clicking 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 for which you need detailed trees and replace the trees from the initial layer with the more detailed trees where needed.
Create colorized lidar trees
Classified lidar can also be used directly to visualize trees. This step extracts just the tree points from the input lidar and uses aerial imagery to colorize them.
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 bridge 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
Power line features such as wires and support structure locations with height can be extracted from classified lidar as line and point features. Simple symbology or procedural rules can be used to visualize the power lines in 3D. A wide variety of conductor and tower configurations are supported when using procedural rules. It is also possible to use your existing GIS data instead of the features extracted from lidar.
In the Task pane, expand the Publish power lines group task and follow the steps provided.
Classify power line features in lidar using deep learning
Run this tool to optionally classify wires and support structures in the lidar using a deep learning model. Classified power lines will improve the wire and support structure locations 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 one .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. See Install deep learning frameworks for ArcGIS.
A power line classification model trained by Esri can be downloaded from ArcGIS 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.
After classification using deep learning, you can manually improve the classification further in the next step.
Extract wires from lidar
This step extracts the wires as features from the classified lidar. It models each segment of a power line between two suspension points as individual line features. Use this step if you need to extract all wires as PolylineZ features.
Note:
For best extraction results, ensure the average lidar point spacing is less than 1 foot or 30 centimeters.
Extract support structure locations from lidar
Use this step to extract the support structure locations from lidar as PointZ (x,y,z) features with height as the attribute.
Note:
For best extraction results, ensure the average lidar point spacing is less than 1 foot or 30 centimeters.
Symbolize wires
Use this step to visualize the wire features that were extracted from lidar as 3D tubes.
Symbolize support structure locations
Use this step to symbolize the support structures as complete transmission or distribution lines including wires and towers or poles. This can be useful if you need a realistic visual representation of the transmission or distribution lines with wires connected to the support structures.
Note:
In this step, wires are modeled as catenary curves with a default sag to span ratio of 0.035, which may differ from the classified wire points in the lidar.
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.
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 point features as input. You can use existing features or features that have been extracted from lidar, or you can manually create 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 be installed.
Publish underground pipes
You can turn your existing 2D underground utility features into 3D features using 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 task to better visualize underground pipe features.
Publish integrated mesh
An integrated mesh is a textured continuous meshed surface capturing a current state of an area or city. They are often derived from drone, aerial, or satellite imagery via photogrammetric processing.
In the Tasks pane, expand the Publish integrated mesh group task and follow the steps provided.
Add integrated mesh
This step adds an integrated mesh to your scene. A mesh (.slpk) is typically created from photogrammetric sources, like imagery captured by drones and processed with Drone2Map or SiteScan. There are also several Esri partners that specialize in producing city-scale integrated mesh for purchase.
Modify integrated mesh
Use this step to make a modification to an integrated mesh layer. You can create a new modification or import from an existing polygon feature layer. Mesh modifications are useful to be able to show other 3D layers such as buildings, trees or bridges together with the integrated mesh.
Publish integrated mesh layer
This step publishes the integrated mesh layer to your organization. Reprojection to Web Mercator with height in meters is only required if you wish to use the published layer in a global web scene.
Run Share as new web scene to publish the entire scene as web scene to your organization. Remove all the layers that you don't want to publish from the scene before publishing.
Run Share as scene layer if you need to add an integrated mesh to an existing web scene.
Modify integrated mesh in web scene
This tool modifies an integrated mesh in a published web scene without having to republish the entire mesh as a new web scene.
Publish water features
This task allows you to create and publish 3D water features as multipatch features and polygon features. Water features can represent flat water bodies such as lakes and coastal waters as well as rivers with a certain gradient. This task works well with flat water features and river features at city scale. Larger features with a lot of gradient will results many polygons which may lead to performance degradation.
Create water features
This step creates water features as 2D polygons. You can skip this step if you already have a polygon feature class that defines the water features.
Modify water features
The water features need to have a depth attribute that describes the average depth for each water feature. These values are used to modify the ground elevation for the area of the water features so that the water surface features display properly.
In this step you can calculate the depth values for all water features. If you want specific depth values for each water features, open the feature attribute table and set the values manually.
Create 3D water features
This step allows you to create 3D water features from the 2D water features and a ground elevation (dtm) surface as input.
This tool outputs a multipatch layer and a polygon layer representing the 3D water level. Use the multipatch layer to visualize large areas of flooding as this format is suited for fast rendering of many features. Use the polygon layer if you want to leverage water animation in ArcGIS Pro and the Scene viewer.
Symbolize water features
Use this step to symbolize the water features with a water renderer.
Publish 3D Basemaps
The 3D basemap is a web scene that can be used across the ArcGIS platform.
In the Task pane, expand the Publish 3D basemap web scene group task and follow the steps provided.
Publish 3D basemap web scene
Use this step to create a web scene containing the 3D basemap layers.
Tip:
For more information on creating a web scene, see Get started with scenes.
Add web map to web scene
Use this step to add the layers of a web map to a web scene; for example, you can add a web map to the 3D basemaps web scene.