pdal::Stage
pdal::Stage
is the base class of pdal::Filter
,
pdal::Reader
, and pdal::MultiFilter
classes that
implement the reading API in a PDAL pipeline.
-
class Stage
A stage performs the actual processing in PDAL.
Stages may read data, modify or filter read data, create metadata or write processed data.
Stages are linked with setInput() into a pipeline. The pipeline is run with by calling in sequence prepare() and execute() on the stage at the end of the pipeline. PipelineManager can also be used to create and run a pipeline.
Subclassed by pdal::Filter, pdal::Reader, pdal::Streamable, pdal::Writer
Public Functions
-
Stage()
-
virtual ~Stage()
-
inline void setInput(Stage &input)
Add a stage to the input list of this stage.
- Parameters
input – Stage to use as input.
-
inline void setProgressFd(int fd)
Set a file descriptor to which progress information should be written.
- Parameters
fd – Progress file descriptor.
-
QuickInfo preview()
Retrieve some basic point information without reading all data when possible.
Usually implemented only by Readers.
-
void prepare(PointTableRef table)
Prepare a stage for execution.
This function needs to be called on the terminal stage of a pipeline (linked set of stages) before execute can be called. Prepare recurses through all input stages.
- Parameters
table – PointTable being used for stage pipeline.
-
PointViewSet execute(PointTableRef table)
Execute a prepared pipeline (linked set of stages).
This performs the action associated with the stage by executing the run function of each stage in depth first order. Each stage is run to completion (all points are processed) before the next stages is run.o
- Parameters
table – Point table being used for stage pipeline. This must be the same table used in the prepare function.
-
inline virtual void execute(StreamPointTable &table)
-
inline virtual bool pipelineStreamable() const
Determine if a pipeline with this stage as a sink is streamable.
- Returns
Whether the pipeline is streamable.
-
inline virtual const Stage *findNonstreamable() const
Return a pointer to a pipeline’s first non-streamable stage, if one exists.
- Returns
nullptr if the stage is streamable, a pointer to this stage otherwise.
-
void setSpatialReference(SpatialReference const &srs)
Set the spatial reference of a stage.
Set the spatial reference that will override that being carried by the PointView being processed. This is usually used when reprojecting data to a new spatial reference. The stage spatial reference will be carried by PointViews processes by this stage to subsequent stages.
If called by a Reader whose spatial reference has been set with option ‘spatialreference’ or ‘override_srs’, then this function will have no effect.
- Parameters
srs – Spatial reference to set.
-
const SpatialReference &getSpatialReference() const
Get the spatial reference of the stage.
Get the spatial reference that will override that being carried by the PointView being processed. This is usually used when reprojecting data to a new spatial reference. The stage spatial reference will be carried by PointViews processes by this stage to subsequent stages.
- Returns
The stage’s spatial reference.
-
inline void setOptions(Options options)
Set a stage’s options.
Set the options on a stage, clearing all previously set options.
- Parameters
options – Options to set.
-
void addConditionalOptions(const Options &opts)
Add options if an option with the same name doesn’t already exist on the stage.
- Parameters
opts – Options to add.
-
void addAllArgs(ProgramArgs &args)
Add a stage’s options to a ProgramArgs set.
- Parameters
args – ProgramArgs to add to.
-
inline void addOptions(const Options &opts)
Add options to the existing option set.
- Parameters
opts – Options to add.
-
inline void removeOptions(const Options &opts)
Remove options from a stage’s option set.
- Parameters
opts – Options to remove.
-
void startLogging() const
Push the stage’s leader into the log.
-
void stopLogging() const
Pop the stage’s leader from the log.
-
inline bool isDebug() const
Determine whether the stage is in debug mode or not.
- Returns
The stage’s debug state.
-
virtual std::string getName() const = 0
Return the name of a stage.
- Returns
The stage’s name.
-
inline void setTag(const std::string &tag)
Set a specific tag name.
-
inline virtual std::string tag() const
Return the tag name of a stage.
- Returns
The tag name.
-
inline std::vector<Stage*> &getInputs()
Return a list of the stage’s inputs.
- Returns
A vector pointers to input stages.
-
inline MetadataNode getMetadata() const
Get the stage’s metadata node.
- Returns
Stage’s metadata.
-
void serialize(MetadataNode root, PipelineWriter::TagMap &tags) const
Serialize a stage by inserting apporpritate data into the provided MetadataNode.
Used to dump a pipeline specification in a portable format.
- Parameters
root – Node to which a stages metadata should be added.
tags – Pipeline writer’s current list of stage tags.
Public Static Functions
-
static bool parseName(std::string o, std::string::size_type &pos)
Parse a stage name from a string.
Return the name and update the position in the input string to the end of the stage name.
- Parameters
o – Input string to parse.
pos – Parsing start/end position.
- Returns
Whether the parsed name is a valid stage name.
-
static bool parseTagName(std::string o, std::string::size_type &pos)
Parse a tag name from a string.
Return the name and update the position in the input string to the end of the tag name.
- Parameters
o – Input string to parse.
pos – Parsing start/end position.
tag – Parsed tag name.
- Returns
Whether the parsed name is a valid tag name.
-
Stage()