About the Mosaic raster datasets to a geodatabase raster dataset Sample
[C#]
CreateRasterMosaic.cs
using System;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.DataManagementTools;
using ESRI.ArcGIS.Geoprocessor;
using Microsoft.Win32;
namespace CreateRasterDatasets
{
class CreateRasterDataset_gp
{
//Set variables, you can substitute the paths with your data location
//Remove temp.gdb in TEMP directory if it exists
//The output is written to TEMP directory in temp.gdb file geodatabase
static string outputFolder = @"C:\Temp";
static string outFGDB ="temp.gdb";
static string FGDBPath = outputFolder + "\\" + outFGDB;
static string rasterFolder = @"C:\data";
static string dsName = "mosaic";
static void Main(string[] args)
{
//If creating a raster dataset in ArcSDE, it will need ArcEditor or ArcInfo license
ESRI.ArcGIS.esriSystem.AoInitialize aoInit = null;
try
{
ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop);
aoInit = new AoInitializeClass();
esriLicenseStatus licStatus = aoInit.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcInfo);
Console.WriteLine("License Checkout successful.");
}
catch (Exception exc)
{
// If it fails at this point, shutdown the test and ignore any subsequent errors.
Console.WriteLine(exc.Message);
}
try
{
//Creates an empty raster dataset
//Make sure parameters of the empty raster dataset match our data (number of bands, bit depth, etc.)
CreateRasterDS();
//Loads rasters in the input folder to the new raster dataset
LoadDirToRasterDataset(FGDBPath + "\\" + dsName, rasterFolder);
}
catch (Exception exc)
{
// If it fails at this point, shutdown the test and ignore any subsequent errors.
Console.WriteLine(exc.Message);
}
Console.Write("Please press any key to close the application.");
Console.ReadKey();
//Do not make any call to ArcObjects after ShutDown()
aoInit.Shutdown();
}
//Creates raster dataset using GP CreateRasterDataset class
static void CreateRasterDS()
{
try
{
//Initialize GeoProcessor
Geoprocessor geoProcessor = new Geoprocessor();
//Create file geodatabase
CreateFileGDB createFileGDB = new CreateFileGDB();
createFileGDB.out_folder_path = outputFolder;
createFileGDB.out_name = outFGDB;
geoProcessor.Execute(createFileGDB, null);
//Create a Raster Dataset
CreateRasterDataset createRasterDataset = new CreateRasterDataset();
//Set parameters
//Set output location and name
createRasterDataset.out_name = dsName;
createRasterDataset.out_path = FGDBPath;
//Set number of band to 3
createRasterDataset.number_of_bands = 3;
//Set pixel type to unsigned 8 bit integer
createRasterDataset.pixel_type = "8_BIT_UNSIGNED";
//Build pyramid layers with GDB calculated number of levels
createRasterDataset.pyramids = "PYRAMIDS -1 BILINEAR";
//Set GDB dataset properties
//Set JPEG compression of quality 50
createRasterDataset.compression = "JPEG 50";
//Set pyramid origin point so it takes advantage of partial pyramid building when mosaicking
//Need to make sure that any raster that will be mosaicked is to the southeast of this point
//If the rasters are in GCS, the following origin point is good.
//createRasterDataset.pyramid_origin = "-180 90";
//Execute the tool to create a raster dataset
geoProcessor.Execute(createRasterDataset, null);
ReturnMessages(geoProcessor);
}
catch (Exception exc)
{
Console.WriteLine(exc.Message);
}
}
//GP message handling
private static void ReturnMessages(Geoprocessor gp)
{
if (gp.MessageCount > 0)
{
for (int Count = 0; Count <= gp.MessageCount - 1; Count++)
{
System.Console.WriteLine(gp.GetMessage(Count));
}
}
}
static void LoadDirToRasterDataset(string outRasterDataset, string inputDir)
{
try
{
//Initialize GeoProcessor
Geoprocessor geoProcessor = new Geoprocessor();
//Mosaic the works
WorkspaceToRasterDataset wsToRasDs = new WorkspaceToRasterDataset();
//Set input folder
wsToRasDs.in_workspace = inputDir;
//Set target GDB raster dataset
wsToRasDs.in_raster_dataset = outRasterDataset;
//Include rasters in the subdirectories
wsToRasDs.include_subdirectories = "INCLUDE_SUBDIRECTORIES";
//Set mosaic mode
wsToRasDs.mosaic_type = "LAST";
//Set colormap mode
wsToRasDs.colormap = "MATCH";
//Set background value
wsToRasDs.background_value = 0;
//Execute the tool to load rasters in the directory to raster dataset
geoProcessor.Execute(wsToRasDs, null);
ReturnMessages(geoProcessor);
}
catch (Exception exc)
{
Console.WriteLine(exc.Message);
}
}
}
}
[Visual Basic .NET]
CreateRasterMosaic.vb
Imports ESRI.ArcGIS.esriSystem
Imports ESRI.ArcGIS.DataManagementTools
Imports ESRI.ArcGIS.Geoprocessor
Imports Microsoft.Win32
Module CreateRasterDatasets
'Set variables, you can substitute the paths with your data location
'Remove temp.gdb in TEMP directory if it exists
'The output is written to TEMP directory in temp.gdb file geodatabase
Private outputFolder As String = "C:\Temp"
Private outFGDB As String = "temp.gdb"
Private FGDBPath As String = outputFolder + "\" + outFGDB
Private rasterFolder As String = "C:\data"
Private dsName As String = "mosaic"
Sub Main(ByVal args As String())
'If creating a raster dataset in ArcSDE, it will need ArcEditor or ArcInfo 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.esriLicenseProductCodeArcInfo)
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
Try
'Creates an empty raster dataset
'Make sure parameters of the empty raster dataset match our data (number of bands, bit depth, etc.)
CreateRasterDS()
'Loads rasters in the input folder to the new raster dataset
LoadDirToRasterDataset(FGDBPath & "\" & dsName, rasterFolder)
Catch exc As Exception
' If it fails at this point, shutdown the test and ignore any subsequent errors.
Console.WriteLine(exc.Message)
End Try
Console.Write("Please press any key to close the application.")
Console.ReadKey()
'Do not make any call to ArcObjects after ShutDown()
aoInit.Shutdown()
End Sub
'Creates raster dataset using GP CreateRasterDataset class
Sub CreateRasterDS()
Try
'Initialize GeoProcessor
Dim geoProcessor As New Geoprocessor()
'Create file geodatabase
Dim createFileGDB As New CreateFileGDB()
createFileGDB.out_folder_path = outputFolder
createFileGDB.out_name = outFGDB
geoProcessor.Execute(createFileGDB, Nothing)
'Create a Raster Dataset
Dim createRasterDataset As New CreateRasterDataset()
'Set parameters
'Set output location and name
createRasterDataset.out_name = dsName
createRasterDataset.out_path = FGDBPath
'Set number of band to 3
createRasterDataset.number_of_bands = 3
'Set pixel type to unsigned 8 bit integer
createRasterDataset.pixel_type = "8_BIT_UNSIGNED"
'Build pyramid layers with GDB calculated number of levels
createRasterDataset.pyramids = "PYRAMIDS -1 BILINEAR"
'Set GDB dataset properties
'Set JPEG compression of quality 50
createRasterDataset.compression = "JPEG 50"
'Set pyramid origin point so it takes advantage of partial pyramid building when mosaicking
'Need to make sure that any raster that will be mosaicked is to the southeast of this point
'If the rasters are in GCS, the following origin point is good.
'createRasterDataset.pyramid_origin = "-180 90";
'Execute the tool to create a raster dataset
geoProcessor.Execute(createRasterDataset, Nothing)
ReturnMessages(geoProcessor)
Catch exc As Exception
Console.WriteLine(exc.Message)
End Try
End Sub
'GP message handling
Sub ReturnMessages(ByVal gp As Geoprocessor)
If gp.MessageCount > 0 Then
For Count As Integer = 0 To gp.MessageCount - 1
System.Console.WriteLine(gp.GetMessage(Count))
Next
End If
End Sub
Sub LoadDirToRasterDataset(ByVal outRasterDataset As String, ByVal inputDir As String)
Try
'Initialize GeoProcessor
Dim geoProcessor As New Geoprocessor()
'Mosaic the works
Dim wsToRasterDataset As New WorkspaceToRasterDataset()
'Set input folder
wsToRasterDataset.in_workspace = inputDir
'Set target GDB raster dataset
wsToRasterDataset.in_raster_dataset = outRasterDataset
'Include rasters in the subdirectories
wsToRasterDataset.include_subdirectories = "INCLUDE_SUBDIRECTORIES"
'Set mosaic mode
wsToRasterDataset.mosaic_type = "LAST"
'Set colormap mode
wsToRasterDataset.colormap = "MATCH"
'Set background value
wsToRasterDataset.background_value = 0
'Execute the tool to load rasters in the directory to raster dataset
geoProcessor.Execute(wsToRasterDataset, Nothing)
ReturnMessages(geoProcessor)
Catch exc As Exception
Console.WriteLine(exc.Message)
End Try
End Sub
End Module