Everything you ever wanted to know about ordering in mosaic datasets

If you’re working with huge mosaic datasets, with hundreds or even thousands of rasters, then this blog is for you. I’m hoping we can clarify some questions that have come up with regards to how display ordering occurs with mosaic datasets. For you visual learners out there, enjoy the following flow chart. And for those of you who like to learn verbally, enjoy the rest of this blog.

Option 1: “Quick and easy, no thinking required.”

The first option that you have is None. None is suitable when you’re cataloging your imagery collection, and it’s not important which layers are displayed on top.

Option 2: “I know which images I want to look at, forget the rest.”

The second option is LockRaster. Choose this option when you know the specific raster IDs that you want to show. Populate the list, and only those rasters will display.

Intermission: “ZOrder? SOrder? Are these action heroes from a planet not in this solar system?”

So far, so good. Right? Well now there’s a couple of concepts that you need to wrap your head around. One is ZOrder, the other is SOrder. Both of these are columns in the table that rank the order in which the items will display. Talking about ordering can get confusing, so it’s easiest if you imagine all of your overlapping images as part of an image stack. The image on top of the stack is what is visible, those at the bottom would be the last to display.

ZOrder gives you total control over the ordering of items in your image stack. You can edit this field in the table to change the ordering of items in your image stack. Items with the lowest value in the ZOrder column will be at the top of your image stack (displaying first) and the highest values will be at the bottom of your stack (displaying last). With any of the following options, ZOrder is the principal deciding factor, and the other methods only come into play if the ZOrder is equal. In ZOrder, 0 functions as a <Null> and will display before any items with positive values. If you want to change the ordering, we suggest using negative values to push a specific image to the top of the list. All items are listed as <Null> by default in ZOrder, so if you want to don’t want to wade into this, you don’t have to. To reiterate: it’s here if you want total control over the display order.

SOrder is populated after you generate seamlines, and ranks items based on the distance to those seamlines. You cannot edit this column. The only difference between SOrder and ZOrder in that 0, or <Null>, will be at the bottom of your image stack.

Option 3: “I want my imagery to look as smooth as possible.”

The third option, Closest to Seamlines, works only if you have generated seamlines and only as a tie breaker for ZOrder. This is a good practice if you want to mitigate artifacts that are created from the boundaries of neighboring or overlapping rasters. Once seamlines are created, the ranking order is populated in the SOrder field, with smaller values taking precedence.

Option 4: “Decision time. Put on your thinking cap!”

This is actually a set of options:

If two images have the same ZOrder value, the tie breaker is based on pixel size. Note that pixel size in a mosaic dataset is based on a tolerance factor. For example, let’s say you have three images with pixels that are 0.95 m, 1 m, and 1.05 m and your tolerance factor is 0.1. If you request a pixel size of 1 m, then they will be read as having the same pixel size. When there is a difference in pixel size they are sorted based on the distance to the requested cell size.

Finally, if two images have the same ZOrder value, and the same pixel size, then the deciding factor is based on one of the following ordering options (which you have to choose before-hand):

- Northwest This static option orders the imagery based on distance to the northwest corner. This is the default option.

- Closest to Center As you navigate through your imagery collection, the images that are shown are the ones that are closest to the center of the screen.

- Closest to Nadir works really well with oblique imagery. It looks at all of the imagery available on your screen and finds the point with the lowest viewing angle. The image order is based on which ones are closest to the point which has the lowest viewing angle.

- Closest to Viewpoint selects the images that are closest to the viewpoint of the sensor.

- By attribute is the most commonly used approach. You can order imagery based on acquisition date, cloud cover, or any other attribute that is stored within the table.

9 Comments

bcastle@esricanada.comsays:

Thanks for the description of how ordering happens.

What I am looking for is a way to label the image that is on top in my display.
For example, I have is a mosaic dataset containing multiple dates of RapidEye imagery. In some areas, where there are multiple scenes overlapping, when I zoom in the labels from the footprint files show up, however, I do not know which of the labels applies to the image I am actually seeing on the display (or in other words, I don’t know which image is on top).

Using the “Mosaic Method” options also doesn’t help, especially since the sort order can change as I zoom in or pan around. I have to be able to tell the date of the imagery that I am looking at, so that I can attribute the identified points or events with the correct date.

So, I guess my question is: Is there some way to highlight or only display the label of the image that is on top and viewable?

I’m not sure where to set the option for ZOrder value based on pixel size. Please provide the steps for that.

I have several images with overlapping footprints from differing years of collection. I would like to create one seamless mosaic using the best available imagery (based on pixel size) for my area and also newest available imagery (based on collection year).

I have three different imagery sets that I’m currently working with:
2004 – 1 meter
2008 – .5 foot
2010 – 1 foot

The 1 meter imagery has the greatest extent and the 2008 and 2010 images overlap inside the 2004 imagery.

Do you know of any examples where a web mapping application is used to select the best image within the stack, edit the seamline if necessary, and then post the seamline edits back to the database? And likely at the same time preview the AOI for all images in the stack. Seems like it should be possible with the Javascript API.

I am having an issue using overlapping aerial photos that are part of a mosaic dataset. I’m using ArcGIS 10.2 and Data Driven Pages with a 10″x10″ layout, just the right size for printing my aerial photos at 1:30,000 scale. I’m having problems with WYSIWIG issues on export to any format or to a photo printer. I’m getting good results on screen using the “Closest to Nadir” mosaic method, but when I print or export using DDP, the results I get are overlapping photo bits showing on top of the frame that should be focussed on. I have tried many, perhaps all, of the mosaic methods with varying results, but always with unwanted overlapping bits included in the print.

Thanks for the blog. I have a question about using Seamlines and setting the Default Method/Order Field/ Order Base Value.

I used the Build Seamlines tool to populate my SOrder field based on a date attribute, but I’m confused by the fact that I set a Sort Method/Attribute/Base Value when Using the Build Seamlines tool, and then when I go to set the Default Method to Seamline in the mosaic’s properties it still requests an Order Field and a Base Value.

From my reading of your blog and the help documentation, the mosaic stacking should just be the ZOrder w/ a tie breaker of the SOrder. Are the default properties’ parameters of Order Field and Base Value just redundent/ineffectual when the method is set to seamline? Any guidance on what to enter for these values when using the Seamline method would be greatly appreciated.

As this is an old post I only expect this comment to be useful to those do site searches.

I have to say I found this explanation of ZOrder very confusing and it seems to completely opposite of what I’m experiencing (at least on 10.1 sp1, yes still on 10.1).

I made a some overlapping polygons, converted them to rasters, and then edited their ZOrder. Rasters with a greater ZOrder are drawn on top of rasters with a lesser ZOrder. So if I have 5 rasters, and give them each a ZOrder value of 1,2,3,4,5. Then 5 will be shown last and on top of all others.

I highly suggest that anybody that finds this confusing just get 2 or 3 overlapping rasters and fiddle with the ZOrder field. You can manipulate it in ArcMap during an edit session and the order should be reflected almost immediately, although a screen/table refresh may be required some times.