import arcpy
from pprint import pprint
# Path to mosaic dataset - This is an SDE connection
mosaic_dataset = r"\\UNC_path\mosaic_dataset_name"
# Set the maximum number of rasters per mosaic
max_rasters = 42
# Update the mosaic dataset properties
arcpy.management.SetMosaicDatasetProperties(
in_mosaic_dataset=mosaic_dataset,
max_num_per_mosaic=max_rasters
)
pprint(arcpy.GetAllMessages(), width=120)
print(f"Updated the maximum number of rasters per mosaic to {max_rasters} for {mosaic_dataset}.")
Here above is a very simple script, that runs perfectly within the Python window of ArcGIS Pro (v3.3.1), and updates the mosaic properties as expected.
However, I run the exact same script, and it runs with no errors, but doesn't update the number from the default of 20 to 42.
Any ideas?
Set Mosaic Dataset Properties (Data Management)—ArcGIS Pro | Documentation
The only difference in the code example that I see in the link is that they established arcpy.env.workspace rather than specify a file path, perhaps setting the workspace rather than your unc path is worth a try
Yeah I guess I omitted this from the actual script above, but I use a variable to associate the path to the SDE to set the arcpy.env.workspace.
Will give this a try though, thanks!
Tried, this again, no Error, just doesn't update
[[2, 0, 'Start Time: 21 August 2024 12:28:48'],
[3, 0, 'Succeeded at 21 August 2024 12:29:11 (Elapsed Time: 22.48 seconds)']]
This is all the message output I actually get from using the
pprint(arcpy.GetAllMessages(), width=120)
I was able to replicate the issue, your code ran in the Python console but not in the IDE VSCode. After digging a little (i.e. reading the help file) I noted that the input is a Mosaic Layer object but you supply a full path string. So tweaking the code to this, it all worked outside arcpro.
import arcpy
from pprint import pprint
# Path to mosaic dataset - This is an SDE connection
mosaic_dataset = r"C:\Scratch\fGDB_Scratch.gdb\mosDTM"
# Set the maximum number of rasters per mosaic
max_rasters = 42
arcpy.MakeMosaicLayer_management(mosaic_dataset, "myMos")
# Update the mosaic dataset properties
arcpy.management.SetMosaicDatasetProperties(in_mosaic_dataset="myMos", max_num_per_mosaic=max_rasters)
pprint(arcpy.GetAllMessages(), width=120)
print(f"Updated the maximum number of rasters per mosaic to {max_rasters} for {mosaic_dataset}.")