Assembly: ESRI.ArcGISExplorer (in ESRI.ArcGISExplorer.dll) Version: 2.0.0.1500 (2.0.0.1500)
Syntax
C# |
---|
public sealed class Raster : IDisposable |
Visual Basic (Declaration) |
---|
Public NotInheritable Class Raster _ Implements IDisposable |
Remarks
A Raster object can be created in a number of different ways depending on the data source type:
- From the Geodatabase.OpenRaster method when opening a geodatabase raster.
- From the DataDirectory.OpenRaster method when opening raster file.
- From the static methods on the Raster class. To open a geodatabase raster use OpenFileGeodatabaseRaster, or OpenArcSDERaster. To open a file-based raster use OpenRasterFile.
- From a RowValueCollection for a raster Column in a Table. The value will be returned as an Object but can be cast to a Raster.
You can find out about the dimensions of a Raster (RowCount, ColumnCount , and CellSize), the maximum extent of the cells (Extent) and the coordinate system in which the data is stored (CoordinateSystem). You can also find out how many bands a Raster is composed of and return their names using the BandCount property and the GetBandNames method respectively.
You can find out the display color or the value of a cell at a particular location using the GetColorAtPoint and GetValueAtPoint methods respectively. To return either a full size or scaled version of a Raster as a Windows Bitmap you can use the GetBitmap method.
Raster pyramids are series of reduced resolution representations of the dataset, mainly used to improve the display performance of rasters; you can check whether pyramids exist using the HasPyramids property and build pyramids using the BuildPyramids method.
Geodatabase raster catalogs and file-base image catalogs are not supported and cannot be opened.
Examples
{ //Example 1 - Perform an analysis of the vegetation types encountered while //hiking the Continental Divide Trail through Yellowstone National Park //************************************************************************* //Open raster file of vegetation classifications Raster vegetationRaster = Raster.OpenRasterFile(@"C:\Data\Yellowstone\veg.img"); //Open feature class of the Continental Divide Trail Table trailTable = Table.OpenFileGeodatabaseTable(@"C:\Data\Yellowstone\Yellowstone.gdb", "Trail"); //Create a List to store vegetation type codes List<double> vegCodes = new List<double>(); //Loop over all the rows which make up the trail foreach (Row trailRow in trailTable.GetRows()) { //Get the geometry for each Row Polyline trailGeometry = trailRow.Geometry as Polyline; //Loop over each vertex Point (all Polylines are single-part) foreach (ESRI.ArcGISExplorer.Geometry.Point vertex in trailGeometry.GetPath(0)) { //Return the cell value at each Point vegCodes.Add(vegetationRaster.GetValueAtPoint(vertex)); } } //Create another List of unique vegetation types encountered //Alternatively if .NET Framework 3.5 is installed : List<double> trailVegCodes = vegCodes.Distinct().ToList(); List<double> trailVegCodes = new List<double>(); foreach (double value in vegCodes) { if (trailVegCodes.Contains(value)) continue; trailVegCodes.Add(value); } //Example 2 - Search for photo of a specific campsite //*************************************************** //Open feature class of campsites Table campsitesTable = Table.OpenFileGeodatabaseTable(@"C:\Data\Yellowstone\Yellowstone.gdb", "Campsites"); //Find the Indian Creek campsite Row indianCreekCamp = campsitesTable.Search(new Filter("NAME='Indian Creek'")).GetFirst(); //Retrieve the photo of the camp as a Raster from the Photo Column Raster indianCreekCampPhoto = indianCreekCamp.Values["Photo"] as Raster; //Resize the photo to make it a thumbnail System.Drawing.Bitmap photoThumbnail = indianCreekCampPhoto.GetBitmap(64, 64); }
'Example 1 - Perform an analysis of the vegetation types encountered while 'hiking the Continental Divide Trail through Yellowstone National Park '************************************************************************* 'Open raster file of vegetation classifications Dim vegetationRaster As Raster = Raster.OpenRasterFile("C:\Data\Yellowstone\veg.img") 'Open feature class of the Continental Divide Trail Dim trailTable As Table = Table.OpenFileGeodatabaseTable("C:\Data\Yellowstone\Yellowstone.gdb", "Trail") 'Create a List to store vegetation type codes Dim vegCodes As List(Of Double) = New List(Of Double)() 'Loop over all the rows which make up the trail For Each trailRow As Row In trailTable.GetRows() 'Get the geometry for each Row Dim trailGeometry As Polyline = DirectCast(trailRow.Geometry, Polyline) 'Loop over each vertex Point (all Polylines are single-part) For Each vertex As ESRI.ArcGISExplorer.Geometry.Point In trailGeometry.GetPath(0) 'Return the cell value at each Point vegCodes.Add(vegetationRaster.GetValueAtPoint(vertex)) Next Next 'Create another List of unique vegetation types encountered 'Alternatively if .NET Framework 3.5 is installed : Dim trailVegCodes As List(Of Double) = vegCodes.Distinct().ToList() Dim trailVegCodes As List(Of Double) = New List(Of Double) For Each value As Double In vegCodes If trailVegCodes.Contains(value) Then Continue For End If trailVegCodes.Add(value) Next 'Example 2 - Search for photo of a specific campsite '*************************************************** 'Open feature class of campsites Dim campsitesTable As Table = Table.OpenFileGeodatabaseTable("C:\Data\Yellowstone\Yellowstone.gdb", "Campsites") 'Find the Indian Creek campsite Dim indianCreekCamp As Row = campsitesTable.Search(New Filter("NAME='Indian Creek'")).GetFirst() 'Retrieve the photo of the camp as a Raster from the Photo Column Dim indianCreekCampPhoto As Raster = DirectCast(indianCreekCamp.Values.Item("Photo"), Raster) 'Resize the photo to make it a thumbnail Dim photoThumbnail As System.Drawing.Bitmap = indianCreekCampPhoto.GetBitmap(64, 64)