Skip to main content

Hello experts,

I need suggestions or some help on getting FME workbench to output 2 excel files based on a user parameter which the user will be asked to supply before the workbench begins to run.

Both files will be the result of tracing a feeder (the user parameter) downstream from its origin at the feeder/hypernode point.

The first file I am trying to output should contain something similar to the below.

So up to column G is trace and H and I is result of spatial intersection. This is based on the above screenshot which shows the feeder extension (brown line). The hypernode is located at the zonesub (blue square) and then we want all reclosers (red and white circles) along the feeder to be captured and outputted as well as the fire polygon(s) the feeder intercepts.

The second file I am trying to output should contain the ids of any spans/linear objects which follow downstream of the point object until the line comes to another point object (recloser) and then carry on with that device and all the spans that follow downstream. (I hope this makes sense…)

The trace should stop where the feeder ends.

The spatial results I can get by but what I really do need help with is the network tracing and output.

Tracing using FME is a concept I am still new and trying to get my head around it so any help/suggestions are welcome.

Thank you so much.

FME doesn’t have specific ‘Tracing’ transformers. You can read up about using a PythonCaller to your ArcPRO geoprocessing Using Arcpy for FME Feature Processing (safe.com) Essentially you perform the geoprocessing in arcgis, export the Python snippet and adapt it within a PyCaller to interact with a file geodatabase, by having file path readers, attributes or userparameters to parse values into the PyCaller


It depends what you need to do, and the transformers may be there for you. Electric is non-directional, so you can use the NetworkTopologyCalculator to determine what lines are connected within a locality. If you buffer and clip the feeder out of the network, then the NetworkTopologyCalculator will determine that all the ‘downstream’ lines are now separate from the rest of the outer network. That set of lines will all have the same _network_id attribute added (which should be your second file). Hopefully you can figure out the first file requirement from that.

I’ve done this to simulate water supply outages by closing sets of valves (clipping them out of network) and tracing the result to see the effect.


Thanks for the suggestions.
I am still stuck with this task though.
I thought maybe I can try again by explaining a little better and attaching sample data of my workbench output so far…
The SHP files are somehow self-explanatory. The purpose of the task is to use FME to output what is in the excel attach. It involves tracing of the line from the origin to the first rec and then to the second rec by listing all the spans upstream.
Another question that comes to my head is how can I use the “normal status” = open attrib for stop predicates?

Any help/suggestions would be very much appreciated.

thank you,

fb 


Hi,
after leaving this for sometime, I went back to try and get this bench to work. I believe that I am very close now, in fact, it actually works, however, when multiple reclosers are part of the feeder, then it only works if I filter them manually by ID which defeats the purpose of running this for the entire network.
So, the question is:
How can I pass the IDs one by one as in pass, the process and finish then pass next one and so on?
Is there a way to do this?
 

this is my current bench

The SQL executor circled in red is the one where I need the IDs to pass one at a time.
query inside it below:

SELECT 'recloser' 'device_type', r.id device_id, f.feeder_gis_id fdr_sw_id, 
f.feeder_name fdr_asset_label, r.centreline
  FROM ORDS_GSA_ASSET].Tfeeder_segment_curr_VW] f
  inner join oRDS_GSA_ASSET].Erecloser_site_curr_VW] r
  on f.segment_gis_id = r.id
  where f.feeder_gis_id = @Value(fdr_sw_id)
  and f.segment_asset_type in ('Recloser Site')
  and r.service_status = 'In Service'

any ideas?
thanking you in advance.
fb


You can use GroupBy functionality in FME.

You can take the transformer you want (or a group of transformers) which you want to process on a single feature or single group of features and put them into a CustomTransformer. Custom Transformers have the option to expose a Group By parameter. This would be your ID I guess.

 

 


hi @virtualcitymatt
thanks for your reply. So I tried creating a custom but did not get far in terms of results.
Below is the transformer I need to customize I guess and below that on the same screenshot is the result of the actual sql in the transformer.
 

As you can see, the sql creates a row_index which is the one I would like to loop so that I can get each record to process one at a time.
How do I achieve this using a custom transformer?
thanks again.

fb


Reply