1#ifndef SPATIALANALYSIS_H
2#define SPATIALANALYSIS_H
60 QJSValue
patches(QJSValue grid,
int min_size);
63 void calculateCrownCoverRU();
68 QList<int> mLastPatches;
84 double value(
const bool force_recalculate=
false);
89 double calculateSurfaceArea(
const float *heights,
const float cellsize);
105 double value(
const float x,
const float y,
const int index)
const { checkGrid(index);
return mGrids[index]->constValueAt(x,y); }
106 double value(
const QPointF &world_coord,
const int index)
const { checkGrid(index);
return mGrids[index]->constValueAt(world_coord); }
107 double value(
const int ix,
const int iy,
const int index)
const { checkGrid(index);
return mGrids[index]->constValueAtIndex(ix,iy);}
108 double value(
const int grid_index,
const int index)
const { checkGrid(index);
return mGrids[index]->constValueAtIndex(grid_index);}
109 void range(
double &rMin,
double &rMax,
const int index)
const { rMin=9999999999.; rMax=-99999999999.;
110 for (
int i=0;i<mGrids[index]->count(); ++i) {
111 rMin=qMin(rMin,
value(i, index));
112 rMax=qMax(rMax,
value(i,index));}}
115 inline void checkGrid(
const int grid_index)
const {
if (mGrids[grid_index]==0)
const_cast<SpatialLayeredGrid*
>(
this)->createGrid(grid_index); }
116 void createGrid(
const int grid_index);
117 QStringList mGridNames;
118 QVector<FloatGrid*> mGrids;
Grid class (template).
Definition: grid.h:44
Definition: layeredgrid.h:32
The RumpleIndex is a spatial index relating surface area to ground area.
Definition: spatialanalysis.h:79
void setup()
sets up the grid
Definition: spatialanalysis.cpp:276
double test_triangle_area()
Definition: spatialanalysis.cpp:346
void calculate()
calculates (or re-calculates) index values
Definition: spatialanalysis.cpp:287
const FloatGrid & rumpleGrid()
return the rumple index for the full project area
Definition: spatialanalysis.h:85
double value(const bool force_recalculate=false)
calculates rumple index for the full project area
Definition: spatialanalysis.cpp:339
RumpleIndex()
Definition: spatialanalysis.h:81
The SpatialAnalysis class is the scripting class related to extra spatial analysis functions.
Definition: spatialanalysis.h:36
SpatialAnalysis(QObject *parent=0)
Definition: spatialanalysis.h:42
~SpatialAnalysis()
Definition: spatialanalysis.cpp:38
static void addToScriptEngine()
Definition: spatialanalysis.cpp:31
QList< int > patchsizes() const
Definition: spatialanalysis.h:50
double rumpleIndexFullArea()
retrieve the rumple index for the full landscape (one value)
Definition: spatialanalysis.cpp:44
QJSValue patches(QJSValue grid, int min_size)
Definition: spatialanalysis.cpp:188
static void runCrownProjection2m(FloatGrid *agrid=nullptr)
internal function that prepares crown cover for the whole landscape
Definition: spatialanalysis.cpp:233
QList< int > patchsizes
Definition: spatialanalysis.h:39
void saveRumpleGrid(QString fileName)
save a grid of rumple index values (resource unit level) to a ESRI grid file (ascii)
Definition: spatialanalysis.cpp:137
double rumpleIndex
Definition: spatialanalysis.h:38
QList< int > extractPatches(Grid< double > &src, int min_size, QString fileName)
extract patches ('clumps') and save the resulting grid to 'fileName' (if not empty).
Definition: spatialanalysis.cpp:55
void saveCrownCoverGrid(QString fileName)
save a grid if crown cover percentages (RU level) to a ESRI grid file (ascii)
Definition: spatialanalysis.cpp:146
Definition: spatialanalysis.h:98
void range(double &rMin, double &rMax, const int index) const
retrieve min and max of variable 'index'
Definition: spatialanalysis.h:109
double value(const int ix, const int iy, const int index) const
Definition: spatialanalysis.h:107
void setup()
initial setup of the grid
Definition: spatialanalysis.cpp:413
double value(const QPointF &world_coord, const int index) const
Definition: spatialanalysis.h:106
double value(const float x, const float y, const int index) const
Definition: spatialanalysis.h:105
double value(const int grid_index, const int index) const
Definition: spatialanalysis.h:108
int addGrid(const QString name, FloatGrid *grid)
adds a 'grid' named 'name'. returns index of the newly added grid.
Definition: spatialanalysis.cpp:424
const QStringList & gridNames()
Definition: spatialanalysis.h:103
SpatialLayeredGrid()
Definition: spatialanalysis.h:100