Last updated: Jan 18, 2024
The Derive node modifies data values or creates new fields from one or more existing fields. It creates fields of type formula, flag, nominal, state, count, and conditional.
Example 1
# Create and configure a Flag Derive field node
node = stream.create("derive", "My node")
node.setPropertyValue("new_name", "DrugX_Flag")
node.setPropertyValue("result_type", "Flag")
node.setPropertyValue("flag_true", "1")
node.setPropertyValue("flag_false", "0")
node.setPropertyValue("flag_expr", "'Drug' == \"drugX\"")
# Create and configure a Conditional Derive field node
node = stream.create("derive", "My node")
node.setPropertyValue("result_type", "Conditional")
node.setPropertyValue("cond_if_cond", "@OFFSET(\"Age\", 1) = \"Age\"")
node.setPropertyValue("cond_then_expr", "(@OFFSET(\"Age\", 1) = \"Age\" >< @INDEX")
node.setPropertyValue("cond_else_expr", "\"Age\"")
Example 2
This script assumes that there are two numeric columns called
XPos
and YPos
that represent the X and Y coordinates of a point
(for example, where an event took place). The script creates a Derive node that computes a
geospatial column from the X and Y coordinates representing that point in a specific coordinate
system:
stream = modeler.script.stream()
# Other stream configuration code
node = stream.createAt("derive", "Location", 192, 96)
node.setPropertyValue("new_name", "Location")
node.setPropertyValue("formula_expr", "['XPos', 'YPos']")
node.setPropertyValue("formula_type", "Geospatial")
# Now we have set the general measurement type, define the
# specifics of the geospatial object
node.setPropertyValue("geo_type", "Point")
node.setPropertyValue("has_coordinate_system", True)
node.setPropertyValue("coordinate_system", "ETRS_1989_EPSG_Arctic_zone_5-47")
derivenode properties |
Data type | Property description |
---|---|---|
new_name
|
string | Name of new field. |
mode
|
Single
Multiple
|
Specifies single or multiple fields. |
fields
|
list | Used in Multiple mode only to select multiple fields. |
name_extension
|
string | Specifies the extension for the new field name(s). |
add_as
|
Suffix
Prefix
|
Adds the extension as a prefix (at the beginning) or as a suffix (at the end) of the field name. |
result_type
|
Formula
Flag
Set
State
Count
Conditional
|
The six types of new fields that you can create. |
formula_expr
|
string | Expression for calculating a new field value in a Derive node. |
flag_expr
|
string | |
flag_true
|
string | |
flag_false
|
string | |
set_default
|
string | |
set_value_cond
|
string | Structured to supply the condition associated with a given value. |
state_on_val
|
string | Specifies the value for the new field when the On condition is met. |
state_off_val
|
string | Specifies the value for the new field when the Off condition is met. |
state_on_expression
|
string | |
state_off_expression
|
string | |
state_initial
|
On
Off
|
Assigns each record of the new field an initial value of On or
Off . This value can change as each condition is met. |
count_initial_val
|
string | |
count_inc_condition
|
string | |
count_inc_expression
|
string | |
count_reset_condition
|
string | |
cond_if_cond
|
string | |
cond_then_expr
|
string | |
cond_else_expr
|
string | |
formula_measure_type |
Range / MeasureType.RANGE
Discrete /
MeasureType.DISCRETE
Flag / MeasureType.FLAG
Set /
MeasureType.SET
OrderedSet /
MeasureType.ORDERED_SET
Typeless /
MeasureType.TYPELESS
Collection /
MeasureType.COLLECTION
Geospatial / MeasureType.GEOSPATIAL |
This property can be used to define the measurement associated with the derived field. The
setter function can be passed either a string or one of the MeasureType values. The
getter will always return on the MeasureType values. |
collection_measure |
Range / MeasureType.RANGE
Flag /
MeasureType.FLAG
Set / MeasureType.SET
OrderedSet /
MeasureType.ORDERED_SET
Typeless / MeasureType.TYPELESS |
For collection fields (lists with a depth of 0), this property defines the measurement type associated with the underlying values. |
geo_type |
Point
MultiPoint
LineString
MultiLineString
Polygon
MultiPolygon |
For geospatial fields, this property defines the type of geospatial object represented by this field. This should be consistent with the list depth of the values |
has_coordinate_system |
boolean | For geospatial fields, this property defines whether this field has a coordinate system |
coordinate_system |
string | For geospatial fields, this property defines the coordinate system for this field |