2

In ArcGIS Desktop 10.3, I want to create full resolution footprints in a mosaic dataset to avoid having black areas in the mosaic. When I create footprints ("Build Footprints" tool) using the default 2000x2000 sampling (the "Request Size" parameter), the mosaic will have black areas along the edges of images:

low-res footprints

enter image description here

These pixels are RGB=0,0,0. To avoid the black, I want the footprints to have pixel-level precision, and I don't mind waiting for the tool to calculate them. So I set the "Request Size" parameter to -1, which "will compute the footprint at the original resolution", according to the documentation. The result is indeed a new set of footprints with pixel-level precision. But unfortunately, the footprints don't actually follow the edge of the image data. The result is pretty perplexing:

high-res footprints

enter image description here

Some 0,0,0 cells are included in the footprint, and some aren't. And it seems almost random where the line is drawn. These jagged boundaries are all over the mosaic. This could very well be a bug, but it's also entirely possible that I'm doing something wrong. What might I be missing?

In case it helps, here is the entire command, with all parameters (most were defaults):

arcpy.BuildFootprints_management(in_mosaic_dataset="mos", where_clause="", reset_footprint="RADIOMETRY", min_data_value="1", max_data_value="255", approx_num_vertices="-1", shrink_distance="0", maintain_edges="NO_MAINTAIN_EDGES", skip_derived_images="SKIP_DERIVED_IMAGES", update_boundary="UPDATE_BOUNDARY", request_size="-1", min_region_size="100", simplification_method="NONE", edge_tolerance="", max_sliver_size="20", min_thinness_ratio="0.05")
  • 1
    It looks like a 'near black' situation when the inputs are from ECW or JPEG. If not, and they are 0,0,0 you should be able to set the NoData value in the input rasters before building footprints so that they get ignored. Use SetRasterProperties to set individual rasters' NoData value. If you're interested that can be scripted in arcpy. – Michael Stimson Apr 1 '15 at 22:20
  • There are some "near-black" pixels, but my confusion stemmed from the fact that the near-black pixels aren't the only pixels being retained in the footprint. As it turns out, the min_region_size parameter causes 0,0,0 pixels to remain if they exist in small islands (fewer than 100) within the "black" area. There were many such islands. Setting the min_region_size to 1 appears to give the expected result (no 0,0,0 pixels inside the footprint), which essentially answers my question as asked. I still have the near-black pixels to deal with, though. – eweber Apr 1 '15 at 22:58
  • There's a GDAL tool gdal.org/nearblack.html that will take nearly black and make them black (RGB: 0,0,0). This will need to be run on your source images and then the Mosaic Dataset recreated. Very handy for images that are supplied as JPEG or ECW that need to be mosaiced. – Michael Stimson Apr 1 '15 at 23:35
4

I had the same issue and here is the workflow that resolved the issue.

  1. Create the mosaic dataset
  2. From the Catalog Window, right click on the Mosaic Dataset> Properties> Defaults tab Change the 'Default mosaic Operator' to Max (this gets rid of the black areas where there is overlap) Click Apply and Ok to close the Mosaic Dataset Properties dialog box
  3. Load the rasters into your mosaic dataset, but do not build overviews at this point
  4. From the Catalog Window, right click on the Mosaic Dataset> Modify> Build Footprints (using Radiometry use 254 as the max value)
  5. From the Catalog Window, right click on the Mosaic Dataset> Optimize> Build Overviews
  6. Exit ArcMap
  7. Start ArcMap and add your mosaic dataset

ESRI tech support helped with the workflow.

  • 1
    Welcome to GIS SE Rick. +1 Nice comprehensive, step-wise answer. – Aaron Apr 29 '15 at 0:37
0

In 10.2 I have just edited the footprints to be located on the inside of the noData black stuff. The image in the footprint is the only part rendered.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.