This document is archived and information here might be outdated. Recommended version. |
Create a raster GeoDataset grid from a FeatureClass.
/// <summary> /// Create a raster GeoDataset grid from a FeatureClass. /// </summary> /// <param name="feaureClass">An IFeatureClass interface that will have a raster (grid) created from it.</param> /// <param name="string_RasterWorkspace">A System.String that is the workspace location for the grid coverage. Example: "C:\workspace"</param> /// <param name="int32_NumberOfCells">A System.Int32 that is the number of cells in the X direction that you want the raster to have. This defines the resolution of the raster. Example: 10000</param> /// <returns>A GeoDataset that is a raster of the input FeatureClass</returns> /// <remarks></remarks> public ESRI.ArcGIS.Geodatabase.IGeoDataset CreateGridFromFeatureClass(ESRI.ArcGIS.Geodatabase.IFeatureClass feaureClass, System.String string_RasterWorkspace, System.Int32 int32_NumberOfCells) { ESRI.ArcGIS.Geodatabase.IGeoDataset geoDataset=(ESRI.ArcGIS.Geodatabase.IGeoDataset)feaureClass; // Explicit Cast ESRI.ArcGIS.Geometry.ISpatialReference spatialReference=geoDataset.SpatialReference; // Create a RasterMaker operator ESRI.ArcGIS.GeoAnalyst.IConversionOp conversionOp=new ESRI.ArcGIS.GeoAnalyst.RasterConversionOpClass(); ESRI.ArcGIS.Geodatabase.IWorkspaceFactory workspaceFactory=new ESRI.ArcGIS.DataSourcesRaster.RasterWorkspaceFactoryClass(); // set output workspace ESRI.ArcGIS.Geodatabase.IWorkspace workspace=workspaceFactory.OpenFromFile(string_RasterWorkspace, 0); // Create analysis environment ESRI.ArcGIS.GeoAnalyst.IRasterAnalysisEnvironment rasterAnalysisEnvironment=(ESRI.ArcGIS.GeoAnalyst.IRasterAnalysisEnvironment)conversionOp; // Explicit Cast rasterAnalysisEnvironment.OutWorkspace=workspace; ESRI.ArcGIS.Geometry.IEnvelope envelope=new ESRI.ArcGIS.Geometry.EnvelopeClass(); envelope=geoDataset.Extent; // Set cell size System.Double double_xMin=envelope.XMin; System.Double double_xMax=envelope.XMax; System.Double double_difference=double_xMax - double_xMin; System.Double double_cellSize=double_difference / int32_NumberOfCells; object object_cellSize=(System.Object)double_cellSize; rasterAnalysisEnvironment.SetCellSize(ESRI.ArcGIS.GeoAnalyst.esriRasterEnvSettingEnum.esriRasterEnvValue, ref object_cellSize); // Set output extent object object_Envelope=(System.Object)envelope; // Explict Cast object object_Missing=System.Type.Missing; rasterAnalysisEnvironment.SetExtent(ESRI.ArcGIS.GeoAnalyst.esriRasterEnvSettingEnum.esriRasterEnvValue, ref object_Envelope, ref object_Missing); // Set output spatial reference rasterAnalysisEnvironment.OutSpatialReference=spatialReference; // Perform spatial operation ESRI.ArcGIS.Geodatabase.IRasterDataset rasterDataset=new ESRI.ArcGIS.DataSourcesRaster.RasterDatasetClass(); // Create the new raster name that meets the coverage naming convention System.String string_RasterName=feaureClass.AliasName; if (string_RasterName.Length > 13) { string_RasterName=string_RasterName.Substring(0, 13); } string_RasterName=string_RasterName.Replace(" ", "_"); rasterDataset=conversionOp.ToRasterDataset(geoDataset, "GRID", workspace, string_RasterName); ESRI.ArcGIS.Geodatabase.IGeoDataset geoDataset_output=(ESRI.ArcGIS.Geodatabase.IGeoDataset)rasterDataset; return geoDataset_output; }
''' <summary> ''' Create a raster GeoDataset grid from a FeatureClass. ''' </summary> ''' <param name="feaureClass">An IFeatureClass interface that will have a raster (grid) created from it.</param> ''' <param name="string_RasterWorkspace">A System.String that is the workspace location for the grid coverage. Example: "C:\workspace"</param> ''' <param name="int32_NumberOfCells">A System.Int32 that is the number of cells in the X direction that you want the raster to have. This defines the resolution of the raster. Example: 10000</param> ''' <returns>A GeoDataset that is a raster of the input FeatureClass</returns> ''' <remarks></remarks> Public Function CreateGridFromFeatureClass(ByVal feaureClass As ESRI.ArcGIS.Geodatabase.IFeatureClass, ByVal string_RasterWorkspace As System.String, ByVal int32_NumberOfCells As System.Int32) As ESRI.ArcGIS.Geodatabase.IGeoDataset Dim geoDataset As ESRI.ArcGIS.Geodatabase.IGeoDataset=CType(feaureClass, ESRI.ArcGIS.Geodatabase.IGeoDataset) ' Explicit Cast Dim spatialReference As ESRI.ArcGIS.Geometry.ISpatialReference=geoDataset.SpatialReference ' Create a RasterMaker operator Dim conversionOp As ESRI.ArcGIS.GeoAnalyst.IConversionOp=New ESRI.ArcGIS.GeoAnalyst.RasterConversionOpClass Dim workspaceFactory As ESRI.ArcGIS.Geodatabase.IWorkspaceFactory=New ESRI.ArcGIS.DataSourcesRaster.RasterWorkspaceFactoryClass ' set output workspace Dim workspace As ESRI.ArcGIS.Geodatabase.IWorkspace=workspaceFactory.OpenFromFile(string_RasterWorkspace, 0) ' Create analysis environment Dim rasterAnalysisEnvironment As ESRI.ArcGIS.GeoAnalyst.IRasterAnalysisEnvironment=CType(conversionOp, ESRI.ArcGIS.GeoAnalyst.IRasterAnalysisEnvironment) ' Explicit Cast rasterAnalysisEnvironment.OutWorkspace=workspace Dim envelope As ESRI.ArcGIS.Geometry.IEnvelope=New ESRI.ArcGIS.Geometry.EnvelopeClass envelope=geoDataset.Extent ' Set cell size Dim double_xMin As System.Double=envelope.XMin Dim double_xMax As System.Double=envelope.XMax Dim double_difference As System.Double=double_xMax - double_xMin Dim double_cellSize As System.Double=double_difference / int32_NumberOfCells Dim object_cellSize As System.Object=CType(double_cellSize, System.Object) rasterAnalysisEnvironment.SetCellSize(ESRI.ArcGIS.GeoAnalyst.esriRasterEnvSettingEnum.esriRasterEnvValue, object_cellSize) ' Set output extent Dim object_Envelope As System.Object=CType(envelope, System.Object) ' Explict Cast Dim object_Missing As System.Object=System.Type.Missing rasterAnalysisEnvironment.SetExtent(ESRI.ArcGIS.GeoAnalyst.esriRasterEnvSettingEnum.esriRasterEnvValue, object_Envelope, object_Missing) ' Set output spatial reference rasterAnalysisEnvironment.OutSpatialReference=spatialReference ' Perform spatial operation Dim rasterDataset As ESRI.ArcGIS.Geodatabase.IRasterDataset=New ESRI.ArcGIS.DataSourcesRaster.RasterDatasetClass ' Create the new raster name that meets the coverage naming convention Dim string_RasterName As System.String=feaureClass.AliasName If string_RasterName.Length > 13 Then string_RasterName=string_RasterName.Substring(0, 13) End If string_RasterName=string_RasterName.Replace(" ", "_") rasterDataset=conversionOp.ToRasterDataset(geoDataset, "GRID", workspace, string_RasterName) Dim geoDataset_output As ESRI.ArcGIS.Geodatabase.IGeoDataset=CType(rasterDataset, ESRI.ArcGIS.Geodatabase.IGeoDataset) Return geoDataset_output End Function