About the Create a Mosaic dataset Sample
[C#]
CreateMosaicDataset.cs
using System; using System.IO; using ESRI.ArcGIS.DataSourcesGDB; using ESRI.ArcGIS.DataSourcesRaster; using ESRI.ArcGIS.esriSystem; using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.Geometry; namespace RasterSamples { class Program { [STAThread] static void Main(string[] args) { #region Initialize ESRI.ArcGIS.esriSystem.AoInitialize aoInit = null; try { Console.WriteLine("Obtaining license"); ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop); aoInit = new AoInitializeClass(); esriLicenseStatus licStatus = aoInit.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcInfo); Console.WriteLine("Ready with license."); } catch (Exception exc) { // If it fails at this point, shutdown the test and ignore any subsequent errors. Console.WriteLine(exc.Message); } #endregion #region Setup MD Test Parameters MDParameters.fgdbParentFolder = @"c:\temp\CreateMD"; MDParameters.fgdbName = @"sampleGdb"; MDParameters.createFgdbParentFolder = true; MDParameters.emptyFgdbFolder = true; MDParameters.mosaicDatasetName = @"sampleMD"; // Specify a prj file for the Srs of the mosaic dataset MDParameters.mosaicDatasetSrs = @"c:\Program Files\ArcGIS\Desktop10.0\Coordinate Systems\Geographic Coordinate Systems\World\WGS 1984.prj"; // 0 and Unknown for bits and bands = unchanged. MDParameters.mosaicDatasetBands = 0; MDParameters.mosaicDatasetBits = rstPixelType.PT_UNKNOWN; MDParameters.configKeyword = ""; MDParameters.rasterTypeName = "QuickBird"; // The next two properties can be left blank for defaults MDParameters.rasterTypeProductFilter = "Basic"; // This is similar to choosing the Pansharpen option in the UI // It enables both the Pansharpen and Multispectral products internally MDParameters.rasterTypeProductName = "Pansharpen;Multispectral"; // Data source from which to read the data. MDParameters.dataSource = @"C:\Data\QB"; MDParameters.dataSourceFilter = ""; MDParameters.buildOverviews = true; #endregion #region Create Mosaic Dataset CreateMosaicDataset createMD = new CreateMosaicDataset(); createMD.CreateMD(); #endregion #region Shutdown // Shutdown License aoInit.Shutdown(); #endregion } }; public static class MDParameters { // Define the folder in which the GDB resides or is to be created public static string fgdbParentFolder; // Name of the GDB public static string fgdbName; // Configuration keyword for the Gdb (optional) public static string configKeyword; // Name of the Mosaic Dataset public static string mosaicDatasetName; // Mosaic Dataset Properties public static string mosaicDatasetSrs; // Srs for the Mosaic Dataset public static int mosaicDatasetBands; // Number of bands of the Mosaic Dataset public static rstPixelType mosaicDatasetBits; // Pixel Type of the Mosaic Dataset // Raster Type Properties public static string rasterTypeName; // Name of the Raster type to use (or path to the .art file) public static string rasterTypeProductFilter; // The product filter to set on the Raster Type public static string rasterTypeProductName; // The name of the product to create from the added data // Crawler Properties public static string dataSource; // Path to the data. public static string dataSourceFilter; // File filter to use to crawl data. // Operational flags public static bool buildOverviews; // Generate overviews for the Mosaic Dataset public static bool emptyFgdbFolder; // Delete the parent folder for the GDB public static bool createFgdbParentFolder; // Create the Parent folder for the GDB }; public class CreateMosaicDataset { public void CreateMD() { try { #region Global Declarations string fgdbDir = MDParameters.fgdbParentFolder + "\\" + MDParameters.fgdbName + ".gdb"; IMosaicDataset theMosaicDataset = null; IMosaicDatasetOperation theMosaicDatasetOperation = null; IMosaicWorkspaceExtensionHelper mosaicExtHelper = null; IMosaicWorkspaceExtension mosaicExt = null; #endregion #region Create File GDB Console.WriteLine("Creating File GDB: " + MDParameters.fgdbName); if (MDParameters.emptyFgdbFolder) { try { Console.WriteLine("Emptying Gdb folder"); Directory.Delete(MDParameters.fgdbParentFolder, true); Directory.CreateDirectory(MDParameters.fgdbParentFolder); } catch (Exception) { } } if (MDParameters.createFgdbParentFolder) Directory.CreateDirectory(MDParameters.fgdbParentFolder); // Create a File Gdb Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory"); IWorkspaceFactory FgdbFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType); FgdbFactory.Create(MDParameters.fgdbParentFolder, MDParameters.fgdbName, null, 0); #endregion #region Open File GDB IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType); IWorkspace fgdbWorkspace = workspaceFactory.OpenFromFile(fgdbDir, 0); #endregion #region CreateMosaicDataset try { Console.WriteLine("Create Mosaic Dataset: " + MDParameters.mosaicDatasetName + ".amd"); /// Create Srs ISpatialReferenceFactory spatialrefFactory = new SpatialReferenceEnvironmentClass(); ISpatialReference mosaicSrs = spatialrefFactory.CreateProjectedCoordinateSystem( (int)(esriSRProjCSType.esriSRProjCS_World_Mercator)); //ISpatialReference mosaicSrs = spatialrefFactory.CreateGeographicCoordinateSystem( //(int)(esriSRGeoCSType.esriSRGeoCS_WGS1984)); // Create the mosaic dataset creation parameters object. ICreateMosaicDatasetParameters creationPars = new CreateMosaicDatasetParametersClass(); // Set the number of bands for the mosaic dataset. // If defined as zero leave defaults if (MDParameters.mosaicDatasetBands != 0) creationPars.BandCount = MDParameters.mosaicDatasetBands; // Set the pixel type of the mosaic dataset. // If defined as unknown leave defaults if (MDParameters.mosaicDatasetBits != rstPixelType.PT_UNKNOWN) creationPars.PixelType = MDParameters.mosaicDatasetBits; // Create the mosaic workspace extension helper class. mosaicExtHelper = new MosaicWorkspaceExtensionHelperClass(); // Find the right extension from the workspace. mosaicExt = mosaicExtHelper.FindExtension(fgdbWorkspace); // Use the extension to create a new mosaic dataset, supplying the // spatial reference and the creation parameters object created above. theMosaicDataset = mosaicExt.CreateMosaicDataset(MDParameters.mosaicDatasetName, mosaicSrs, creationPars, MDParameters.configKeyword); } catch (Exception exc) { #region Report Console.WriteLine("Exception Caught while creating Mosaic Dataset: " + exc.Message); Console.WriteLine("Shutting down."); Console.WriteLine("Press any key..."); Console.ReadKey(); #endregion return; } #endregion #region OpenMosaicDataset Console.WriteLine("Opening Mosaic Dataset"); theMosaicDataset = null; // Use the extension to open the mosaic dataset. theMosaicDataset = mosaicExt.OpenMosaicDataset(MDParameters.mosaicDatasetName); // The mosaic dataset operation interface is used to perform operations on // a mosaic dataset. theMosaicDatasetOperation = (IMosaicDatasetOperation)(theMosaicDataset); #endregion #region Preparing Raster Type Console.WriteLine("Preparing Raster Type"); // Create a Raster Type Name object. IRasterTypeName theRasterTypeName = new RasterTypeNameClass(); // Assign the name of the Raster Type to the name object. // The Name field accepts a path to an .art file as well // the name for a built in Raster Type. theRasterTypeName.Name = MDParameters.rasterTypeName; // Use the Open function from the IName interface to get the Raster Type object. IRasterType theRasterType = (IRasterType)(((IName)theRasterTypeName).Open()); if (theRasterType == null) Console.WriteLine("Raster Type not found " + MDParameters.rasterTypeName); // Set the URI Filter on the loaded raster type. if (MDParameters.rasterTypeProductFilter != "") { // Get the supported URI filters from the raster type object using the // raster type properties interface. IArray mySuppFilters = ((IRasterTypeProperties)theRasterType).SupportedURIFilters; IItemURIFilter productFilter = null; for (int i = 0; i < mySuppFilters.Count; ++i) { // Set the desired filter from the supported filters. productFilter = (IItemURIFilter)mySuppFilters.get_Element(i); if (productFilter.Name == MDParameters.rasterTypeProductFilter) theRasterType.URIFilter = productFilter; } } // Enable the correct templates in the raster type. string[] rasterProductNames = MDParameters.rasterTypeProductName.Split(';'); bool enableTemplate = false; if (rasterProductNames.Length >= 1 && (rasterProductNames[0] != "")) { // Get the supported item templates from the raster type. IItemTemplateArray templateArray = theRasterType.ItemTemplates; for (int i = 0; i < templateArray.Count; ++i) { // Go through the supported item templates and enable the ones needed. IItemTemplate template = templateArray.get_Element(i); enableTemplate = false; for (int j = 0; j < rasterProductNames.Length; ++j) if (template.Name == rasterProductNames[j]) enableTemplate = true; if (enableTemplate) template.Enabled = true; else template.Enabled = false; } } #endregion #region Preparing Data Source Crawler Console.WriteLine("Preparing Data Source Crawler"); // Create a new property set to specify crawler properties. IPropertySet crawlerProps = new PropertySetClass(); // Specify a file filter crawlerProps.SetProperty("Filter", MDParameters.dataSourceFilter); // Specify whether to search subdirectories. crawlerProps.SetProperty("Recurse", true); // Specify the source path. crawlerProps.SetProperty("Source", MDParameters.dataSource); // Get the recommended crawler from the raster type based on the specified // properties using the IRasterBuilder interface. IDataSourceCrawler theCrawler = ((IRasterBuilder)theRasterType).GetRecommendedCrawler(crawlerProps); #endregion #region Add Rasters Console.WriteLine("Adding Rasters"); // Create a AddRaster parameters object. IAddRastersParameters AddRastersArgs = new AddRastersParametersClass(); // Specify the data crawler to be used to crawl the data. AddRastersArgs.Crawler = theCrawler; // Specify the raster type to be used to add the data. AddRastersArgs.RasterType = theRasterType; // Use the mosaic dataset operation interface to add // rasters to the mosaic dataset. theMosaicDatasetOperation.AddRasters(AddRastersArgs, null); #endregion #region Compute Pixel Size Ranges Console.WriteLine("Computing Pixel Size Ranges"); // Create a calculate cellsize ranges parameters object. ICalculateCellSizeRangesParameters computeArgs = new CalculateCellSizeRangesParametersClass(); // Use the mosaic dataset operation interface to calculate cellsize ranges. theMosaicDatasetOperation.CalculateCellSizeRanges(computeArgs, null); #endregion #region Building Boundary Console.WriteLine("Building Boundary"); // Create a build boundary parameters object. IBuildBoundaryParameters boundaryArgs = new BuildBoundaryParametersClass(); // Set flags that control boundary generation. boundaryArgs.AppendToExistingBoundary = true; // Use the mosaic dataset operation interface to build boundary. theMosaicDatasetOperation.BuildBoundary(boundaryArgs, null); #endregion if (MDParameters.buildOverviews) { #region Defining Overviews Console.WriteLine("Defining overviews"); // Create a define overview parameters object. IDefineOverviewsParameters defineOvArgs = new DefineOverviewsParametersClass(); // Use the overview tile parameters interface to specify the overview factor // used to generate overviews. ((IOverviewTileParameters)defineOvArgs).OverviewFactor = 3; // Use the mosaic dataset operation interface to define overviews. theMosaicDatasetOperation.DefineOverviews(defineOvArgs, null); #endregion #region Compute Pixel Size Ranges Console.WriteLine("Computing Pixel Size Ranges"); // Calculate cell size ranges to update the Min/Max pixel sizes. theMosaicDatasetOperation.CalculateCellSizeRanges(computeArgs, null); #endregion #region Generating Overviews Console.WriteLine("Generating Overviews"); // Create a generate overviews parameters object. IGenerateOverviewsParameters genPars = new GenerateOverviewsParametersClass(); // Set properties to control overview generation. IQueryFilter genQuery = new QueryFilterClass(); ((ISelectionParameters)genPars).QueryFilter = genQuery; genPars.GenerateMissingImages = true; genPars.GenerateStaleImages = true; // Use the mosaic dataset operation interface to generate overviews. theMosaicDatasetOperation.GenerateOverviews(genPars, null); #endregion } #region Report Console.WriteLine("Success."); Console.WriteLine("Press any key..."); Console.ReadKey(); #endregion } catch (Exception exc) { #region Report Console.WriteLine("Exception Caught in CreateMD: " + exc.Message); Console.WriteLine("Failed."); Console.WriteLine("Shutting down."); Console.WriteLine("Press any key..."); Console.ReadKey(); #endregion } } } }
[Visual Basic .NET]
CreateMosaicDataset.vb
Imports System Imports System.IO Imports ESRI.ArcGIS Imports ESRI.ArcGIS.DataSourcesGDB Imports ESRI.ArcGIS.DataSourcesRaster Imports ESRI.ArcGIS.esriSystem Imports ESRI.ArcGIS.Geodatabase Imports ESRI.ArcGIS.Geometry Namespace RasterSamples Class Program <STAThread()> _ Public Shared Sub Main(ByVal args As String()) ' Initialize Dim aoInit As ESRI.ArcGIS.esriSystem.AoInitialize = Nothing Try Console.WriteLine("Obtaining license") ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop) aoInit = New AoInitializeClass() Dim licStatus As esriLicenseStatus = aoInit.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcInfo) Console.WriteLine("Ready with license.") Catch exc As Exception ' If it fails at this point, shutdown the test and ignore any subsequent errors. Console.WriteLine(exc.Message) End Try ' Setup MD Test Parameters MDParameters.fgdbParentFolder = "c:\temp\CreateMD" MDParameters.fgdbName = "sampleGdb" MDParameters.createFgdbParentFolder = True MDParameters.emptyFgdbFolder = True MDParameters.mosaicDatasetName = "sampleMD" ' Specify a prj file for the Srs of the mosaic dataset MDParameters.mosaicDatasetSrs = "c:\Program Files\ArcGIS\Desktop10.0\Coordinate Systems\Geographic Coordinate Systems\World\WGS 1984.prj" ' 0 and Unknown for bits and bands = unchanged. MDParameters.mosaicDatasetBands = 0 MDParameters.mosaicDatasetBits = rstPixelType.PT_UNKNOWN MDParameters.configKeyword = "" MDParameters.rasterTypeName = "QuickBird" ' The next two properties can be left blank for defaults MDParameters.rasterTypeProductFilter = "Basic" ' This is similar to choosing the Pansharpen option in the UI ' It enables both the Pansharpen and Multispectral products internally MDParameters.rasterTypeProductName = "Pansharpen;Multispectral" ' Data source from which to read the data. MDParameters.dataSource = "C:\Data\QB" MDParameters.dataSourceFilter = "" MDParameters.buildOverviews = True ' Create Mosaic Dataset Dim createMD As New CreateMosaicDataset() createMD.CreateMD() ' Shutdown ' Shutdown License aoInit.Shutdown() End Sub End Class Public Module MDParameters ' Define the folder in which the GDB resides or is to be created Public fgdbParentFolder As String ' Name of the GDB Public fgdbName As String ' Configuration keyword for the Gdb (optional) Public configKeyword As String ' Name of the Mosaic Dataset Public mosaicDatasetName As String ' Mosaic Dataset Properties ' Srs for the Mosaic Dataset Public mosaicDatasetSrs As String ' Number of bands of the Mosaic Dataset Public mosaicDatasetBands As Integer ' Pixel Type of the Mosaic Dataset Public mosaicDatasetBits As rstPixelType ' Raster Type Properties ' Name of the Raster type to use (or path to the .art file) Public rasterTypeName As String ' The product filter to set on the Raster Type Public rasterTypeProductFilter As String ' The name of the product to create from the added data Public rasterTypeProductName As String ' Crawler Properties ' Path to the data. Public dataSource As String ' File filter to use to crawl data. Public dataSourceFilter As String ' Operational flags Public buildOverviews As Boolean ' Delete the parent folder for the GDB Public emptyFgdbFolder As Boolean ' Create the Parent folder for the GDB Public createFgdbParentFolder As Boolean End Module Public Class CreateMosaicDataset Public Sub CreateMD() Try ' Global Declarations Dim fgdbDir As String = (MDParameters.fgdbParentFolder & "\") + MDParameters.fgdbName & ".gdb" Dim theMosaicDataset As IMosaicDataset = Nothing Dim theMosaicDatasetOperation As IMosaicDatasetOperation = Nothing Dim mosaicExtHelper As IMosaicWorkspaceExtensionHelper = Nothing Dim mosaicExt As IMosaicWorkspaceExtension = Nothing ' Create File GDB Console.WriteLine("Creating File GDB: " & MDParameters.fgdbName) If MDParameters.emptyFgdbFolder Then Try Console.WriteLine("Emptying Gdb folder") Directory.Delete(MDParameters.fgdbParentFolder, True) Directory.CreateDirectory(MDParameters.fgdbParentFolder) Catch generatedExceptionName As Exception End Try End If If MDParameters.createFgdbParentFolder Then Directory.CreateDirectory(MDParameters.fgdbParentFolder) End If ' Create a File Gdb Dim factoryType As Type = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory") Dim FgdbFactory As IWorkspaceFactory = DirectCast(Activator.CreateInstance(factoryType), IWorkspaceFactory) FgdbFactory.Create(MDParameters.fgdbParentFolder, MDParameters.fgdbName, Nothing, 0) ' Open File GDB Dim workspaceFactory As IWorkspaceFactory = DirectCast(Activator.CreateInstance(factoryType), IWorkspaceFactory) Dim fgdbWorkspace As IWorkspace = workspaceFactory.OpenFromFile(fgdbDir, 0) ' CreateMosaicDataset Try Console.WriteLine("Create Mosaic Dataset: " & MDParameters.mosaicDatasetName & ".amd") ' Create Srs Dim spatialrefFactory As ISpatialReferenceFactory = New SpatialReferenceEnvironmentClass() Dim mosaicSrs As ISpatialReference = spatialrefFactory.CreateProjectedCoordinateSystem(CInt((esriSRProjCSType.esriSRProjCS_World_Mercator))) ' Create the mosaic dataset creation parameters object. Dim creationPars As ICreateMosaicDatasetParameters = New CreateMosaicDatasetParametersClass() ' Set the number of bands for the mosaic dataset. ' If defined as zero leave defaults If MDParameters.mosaicDatasetBands <> 0 Then creationPars.BandCount = MDParameters.mosaicDatasetBands End If ' Set the pixel type of the mosaic dataset. ' If defined as unknown leave defaults If MDParameters.mosaicDatasetBits <> rstPixelType.PT_UNKNOWN Then creationPars.PixelType = MDParameters.mosaicDatasetBits End If ' Create the mosaic workspace extension helper class. mosaicExtHelper = New MosaicWorkspaceExtensionHelperClass() ' Find the right extension from the workspace. mosaicExt = mosaicExtHelper.FindExtension(fgdbWorkspace) ' Use the extension to create a new mosaic dataset, supplying the ' spatial reference and the creation parameters object created above. theMosaicDataset = mosaicExt.CreateMosaicDataset(MDParameters.mosaicDatasetName, mosaicSrs, creationPars, MDParameters.configKeyword) Catch exc As Exception ' Report" Console.WriteLine("Exception Caught while creating Mosaic Dataset: " & exc.Message) Console.WriteLine("Shutting down.") Console.WriteLine("Press any key...") Console.ReadKey() Exit Sub End Try ' OpenMosaicDataset Console.WriteLine("Opening Mosaic Dataset") theMosaicDataset = Nothing ' Use the extension to open the mosaic dataset. theMosaicDataset = mosaicExt.OpenMosaicDataset(MDParameters.mosaicDatasetName) ' The mosaic dataset operation interface is used to perform operations on ' a mosaic dataset. theMosaicDatasetOperation = DirectCast((theMosaicDataset), IMosaicDatasetOperation) ' Preparing Raster Type Console.WriteLine("Preparing Raster Type") ' Create a Raster Type Name object. Dim theRasterTypeName As IRasterTypeName = New RasterTypeNameClass() ' Assign the name of the Raster Type to the name object. ' The Name field accepts a path to an .art file as well ' the name for a built in Raster Type. theRasterTypeName.Name = MDParameters.rasterTypeName ' Use the Open function from the IName interface to get the Raster Type object. Dim theRasterType As IRasterType = DirectCast((DirectCast(theRasterTypeName, IName).Open()), IRasterType) If theRasterType Is Nothing Then Console.WriteLine("Raster Type not found " & MDParameters.rasterTypeName) End If ' Set the URI Filter on the loaded raster type. If MDParameters.rasterTypeProductFilter <> "" Then ' Get the supported URI filters from the raster type object using the ' raster type properties interface. Dim mySuppFilters As IArray = DirectCast(theRasterType, IRasterTypeProperties).SupportedURIFilters Dim productFilter As IItemURIFilter = Nothing For i As Integer = 0 To mySuppFilters.Count - 1 ' Set the desired filter from the supported filters. productFilter = DirectCast(mySuppFilters.Element(i), IItemURIFilter) If productFilter.Name = MDParameters.rasterTypeProductFilter Then theRasterType.URIFilter = productFilter End If Next End If ' Enable the correct templates in the raster type. Dim rasterProductNames As String() = MDParameters.rasterTypeProductName.Split(";"c) Dim enableTemplate As Boolean = False If rasterProductNames.Length >= 1 AndAlso (rasterProductNames(0) <> "") Then ' Get the supported item templates from the raster type. Dim templateArray As IItemTemplateArray = theRasterType.ItemTemplates For i As Integer = 0 To templateArray.Count - 1 ' Go through the supported item templates and enable the ones needed. Dim template As IItemTemplate = templateArray.Element(i) enableTemplate = False For j As Integer = 0 To rasterProductNames.Length - 1 If template.Name = rasterProductNames(j) Then enableTemplate = True End If Next If enableTemplate Then template.Enabled = True Else template.Enabled = False End If Next End If ' Preparing Data Source Crawler Console.WriteLine("Preparing Data Source Crawler") ' Create a new property set to specify crawler properties. Dim crawlerProps As IPropertySet = New PropertySetClass() ' Specify a file filter crawlerProps.SetProperty("Filter", MDParameters.dataSourceFilter) ' Specify whether to search subdirectories. crawlerProps.SetProperty("Recurse", True) ' Specify the source path. crawlerProps.SetProperty("Source", MDParameters.dataSource) ' Get the recommended crawler from the raster type based on the specified ' properties using the IRasterBuilder interface. Dim theCrawler As IDataSourceCrawler = DirectCast(theRasterType, IRasterBuilder).GetRecommendedCrawler(crawlerProps) ' Add Rasters Console.WriteLine("Adding Rasters") ' Create a AddRaster parameters object. Dim AddRastersArgs As IAddRastersParameters = New AddRastersParametersClass() ' Specify the data crawler to be used to crawl the data. AddRastersArgs.Crawler = theCrawler ' Specify the raster type to be used to add the data. AddRastersArgs.RasterType = theRasterType ' Use the mosaic dataset operation interface to add ' rasters to the mosaic dataset. theMosaicDatasetOperation.AddRasters(AddRastersArgs, Nothing) ' Compute Pixel Size Ranges Console.WriteLine("Computing Pixel Size Ranges") ' Create a calculate cellsize ranges parameters object. Dim computeArgs As ICalculateCellSizeRangesParameters = New CalculateCellSizeRangesParametersClass() ' Use the mosaic dataset operation interface to calculate cellsize ranges. theMosaicDatasetOperation.CalculateCellSizeRanges(computeArgs, Nothing) ' Building Boundary Console.WriteLine("Building Boundary") ' Create a build boundary parameters object. Dim boundaryArgs As IBuildBoundaryParameters = New BuildBoundaryParametersClass() ' Set flags that control boundary generation. boundaryArgs.AppendToExistingBoundary = True ' Use the mosaic dataset operation interface to build boundary. theMosaicDatasetOperation.BuildBoundary(boundaryArgs, Nothing) If MDParameters.buildOverviews Then ' Defining Overviews Console.WriteLine("Defining overviews") ' Create a define overview parameters object. Dim defineOvArgs As IDefineOverviewsParameters = New DefineOverviewsParametersClass() ' Use the overview tile parameters interface to specify the overview factor ' used to generate overviews. DirectCast(defineOvArgs, IOverviewTileParameters).OverviewFactor = 3 ' Use the mosaic dataset operation interface to define overviews. theMosaicDatasetOperation.DefineOverviews(defineOvArgs, Nothing) ' Compute Pixel Size Ranges Console.WriteLine("Computing Pixel Size Ranges") ' Calculate cell size ranges to update the Min/Max pixel sizes. theMosaicDatasetOperation.CalculateCellSizeRanges(computeArgs, Nothing) ' Generating Overviews Console.WriteLine("Generating Overviews") ' Create a generate overviews parameters object. Dim genPars As IGenerateOverviewsParameters = New GenerateOverviewsParametersClass() ' Set properties to control overview generation. Dim genQuery As IQueryFilter = New QueryFilterClass() DirectCast(genPars, ISelectionParameters).QueryFilter = genQuery genPars.GenerateMissingImages = True genPars.GenerateStaleImages = True ' Use the mosaic dataset operation interface to generate overviews. theMosaicDatasetOperation.GenerateOverviews(genPars, Nothing) End If ' Report Console.WriteLine("Success.") Console.WriteLine("Press any key...") Console.ReadKey() Catch exc As Exception ' Report Console.WriteLine("Exception Caught in CreateMD: " & exc.Message) Console.WriteLine("Failed.") Console.WriteLine("Shutting down.") Console.WriteLine("Press any key...") Console.ReadKey() End Try End Sub End Class End Namespace