Map Class
iLand\map_doc.js:1
The Map
object encapsulates a "GIS" grid. Grids can be read from ESRI ASCII raster files, and are
automatically mapped to a 10x10m grid (the resolution and extent of the height grid).
Internally, a "spatial index" is created allowing for fast access to trees that lie on specific pixels.
See also the wiki page landscape setup.
The loaded map can be used, e.g., to specifically apply management on specific areas.
A newly created Map
object (without a call to load()
) points to the global stand grid
defined in the project file.
Use load to read a raster file from disk.
Example
function loadMap()
{
var path = Globals.defaultDirectory("script"); // get project script folder; see also the "currentDir" property of "Globals". defaultDirectory() adds already a slash
var stand_map = new Map();
stand_map.load(path + "test.txt");
// now load all trees on pixels with value '2020' in the "test.txt" grid
management.loadFromMap(stand_map, 2020);
// ... now do something ....
var map = new Map();
// select all trees on stand with id 127 of the 'system' stand grid
management.loadFromMap(map, 127);
}
Item Index
Properties
Methods
area
-
stand_id
Retrieves the area of the polygon stand_id
in square meters (m2). Returns -1, if the map is not valid, and 0 if no pixels with the stand stand_id
are on the map.
Parameters:
-
stand_id
IntegerID of the polygon for which to return the area.
Returns:
The area (m2) of the polygon.
boundingBox
-
stand_id
return the metric bounding box, i.e. the smallest rectangle that entirely circumferences the pixels with value stand_id
.
The return value is a RectF, a simple Qt data type describing a rectangle with the properties x, y, width, height, left, right, top, bottom.
If the stand does not exist, an empty Rect is returned (all properties = 0).
Parameters:
-
stand_id
Integerstand Id to extract the bounding box
Returns:
a rectangle (technically a QRectF type).
Example:
var sgrid = new Map(); // standard standgrid of iLand var bbox = stand_map.boundingBox(8594); // get bounding box
// getting the center point of the rect is easy: function centerPoint(bbox) { return { x: bbox.x + bbox.width/2, y: bbox.y + bbox.height/2 } }
var cp = centerPoint(bbox); console.log('centerpoint: x : ' + cp.x + ', y: ' + cp.y );
clear
()
Clears the map (set all values to 0)
clearProjectArea
()
Clear only the project area (set all cell values to 0), but do not affect pixels that are "outside of project area" (i.e., have values of -1 and -2). (see Landscape setup)
createStand
-
stand_id
-
paint_function
-
wrap_around
"Paint" a shape on the Map with an ID stand_id
.
The paint_function
is a valid iLand Expression
(with the paramters: x
and y
as metric coordinates). All pixels for which paint_function
evaluates to true
are set to stand_id
, all other pixels are not modified.
Parameters:
-
stand_id
IntegerID of the polygon to be created
-
paint_function
Stringthe function defining the shape
-
wrap_around
Booleanif
true
, the shape is wrapped around the edges of the simulated area (torus)
Example:
var map = undefined;
// the function create 10 random circles
// with a radius between 10 and 60m on a random location on the landscape,
// and removes some of those trees
function random_circles()
{
if (map == undefined) {
map = new Map(); // create a new map
map.clear();
}
for (var i=1;i<10;++i) {
var x = Math.random() * 600;
var y = Math.random() * 400;
var r = 10 + Math.random() * 50;
map.clear();
map.createStand(i,'(x-'+x+')^2+(y-'+y+')^2<'+r+'^2',true);
// load all trees that are present on the stand
management.loadFromMap(map, i);
print(management.count + " trees in the area...");
// apply a special filter polygon
management.filter('polygon(dbh, 10,0, 30,1)');
print(management.count + " after filter: trees in the area...");
management.killAll(); // kill the trees
}
}
load
-
file_name
Load a grid (provided in ESRI textformat) from disk. See landscape setup for information about projections.
Parameters:
-
file_name
String
paint
-
min_value
-
max_value
Visualization of the map in the iLand Viewers' main window (if present).
Map values are colorized between min_value
(blue) and max_value
(red).
Parameters:
-
min_value
DoubleThe minimum value for the color ramp in the visualization
-
max_value
DoubleThe minimum value for the color ramp in the visualization
registerUI
-
name
Registers the map with the user interface of iLand (https://iland-model.org/iLand+viewer). The map is added to the "Scripts" section of grids, and iLand renders it when clicking on it. Default value range is set to min/max values within the grid.
Parameters:
-
name
StringName to use for the map in the UI. When blank, the file path is used (relative to the project folder)
Example:
// load a extra stand grid var extra_stand_grid = new Map(); extra_stand_grid.load(Globals.path('gis/stand_grid2.asc')); extra_stand_grid.registerUI();
Properties
name
String
The filename for successfully loaded grid or 'invalid'.