Class RasterLayer
Represents a generic raster implementation which provides functionality to
explore for nearest cells and saved objects, to pass a "metadata.csv" with a file-mapping
to enable a time-series dimension and a concurrency control to be used by multiple concurrent threads.
Inheritance
System.Object
RasterLayer
Assembly: Mars.Components.dll
Syntax
public abstract class RasterLayer : AbstractEnvelopedLayer, IRasterLayer, IDataLayer, IRaster<double>, IEnvelopDataLayer, IDataSet, IDisposable, IChangingLayer, ILayer, IModelObject
Properties
AllowDiagonalMove
Indicates if the path contains diagonal movement. If false, then only Manhattan movement is permitted.
Declaration
protected bool AllowDiagonalMove { get; set; }
Property Value
Type |
Description |
System.Boolean |
|
CellHeight
Gets or sets the geographic height of a cell the projected units. Setting this will
automatically adjust the affine coefficient to a negative value.
Declaration
public double CellHeight { get; }
Property Value
Type |
Description |
System.Double |
|
CellWidth
Gets or sets the geographic width of a cell in the projected units.
Declaration
public double CellWidth { get; }
Property Value
Type |
Description |
System.Double |
|
Count
Gets the amount of cells with a concrete value (
is not equal
NoDataValue).
Declaration
public int Count { get; }
Property Value
Type |
Description |
System.Int32 |
|
DistanceMetric
Defines the heuristic metric for exploration
Declaration
protected IMetric<double[]> DistanceMetric { get; set; }
Property Value
Type |
Description |
IMetric<System.Double[]> |
|
Extent
Gets or sets the image bounds being used to define the geospatial raster or image
Declaration
public override BoundingBox Extent { get; set; }
Property Value
Overrides
Height
Gets the vertical count of the cells in the raster.
Declaration
public int Height { get; }
Property Value
Type |
Description |
System.Int32 |
|
IsChanged
Declaration
public bool IsChanged { get; }
Property Value
Type |
Description |
System.Boolean |
|
Item[Position]
Gets or sets the value on the current band, given a geospatial position.
Declaration
public double this[Position pos] { get; set; }
Parameters
Type |
Name |
Description |
Position |
pos |
The geospatial coordinate of the cell |
Property Value
Type |
Description |
System.Double |
|
Item[Double, Double]
Gets or sets the value on the current band, given a
and
value which can be a continuous coordinate in space,
such as geographic coordinates (longitude, latitude);
Declaration
public double this[double xCoord, double yCoord] { get; set; }
Parameters
Type |
Name |
Description |
System.Double |
xCoord |
The x coordinate of the cell |
System.Double |
yCoord |
The y coordinate of the cell |
Property Value
Type |
Description |
System.Double |
|
Item[Int32, Int32]
Gets or sets the value on the current band, given a x and y index;
Declaration
public double this[int x, int y] { get; set; }
Parameters
Type |
Name |
Description |
System.Int32 |
x |
The x coordinate of the cell |
System.Int32 |
y |
The y coordinate of the cell |
Property Value
Type |
Description |
System.Double |
|
LowerLeft
The lower left corner as a geospatial
Position.
Declaration
public Position LowerLeft { get; }
Property Value
NoDataValue
Gets or sets a float showing the no-data values.
Declaration
public double? NoDataValue { get; }
Property Value
Type |
Description |
System.Nullable<System.Double> |
|
UpperRight
The upper right corner as a geospatial
Position.
Declaration
public Position UpperRight { get; }
Property Value
Width
Gets the horizontal count of the cells in the raster.
Declaration
public int Width { get; }
Property Value
Type |
Description |
System.Int32 |
|
Methods
ConvertToGridCoordinate(Double, Double, out Int32)
Converts the raster continuous coordinate into precise raster cell index able to
access the raster by index.
Declaration
protected int ConvertToGridCoordinate(double xCoordinate, double yCoordinate, out int y)
Parameters
Type |
Name |
Description |
System.Double |
xCoordinate |
The y coordinate of the position. |
System.Double |
yCoordinate |
The x coordinate of the position. |
System.Int32 |
y |
Output y cell index |
Returns
Type |
Description |
System.Int32 |
Output x cell index |
Explore(Position, Double, Int32, Func<Double, Boolean>)
Executes a point query at the specified position
to get all features inside radius, filtered by an optional predicate and limited
Declaration
public ICollection<NodeDistance<K2dTreeNode<double>>> Explore(Position position, double radius = null, int count = null, Func<double, bool> predicate = null)
Parameters
Type |
Name |
Description |
Position |
position |
The outgoing position from which to start the query. |
System.Double |
radius |
The exploration radius. |
System.Int32 |
count |
The limit of queried features |
Func<System.Double, System.Boolean> |
predicate |
The optional predicate to filter out specific features |
Returns
Type |
Description |
ICollection<NodeDistance<K2dTreeNode<System.Double>>> |
A collection with distance based order of the explored features. |
FindPath(Position, Position)
Tries to find a route from a start cell to a goal cell.
Declaration
public List<Position> FindPath(Position start, Position goal)
Parameters
Type |
Name |
Description |
Position |
start |
Position that identifies the starting cell |
Position |
goal |
Position that identifies the ending cell |
Returns
Type |
Description |
List<Position> |
A list of positions that describe the path from start to end; an empty list of no path could be found |
FindPath(Int32, Int32, Int32, Int32)
Tries to find a route from a start cell to a goal cell.
Declaration
public List<Position> FindPath(int startX, int startY, int goalX, int goalY)
Parameters
Type |
Name |
Description |
System.Int32 |
startX |
Describes the x coordinate of the starting cell. |
System.Int32 |
startY |
Describes the y coordinate of the starting cell. |
System.Int32 |
goalX |
Describes the x coordinate of the ending cell. |
System.Int32 |
goalY |
Describes the y coordinate of the ending cell. |
Returns
Type |
Description |
List<Position> |
A list of positions that describe the path from start to end; an empty list of no path could be found |
GetCurrentTick()
Declaration
public override long GetCurrentTick()
Returns
Type |
Description |
System.Int64 |
|
Overrides
GetNeighbourCellWithMaxValue(Position)
Declaration
public Position GetNeighbourCellWithMaxValue(Position coordinate)
Parameters
Type |
Name |
Description |
Position |
coordinate |
|
Returns
GetValue(Position)
Declaration
public double GetValue(Position coordinate)
Parameters
Type |
Name |
Description |
Position |
coordinate |
|
Returns
Type |
Description |
System.Double |
|
GetValueByGeoPosition(Position)
Declaration
public double GetValueByGeoPosition(Position coordinate)
Parameters
Type |
Name |
Description |
Position |
coordinate |
|
Returns
Type |
Description |
System.Double |
|
Increase(Double, Double, Double)
Declaration
public double Increase(double xCoord, double yCoord, double value)
Parameters
Type |
Name |
Description |
System.Double |
xCoord |
|
System.Double |
yCoord |
|
System.Double |
value |
|
Returns
Type |
Description |
System.Double |
|
Increase(Int32, Int32, Double)
Declaration
public double Increase(int x, int y, double value)
Parameters
Type |
Name |
Description |
System.Int32 |
x |
|
System.Int32 |
y |
|
System.Double |
value |
|
Returns
Type |
Description |
System.Double |
|
InitLayer(LayerInitData, RegisterAgent, UnregisterAgent)
Declaration
public override bool InitLayer(LayerInitData layerInitData, RegisterAgent registerAgentHandle = null, UnregisterAgent unregisterAgent = null)
Parameters
Returns
Type |
Description |
System.Boolean |
|
Overrides
IsInRaster(Position)
Checks for the encapsulated position">
> whether this point is inside the raster
Declaration
public bool IsInRaster(Position position)
Parameters
Type |
Name |
Description |
Position |
position |
The position containing the coordinates. |
Returns
Type |
Description |
System.Boolean |
Returns true when the point is inside the raster rectangle. |
IsRoutable(Position)
Indicates if a cell is routable, so can be used for movement, or not.
This is the overload for usability purposes: the logic is defined in
IsRoutable(int, int)
.
Declaration
public bool IsRoutable(Position cellPosition)
Parameters
Type |
Name |
Description |
Position |
cellPosition |
Identifies the cell by index. |
Returns
Type |
Description |
System.Boolean |
True, if routing is possible on this cell, false otherwise |
IsRoutable(Double, Double)
Indicates if a cell is routable, so can be used for movement, or not.
This is the overload for usability purposes: the logic is defined in
IsRoutable(int, int)
.
Declaration
public bool IsRoutable(double x, double y)
Parameters
Type |
Name |
Description |
System.Double |
x |
Identifies the cell on the x-axis. |
System.Double |
y |
Identifies the cell on the y-axis. |
Returns
Type |
Description |
System.Boolean |
True, if routing is possible on this cell, false otherwise |
IsRoutable(Int32, Int32)
Indicates if a cell is routable, so can be used for movement, or not.
Declaration
public virtual bool IsRoutable(int x, int y)
Parameters
Type |
Name |
Description |
System.Int32 |
x |
Identifies the cell on the x-axis. |
System.Int32 |
y |
Identifies the cell on the y-axis. |
Returns
Type |
Description |
System.Boolean |
True, if routing is possible on this cell, false otherwise |
ParseData(String)
Declaration
protected void ParseData(string file)
Parameters
Type |
Name |
Description |
System.String |
file |
|
Reduce(Double, Double, Double)
Declaration
public double Reduce(double xCoord, double yCoord, double value)
Parameters
Type |
Name |
Description |
System.Double |
xCoord |
|
System.Double |
yCoord |
|
System.Double |
value |
|
Returns
Type |
Description |
System.Double |
|
Reduce(Int32, Int32, Double)
Declaration
public double Reduce(int x, int y, double value)
Parameters
Type |
Name |
Description |
System.Int32 |
x |
|
System.Int32 |
y |
|
System.Double |
value |
|
Returns
Type |
Description |
System.Double |
|
SerializeValueCells()
Declaration
public IEnumerable<string> SerializeValueCells()
Returns
Type |
Description |
IEnumerable<System.String> |
|
SetCurrentTick(Int64)
Declaration
public override void SetCurrentTick(long currentTick)
Parameters
Type |
Name |
Description |
System.Int64 |
currentTick |
|
Overrides
Implements
IDisposable