Skip to main content

Hi All, I have a overland flow network and some polygons. I need to create a point at any location where the flow network exits the polygon (red dots, manually created). See attached. I can create all nodes via the line on polygon overlayer. (green dots) Then i tried filtering by fme_node_direction but it didn't return the expected results. Any suggestions or do i need to delve into the M values of the lines to establish the points i need. Thanks Steve

Hi @goatboy,

Do the points already exist or do you need to generate them as well?


Hi @goatboy,

Do the points already exist or do you need to generate them as well?

i need to generate them too. (Thats what i do with the line on polygon overlayer) once i use that i now have a number or points that intersect the boundary of the polygon. i need to select from these points only the ones that were generated from lines "flowing" out of a polygon. thanks steve


i need to generate them too. (Thats what i do with the line on polygon overlayer) once i use that i now have a number or points that intersect the boundary of the polygon. i need to select from these points only the ones that were generated from lines "flowing" out of a polygon. thanks steve

my only input datasets are the line and polygons. i create all the points


my only input datasets are the line and polygons. i create all the points

I was thinking since you are dealing with linear referencing, you should be able to calculate the distance between the lines' starting point and the first intersection and the second intersection. The most farthest point will be the exit point.


Hi @goatboy,

I think you can use the MeasureGenerator for this purpose.

 

FYI: I assume that the digitising direction is the same as the flow of the river.

 

I created a little test where I clip the lines (with measures) with the polygons and keep the inside lines. Than I retrieve the measure and sort all lines per polygonID in descending order using the measure as the attribute to sort on. Using a sampler grouped by PolygonID (and sampling 1 feature only), only the last line segment - so the one the most downstream is kept. The final step is to use the snipper (100% - 100%) in order to create a point.

Does this method work for you?

Good luck!

 

Jeroen

example-model.fmw


Interesting question. I think you'll need to delve into the M (or Z) values to determine the points. That's the only way I can see would be possible. The other suggestion I have is to first clip the flow lines with the polygon outlines (Clipper transformer) and keep only the parts inside. That way you would be able to handle a single line passing through multiple polygons.


would'nt (a piece of) the line intersecting the polygon be sufficient?

You can then spatialy query wether the end or startpoint is wihtin the polgyon.


Interesting question. I think you'll need to delve into the M (or Z) values to determine the points. That's the only way I can see would be possible. The other suggestion I have is to first clip the flow lines with the polygon outlines (Clipper transformer) and keep only the parts inside. That way you would be able to handle a single line passing through multiple polygons.

Maybe Clipper followed by Extender? With Extender, every 'inside segment' can be extended with a two point extension. We would be interested in 'inside segment' end extensions - these will be output via Extender End port. The next step would be to take the first point of each extension (e.g. CoordinateExtractor + VertexCreator).


would'nt (a piece of) the line intersecting the polygon be sufficient?

You can then spatialy query wether the end or startpoint is wihtin the polgyon.

Thanks gio. i had a brain wave about this also last night. I have clipped the lines by the polygons and kept the "outside clippees" then found the first vertex of the lines and check if it intersects with the polygon. if it does then its flowing out of the polygon. Thanks for your help

Steve


Reply