Selecting verices by angle I am working on a road net mesh that only contains edges, no faces. They all share a common plane (I'm basically working in 2D). There is a ton of redundant edges that form ALMOST perfectly straight paths between crossings and could be dissolved but doing it manually with take me ages. On the other hand, there are some road turns that I want to keep.
I'd like to know if Blender has any command that will select my vertices by angle or select similar angle to the one I selected, so I could later dissolve them. Say, my selected vertex connects two edges that are almost parallel, and I want to dissolve all vertices that are like that. I want to be able to set a threshold, so I can keep vertices that connect edges with deviation from parallel larger than 2 degrees, for example.
Here goes a screenshot where I manually selected what I want to be done automatically. The whole mesh is much larger, that's why I'm asking.

If there's no such an option, natively or with an addon, please tell me if it would be difficult to write a script for such an action. Any help greatly appreciated.
Select inline verts.
Quick edit mode bmesh script. Run in vert select mode.  Selects all vertices connected to 2 edges that have an angle of within 2 degrees of  180 degrees.  Think of it like a clock, and the angle between the two hands with respect to the clock centre.
import bpy
import bmesh
from math import pi, radians

context = bpy.context

ob = context.edit_object
me = ob.data
bm = bmesh.from_edit_mesh(me)

def is_inline(vert, eps=1e-4):
    
    o = vert.co
    e0, e1 = v.link_edges
    v0 = e0.other_vert(vert).co - o
    v1 = e1.other_vert(vert).co - o
    return pi - v0.angle(v1) &lt; eps

for v in bm.verts:
    v.select_set(
            len(v.link_edges) == 2
            and is_inline(v, eps=radians(2))
            )
            
bmesh.update_edit_mesh(me)