[kepler-users] ArrayToSequence Actor

Alvin Sebastian a.sebastian at qut.edu.au
Wed Nov 14 16:11:03 PST 2012


Thanks for all the responses.

I have looked into IterateOverArray, but the documentation is not very clear and I have no idea at all of how to use it. It has no input nor output ports by default.

Setting "enforceArrayLength" to false while using SDF does not work at all. With DDF, it works but it also keeps iterating indefinitely. How do I create a workflow where an actor can consume any number of input token dynamically without keep repeating?

As a simple example using SDF director (iterations set to 1), I have a constant actor with value {1,2,3}. I connect the output port of that actor to the input port of ArrayToSequence, and then connect a Display actor to it. What I want is an output of:
1
2
3
whenever I click the run button once.
This would be very easy if I set the value of arrayLength to 3, but is there any other way to achieve the same result without having to know the length of the input array before running the workflow?


Alvin



From: Sean Riddle [mailto:swriddle at gmail.com]
Sent: Thursday, 15 November 2012 9:32 AM
To: Alvin Sebastian
Cc: kepler-users at kepler-project.org
Subject: Re: [kepler-users] ArrayToSequence Actor

If the boolean parameter "enforceArrayLength" is set to false, the arrayLength parameter will have no effect, and it will work dynamically as you would expect. This does violate the contract implicit in SDF, though, that each actor has a constant token production and consumption rate. If the actor is only invoked once, though, I doubt that will be a problem.

- Sean
On Wed, Nov 14, 2012 at 3:23 PM, Alvin Sebastian <a.sebastian at qut.edu.au<mailto:a.sebastian at qut.edu.au>> wrote:
Hi All,

I am a new Kepler user who somehow stuck at how to do a specific thing in Kepler.
I am using a SDF director to run a simple sequential workflow only once. However, in the middle of the workflow, there would be an actor that outputs an array with arbitrary length. I want to process each element of the array using another actor all in the same iteration, and it seems the easiest way to do that is by using the ArrayToSequence actor. However, the actor requires arrayLength parameter to be set prior to running the workflow. Is there a way to make the arrayLength parameter dynamic and automatically set to the length of the array received by the input port?

Regards,

Alvin

_______________________________________________
Kepler-users mailing list
Kepler-users at kepler-project.org<mailto:Kepler-users at kepler-project.org>
http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.nceas.ucsb.edu/kepler/pipermail/kepler-users/attachments/20121115/1b4e2552/attachment-0001.html>


More information about the Kepler-users mailing list