eradiate.scenes.surface.DEMSurface#

class eradiate.scenes.surface.DEMSurface(id='terrain', *, shape=None, shape_background=None)[source]#

Bases: Surface

DEM Surface [dem]

A mesh-based representation of a Digital Elevation Model (DEM). This class holds a mesh shape instance, as well as a background shape that provides a surface beyond the extents of the mesh.

The intended instantiation method is to, first, create a mesh using the mesh_from_dem(), then use the data it returns to call the from_mesh() constructor.

Parameters:
Fields:
classmethod from_mesh(mesh, xlon_lim, ylat_lim, id='surface', geometry='plane_parallel', planet_radius=None, bsdf=None, bsdf_mesh=None, bsdf_background=None)[source]#

Construct a DEMSurface instance from a mesh object and coordinates which specify its location.

Parameters:
  • mesh (BufferMeshShape or FileMeshShape) – DEM as a triangulated mesh. The BSDF of this shape will be overridden by the bsdf_mesh parameter.

  • xlon_lim (quantity) – Limits of the x/longitude range covered by the mesh.

  • ylat_lim (quantity) – Limits of the y/latitude range covered by the mesh.

  • id (str, default: "surface") – Identifier of the scene element.

  • geometry (SceneGeometry or str or dict, default: "plane_parallel") – Scene geometry. Strings and dictionaries are processed by the SceneGeometry.convert() function.

  • planet_radius (quantity, default: EARTH_RADIUS) – Planet radius. Used only in case of a plane parallel geometry to convert between latitude/longitude and x/y coordinates.

  • bsdf (BSDF, default: LambertianBSDF()) – Alias to bsdf_mesh (deprecated). If both are defined, bsdf_mesh takes precedence.

  • bsdf_mesh (BSDF, default: LambertianBSDF()) – Scattering model attached to the mesh.

  • bsdf_background (BSDF, default: LambertianBSDF()) – Scattering model attached to the background shape.

Returns:

DEMSurface

traverse(callback)#

Traverse this scene element and collect kernel dictionary template and parameter update map contributions.

Parameters:

callback (SceneTraversal) – Callback data structure storing the collected data.

update()#

Enforce internal state consistency. This method should be called when fields are modified. It is automatically called as a post-init step.

property objects#

Map of child objects associated with this scene element.

Returns:

dict – A dictionary mapping object names to a corresponding object to be inserted in the Eradiate scene graph.

property params#
Returns:

dict[str, UpdateParameter] or None – A dictionary mapping parameter paths, consisting of dot-separated strings, to a corresponding update protocol.

property template#

Kernel dictionary template contents associated with this scene element.

Returns:

dict – A flat dictionary mapping dot-separated strings describing the path of an item in the nested scene dictionary to values. Values may be objects which can be directly used by the mitsuba.load_dict() function, or InitParameter instances which must be rendered.