ArcObjects Library Reference  

CreateRasterCatalog_GP

About the Create a raster catalog using the geoprocessor Sample

[C#]

CreateRasterCatalog_GP.cs

using System;
using System.Collections.Generic;
using System.Text;
using ESRI.ArcGIS.DataSourcesGDB;
using ESRI.ArcGIS.DataSourcesRaster;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Geoprocessing;
using ESRI.ArcGIS.DataManagementTools;
using ESRI.ArcGIS.Geoprocessor;
using ESRI.ArcGIS.esriSystem;


namespace CreateRasterCatalogs
{
    class CreateRasterCatalogApp
    {       
        //Set variables
        static string sdePath = @"Database Connections\Connection to tiny.sde";
        static string rasterFolder = @"C:\Temp\data";
        static string catalogName = "rc_1";
        static string outRC =  sdePath + "\\" + catalogName;

        static void Main(string[] args)
        {

            #region Initialize the license 
                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.esriLicenseProductCodeArcEditor);
                    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


            //Coordinate system for raster column
            IGPCoordinateSystem rSR = new GPCoordinateSystemClass();
            rSR.SpatialReference = CreateSpatialReference((int)esriSRProjCSType.esriSRProjCS_World_Mercator);
            //Coordinate system for geometry column
            IGPSpatialReference gSR = new GPSpatialReferenceClass();
            gSR.SpatialReference = CreateSpatialReference((int)esriSRProjCSType.esriSRProjCS_World_Mercator);

            //Creates raster catalog
            CreateRasterCatalog_GP(rSR, gSR);

            //Loads rasters in the given directory to raster catalog
            LoadDirToRasterCatalog(outRC, rasterFolder);
            System.Console.WriteLine("Loading completed");

            System.Console.ReadLine();//waiting user to click a key to finish

           //Do not make any call to ArcObjects after license is shut down.
            aoInit.Shutdown();
        }

        //Creates raster catalog using GP CreateRasterCatalog class
        static void CreateRasterCatalog_GP(object rasterCoordSys, object geometryCoordsys)
        {
            //Initialize GeoProcessor
            ESRI.ArcGIS.Geoprocessor.Geoprocessor geoProcessor = new ESRI.ArcGIS.Geoprocessor.Geoprocessor();

            //CreateRasterCatalog GP tool
            CreateRasterCatalog createRasterCatalog = new CreateRasterCatalog();

            //Set parameters
            createRasterCatalog.out_path = sdePath;
            createRasterCatalog.out_name = catalogName;
            createRasterCatalog.raster_spatial_reference = rasterCoordSys;
            createRasterCatalog.spatial_reference = geometryCoordsys;

            //Execute the tool to create a raster catalog
            geoProcessor.Execute(createRasterCatalog, null);
            ReturnMessages(geoProcessor);
        }

        //GP message handling
        private static void ReturnMessages(Geoprocessor gp)
        {
            if (gp.MessageCount > 0)
            {
                for (int Count = 0; Count <= gp.MessageCount - 1; Count++)
                {
                    Console.WriteLine(gp.GetMessage(Count));
                }
            }
        }

        static void LoadDirToRasterCatalog(string outRasterCatalog, string inputDir)
        {
            //Initialize GeoProcessor
            ESRI.ArcGIS.Geoprocessor.Geoprocessor geoProcessor = new ESRI.ArcGIS.Geoprocessor.Geoprocessor();

            //Set parameters
            IVariantArray parameters = new VarArrayClass();

            //Set input folder
            parameters.Add(inputDir);

            //Set target GDB raster catalog
            parameters.Add(outRasterCatalog);

            //Execute the tool to load rasters in the directory to raster catalog
            geoProcessor.Execute("WorkspaceToRasterCatalog", parameters, null);
            ReturnMessages(geoProcessor);
        }

        //Create a spatial reference with given factory code
        static ISpatialReference CreateSpatialReference(int code)
        {
            ISpatialReferenceFactory2 spatialReferenceFact = new SpatialReferenceEnvironmentClass();
            try
            {
                return spatialReferenceFact.CreateSpatialReference(code);
            }
            catch
            {
                return new UnknownCoordinateSystemClass();
            }
        }
    }

}
[Visual Basic .NET]

CreateRasterCatalog_GP.vb


Imports System
Imports System.Collections.Generic
Imports System.Text
Imports ESRI.ArcGIS.DataSourcesGDB
Imports ESRI.ArcGIS.DataSourcesRaster
Imports ESRI.ArcGIS.Geodatabase
Imports ESRI.ArcGIS.GeomeTry
Imports ESRI.ArcGIS.Geoprocessing
Imports ESRI.ArcGIS.DataManagementTools
Imports ESRI.ArcGIS.Geoprocessor
Imports ESRI.ArcGIS.esriSystem


Module CreateRasterCatalog1

    'Set variables
    Private sdePath As String = "Database Connections\Connection to tiny.sde"
    Private rasterFolder As String = "c:\temp\review"
    Private catalogName As String = "rc_3"
    Private outRC As String = sdePath + "\" + catalogName

    Sub Main(ByVal args() As String)

        'Initialize the license
        Dim aoInit As ESRI.ArcGIS.esriSystem.AoInitialize = Nothing
        Try
            ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop)
            aoInit = New AoInitializeClass()
            Dim licStatus As esriLicenseStatus = aoInit.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcEditor)
            Console.WriteLine("License checkout successful.")
        Catch exc As Exception
            ' If it fails at this point, shutdown the test and ignore any subsequent errors.
            Console.WriteLine(exc.Message)
        End Try

        'Coordinate system for raster column 
        Dim rSR As IGPCoordinateSystem = New GPCoordinateSystemClass()
        rSR.SpatialReference = CreateSpatialReference(CInt(esriSRProjCSType.esriSRProjCS_World_Mercator))
        'Coordinate system for geometry column 
        Dim gSR As IGPSpatialReference = New GPSpatialReferenceClass()
        gSR.SpatialReference = CreateSpatialReference(CInt(esriSRProjCSType.esriSRProjCS_World_Mercator))

        'Creates raster catalog 
        CreateRasterCatalog_GP(rSR, gSR)

        'Loads rasters in the given directory to raster catalog 
        LoadDirtoRasterCatalog(outRC, rasterFolder)
        System.Console.WriteLine("Loading completed")
        System.Console.ReadLine() ' click a key to finish

        'Do not make any call to ArcObjects after Shutdown() 
        aoInit.Shutdown()
    End Sub
    Private Sub CreateRasterCatalog_GP(ByVal rasterCoordSys As Object, ByVal geometryCoordsys As Object)
        'Initialize GeoProcessor 
        Dim geoProcessor As New ESRI.ArcGIS.Geoprocessor.Geoprocessor()

        'CreateRasterCatalog GP tool 
        Dim createRasterCatalog As New CreateRasterCatalog()

        'Set parameters 
        createRasterCatalog.out_path = sdePath
        createRasterCatalog.out_name = catalogName
        createRasterCatalog.raster_spatial_reference = rasterCoordSys
        createRasterCatalog.spatial_reference = geometryCoordsys

        'Execute the tool to create a raster catalog 
        geoProcessor.Execute(createRasterCatalog, Nothing)
        ReturnMessages(geoProcessor)
    End Sub
    'GP message handling
    Private Sub ReturnMessages(ByVal gp As ESRI.ArcGIS.Geoprocessor.Geoprocessor)
        If gp.MessageCount > 0 Then
            Dim Count As Integer
            For Count = 0 To gp.MessageCount - 1 Step Count + 1
                Console.WriteLine(gp.GetMessage(Count))
            Next
        End If
    End Sub

    Private Sub LoadDirToRasterCatalog(ByVal outRasterCatalog As String, ByVal inputDir As String)
        'Initialize GeoProcessor 
        Dim geoProcessor As New ESRI.ArcGIS.Geoprocessor.Geoprocessor()

        'Set parameters 
        Dim parameters As IVariantArray = New VarArrayClass()

        'Set input folder 
        parameters.Add(inputDir)

        'Set target GDB raster catalog 
        parameters.Add(outRasterCatalog)

        'Execute the tool to load rasters in the directory to raster catalog 
        geoProcessor.Execute("WorkspaceToRasterCatalog", parameters, Nothing)
        ReturnMessages(geoProcessor)
    End Sub

    'Create a spatial reference with given factory code
    Private Function CreateSpatialReference(ByVal code As Integer) As ISpatialReference
        Dim spatialReferenceFact As ISpatialReferenceFactory2 = New SpatialReferenceEnvironmentClass()
        Try
            Return spatialReferenceFact.CreateSpatialReference(code)
        Catch
            Return New UnknownCoordinateSystemClass()
        End Try
    End Function
End Module