[GIS] Select Lines that have points on edge but not on end

arcgis-10.3arcgis-desktopselect-by-location

I am looking for an easier way (if it exists) of selecting all lines that have points snapped to them but where the points are not on the end-points of the line.

My current method is to:

  1. Generate temporary end-points for all lines (Feature Vertices to Points using BOTH_ENDS option
  2. Select all points (from actual point layer) that intersect my lines
  3. Remove from selection any points that intersect my temporary end-point features
  4. Select by location any lines that intersect the remaining selected points

This seems quite long-winded to me, and as I'm having to do this process regularly I'm keen to know if there is a simpler way to do this. I will be creating a model or arcpy tool to do the above for me, but would prefer to have a quicker process to follow.

Example of requirement

I have 500+ points and 15,000+ lines, so my current process takes a while to run each time.

EDIT: My data is in a geometric network, and EVERY line end-point has a point attached as required by the network. In this situation I am trying to find all lines with specific types of points that are snapped to the lines but are not on the ends of the lines. These are not errors, so won't be flagged by network rules.

Best Answer

Edit: My opinion to the question: I do not think there is a quicker way because you have to tell the computer to ignore any points that fall on the line endpoints then select intersecting lines with the remaining points. No generic tool that I know of does that function. I think you are using the simplest solution. Perhaps I'm wrong though and that is why you came to ask.

Perhaps a topology checker will work, but its really just a half step ahead of what you're doing. I would simply model or script the process you are already using.

The topology checker needs network analyst extension in arcmap, but in QGIS you have this plugin to find points who must be covered by endpoints of a line feature. Then do a selection on the remaining points.

Your method is just as simple and doesn't require new software or an extension.

Related Question