public static IRasterFunctionTemplate CreateNDVICustomTemplate(string bandIndices) { #region Setup Raster Function Vars IRasterFunctionVariable watermarkRasterRFV = new RasterFunctionVariableClass(); watermarkRasterRFV.Name = "Raster"; watermarkRasterRFV.IsDataset = true; IRasterFunctionVariable bandIndicesRFV = new RasterFunctionVariableClass(); bandIndicesRFV.Name = "BandIndices"; bandIndicesRFV.Value = bandIndices; bandIndicesRFV.IsDataset = false; #endregion #region Setup Raster Function Template // Create the NDVI Custom Function Arguments object IRasterFunctionArguments rasterFunctionArguments = new CustomFunction.NDVICustomFunctionArguments(); // Set the Band Indices rasterFunctionArguments.PutValue("BandIndices", bandIndicesRFV); // Set the Raster Dataset as the input raster rasterFunctionArguments.PutValue("Raster", watermarkRasterRFV); // Create the NDVI Custom Function IRasterFunction ndviCustomFunction = new CustomFunction.NDVICustomFunction(); IRasterFunctionTemplate ndviCustomFunctionTemplate = new RasterFunctionTemplateClass(); ndviCustomFunctionTemplate.Function = ndviCustomFunction; ndviCustomFunctionTemplate.Arguments = rasterFunctionArguments; #endregion return(ndviCustomFunctionTemplate); }
public static bool AddNDVICustomDataToMD(string MDWorkspaceFolder, string MDName, string bandIndices, bool clearFunctions) { try { // Open MD Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory"); IWorkspaceFactory mdWorkspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType); IWorkspace mdWorkspace = mdWorkspaceFactory.OpenFromFile(MDWorkspaceFolder, 0); IRasterWorkspaceEx workspaceEx = (IRasterWorkspaceEx)(mdWorkspace); IMosaicDataset mosaicDataset = (IMosaicDataset)workspaceEx.OpenRasterDataset( MDName); if (clearFunctions) // Clear functions already added to MD. { mosaicDataset.ClearFunction(); } // Create NDVI Custom Function IRasterFunction rasterFunction = new CustomFunction.NDVICustomFunction(); // Create the NDVI Custom Function Arguments object INDVICustomFunctionArguments rasterFunctionArguments = new NDVICustomFunctionArguments(); // Set the Band Indices rasterFunctionArguments.BandIndices = bandIndices; // Add function to MD. // This function takes the name of the property corresponding to the Raster // property of the Arguments object (in this case is it called Raster itself: // rasterFunctionArguments.Raster) as its third argument. mosaicDataset.ApplyFunction(rasterFunction, rasterFunctionArguments, "Raster"); Console.WriteLine("Added NDVI Custom Function to MD: " + MDName + "."); Console.WriteLine("Success."); return(true); } catch (Exception exc) { Console.WriteLine("Exception Caught while adding NDVI Custom Function to MD: " + exc.Message); Console.WriteLine("Failed."); return(false); } }
public static bool AddNDVICustomToRD(IRasterDataset RasterDataset, string OutputFolder, string OutputName, string bandIndices) { try { // Create NDVI Custom Function IRasterFunction rasterFunction = new CustomFunction.NDVICustomFunction(); // Create the NDVI Custom Function Arguments object INDVICustomFunctionArguments rasterFunctionArguments = new NDVICustomFunctionArguments(); // Set the Band Indices rasterFunctionArguments.BandIndices = bandIndices; // Set the RasterDataset as the input raster rasterFunctionArguments.Raster = RasterDataset; // Create Function Dataset IFunctionRasterDataset functionRasterDataset = new FunctionRasterDataset(); // Create a Function Raster Dataset Name object IFunctionRasterDatasetName functionRasterDatasetName = (IFunctionRasterDatasetName) new FunctionRasterDatasetName(); // Set the path for the output Function Raster Dataset functionRasterDatasetName.FullName = System.IO.Path.Combine(OutputFolder, OutputName); functionRasterDataset.FullName = (IName)functionRasterDatasetName; // Initialize the Function Raster Dataset with the function and // its arguments object functionRasterDataset.Init(rasterFunction, rasterFunctionArguments); // Save as Function Raster Dataset as an .afr file ITemporaryDataset myTempDset = (ITemporaryDataset)functionRasterDataset; myTempDset.MakePermanent(); Console.WriteLine("Generated " + OutputName + "."); Console.WriteLine("Success."); return(true); } catch (Exception exc) { Console.WriteLine("Exception Caught while adding NDVI Custom Function to Raster Dataset: " + exc.Message); Console.WriteLine("Failed."); return(false); } }
public static IRasterFunctionTemplate CreateNDVICustomTemplate(string bandIndices) { #region Setup Raster Function Vars IRasterFunctionVariable watermarkRasterRFV = new RasterFunctionVariableClass(); watermarkRasterRFV.Name = "Raster"; watermarkRasterRFV.IsDataset = true; IRasterFunctionVariable bandIndicesRFV = new RasterFunctionVariableClass(); bandIndicesRFV.Name = "BandIndices"; bandIndicesRFV.Value = bandIndices; bandIndicesRFV.IsDataset = false; #endregion #region Setup Raster Function Template // Create the NDVI Custom Function Arguments object IRasterFunctionArguments rasterFunctionArguments = new CustomFunction.NDVICustomFunctionArguments(); // Set the Band Indices rasterFunctionArguments.PutValue("BandIndices", bandIndicesRFV); // Set the Raster Dataset as the input raster rasterFunctionArguments.PutValue("Raster", watermarkRasterRFV); // Create the NDVI Custom Function IRasterFunction ndviCustomFunction = new CustomFunction.NDVICustomFunction(); IRasterFunctionTemplate ndviCustomFunctionTemplate = new RasterFunctionTemplateClass(); ndviCustomFunctionTemplate.Function = ndviCustomFunction; ndviCustomFunctionTemplate.Arguments = rasterFunctionArguments; #endregion return ndviCustomFunctionTemplate; }
public static bool AddNDVICustomDataToMD(string MDWorkspaceFolder, string MDName, string bandIndices, bool clearFunctions) { try { // Open MD Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory"); IWorkspaceFactory mdWorkspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType); IWorkspace mdWorkspace = mdWorkspaceFactory.OpenFromFile(MDWorkspaceFolder, 0); IRasterWorkspaceEx workspaceEx = (IRasterWorkspaceEx)(mdWorkspace); IMosaicDataset mosaicDataset = (IMosaicDataset)workspaceEx.OpenRasterDataset( MDName); if (clearFunctions) // Clear functions already added to MD. mosaicDataset.ClearFunction(); // Create NDVI Custom Function IRasterFunction rasterFunction = new CustomFunction.NDVICustomFunction(); // Create the NDVI Custom Function Arguments object INDVICustomFunctionArguments rasterFunctionArguments = new NDVICustomFunctionArguments(); // Set the Band Indices rasterFunctionArguments.BandIndices = bandIndices; // Add function to MD. // This function takes the name of the property corresponding to the Raster // property of the Arguments object (in this case is it called Raster itself: // rasterFunctionArguments.Raster) as its third argument. mosaicDataset.ApplyFunction(rasterFunction, rasterFunctionArguments, "Raster"); Console.WriteLine("Added NDVI Custom Function to MD: " + MDName + "."); Console.WriteLine("Success."); return true; } catch (Exception exc) { Console.WriteLine("Exception Caught while adding NDVI Custom Function to MD: " + exc.Message); Console.WriteLine("Failed."); return false; } }
public static bool AddNDVICustomToRD(IRasterDataset RasterDataset, string OutputFolder, string OutputName, string bandIndices) { try { // Create NDVI Custom Function IRasterFunction rasterFunction = new CustomFunction.NDVICustomFunction(); // Create the NDVI Custom Function Arguments object INDVICustomFunctionArguments rasterFunctionArguments = new NDVICustomFunctionArguments(); // Set the Band Indices rasterFunctionArguments.BandIndices = bandIndices; // Set the RasterDataset as the input raster rasterFunctionArguments.Raster = RasterDataset; // Create Function Dataset IFunctionRasterDataset functionRasterDataset = new FunctionRasterDataset(); // Create a Function Raster Dataset Name object IFunctionRasterDatasetName functionRasterDatasetName = (IFunctionRasterDatasetName)new FunctionRasterDatasetName(); // Set the path for the output Function Raster Dataset functionRasterDatasetName.FullName = System.IO.Path.Combine(OutputFolder, OutputName); functionRasterDataset.FullName = (IName)functionRasterDatasetName; // Initialize the Function Raster Dataset with the function and // its arguments object functionRasterDataset.Init(rasterFunction, rasterFunctionArguments); // Save as Function Raster Dataset as an .afr file ITemporaryDataset myTempDset = (ITemporaryDataset)functionRasterDataset; myTempDset.MakePermanent(); Console.WriteLine("Generated " + OutputName + "."); Console.WriteLine("Success."); return true; } catch (Exception exc) { Console.WriteLine("Exception Caught while adding NDVI Custom Function to Raster Dataset: " + exc.Message); Console.WriteLine("Failed."); return false; } }