Create a capture session

A capture session combines all relevant information captured in a single photo-flight that will be required to do the alignment and reconstruction steps. Capture sessions may be built for imagery captured with nadir-only sensors or multihead sensor systems and with the corresponding positioning information for each image.

In a nadir sensor system, the sensor points straight down and captures imagery of the surface under it. The images collected this way are referred to as nadir images.

The following image is an example of nadir imagery:

Example of nadir imagery

The following image is a diagram of a nadir camera cone and image footprint:

Nadir camera cone and image footprint diagram

In a multihead sensor system, sensors point in multiple directions, at angles forward and backward and to the sides. The images collected at an angle are referred to as oblique images. Multihead systems may also include a sensor to collect nadir images.

The following image is an example of oblique imagery:

Example of oblique imagery

The following image is a diagram of a multihead sensor, showing the camera cones and image footprints:

Multihead sensor camera cone and image footprint diagram

Positioning information may be based on navigation information or high-accuracy positions derived in an external aerotriangulation process.

The data you'll add to your capture session consists of the following:

  • 873 images captured with a multihead sensor system (IGI UrbanMapper)
  • An ASCII file including the positioning information per image (GNSS_IMU_whole_Area.csv)
  • A file including the necessary sensor specifications (Camera_template_Frankfurt_UM1.json)
  • A file geodatabase containing the geometry for the region of interest and a water body (AOI_and_Waterbody.gdb)

Download the data

The data for this tutorial takes up about 26 GB of disk space.

  1. Download the Frankfurt_City_Collection.zip file.
    Note:

    Depending on your connection speed, this 26 GB file may take a long time to download.

  2. Extract the .zip file to a folder on your local machine, for example, D:\Datasets\Frankfurt_City_Collection.

Start a capture session

Next, you'll create the capture session.

  1. Start ArcGIS Reality Studio.
  2. On the Welcome screen, click New Capture Session.

    New Capture Session option

  3. In the Capture Session pane, for Orientation Source, click the drop-down menu and choose Text file (.txt, .csv).

    Text file orientation file format

    A notice appears indicating that the data must be in a supported orientation data format convention.

  4. Under Text file (.txt, .csv), click the Browse button.
  5. In the Select a text file (.txt, .csv) window, browse to the Frankfurt_City_Collection folder that you extracted. Select GNSS_IMU_whole_Area.csv and click OK.

    GNSS_IMU_whole_Area.csv file

  6. For Input Spatial Reference, click the Select coordinate system button.

    Select coordinate system button

  7. In the Spatial Reference window, on the Horizontal systems tab, in the search box, type 25832 and press Enter.

    25832 in the search box

    The search for this well-known ID (WKID) code returns the ETRS 1989 UTM zone 32N coordinate system. This is the horizontal coordinate system used in the position file.

  8. Ensure that ETRS 1989 UTM zone 32N is selected.

    You've set the horizontal coordinate system. Next, you'll set the vertical coordinate system.

  9. Click the Vertical systems tab.

    Vertical systems tab

  10. In the search box, type 7837 and press Enter.

    7837 in the search box

  11. Ensure that DHHN2016 height is selected.

    You've set the vertical coordinate system.

  12. In the Spatial Reference window, click OK.
  13. In the Data Parsing section, for Parse from row, type 22 and press Enter.

    Parse from row parameter

    The GNSS_IMU_whole_Area.csv orientation file that you imported is a comma-delimited text file. It includes a header section of 21 lines, while the data that ArcGIS Reality Studio will use to process the images begins at line 22. Entering 22 in this box skips the header rows.

    Note:

    Another way to skip the header is to specify the character that begins comment rows. In this file, the # symbol is the comment character, so you could also skip the header by typing # in the Symbols used to ignore rows box.

    Once ArcGIS Reality Studio can read the file correctly, the number of detected orientations is listed in a green highlight box. In this case, 7,775 orientations are detected. These are the orientations collected during the flight. This is greater than the 873 images used in the tutorial because the tutorial images are a subset of a larger collection.

  14. Click Next.

    Next button

Define the parameters of the orientation file

There are multiple image orientation systems and they label the collected parameter data in different ways. In this case, the GNSS_IMU_whole_Area.csv file you imported contains the image name, X, Y, Z, Omega, Phi, and Kappa values in the same order as they appear on the Data Labeling table. You'll match the fields to the data positions in the file.

  1. In the Data Labeling section, for Image Name, choose the first item in the list.

    First item in the Image Name list

    Place 1 in the file contains data that consists of a code value separated by underscore characters.

  2. For X, choose item 2.

    Item 2 in the Image Names list

    Place 2 in the file contains data that consists of floating point data.

    You'll continue mapping the field names to places in the data file.

  3. For Y, choose item 3.
  4. For Z, choose item 4.
  5. For Omega, choose item 5.
  6. For Phi, choose item 6.
  7. For Kappa, choose item 7.

    Data labeling completed and the Camera System Assignment section

    When you have set the Kappa value, in the Camera System Assignment section, a green box appears with the number of assigned orientations from the file.

  8. Skip the Camera Name field and leave Angular Unit set to degrees.

Relate the orientation data to the images

The orientation data file contains information that ArcGIS Reality Studio will use in reconstructing the scene. There are multiple camera and orientation tracking systems. The relationship between the position data and the cameras is established in different ways, depending on the convention used by the system used to collect your images. The following are the two main ways:

  • The ASCII orientation file may include a column with the camera names.
  • The image file name includes a string that identifies the camera.

In this tutorial, the image file names contain a string to identify the camera.

  1. In the Camera System Assignment section, click the Manage camera system template button and choose Import Template.

    Import Template option

  2. In the Select input file window, browse to the Frankfurt_City_Collection folder, select Camera_template_Frankfurt_UM1.json, and click OK.

    Camera_template_Frankfurt_UM1.json file in the Select input file window

    The Camera System Assignment section updates to include a table for the camera names and ID values.

    Table added with camera names and IDs

    Next, you'll enter the codes that correspond to the cameras in the image file names.

  3. For Left, in the Camera ID column, type the code _11000.
  4. For Forward, in the Camera ID column, type the code _11900.
  5. For Nadir, in the Camera ID column, type the code _NAD.
  6. For Backward, in the Camera ID column, type the code _11600.
  7. For Right, in the Camera ID column, type the code _11100.

    The Camera System Assignment table

    The Camera System Assignment table now matches the camera names to the Camera ID codes embedded in the image file names.

    The Capture Session Selection section appears below the Camera System Assignment table. This section allows you to choose to process specific camera sessions or all camera sessions. In this tutorial, you'll process all of the camera sessions.

  8. Under Capture Session Selection, rename Capture Session 1 to Frankfurt_Flight_RS.

    Capture Session 1 renamed to Frankfurt_Flight_RS

  9. Ensure that all capture sessions are selected and click Next.

    Click Next.

Review the camera sessions

The Camera Sessions section allows you to review the parameters of the cameras used to capture the images.

  1. In the Camera Sessions section, click Forward_Frankfurt_Flight_RS.

    Forward camera parameters

    The next sections contain information about the camera used to collect the forward-looking images. This information was included in the Camera_template_Frankfurt_UM1.json file that you imported earlier.

  2. Scroll down to see the data in the Sensor Definition section.

    Sensor definition data

    Each of the camera sessions listed has a corresponding table of data documenting the physical properties of the camera and lens system used to capture that set of images.

    Note:

    If the camera data had not been imported from the Camera_template_Frankfurt_UM1.json file, you could manually enter the data from your imagery provider.

  3. Optionally, click the other camera sessions and review their parameters.
  4. Click Finish.

    The capture session is constructed. This process will take a minute or so. The Project Tree pane appears.

    Project Tree pane

    The Local Processing pane also appears. The three tabs show items that are either in the queue, finished, or failed.

    Local Processing pane Finished tab with the Footprint Computation finished

    The Globe view appears, showing the locations of the camera captures.

    Globe view

Link capture sessions to the image files

Next, you'll connect the capture sessions you've selected to the image file data location. You'll perform this step for each camera session.

  1. In the Project Tree pane, expand the entry for Forward_Frankfurt_Flight_RS and then point at the layer name until the tooltip appears.

    Forward_Frankfurt_Flight_RS in the Project Tree pane

    The Forward_Frankfurt_Flight_RS layer doesn't have any images added. You'll connect the image data to the forward-looking images.

  2. For Forward_Frankfurt_Flight_RS, click Add images.

    Add images option

  3. In the Select images, folders, or list files window, browse to the Frankfurt_City_Collection folder, select the jpg folder, and click OK.

    The jpg folder where the images are stored

  4. In the Non-Optimized Images window, click OK.

    Non-optimized Images window

    Optimized images use a tiled format including image pyramids, allowing them to display faster. However, optimization is not required for the upcoming workflow.

    When the process is complete, Forward_Frankfurt_Flight_RS shows 160 images in the tooltip and the Add images warning disappears. You'll add the images to the next camera session.

  5. In the Project Tree pane, next to Right_Frankfurt_Flight_RS, click Add images.

    Add images button for the Right_Frankfurt_Flight_RS layer in the Project Tree pane

  6. In the Select images, folders or list files window, select the jpg folder and click OK. In the Non-Optimized Images window, click OK.

    The jpg folder in the Select images, folders or list files window

    You'll repeat this process for each of the camera sessions.

  7. In the Project Tree pane, next to Nadir_Frankfurt_Flight_RS, click Add images.
  8. In the Select images, folders or list files window, select the jpg folder and click OK twice.
  9. Next to Backward_Frankfurt_Flight_RS, click Add images. Select the jpg folder and click OK twice.
  10. Next to Left_Frankfurt_Flight_RS, click Add images. Select the jpg folder and click OK twice.

    After the capture sessions have been linked to their images, you can visualize the image footprints. For a better understanding of the dataset, you have different options to visualize it. In this example, you will turn off the camera stations and display the footprints of the nadir camera.

  11. In the Project Tree pane, point to the Frankfurt_Flight_RS layer, click the Toggle visibility button to turn the layer off.

    Toggle visibility button

    Visibility is turned off for all capture session items at once.

  12. Under Forward_Frankfurt_Flight_RS, point to Image Footprints and click the Toggle Visibility button to turn the layer on.

    Toggle Visibility button for the Forward_Frankfurt_Flight_RS Image Footprints layer

    The image footprints are shown in the Globe view.

    Image footprints shown in Globe view

  13. Turn off visibility for Image Footprints.

Define the region of interest and add water bodies

The last two steps before aligning the images are to define the region of interest for the project and to identify where water bodies are located.

  1. On the ribbon, click the Home tab. In the Input group, click Geometries. Click Import Geometry and then choose Region of Interest.

    Region of Interest option

  2. In the Select a region of interest geometry window, in the Computer section, browse to your Frankfurt_City_Collection folder. Double-click the AOI_and_Waterbody.gdb geodatabase to expand it.
  3. Select the Frankfurt_AOI feature class and click OK.

    The AOI feature class

    The Frankfurt_AOI polygon feature class is added to the Globe view. It appears with a dashed orange outline.

    The AOI layer on the Globe view

    Specifying a region of interest geometry prevents unnecessary data from being processed, minimizing total processing time and storage requirements.

  4. On the ribbon, on the Home tab, in the Input group, click Geometries. Click Import Geometry and then choose Water Body.
  5. In the Select a water body geometry window, in the AOI_and_Waterbody.gdb folder, select Frankfurt_waterbody and click OK.

    Frankfurt_waterbody feature class in the Select a water body geometry window

    The Frankfurt_waterbody polygon feature class is added to the Globe view.

    The water body polygons on the globe view

    Specifying water body geometries flattens and simplifies areas within water bodies. These can be tricky to process and lead to undesirable outputs due to the reflective nature of water.

    The capture session has been fully defined. You can now save the project.

  6. Above the ribbon, click Save Project.

    Save Project button

  7. In the Save Project As window, browse to a location with plenty of free disk space and, for Name, type 2023-Frankfurt_Reality_Studio_Tutorial, and click Save.

You have defined the capture sessions, set the coordinate system and camera properties, and linked the position and orientation data to the captured images, and saved the project. You are now ready to begin adjusting the images to start creating products from them.


Perform an alignment

The capture session was built from GNSS navigation data recorded during the photo flight. This exterior orientation information is typically not accurate enough to create products such as true orthos or 3D meshes of high geometric quality. To optimize the navigation data, you'll run an alignment. During alignment, also called aerotriangulation, individual images are connected by determining homologous points (tie points) between overlapping images. With many of these image measurements, the image block can be mathematically adjusted to refine the orientation parameters for each image. Additional accuracy can be obtained by manually measuring ground control points.

Create an alignment

To align the images, you must add an alignment to the project.

  1. On the ribbon, on the Home tab, in the Processing section, click New Alignment.
    New Alignment button
  2. In the Alignment pane, for Alignment Name, type Frankfurt_AT.
  3. For Workspace, click the Browse button. In the Select a workspace folder window, browse to the Frankfurt_City_Collection folder.
  4. Click New Item and click Folder.

    Folder button under New Item in the Select a workspace folder window

  5. Name the folder Workspace_Frankfurt and click OK.

    Alignment Name and Workspace parameters

  6. In the Camera Sessions section, ensure that the box next to Dataset is checked.

    This alignment will use all the camera sessions, so they should all be checked.

    All the capture sessions turned on under Camera Sessions

  7. In the Control Points section, click Import Control Points.

    Import Control Points option

  8. In the Select input file window, browse to the Frankfurt_City_Collection folder and open the GroundControlPoints folder. Select Ground_Control_Points.txt and click OK.

    Ground_Control_Points.txt file

  9. In the Control Points Import window, for Spatial Reference, click the Select coordinate system button.

    Select coordinate system button

  10. Under Available Coordinate Systems, on the Horizontal systems tab, in the search box, type 25832 and press Enter.

    Horizontal systems tab and search results

  11. Ensure that ETRS 1989 UTM zone 32N is selected.
  12. Click the Vertical systems tab. In the search box, type 7837 and press Enter.

    Vertical systems tab and search results

  13. Ensure that DHHN2016 height is selected and click OK.
  14. For Choose a delimiter, accept the default delimiter, comma.

    Comma delimeter chosen

  15. Click Next and, on the next slide, review the column labels.

    Column labels in the Control Points Import window

    The default values are correct.

  16. Click Import.

    The control points are added to the Globe view.

    Control points on the Globe view

  17. In the Alignment pane, in the Control Points section, check Dataset. Expand Dataset to see the new Ground_Control_Points data.

    The new Ground_Control_Points item

    The Standard Deviations section allows you to modify the given accuracy (a priori standard deviations) of the image positions (XYZ position and rotation angles) and of the imported ground control points. For this tutorial, the default values are correct.

    The Region of Interest parameter allows you to specify a region to adjust. For this tutorial, you'll perform alignment on the entire dataset, so there is no need to set a region of interest.

  18. Click Create.

    Create button at the bottom of the Alignment pane

    The Frankfurt_AT layer is added to the Project Tree pane under Alignments.

  19. On the Project Tree pane, under Alignments, click the Frankfurt_AT layer that was added.

    The Alignment tab becomes available on the ribbon.

  20. On the ribbon, click the Alignment tab. In the Workspace group, click Manage Workspace.

    Manage Workspace button on the ribbon

    The Workspace_Frankfurt workspace manager pane appears below the scene. You'll add the Frankfurt_AT alignment as a job to the workspace.

  21. On the ribbon, in the Workspace group, click Submit.

    The Frankfurt_AT job is added to the Workspace_Frankfurt workspace manager pane. The alignment is ready for processing

    Running the alignment will start the automatic tie point matching and bundle block adjustment process. This is a computationally intensive process, and the duration of the processing will depend on your computer hardware.

    On a computer with 128 GB RAM, AMD Ryzen 24 core CPU at 3.8 GHz, and Nvidia GeForce RTX4090 GPU, the process will take approximately 0.5 hours.

  22. In the workspace manager, click Start Contribution.

    Start Contribution button in the workspace manager pane

    Note:

    If necessary, set a Temporary Processing Location with at least 1 TB of storage space. After clicking Start Contribution, in the Temporary processing location missing window, click OK. In the Options window, click OK and, in the workspace manager, click Start Contribution.

    Once the contribution is started, a command-line interface window opens. It tracks the progress of the tasks submitted to the workspace. In parallel, the workspace manager tracks the progress and estimated time until completion.

    This might be a good time to take a break or work on something else while the process runs.

  23. When the job is finished processing, in the workspace manager, the Status field will be set to Finished.

    The Globe view is also updated with the green shapes representing camera poses, now limited to the set of available images.

    Camera poses on the globe view

    Since you'll be submitting another job to this workspace later, you will leave the contribution on.

Measure ground control points

Ground control points are well-recognizable points on earth, where the exact position is well known. Ground control points can be established by field teams in the form of prepared markings on ground, but it’s also common practice to use well-distinguishable features such as manholes or road markings for that purpose.

You can measure ground control points before or after the initial alignment. Doing it after the initial alignment has the benefit that the software has already refined the image positions and can provide a better indication of where to measure.

  1. On the ribbon, on the Alignment tab, in the Tools group, click Quality Assurance.

    Quality Assurance button on the ribbon

    The Frankfurt_AT quality assurance pane appears. This pane shows the key statistics of the bundle block adjustment.

  2. In the quality assurance pane, expand the Count section.

    The Image Measurements column for the Ground Control Points row indicates that no image measurements have been done for the ground control points. You will add some now.

    Image Measurements with a value of 0 for Ground Control Points

  3. Close the Frankfurt_AT and Workspace_Frankfurt tabs.
  4. On the ribbon, on the Alignment tab, in the Tools section, click Image Measurements.

    Image Measurements button

    The Frankfurt_AT tab appears. The Map view shows a map of the project area with the ground control points and a Control Points table.

  5. On the Map view, click a ground control point.

    Ground control point selected in the Map view

    The image appears in the pane beside the Map pane.

    Image Measurements overview

  6. In the image pane, click the Legend and Image Measurement Help buttons. Review the Image Measurements information. When finished, close the Image Measurements panel.

    Image Measurement Help button

    The legend appears on the image pane.

  7. In the Control Points table, click the row number for point 990004 to select it.

    Gound control point 990004

    When you click the header for the row, the Image section updates to show all of the images that contain point 990004, and the first image is shown, along with a pink circle indicating the projected point location.

    Result of selecting ground control point 990004

  8. On the image, zoom to the pink circle.

    Location of first projected point

    First, you will make sure that the ground control point is visible. A ground control point will not be visible in every image, because each was taken from a different location and angle. Trees, buildings, cars, or pedestrians may block the view, and glare or shadow may make a ground control point blend in to the background of the image. When measuring, you can skip images where the point is not visible.

    Fortunately, in this image, the ground control point is visible as a light spot with a darker circle surrounding it.

  9. Click the center of the ground control point in the image.

    The location where you clicked is now marked as a measured point. The Status column of the table for this image also updates with a green Measured point symbol.

    Measured point in the image and teh table

  10. Press the F key to move to the next image.
  11. Click the center of the ground control point in the image.

    The second measured point is added.

    After this point is added, the Find Suggestions button is enabled. This tool is designed to assist you in measuring the ground control points. It uses the projected points and inspects the imagery to find locations that look like the point that you have marked in the current image.

  12. Click Find Suggestions.

    Find Suggestions button

    Based on this latest measurement, the tool scans the remaining images for this ground control point. This may take a minute or so.

  13. In the table, click the first suggestion, indicated by a red symbol in the Status column.

    First suggestion with red symbol indicator

    The suggestion is good, so you will accept it.

  14. Click Accept to accept the suggestion.

    Accept button

    The measured point is added and the next image is displayed. It also has a suggested point.

  15. Click Accept to accept the suggestion.

    The next point does not have a suggestion, so you will manually add it by clicking the ground control point in the image, the way you did for the first two.

  16. Click the center of the ground control point in the image.

    The measured point is added and the Find Suggestions tool becomes active again.

    Find Suggestions button reactivated

  17. Click Find Suggestions.

    The tool scans the images for this ground control point. This may take a minute or so.

    The tool makes suggestions for more of the images. You can use the table to navigate through these and manually accept each one by clicking the Accept button, or you can accept all of the suggestions by clicking the Accept All button.

  18. Click Accept All.

    Accept All button

    Now more than 40 of the 128 images showing ground control point 990004 have measurements.

Collect points for the Forward camera

You can scroll through the table to look at the distribution of measured points. The Camera column indicates which camera (Left, Right, Forward, Backward, or Nadir) captured each image. You want to ensure that you have at least five measurements for each camera. To do this, you will sort the table on the column values.

  1. Scroll to the end of the table and click the Camera column header.

    Camera column

    Now the table of images is sorted by camera.

  2. Scroll down the table to see whether each camera is well represented.

    Rows with values in the Reprojection Error columns have measured points. All of the cameras have at least five measured points, except for the Forward camera, which has only one.

  3. Click one of the Forward camera images to measure the control point position.

    Click a Forward camera image.

  4. If no ground control point is visible, press the F key to move to the next image.
  5. Click the center of the ground control point in the image.

    Measured point clicked

  6. Click Find Suggestions.

    Several more images have suggested points.

    Forward camera images with suggested points

  7. Click each of the images with suggested points, verify the suggested point matches a good location for a measured point, and click Accept.

    You can also review the points and click Accept All.

    Now more than 50 of the images showing ground control point 990004 have measurements. Each camera is well represented. This is enough.

Collect measurements for other ground control points

You've collected measurements for ground control point 990004. The next step is to continue collecting measurements for the other ground control points. You should collect representative measurements for each of the cameras for at least five of the other ground control points. Use the same techniques you learned on the first ground control point.

  • If the ground control point is not visible in the image (for example, if it is hidden by a car, building, or tree), press F to skip the image.
  • If a suggested point location appears correct, click Accept.
  • If the suggested point location does not appear correct, click the location of the ground control point.
  • Use the Camera column to ensure that you collect measurements for each available camera.

  1. In the Control Points table, click the row number for point 990007.

    990007 ground point row selected in the Control Points table

    The image section updates to show images containing point 990007.

    Result of selecting the second of the GCPs, number 990007

    No ground control point is visible in the first image.

    Sometimes, ground control points are not clearly marked on the ground, but instead make use of conspicuous existing locations. When this is the case, the surveyor usually notes the location in a set of field notes and takes a picture showing the GPS antenna at that location. For this project, the location of each ground control point was documented in a series of images to simulate this sort of field data. You’ll consult the images to learn the location of ground control point 990007.

  2. Open the Frankfurt_City_Collection folder that you downloaded and unzipped at the start of this tutorial. Open the GroundControlPoints subfolder.
  3. In the GroundControlPoints folder, double-click 990007.JPG to view the image.

    Ground control point location reference images

    The green marker in the image indicates the location of ground control point 990007, at the corner of the crosswalk.

    Ground control point at corner of crosswalk

  4. Return to ArcGIS Reality Studio. Zoom in on the image and click the corner of the crosswalk.

    Corner of the crosswalk in the image

  5. Continue measuring points. Keep working until you have collected about five measurements for each of the five cameras for control point 990007.

    You'll choose the next control point to assess from the Map view, instead of the table.

    Any control point that has two or more image measurements appears on the map as a green triangle. A white triangle indicates zero or one image measurement.

  6. On the Map view, click the Rectangle selection tool. Drag a box around one of the white triangles to select it.

    Rectangle selection tool

    The corresponding row in the Control Points table is selected.

    Control point 990005 selected on the map and in the table

    The image section also updates to show all of the images containing the selected control point.

    Tip:

    If no ground control point is visible in the image, consult the images in the Frankfurt_City_Collection folder.

  7. In the image section, add measured points until you have collected at least five measurements for each of the five cameras.
  8. Select each of the remaining control points in turn and for each one, collect at least five measurements for each camera.

    All GCPs in the Control Points table with adequate measurements

    The Control Points table shows statistics for the reprojection errors for each control point. If some control points have higher reprojection error statistics than others, you can click the header for the row in the Control Points table, and then in the image panel, search for and remeasure or remove images with high Reprojection Error values.

Remove a measurement

If a control point has a high reprojection error, you may need to remove a measurement or remeasure it.

You can examine the statistics in the Control Points table.

In this example, 990003 has the highest Max. Reprojection Error [px] value.

Point 990003 with the highest maximum reprojection value in the Control Points table

The values you see in your table will depend on the measurements you make and will not match these sample images.

  1. Click the row header for point 990003.
  2. In the images table, click the column header for Reprojection Error XY [px].

    The table is sorted by Reprojection Error XY [px] value.

  3. Scroll to see the image with the highest Reprojection Error XY [px] value.
  4. Click the highest Reprojection Error XY [px] value.

    Highest Reprojection Error XY [px] value selected

  5. Click Remove.

    Remove button

    In the Control Points table, check that the values improved.

    Values improved in Control Points table

Change a ground control point to a check point

Check points are used for evaluating and reporting on the accuracy of the alignment. Their 3D position and image residuals are estimated using the output image orientation for quality assurance purposes. You'll convert one of the ground control points to a check point.

  1. In the Control Points table, click the header for ground control point 990006.

    The row for this ground control point is highlighted.

  2. On the toolbar at the top of the Control Points table, click Set Role and choose CP.

    Set role set to CP

    In the table, the role changes to CP, indicating this is a check point.

    Role column for image 990006 is set to CP

Refine the alignment

After adding and measuring control points, or changing other settings of the alignment, you will run the alignment again to refine the positions based on the new information. This reruns the bundle-block adjustment, but it will be much faster than the initial alignment process.

  1. On the Project Tree pane, for Frankfurt_AT, click Apply changes. In the Modified Input Warning window, click Apply Changes.

    Apply changes button

    The workspace manager pane opens and shows the progress on the alignment process. After one or two minutes, the process completes.

    Note:

    If necessary, in the workspace manager, click Start Contribution to begin the reprocessing.

  2. When the job has finished, close the workspace manager pane. On the ribbon, on the Alignment tab, click Quality Assurance.

    The Frankfurt_AT quality assurance pane appears.

  3. In the quality assurance pane, examine the statistics to check the quality of the alignment results.

    The Quality Assurance view

    For best results with this data, keep the following in mind:

    • The overall Sigma 0 value should be less than 1 px for a well-calibrated photogrammetric camera.
    • The RMS of the tie point reprojection error is also expected to be less than 1 px.
    • The RMS for the horizontal and vertical object residuals for control points should be less than 1.5 GSD (12 cm).

    Also check the count data, such as the number of automatic tie points per image and image measurements per tie point, which indicate how well tie points are distributed in the project area and how well adjacent images are connected by a common measurement. You can also review the tie point visualization in the globe view.

    Note:

    These steps are meant to give you basic guidance for analyzing the alignment results. Doing an in-depth analysis of the quality requires knowledge about project requirements and specifications as well as knowledge about the quality of the input data.

  4. In the quality assurance pane, click General Information and view the Sigma 0 [px] value.

    Sigma 0 [px] value under General Information

    The value in this example is 0.7594, which is a good value for this dataset.

  5. On the other side of the quality assurance pane, scroll down to the Reprojection Errors section and view the Automatic Tie Points Reprojection Errors [px] section and click the Show table view button.

    Show table view button for the Automatic Tie Points Reprojection Errors [px] chart

    The RMS [px] value for the tie point reprojection errors in this example is 0.760, which is a good value for this dataset.

    Automatic Tie Points Reprojection Errors [px] table view

  6. Scroll up to the 3D Residuals section. View the Ground Control Points Residuals [m] section. Click Show table view.

    Ground Control Points Residuals section

    The RMS [m] value for Ground Control Points Residuals [m] in this example is 0.048 meters, which is acceptable for this exercise.

    Ground Control Points Residuals values

  7. On the other side of the quality assurance pane, scroll down and expand the Count section.

    Count statistics

    In this example, there are six ground control points with 371 image measurements and one check point with 104 image measurements.

  8. Optionally, review the other quality assurance statistics and measurements.
  9. On the quality assurance pane, click the Control Points tab.

    Control Points tab

    The Control Points table appears.

    Control Points table open in the Quality Assurance pane

    You can use this table to check the X, Y, and Z residuals for each control point. Unexpectedly large Delta XYZ [m] values may indicate that points need to be remeasured.

    You can also review the geography of the actual project data (ground control points, automatic tie points, image positions).

  10. Click the Globe tab.

    Globe tab

    The Globe view appears.

  11. On the ribbon, on the Alignment tab, in the Display group, click Automatic Tie Points.

    Automatic Tie Points button

    The automatic tie points are drawn in the Globe view.

    The automatic tie points in the Display pane

    Note:

    If you want to see the automatic tie points unobstructed by the green camera symbols, in the Project Tree pane, under Frankfurt_AT and Results, expand each group and turn off visibility for each Camera Poses layer.

  12. Click the Automatic Tie Points drop-down arrow and choose RMS of Reprojection Errors.

    RMS of Reprojection Errors option

    The Globe view updates to show the tie points symbolized by the RMS of the reprojection errors.

    Updated symbology

  13. On the quality assurance view, click the Automatic Tie Points tab.

    The table shows the automatic tie points.

    Automatic Tie Points table in the quality assurance pane

    You can view and sort the data in this table to identify the automatic tie points with the highest error values.

  14. On the quality assurance pane, click the Overview tab. On the chart side, scroll to the Reprojection Errors section and view the Automatic Tie Points Reprojection Errors [px] histogram.

    Automatic Tie Points Reprojection Errors histogram

    The symbology of the histogram matches the symbology of the Globe view.

  15. On the ribbon, on the Alignment tab, in the Results section, click Report.

    Report button

  16. In the Create Alignment Report window, browse to a location to save the report. For Name, type Frankfurt_AT_report.

    Create Alignment Report window

  17. Click Save.

    The PDF is saved on your computer. It is a way to share the quality assurance statistics of the alignment.

    Sample report

  18. Close the quality assurance pane and save the project.

You've performed an initial alignment, added control points, refined the alignment, and examined the alignment statistics. You also exported a PDF copy of the alignment statistics to document your work, and share with your stakeholders.

Next, you'll use the aligned data to create a reconstruction.


Perform a reconstruction

Now that the alignment process is complete and the results have been examined and determined to be high quality, you are ready to create output products. For this tutorial, you'll create a 3D point cloud and a 3D mesh.

Create a reconstruction

The first step to generate the products is to create a reconstruction.

  1. On the ribbon, click the Home tab. In the Processing section, click New Reconstruction.

    New Reconstruction button

  2. In the Reconstruction pane, for Reconstruction Name, type Frankfurt_RS_3D.
  3. For Workspace, click the Browse button. In the Select a workspace folder window, browse to the Frankfurt_City_Collection folder.

    The results of the reconstruction process will be stored there. Ensure that there is enough disk space for the output.

    Note:
    The reconstruction process is designed to support processing in a distributed environment, with a local network of workstations running ArcGIS Reality Studio serving as processing nodes. To run efficiently in such an environment, the process is split into individual tasks and the project is divided into manageable subprojects.

    To run a reconstruction, you need to specify the following:

    • A workspace, where the results of the reconstruction run are collected. The workspace must be accessible for each processing node.
    • A temporary processing folder, which is used to store intermediate processing results for the automatically defined subprojects.

  4. Select the Workspace_Frankfurt folder you created earlier and click OK.

    Reconstruction Name and Workspace parameters in the Reconstruction pane

    This reconstruction session will be used to create two 3D outputs.

  5. For Sessions, check the Frankfurt_AT alignment session that you created.

    The alignment is selected.

    Selected alignment

  6. For Capture Scenario, click the drop-down list and choose Aerial Oblique.

    Aerial Oblique option for the Capture Scenario parameter

    Choosing a scenario sets some output products and processing settings.

    The Aerial Oblique setting is useful now because the sample data is a multihead capture session, and all the available imagery will be used to create the output 3D products. The Aerial Nadir setting is more useful when you are creating 2D products. For optimal quality, 2D products should be produced using only nadir images.

  7. For Quality, ensure that Ultra is selected.

    The Ultra setting will run the 3D reconstruction at the native image resolution. This will take a longer time to process than the other quality options, but the results will look better.

    Ultra output quality

    Note:

    You can choose the High quality option if you want the output to have slightly reduced detail and lower texture resolution.

  8. In the Products section, review the output products.

    Point Cloud and Mesh output products

    The Point Cloud and Mesh products are selected.

  9. Expand the Optional section.

    SLPK option selected under Mesh Formats in the Optional section

    The SLPK mesh format will be exported by default. You can check other formats for the output mesh if you choose.

  10. For Region of Interest, choose Frankfurt_AOI.

    Frankfurt_AOI option

    Region of Interest allows you to limit processing for your output products to the images relevant to your project.

  11. For Tile Size, accept the default value of Auto.
  12. For Precise Water Body Geometries, choose Frankfurt_waterbody.

    The Precise Water Body Geometries parameter is used to flatten and simplify areas within water bodies. These can be tricky to process and lead to undesirable outputs due to the reflective nature of water.

    Frankfurt_waterbody option

    You should define Precise Water Body Geometries when the water body polygons represent the exact outline of the water body, excluding nonwater content such as bridges and boat jetties. You should define Coarse Water Body Geometries when the polygons represent a rough outline of the water area. In both cases, these water body geometries represent the elevation of the water surface.

  13. Expand Advanced Settings. For Correction Geometries, accept the default value of None.
  14. Click Create.

    This finishes the reconstructions setup. In the Project Tree pane, the Frankfurt_RS_3D layer is added under the Reconstructions section.

Run the reconstruction

Now that the reconstruction has been set up, the next step is to run it. This will take some time, depending on your computer resources. On a single computer with 128 GB RAM, AMD Ryzen 24 core CPU at 3.8 GHz, and Nvidia GeForce RTX4090 GPU, the process will take approximately 6 hours. Adding additional nodes will make the process faster.

  1. In the Project Tree pane, under Reconstructions, click the Frankfurt_RS_3D layer to select it.

    The Reconstructions tab appears on the ribbon.

  2. On the ribbon, on the Reconstruction tab, in the Workspace group, click Submit.

    Submit button on the Reconstruction tab

    After you click Submit, the workspace manager pane will appear with the Frankfurt_RS_3D job added. After a few moments, the Status will switch from Pending to Running.

    Frankfurt_RS_3D job running in the workspace manager pane

  3. In the workspace manager pane, click the Frankfurt_RS_3D row to select it. Click the Job Montior button.

    Frankfurt_RS_3D job selected and the Job Monitor button on in the workspace manager

    The Frankfurt_RS_3D job monitor tab appears.

    You can use the job monitor pane to get an overview of which task of a reconstruction job is running. Tasks will be added as the job runs.

    Job monitor pane

  4. In the Project Tree pane, turn off visibility for the Frankfurt_AT layer.
  5. Click the Workspace_Frankfurt tab to open the workspace manager. Click Show on Map.

    Show on Map button in the workspace manager

    When it's ready, a processing tile will appear on the Globe view. The color of the tile indicates its status: gray means that the project is pending, blue means that it is processing, and green means that it is complete. For this example, it takes about half an hour for the processing tile to appear.

  6. Wait for the reconstruction process to run.

    For this example, it takes approximately 6 hours on the single example machine.

    The workspace manager pane will indicate when the process is complete.

    Workspace manager pane showing Status as Finished

    On the Globe view, the processing tile will appear green, indicating it is complete.

    Completed green processing tile

  7. When the process is complete, in the workspace manager, click Stop Contribution. In the Stop contribution window, click OK.

    Stop Contribution button in the workspace manager

    This will allow the system to take on local processing tasks again. Next, you'll view the results.

  8. In the workspace manager pane, click Show on Map to remove the processing tile from the Globe view.
  9. In the Project Tree pane, under the Reconstructions section, expand Frankfurt_RS_3D and Products.
  10. Turn on visibility for the Mesh layer.

    Visibility turned on for the Mesh layer

    The Mesh layer appears on the Globe view.

    Mesh layer

    By default, the 3D point cloud is only stored in the .las format. The Create layer button will trigger the creation of a scene point cloud layer (.slpk) as well.

  11. Next to Point Cloud, click Create layer.

    Create layer button for the Point Cloud layer

  12. When the point cloud layer creation process is complete, turn off visibility for the Mesh layer and turn on visibility for the Point Cloud layer.

    Resulting Point Cloud layer in the Globe view

  13. Explore the results.
  14. On the ribbon, on the Reconstruction tab, in the Results group, click Open Results Folder.

    This opens the Results folder in Microsoft File Explorer. It contains the 3D point cloud in .laz files and the 3D mesh in i3s (SLPK) format. Since you clicked the Create layer button, you will also see the 3D point cloud in i3s (SLPK) format. Use the .slpk files to add the products to ArcGIS Online.

    If you need to deliver your reconstruction products in a different tiling scheme or projection, on the Reconstruction tab, click the Export button and choose an alternative export option.

  15. If you did not run the reconstruction, view the results.

In this tutorial, you have created an ArcGIS Reality Studio project, added a capture session, performed an initial alignment, measured ground control points, and refined the alignment. You evaluated the quality of the alignment and determined that it was acceptable. You used the alignment to create a reconstruction, and you used that reconstruction to create point cloud and 3D mesh outputs. These can be shared to ArcGIS Online or used with local applications on your computer. You can use a similar process in the reconstruction stage to create 2D products such as true orthophotos and digital surface models. The main difference for creating 2D outputs is that you would use the aerial nadir scenario and limit the camera session to nadir camera captures.

You can find more tutorials in the tutorial gallery.