FDO .NET API Reference Feature Data Objects
Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

OSGeo::FDO::Raster Namespace Reference


Classes

class  OSGeo::FDO::Raster::DataValueCollection
 DataValueCollection is a collection of DataValue objects. More...
class  OSGeo::FDO::Raster::DataValueCollection::Enumerator
 DOXYGEN-IGNORE A Nested class defined to provide enumeration of Dictionary elements
class  OSGeo::FDO::Raster::IRasterImp
 IRasterImp specifies the data type and organization of raster data retrieved and stored. Using this class and the image extents in width and length, the binary format of the image data returned by and accepted by the IoStreamReader class can be interpreted. More...
class  OSGeo::FDO::Raster::IRasterPropertyDictionaryImp
 The IRasterPropertyDictionary exposes a dictionary style interface to the raster properties. Through this interface the non-standard properties of a raster image can be determined and their values can be retrieved and set. Data values are exchanged through the DataValue object to accommodate various data types, boolean, integer, double, string etc. More...
interface  OSGeo::FDO::Raster::OSGeo::FDO::Raster::IRaster
 The IRaster interface specifies the data type and organization of raster data retrieved and stored. Using this class and the image extents in width and length, the binary format of the image data returned by and accepted by the IoStreamReader class can be interpreted. More...
interface  OSGeo::FDO::Raster::OSGeo::FDO::Raster::IRasterPropertyDictionary
 The IRasterPropertyDictionary exposes a dictionary style interface to the raster properties. Through this interface the non-standard properties of a raster image can be determined and their values can be retrieved and set. Data values are exchanged through the DataValue object to accommodate various data types, boolean, integer, double, string etc. More...
class  OSGeo::FDO::Raster::RasterDataModel
 The RasterDataModel specifies the data type and organization of raster data retrieved and stored. Using this class and the image extents in width and length, the binary format of the image data returned by and accepted by the IStreamReader class can be interpreted. More...

Enumerations

enum  RasterDataModelType {
  RasterDataModelType_Unknown = FdoRasterDataModelType_Unknown,
  RasterDataModelType_Data = FdoRasterDataModelType_Data,
  RasterDataModelType_Bitonal = FdoRasterDataModelType_Bitonal,
  RasterDataModelType_Gray = FdoRasterDataModelType_Gray,
  RasterDataModelType_RGB = FdoRasterDataModelType_RGB,
  RasterDataModelType_RGBA = FdoRasterDataModelType_RGBA,
  RasterDataModelType_Palette = FdoRasterDataModelType_Palette
}
 The RasterDataModelType enumeration specifies the type of data within each pixel. In all cases the data is 'packed', that is, adjacent pixels are contiguous in memory with no unused bits between them, except at the end of a row, where the row is padded to a byte boundary. For example, four bit grayscale data (BitsPerPixel=4) would be packed two pixels to a byte, and a row would be padded with four bits if the image width was odd. Tri-colour or four channel data is also organized adjacently in memory, with no intervening padding except at the ends of rows. For example, eight bit RGB (BitsPerPixel=24) occupies three bytes per pixel, and would never need padding at the end of a row. Multiband data (i.e. RGB) has the same number of bits allocated to each band, so for example RGBT data with eight bits for red, would also have eight bits for each of the three other bands totaling thirty-two bits (BitsPerPixel=32). More...
enum  RasterDataOrganization {
  RasterDataOrganization_Pixel = FdoRasterDataOrganization_Pixel,
  RasterDataOrganization_Row = FdoRasterDataOrganization_Row,
  RasterDataOrganization_Image = FdoRasterDataOrganization_Image
}
 The RasterDataOrganization enumeration specifies the way pixel data is interleaved. Data is stored/retrieved in left to right, and secondarily top to bottom order within the interleave order. Tiles are also stored/retrieved in left to right, top to bottom order. For tiled data, data for one tile is completely stored/retrieved before the next tile, so for example, with 'RasterDataOrganization_Image' organization of RGB data with 24 bits per pixel, the TileSizeX by TileSizeY 8 bit data values for the red channel are stored first followed by the same number of green bytes, followed by the same number of blue bytes. This organization dependant storage should be considered when 'skipping' to the middle of an image. More...
enum  RasterDataType {
  RasterDataType_Unknown = FdoRasterDataType_Unknown,
  RasterDataType_UnsignedInteger = FdoRasterDataType_UnsignedInteger,
  RasterDataType_Integer = FdoRasterDataType_Integer,
  RasterDataType_Float = FdoRasterDataType_Float,
  RasterDataType_Double = FdoRasterDataType_Double
}
 The RasterDataType enumeration specifies the type of data stored in the Raster Image. More...

Functions

__property System::Byte get_Bounds ()[]
 Get the minimum bounding box around the curent band of the image.
__property System::Int32 get_CurrentBand ()
 Gets the currently active band/channel.
__property OSGeo::FDO::Raster::RasterDataModelget_DataModel ()
 Gets the data model in use by this raster property.
__property System::Int32 get_ImageXSize ()
 Gets the size of image file in the horizontal direction in pixels (number of columns).
__property System::Int32 get_ImageYSize ()
 Gets the size of image file in the vertical direction in pixels (number of rows).
__property OSGeo::FDO::Expression::DataValueget_NullPixelValue ()
 Gets the pixel value that represents a NULL value in the available raster stream.
__property System::Int32 get_NumberOfBands ()
 Gets the number of bands/channels contained in the raster image.
__property OSGeo::FDO::Expression::DataValueget_Property (System::String *name)
 Gets the value of the specified property (or its default).
__property OSGeo::FDO::Schema::DataType get_PropertyDataType (System::String *name)
 Gets the data type for the specified property.
__property OSGeo::FDO::Expression::DataValueget_PropertyDefault (System::String *name)
 Gets the default value for the specified property.
__property OSGeo::FDO::Raster::DataValueCollectionget_PropertyValues (System::String *name)
 Access the values of the specified enumerable property. The property must respond TRUE to IsPropertyEnumerable.
__property OSGeo::FDO::Common::IStreamReaderImpget_StreamReader ()
 Get the source of image data. Image data is shipped using a paradigm similar to BLOB I/O. When fetching a raster image the GetStreamReader() method provides a IStreamReader from which the client may request the image data. The format of the image data expected is determined by the DataModel property. The data type, bit depth, tiling and organization specify the meaning of the image data. By setting the DataModel property prior to getting a reader for the data, the FDO client application can control the way data is retrieved from the FDO raster subsystem. When a tiled image is fetched, the image data will be tiled by default, unless a spatial query is used that covers a portion of a tile, in which case the image is converted to monolithic form prior to returning to the client. The client may force a monolithic image in the former case by setting the DataModel to monolithic prior to getting the stream reader. Or conversely it can request a re-tiling of the remaining sub-image by setting the DataModel property to tiled (in this case the tile origin is at the new upper left corner of the sub-image).

Note: Altering the DataModel may have significant performance issues.

__property System::String * get_VerticalUnits ()
 Gets the Vertical Unit of Measure corresponding to the Raster Band. The string value returned will be a considered lookup value that will be used to identify the properties of the Unit of Measure using the IGetMeasureUnits command.
OSGeo::FDO::Raster::IRasterPropertyDictionaryGetAuxiliaryProperties ()
 Get a dictionary style interface to the raster properties. Through this interface the non-standard properties of a raster image can be determined and their values can be retrieved and set. Data values are exchanged through the DataValue object to accommodate various data types, boolean, integer, double, string, etc.
System::Boolean IsPropertyEnumerable (System::String *name)
 Predicate to determine if the property is enumerable (has more than one value).
System::Boolean IsPropertyRequired (System::String *name)
 Predicate to determine if the property is required to be set.
__property System::Void set_Bounds (System::Byte bounds[])
 Set the minimum bounding box around the image. For georeferenced images, the coordinate system is specified by the spatial context in force when the object is created. The act of setting this property georeferences the image. In order to provide for non-georeferenced images, this property is Nullable (doesn't need to be set).
__property System::Void set_CurrentBand (System::Int32 value)
 Sets the currently active band/channel.
__property System::Void set_DataModel (OSGeo::FDO::Raster::RasterDataModel *dataModel)
 Sets the data model used by this raster property. Allowed values are only those data models that are acceptable to the SupportsDataModel capability.
__property System::Void set_ImageXSize (System::Int32 size)
 Sets the size of image file in the horizontal direction in pixels (number of columns). By setting the X and Y image size properties prior to getting a reader for the data, the client application can control the density of pixels fetched by the provider, which may reduce the amount of data shipped by the reader and reduce processing time significantly. For example, a certain query in the coordinate system of the raster object class returns a IRaster object with image size 12091 by 8043. But the image only needs to be displayed in an area 1167 by 776 on the users monitor.

(Note: The aspect ratios are the same because the query is constructed based on the display area).

By setting the image size to these lower values the FDO raster subsystem may be able to use a previously subsampled image where the resolution has been reduced by a factor of 4. So instead of transferring 97MB, it can transfer 6MB (a reduction by 4 in both dimensions reduces the amount of data by a factor of 16) and subsample the image again to the desired resolution in a more timely manner (less data to process means less total time), with no appreciable difference in display quality to the user.

__property System::Void set_ImageYSize (System::Int32 size)
 Sets the size of image file in the vertical direction in pixels (number of rows). See SetImageXSize.
__property System::Void set_NumberOfBands (System::Int32 value)
 Sets the number of bands/channels contained in the raster image.
__property System::Void set_Property (System::String *name, OSGeo::FDO::Expression::DataValue *value)
 Sets the value of the specified property.
__property System::Void set_PropertyValues (System::String *name, OSGeo::FDO::Raster::DataValueCollection *collection)
 Set the values of the specified enumerable property. The property must respond TRUE to IsPropertyEnumerable. Clients will need to use SetPropertyValues when creating an image with specific values for the enumerable property. An example would be setting a table of wavelength ranges corresponding to the false colour used to encode the image.
__property System::Void set_StreamReader (OSGeo::FDO::Common::IStreamReaderImp *reader)
 Set the source of image data. Image data is shipped using a paradigm similar to BLOB I/O. When inserting or updating an object with a raster property, the SetStreamReader method provides a means to set a IStreamReader callback. On execution of an insert or update command, requests are made on the reader for the image data (which is supplied by the FDO client application). The format of the image data expected is determined by the DataModel property. The data type, bit depth, tiling and organization specify the meaning of the image data. By setting the DataModel property prior to setting a reader for the data, the FDO client application can control the way data is understood by, the FDO raster subsystem.
__property System::Void set_VerticalUnits (System::String *units)
 Sets the Vertical Unit of Measure corresponding to the Raster Band.
System::Void SetNull ()
 Sets the IRaster to a null value.

Variables

public __gc __interface IRaster
public __gc __interface IRasterPropertyDictionary

Enumeration Type Documentation

enum RasterDataModelType
 

The RasterDataModelType enumeration specifies the type of data within each pixel. In all cases the data is 'packed', that is, adjacent pixels are contiguous in memory with no unused bits between them, except at the end of a row, where the row is padded to a byte boundary. For example, four bit grayscale data (BitsPerPixel=4) would be packed two pixels to a byte, and a row would be padded with four bits if the image width was odd. Tri-colour or four channel data is also organized adjacently in memory, with no intervening padding except at the ends of rows. For example, eight bit RGB (BitsPerPixel=24) occupies three bytes per pixel, and would never need padding at the end of a row. Multiband data (i.e. RGB) has the same number of bits allocated to each band, so for example RGBT data with eight bits for red, would also have eight bits for each of the three other bands totaling thirty-two bits (BitsPerPixel=32).

Enumeration values:
RasterDataModelType_Unknown  Data is organized in an unknown or provider specific manner.
RasterDataModelType_Data  Data is rectangular grid, floating point data model.
RasterDataModelType_Bitonal  Data is one bit (black/white - bitonal) pixels.
RasterDataModelType_Gray  Data is monochrome (black->gray->white) pixels. It is necessary to know the BitsPerPixel value to interpret the data.
RasterDataModelType_RGB  Data is red/green/blue (in that order) pixels. It is necessary to know the BitsPerPixel value to interpret the data.
RasterDataModelType_RGBA  Data is red/green/blue/alpha (in that order) pixels; RGB with transparency. It is necessary to know the BitsPerPixel value to interpret the data.
RasterDataModelType_Palette  Data is monochrome but backed by a pallette (value->pallette->colour) pixels. It is necessary to know the BitsPerPixel value to interpret the data.

enum RasterDataOrganization
 

The RasterDataOrganization enumeration specifies the way pixel data is interleaved. Data is stored/retrieved in left to right, and secondarily top to bottom order within the interleave order. Tiles are also stored/retrieved in left to right, top to bottom order. For tiled data, data for one tile is completely stored/retrieved before the next tile, so for example, with 'RasterDataOrganization_Image' organization of RGB data with 24 bits per pixel, the TileSizeX by TileSizeY 8 bit data values for the red channel are stored first followed by the same number of green bytes, followed by the same number of blue bytes. This organization dependant storage should be considered when 'skipping' to the middle of an image.

Enumeration values:
RasterDataOrganization_Pixel  Data is interleaved by pixel, with all data for a pixel contiguous in memory.
RasterDataOrganization_Row  Data is interleaved by row, with all data of a channel for one row contiguous in memory, followed by a rows worth of the next channel, etc.
RasterDataOrganization_Image  Data is interleaved by image, with all data of a channel for a complete image contiguous in memory, followed by a complete image of the next channel, etc.

enum RasterDataType
 

The RasterDataType enumeration specifies the type of data stored in the Raster Image.

Enumeration values:
RasterDataType_Unknown  Data is organized in an unknown or provider specific manner.
RasterDataType_UnsignedInteger  Data is organized as Unsigned Integers.
RasterDataType_Integer  Data is organized as Signed Integers.
RasterDataType_Float  Data is organized as Floats.
RasterDataType_Double  Data is organized as Doubles.

Function Documentation

__property System::Byte get_Bounds  ) 
 

Get the minimum bounding box around the curent band of the image.

Returns:
Returns the bounds of the raster image

__property System::Int32 get_CurrentBand  ) 
 

Gets the currently active band/channel.

Remarks:
IRaster Bounds, DataModel, ImageSize, AuxilliaryProperties and Stream accessors all conform to the current band.
Returns:
Returns the current active band/channel.

__property OSGeo ::FDO ::Raster ::RasterDataModel* get_DataModel  ) 
 

Gets the data model in use by this raster property.

Returns:
Returns the current data model.

__property System::Int32 get_ImageXSize  ) 
 

Gets the size of image file in the horizontal direction in pixels (number of columns).

Returns:
Returns the horizontal image size in pixels (number of columns).

__property System::Int32 get_ImageYSize  ) 
 

Gets the size of image file in the vertical direction in pixels (number of rows).

Returns:
Returns the vertical image size in pixels (number of rows).

__property OSGeo ::FDO ::Expression ::DataValue* get_NullPixelValue  ) 
 

Gets the pixel value that represents a NULL value in the available raster stream.

Remarks:
The Null Pixel Value is Data Model dependent. The value of the Null pixel will change depending on which data model is set. If the client application changes the Data Model using SetDataModel(RasterDataModel* datamodel) a subsequent call to GetNullPixelValue will need to be made in order to determine the valid Null value for the current data model.
Returns:
Returns the DataType value that can be used to identify the Null value.

__property System::Int32 get_NumberOfBands  ) 
 

Gets the number of bands/channels contained in the raster image.

Returns:
Returns the numbers of bands/channels contained in the raster image.

__property OSGeo ::FDO ::Expression ::DataValue* get_Property System::String *  name  ) 
 

Gets the value of the specified property (or its default).

Parameters:
name The name of the property to get the value of.
Returns:
The value of the property.

__property OSGeo ::FDO ::Schema ::DataType get_PropertyDataType System::String *  name  ) 
 

Gets the data type for the specified property.

Parameters:
name The name of the property to get the data type of.
Returns:
The data type of the property.

__property OSGeo ::FDO ::Expression ::DataValue* get_PropertyDefault System::String *  name  ) 
 

Gets the default value for the specified property.

Parameters:
name The name of the property to get the default value of.
Returns:
The default value of the property.

__property OSGeo ::FDO ::Raster ::DataValueCollection* get_PropertyValues System::String *  name  ) 
 

Access the values of the specified enumerable property. The property must respond TRUE to IsPropertyEnumerable.

Parameters:
name The name of the property to get the collection of values for.
Returns:
A collection of datavaluesfor the enumerable property.

__property OSGeo ::FDO ::Common ::IStreamReaderImp* get_StreamReader  ) 
 

Get the source of image data. Image data is shipped using a paradigm similar to BLOB I/O. When fetching a raster image the GetStreamReader() method provides a IStreamReader from which the client may request the image data. The format of the image data expected is determined by the DataModel property. The data type, bit depth, tiling and organization specify the meaning of the image data. By setting the DataModel property prior to getting a reader for the data, the FDO client application can control the way data is retrieved from the FDO raster subsystem. When a tiled image is fetched, the image data will be tiled by default, unless a spatial query is used that covers a portion of a tile, in which case the image is converted to monolithic form prior to returning to the client. The client may force a monolithic image in the former case by setting the DataModel to monolithic prior to getting the stream reader. Or conversely it can request a re-tiling of the remaining sub-image by setting the DataModel property to tiled (in this case the tile origin is at the new upper left corner of the sub-image).

Note: Altering the DataModel may have significant performance issues.

__property System::String* get_VerticalUnits  ) 
 

Gets the Vertical Unit of Measure corresponding to the Raster Band. The string value returned will be a considered lookup value that will be used to identify the properties of the Unit of Measure using the IGetMeasureUnits command.

Returns:
Returns the Unit of Measure type of data associated to the Raster Band.

OSGeo ::FDO ::Raster ::IRasterPropertyDictionary* GetAuxiliaryProperties  ) 
 

Get a dictionary style interface to the raster properties. Through this interface the non-standard properties of a raster image can be determined and their values can be retrieved and set. Data values are exchanged through the DataValue object to accommodate various data types, boolean, integer, double, string, etc.

Returns:
The dictionary of auxilliary raster properties.

System::Boolean IsPropertyEnumerable System::String *  name  ) 
 

Predicate to determine if the property is enumerable (has more than one value).

Parameters:
name The name of the property to get the enumerable status of.
Returns:
Returns true if the possible values for the specified property can be enumerated via the GetPropertyValues method.

System::Boolean IsPropertyRequired System::String *  name  ) 
 

Predicate to determine if the property is required to be set.

Parameters:
name The name of the property to get the required status of.
Returns:
Returns true if the specified property is required, false if it is optional.

__property System::Void set_Bounds System::Byte  bounds[]  ) 
 

Set the minimum bounding box around the image. For georeferenced images, the coordinate system is specified by the spatial context in force when the object is created. The act of setting this property georeferences the image. In order to provide for non-georeferenced images, this property is Nullable (doesn't need to be set).

Parameters:
bounds The new bounds of the raster image.

__property System::Void set_CurrentBand System::Int32  value  ) 
 

Sets the currently active band/channel.

Remarks:
Setting the current band will mean that the Bounds, DataModel, ImageSize, AuxilliaryProperties and Stream accessors of IRaster will all switch to the specified band.
Returns:
Returns nothing.

__property System::Void set_DataModel OSGeo::FDO::Raster::RasterDataModel dataModel  ) 
 

Sets the data model used by this raster property. Allowed values are only those data models that are acceptable to the SupportsDataModel capability.

Remarks:
This attribute specifies the colour/palette model, bits per pixel, tiling and interleaving. For example, if the bits per pixel of the data model is 8 and it is set to 24, a conversion would be performed when image data is requested, to return 24 bit data. If an update command is executed to save this value, the raster data would be transformed and saved. The next time this image is retrieved by the client the bits per pixel value would indicate 24.
Parameters:
dataModel The datamodel to be used.

__property System::Void set_ImageXSize System::Int32  size  ) 
 

Sets the size of image file in the horizontal direction in pixels (number of columns). By setting the X and Y image size properties prior to getting a reader for the data, the client application can control the density of pixels fetched by the provider, which may reduce the amount of data shipped by the reader and reduce processing time significantly. For example, a certain query in the coordinate system of the raster object class returns a IRaster object with image size 12091 by 8043. But the image only needs to be displayed in an area 1167 by 776 on the users monitor.

(Note: The aspect ratios are the same because the query is constructed based on the display area).

By setting the image size to these lower values the FDO raster subsystem may be able to use a previously subsampled image where the resolution has been reduced by a factor of 4. So instead of transferring 97MB, it can transfer 6MB (a reduction by 4 in both dimensions reduces the amount of data by a factor of 16) and subsample the image again to the desired resolution in a more timely manner (less data to process means less total time), with no appreciable difference in display quality to the user.

Parameters:
size The desired horizontal image size in pixels (number of columns).

__property System ::Void set_ImageYSize System::Int32  size  ) 
 

Sets the size of image file in the vertical direction in pixels (number of rows). See SetImageXSize.

Parameters:
size The desired vertical image size in pixels (number of rows).

__property System::Void set_NumberOfBands System::Int32  value  ) 
 

Sets the number of bands/channels contained in the raster image.

Returns:
Returns nothing.

__property System::Void set_Property System::String *  name,
OSGeo::FDO::Expression::DataValue value
 

Sets the value of the specified property.

Parameters:
name The name of the property to set the value of.
value The new value for the property.

__property System::Void set_PropertyValues System::String *  name,
OSGeo::FDO::Raster::DataValueCollection collection
 

Set the values of the specified enumerable property. The property must respond TRUE to IsPropertyEnumerable. Clients will need to use SetPropertyValues when creating an image with specific values for the enumerable property. An example would be setting a table of wavelength ranges corresponding to the false colour used to encode the image.

Parameters:
name The name of the property to set the collection of values for.
collection The collection of values for the enumerable property.

__property System ::Void set_StreamReader OSGeo::FDO::Common::IStreamReaderImp reader  ) 
 

Set the source of image data. Image data is shipped using a paradigm similar to BLOB I/O. When inserting or updating an object with a raster property, the SetStreamReader method provides a means to set a IStreamReader callback. On execution of an insert or update command, requests are made on the reader for the image data (which is supplied by the FDO client application). The format of the image data expected is determined by the DataModel property. The data type, bit depth, tiling and organization specify the meaning of the image data. By setting the DataModel property prior to setting a reader for the data, the FDO client application can control the way data is understood by, the FDO raster subsystem.

__property System::Void set_VerticalUnits System::String *  units  ) 
 

Sets the Vertical Unit of Measure corresponding to the Raster Band.

Parameters:
units The Unit of Measure type for the current band. The units string value corresponds to a Unit of Measure supported through the IGetMeasureUnits command.

System::Void SetNull  ) 
 

Sets the IRaster to a null value.

Returns:
Returns nothing

Variable Documentation

public __gc __interface OSGeo::FDO::Raster::IRaster
 

public __gc __interface OSGeo::FDO::Raster::IRasterPropertyDictionary
 


Comments or suggestions? Send us feedback.