pygplates.GmlDataBlock¶
-
class
pygplates.
GmlDataBlock
¶ Bases:
pygplates.PropertyValue
A data block that associates each scalar type with a sequence of floating-point scalar values.
This is typically used to store one or more scalar values for each point in a
geometry
where each scalar value (stored at a point) has a differentscalar type
.The following operations are supported:
Operation Result len(d)
number of scalar types in the data block d for s in d
iterates over the scalar type s in data block d s in d
True
if s is a scalar type in data block ds not in d
False
if s is a scalar type in data block dFor example:
for scalar_type in data_block: scalar_values = data_block.get_scalar_values(scalar_type)
The following methods support getting, setting and removing scalar values in a data block:
-
__init__
(scalar_type_to_values_mapping)¶ Create a data block containing one or more
scalar types
and their associated scalar values.Parameters: scalar_type_to_values_mapping ( dict
mapping eachScalarType
to a sequence of float, or a sequence of (ScalarType
, sequence of float) tuples) – maps each scalar type to a sequence of scalar valuesRaises: ValueError if scalar_type_to_values_mapping is empty, or if each scalar type
is not mapped to the same number of scalar values.To create
gpml:VelocityColat
andgpml:VelocityLon
scalar values:data_block = pygplates.GmlDataBlock( [ (pygplates.ScalarType.create_gpml('VelocityColat'), [-1.5, -1.6, -1.55]), (pygplates.ScalarType.create_gpml('VelocityLon'), [0.36, 0.37, 0.376])])
To do the same thing using a
dict
:data_block = pygplates.GmlDataBlock( { pygplates.ScalarType.create_gpml('VelocityColat') : [-1.5, -1.6, -1.55], pygplates.ScalarType.create_gpml('VelocityLon') : [0.36, 0.37, 0.376]})
Methods
__init__
(scalar_type_to_values_mapping)Create a data block containing one or more scalar types
and their associated scalar values.accept_visitor
(visitor)Accept a property value visitor so that it can visit this property value. clone
()Create a duplicate of this property value (derived) instance, including a recursive copy of any nested property values that this instance might contain. get_geometry
()Extracts the geometry
if this property value contains a geometry.get_scalar_values
(scalar_type)Returns the list of scalar values associated with a scalar type. get_value
([time=0])Extracts the value, of this possibly time-dependent property value, at the reconstruction time. remove
(scalar_type)Removes the list of scalar values associated with a scalar type. set
(scalar_type, scalar_values)Sets the scalar values of the data block associated with a scalar type. -
get_scalar_values
(scalar_type)¶ Returns the list of scalar values associated with a scalar type.
Parameters: scalar_type ( ScalarType
) – the type of the scalarsReturns: the scalar values associated with scalar_type, otherwise None
if scalar_type does not existReturn type: list of float, or None To test if a scalar type is present and retrieve its list of scalar values:
velocity_colat_scalar_type = pygplates.ScalarType.create_gpml('VelocityColat') velocity_colat_scalar_values = data_block.get_scalar_values(velocity_colat_scalar_type) if velocity_colat_scalar_values: for scalar_value in velocity_colat_scalar_values: ... # ...or a less efficient approach... if velocity_colat_scalar_type in data_block: velocity_colat_scalar_values = data_block.get_scalar_values(velocity_colat_scalar_type)
-
remove
(scalar_type)¶ Removes the list of scalar values associated with a scalar type.
Parameters: scalar_type ( ScalarType
) – the type of the scalarsTo remove the scalar values associated with
gpml:VelocityColat
:gml_data_block.remove(pygplates.ScalarType.create_gpml('VelocityColat'))
Note
If scalar_type does not exist in the data block then it is ignored and nothing is done.
-
set
(scalar_type, scalar_values)¶ Sets the scalar values of the data block associated with a scalar type.
Parameters: - scalar_type (
ScalarType
) – the type of the scalars - scalar_values (sequence (eg,
list
ortuple
) of float) – the scalar values associated with scalar_type
Raises: ValueError if the length of scalar_values does not match the length of existing scalar values for other
scalar types
.To set (or replace) the scalar values associated with
gpml:VelocityColat
:gml_data_block.set( pygplates.ScalarType.create_gpml('VelocityColat'), [-1.5, -1.6, -1.55])
Note
If there is no list of scalar values associated with scalar_type then a new list is added, otherwise the existing list is replaced.
- scalar_type (
-