Create a Sequentially Ordered Oriented Imagery Catalog

*You will need to have installed ArcGIS pro and Oriented Imagery Management Tools for ArcGIS Pro https://www.arcgis.com/home/item.html?id=36ee0bbedca64a5a8b68d7c69ab51728

Follow the normal procedure to create an OIC without publishing it.

Open the “Manage Oriented Imagery Toolbox”

  • Go to the Catalog Pane -> Toolboxes ->ManageOrientedImagery.pyt

  • Click on Add Oriented Imagery Fields

A new window will open

On Input Oriented Imagery Catalog click on the arrow button to select the OIC from the list

On Field to add: select SortOrder

On the Contents pane, select the Exposure Points layer and right-click on the mouse to open the menu to select the Attribute Table of this layer.

The Attribute table shows now the field SortOrder

To set the Multi-OIC Widget to show the images in sequential order (Image 1, Image 2,….Image 5), the SortOrder field must be populated with numbers that follow the sequence, see the picture below

Note: The values used in the “SortOrder” field do not necessarily need to be an integer type, since this field accepts Float Type.

Special Case 1

If the name of the Image is, follow these two rules:

  • The Name field in the attribute table is a number (like panorama ids)

  • The numbers used in the Name field are correlative and follow the special location of the images.

In the picture below, show an example where the location of each image in the OIC is represented by a green circle and the name of the images is shown at the right of the circle. In this particular case, the name of each image is a number and follows the spatial location of each image (images to left have a higher value as a name than the ones to the right)

Since the highest value of the name of the images in this example OIC is “105532” and the lowest is “105249”, we can create a mathematical function as follow:

SetOrder= 105533-name

SetOrder will have values 1,2,3… for image names 105532, 105531, 105530, etc.

We can implement this idea in ArcGIS Pro by using a mathematical function to populate the SortOrder field following the sequence of the image name, by doing the following:

  • On the Contents Pane, open the “Attribute Table” of the “Exposure Points” layer. Look for the SortOrder field.

Right-click on the SortOrder field and Select Calculate Field to open the Calculate Field window.

Now we will create a custom expression in Python that will create a correlative number based on the Image field values to populate the SortOrder field.

In the Calculate Field window, click on the textbox below “SortOrder =105533-(!Name!)” and then click on Apply and Ok

The results are shown in the Attribute Table below

Now we can open Experience Builder and load the Experience that we created using our Multi-OIC Viewer widget and this OIC to test if the Image is shown in Sequentially Ordered

Click on the navigation buttons at the Multi-OIC Widget to go from one image to the next in the specified sequence

Special Case 2

If the name of the Image is, follow these two rules:

  • The Name field in the attribute table is a number (like panorama ids)

  • The numbers used in the Name field are correlative and follow the special location of the images but there are gaps in the numbers.

In the picture below, show an example where the location of each image in the OIC is represented by a green circle and the name of the images is shown at the right of the circle. In this particular case, the name of each image is a number and follows the spatial location of each image (images to left have a higher value as a name than the ones to the right). However, there is a gap shown by the red arrow in the picture below

This special case explains how to assign correlative numbers to the SetOrder field without considering the gap. This case could be useful if in the future we are NOT expecting to add images in the space where currently the gap is. If we are not sure that we will be adding images in the gap, then follow Special Case 1.

Since the highest value of the name of the images in this example OIC is “105532” and the gap is between “105516” and “105514”, we will need to create a function as follow

Now we will create a custom function in Python that will create a correlative number based on the Image field values to populate the SortOrder field.

  • On the Contents Pane, open the “Attribute Table” of the “Exposure Points” layer. Look for the SortOrder field.

Right-click on the SortOrder field and Select Calculate Field to open the Calculate Field window.

In the Calculate Field window, click on the textbox below SortOrder = and type SetOrder(!Name!). This will be our custom function.

In the Code Block section type the code shown in the picture below

Click the buttons Apply and then Ok

The results are shown in the Attribute Table below

Now we can open Experience Builder and load the Experience that we created using our Multi-OIC Viewer widget and this OIC to test if the Image is shown in Sequentially Ordered

Click on the navigation buttons at the Multi-OIC Widget to go from one image to the next in the specified sequence