Skip to main content

Hi Guys,

 

As per below image, I am trying to split a complex linear polygon by its center line segments.

 

I have not able to find a transformer to do so or any post that works for me scenario.

 

Any ideas would be highly welcomed

 

 

Capture 

For further context:

 

I am trying to divide a polygon by 1km2.

 

For simple polygons, I am using Dimitri's approach within the following link - https://community.safe.com/s/question/0D54Q000080hEUV/divide-an-irregular-polygon-into-n-number-of-polygons-of-equal-or-approximately-equal-area

 

However, when a site is linear and complex, as the one above, I have trouble to divide the polygon correctly as I need to avoid scenario 4 below which contains multiple polygons whereas I would like to being able to divide the polygon by following an spatial logic.

 

That is when I came up with obtaining the center line of the polygon and splitting it in different sections, which is my question above.

 

However, if there is another way to split a polygon by specific size avoiding scenario 4, please let me know.

Capture3

Assuming that your width from the centreline is the same across the data, you could do something like this....

 

assuming distance from CL to edge of poly is 50m, therefore poly is 100m wide. a 10,000m long line will represent 1km2.

 

split each line into 10,000m continuous segments then draw lines perpendicular the the ends of each line that extend futher than the poly. Then use these perpendicular lines to 'cut' the poly and you should have ~1km2 polys.

 

if the distance from the CL to edge of poly is not the same across the data, you could split the CL into a smaller distance (10m) and calculate the average distance and the approx area that section of line will represent. Then aggregate the lines up to the point of getting 1km2 area


Assuming that your width from the centreline is the same across the data, you could do something like this....

 

assuming distance from CL to edge of poly is 50m, therefore poly is 100m wide. a 10,000m long line will represent 1km2.

 

split each line into 10,000m continuous segments then draw lines perpendicular the the ends of each line that extend futher than the poly. Then use these perpendicular lines to 'cut' the poly and you should have ~1km2 polys.

 

if the distance from the CL to edge of poly is not the same across the data, you could split the CL into a smaller distance (10m) and calculate the average distance and the approx area that section of line will represent. Then aggregate the lines up to the point of getting 1km2 area

Many thanks for your reply @hkingsbury​, it will need to be option two as the distance from the CL to the edge of poly is not the same across the data and it can vary widely.

 

I am not sure if I am getting what you mean by splitting the CL into smaller distance and calculate the approx. area that section of the line will represent. How could I know that if the first 10 meters of the CL the width could be completely different from the next 10 meters of the CL?

 

Maybe a schema of the transformers you would use or a more detailed explanation would help.

 

I agree with you on the final step being aggregating the lines up to reaching 1km2 area.

 


Many thanks for your reply @hkingsbury​, it will need to be option two as the distance from the CL to the edge of poly is not the same across the data and it can vary widely.

 

I am not sure if I am getting what you mean by splitting the CL into smaller distance and calculate the approx. area that section of the line will represent. How could I know that if the first 10 meters of the CL the width could be completely different from the next 10 meters of the CL?

 

Maybe a schema of the transformers you would use or a more detailed explanation would help.

 

I agree with you on the final step being aggregating the lines up to reaching 1km2 area.

 

try something like this....

you'll need to consider how to manage areas on the concave side of a curve, but hopefully this give you some idea...

 

workbench built in 2020.1.2.0 B20620


Many thanks for your reply @hkingsbury​, it will need to be option two as the distance from the CL to the edge of poly is not the same across the data and it can vary widely.

 

I am not sure if I am getting what you mean by splitting the CL into smaller distance and calculate the approx. area that section of the line will represent. How could I know that if the first 10 meters of the CL the width could be completely different from the next 10 meters of the CL?

 

Maybe a schema of the transformers you would use or a more detailed explanation would help.

 

I agree with you on the final step being aggregating the lines up to reaching 1km2 area.

 

Thanks @hkingsbury, this was very helpful. I had to adjust the logic slightly but the divided polygon is looking like this at the moment:

 

Capture8Unfortunately the AreaBuilder did not kept the arrangement I had as I did have a division from different line segments as well as a Id for the subdivision within an specific line segment so I could later aggregate them accordingly making sure it was continuity when joining them in groups of 1km2.

 

I will continue with the task but any ideas are more than welcome!

 

Thanks again for your help :)


Reply