java.lang.Object
de.grogra.graph.impl.Edge
de.grogra.graph.impl.Node
de.grogra.imp3d.objects.Null
de.grogra.imp3d.objects.ShadedNull
de.grogra.blocks.NullWithShaderNode
de.grogra.lignum.sky.FirmamentNode
- All Implemented Interfaces:
Transformation,Pickable,Renderable,Manageable,PersistenceCapable,Shareable,UserFields,XObject,Map,Instantiator<Instantiation>,Serializable
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class de.grogra.graph.impl.Node
Node.AccessorBridge, Node.FieldAttributeAccessor, Node.NType -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected doubleprotected GMatrixprotected doubleprotected doubleprotected doubleprotected doubleprotected doubleprotected doubleprotected intprotected static intprotected intprotected static intprotected intprotected doubleprotected doubleprotected GMatrixFields inherited from class de.grogra.blocks.NullWithShaderNode
$TYPEFields inherited from class de.grogra.imp3d.objects.ShadedNull
INFINITE_MASK, interior, interior$FIELD, renderAsWireframe, renderAsWireframe$FIELD, shader, shader$FIELD, treatedAsInfinite$FIELD, USED_BITSFields inherited from class de.grogra.imp3d.objects.Null
transform, transform$FIELD, TRANSFORMING_MASK, transforming$FIELDFields inherited from class de.grogra.graph.impl.Node
ADDITIONAL_FIELDS, bits, DELETED, EXTENT_BIT, EXTENT_MASK, extentIndex$FIELD, extentTail$FIELD, HAS_OBSERVERS, IS_INTERPRETIVE, isInterpretive$FIELD, LAST_EXTENT_INDEX, layer$FIELD, MARK, mark$FIELD, MAX_RESOLUTION, MIME_TYPE, MIN_RESOLUTION, MIN_UNUSED_SPECIAL_OF_SOURCE, MIN_UNUSED_SPECIAL_OF_TARGET, name$FIELD, RESOLUTION_BIT, RESOLUTION_MASK, resolution$FIELDFields inherited from interface de.grogra.util.Map
DEFAULT_VALUE, EMPTY_MAP -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondoubledoublediffuseForestRegionRadiationSum(int n, double z, double x, double la, double ke, double H, double Hc, Vector<Double> direction, double dens) This method calculates the radiation reaching a segment in a tree that is growing in a stand among identical trees (dens trees/ha).doublediffuseHalfRegionRadiationSum(int n, Vector<Double> direction) doubledoublediffuseRadiationSum(Vector<Double> direction) doublediffuseRegionRadiationSum(int n, Vector<Double> direction) doubledirectHalfRegionRadiationSum(int n, Vector<Double> direction) doubledirectRadiation(Vector<Double> direction) returns the intensity of the direct (sun) radiation on the plane perpendicular to the dirction of the sun (return) direction of the sun (in vector direction) Obs, sunPosition[2] = sin(iclination)intgetAzimDivision(int n) doublegetAzimuth(int n) intgetAzimuthIndex(int n) getDirection(int n) doublegetInclination(int n) intgetInclinationIndex(int n) intintdoublegetSectorArea(int n) voidinstantiate(Instantiation state) intvoidvoidresize(int no_incl, int no_azim, double diffuse_rad_plane) voidsetDiffuseRadiation(double rad) Sets the radiation of sectors to correspond input.voidsetDirectRadiation(double rad) voidSets the the vector of Firmament that points to the sun v declared const in cLignumMethods inherited from class de.grogra.blocks.NullWithShaderNode
draw, getNTypeImpl, newInstance, pickMethods inherited from class de.grogra.imp3d.objects.ShadedNull
getInterior, getShader, getSurfaceArea, getSymbolColor, getVolume, isRenderAsWireframe, isTreatedAsInfinite, setBackShader, setColor, setColor, setFrontShader, setInterior, setMaterial, setRenderAsWireframe, setShader, setShaders, setTreatedAsInfiniteMethods inherited from class de.grogra.imp3d.objects.Null
getLocalTransformation, getTransform, getTranslation, isTransforming, postTransform, preTransform, setRotation, setScale, setTransform, setTransform, setTransform, setTransform, setTransform, setTransform, setTransform, setTransform, setTransforming, setTranslationMethods inherited from class de.grogra.graph.impl.Node
addEdgeBitsTo, addReference, appendBranchNode, appendBranchNode, appendReferencesTo, clone, clone, cloneGraph, dump, dumpTree, dup, dupFrom, dupnew, dupUnmanagedFields, edgeChanged, fieldModified, findAdjacent, findRefinementType, get, getAccessor, getAccessor, getAttributes, getAxisParent, getBoolean, getBranch, getBranchLength, getBranchNode, getBranchTail, getByte, getChar, getCommonAncestor, getCurrentGraphState, getDirectChildCount, getDouble, getEdgeAttributeAccessor, getEdgeAttributes, getEdgeBitsTo, getEdgeTo, getExtentIndex, getFirst, getFirstEdge, getFloat, getGraph, getId, getIgnored, getIndex, getInt, getLayer, getLong, getManageableType, getName, getNeighbor, getNext, getNType, getObject, getOrCreateEdgeTo, getOrNull, getPersistenceManager, getPredecessor, getProvider, getResolution, getShort, getSource, getStamp, getSuccessor, getSymbol, getTarget, getTransaction, getUserField, getUserFieldCount, getXClass, getXData, hasName, initProvider, initXClass, insertBranchNode, insertBranchNode, instantiateGraph, isAncestorOf, isDirection, isEncoarseOf, isManagingInstance, isMarked, isRoot, isSource, isTarget, manageableReadResolve, manageableWriteReplace, paramString, removeAll, removeEdgeBitsTo, removeFromChain, removeFromChain, removeReference, setBranch, setBranch, setExtentIndex, setGraphForDeserialization, setIgnored, setLayer, setMark, setName, setResolution, setSuccessor, setSuccessor, specialEdgeAdded, specialEdgeRefModified, specialEdgeRemoved, toString, writeReplaceMethods inherited from class de.grogra.graph.impl.Edge
addEdgeBits, getBitMark, getEdgeBits, getEdgeKeys, getObjectMark, getSpecialEdgeDescriptor, parseEdgeKeys, remove, removeEdgeBits, setBitMark, setEdgeBits, setObjectMark, testEdgeBitsMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface de.grogra.persistence.PersistenceCapable
getBitMark, getObjectMark, setBitMark, setObjectMark
-
Field Details
-
NUM_OF_AZIM
protected static int NUM_OF_AZIM -
NUM_OF_INCL
protected static int NUM_OF_INCL -
num_of_incl
protected int num_of_incl -
num_of_azim
protected int num_of_azim -
diffuseRadScale
protected double diffuseRadScale -
directRadPlane
protected double directRadPlane -
diffuseRadPlane
protected double diffuseRadPlane -
diffuseRadBall
protected double diffuseRadBall -
diffuseRadZenith
protected double diffuseRadZenith -
sunPosition
-
zoneAzims
-
inclinations
-
azimDivisions
-
diffuseRad
-
inclinationIndex
-
azimuthIndex
-
dir_x
-
dir_y
-
dir_z
-
areasByInclination
-
thetZ
protected double thetZ -
numOfSectors
protected int numOfSectors -
deltaIncl
protected double deltaIncl -
halfDeltaIncl
protected double halfDeltaIncl -
standDensity
protected double standDensity
-
-
Constructor Details
-
FirmamentNode
public FirmamentNode() -
FirmamentNode
public FirmamentNode(int no_incl, int no_azim)
-
-
Method Details
-
getInstantiator
- Overrides:
getInstantiatorin classNode
-
instantiate
- Specified by:
instantiatein interfaceInstantiator<Instantiation>
-
resize
public void resize(int no_incl, int no_azim, double diffuse_rad_plane) -
diffuseRadiationSum
-
diffuseRegionRadiationSum
-
diffuseHalfRegionRadiationSum
-
diffuseForestRegionRadiationSum
public double diffuseForestRegionRadiationSum(int n, double z, double x, double la, double ke, double H, double Hc, Vector<Double> direction, double dens) This method calculates the radiation reaching a segment in a tree that is growing in a stand among identical trees (dens trees/ha). The idea here is that the tree grows in a "hole" in the stand. The "hole" is a circular cylinder, the gross-sectional area of which is 10000/dens m2 and height equal to tree height. Outside this "hole" the foliage area (calculated with the aid of tree's leaf area and dens) is evenly distributed in the crown volume (leaf area density) that is between top height and the height of the crown base. The shading caused by the surrounding stand depends on the distance light beam travels in the stand volume on its way from a point in the sky to the segment: traveled distance * leaf area density * extinction coefficient ( extinction coefficient = 0.14 for Scots pine) The radiation coming from a point in the sky (sector) is obtained from method Firmament::regionRadiationSum(int n, vectorinvalid input: '&' direction). Both height of the segment and its distance from the tree stem affect the path lenght in the surrounding canopy. The path length of the beam inside the canopy depends on the height it hits the mantle of the "hole". Since the the segment is not in the middle of the (bottom) circle of the "hole", the distance the beam travels inside the "hole" and consequently the height at which it hits the wall depends on the direction of the beam. This effect is treated here in an average manner. For all azimuthal directions of the coming beam the mean distance from a point (inside the circle) to the circumference of it is used in calculations. It seems that as an fairly accurate approximation mean distance = r*(1 - 0.35*(x/r)^2.5), where r is the radius of the circle and x is the distance of the point from center of the circle (0 invalid input: '<'= x invalid input: '<'= r). - Parameters:
n- number of regionz- height of the point from ground, mx- distance of the point from the tree stem, mla- needle area (total area) per tree (= sf * Wf), m2ke- extinction cofficient (= 0.14 for Scots pine), unitlessH- height of tree (h. of stand), mHc- height of the crown base of the tree (stand), mdirection-dens- Density of the stand (trees/ha)- Returns:
- The annual radiation sum (MJ) from the nth region of the firmament as shaded by the neighboring stand direction the direction of nth region, If n invalid input: '<' 0 or n > total number of regions - 1, return -1.0
-
setDiffuseRadiation
public void setDiffuseRadiation(double rad) Sets the radiation of sectors to correspond input. Updates also diffuseRadPlane, diffuseRadBall, diffuseRadZenith -variables- Parameters:
rad- , Diffuse radiation falling on a horizontal plane
-
setSunPosition
Sets the the vector of Firmament that points to the sun v declared const in cLignum- Parameters:
v- Vector pointing to sun
-
directRadiation
returns the intensity of the direct (sun) radiation on the plane perpendicular to the dirction of the sun (return) direction of the sun (in vector direction) Obs, sunPosition[2] = sin(iclination)- Parameters:
direction-- Returns:
- Method returns type MJ in cLignum
-
directHalfRegionRadiationSum
-
getInclination
public double getInclination(int n) -
getAzimuth
public double getAzimuth(int n) -
getDirection
-
setDirectRadiation
public void setDirectRadiation(double rad) -
getSunPosition
-
numberOfRegions
public int numberOfRegions() -
diffusePlaneSensor
public double diffusePlaneSensor() -
diffuseBallSensor
public double diffuseBallSensor() -
getInclinationIndex
public int getInclinationIndex(int n) -
getAzimuthIndex
public int getAzimuthIndex(int n) -
getSectorArea
public double getSectorArea(int n) -
getAzimDivision
public int getAzimDivision(int n) -
getNoOfAzimuths
public int getNoOfAzimuths() -
getNoOfInclinations
public int getNoOfInclinations() -
outInclinations
public void outInclinations()
-