Hi, I've recently returned to ArcMap (10.8), using for my uni studies, and am a bit rusty. I'm analysing rivers, and trying to extract sections of rivers. eg. extract 'blue' sections of river which are located between two 'green' sections of the same river. I've looked through the options, and tried 'intersect' but it doesn't return appropriate result. Hope you can help a relative newbie.
Is every 'blue' section only one feature or composed of multiple segments? Initially I'd recommend selecting and dissolving any blue lines (not to multipart though).
You could use a spatial join 'INTERSECT' and output a comma delimited string listing every other feature they intersect. In a simple case whereby a blue line is connected to a green line at each end, the field mapping would return 'Green, Green' - which you can then filter by. I'd recommend the dissolve if not already because you could have what looks like a single blue line which in fact is made from 3 blue segments, thus the spatial join would not return what you're expecting.
What becomes more complicated is where you can possibly have other lines connected at not just the endpoints (the green segments connected to more than 2 other features).
Hi David, thank you for your advice. It was helpful but still have some issues. The goal is to extract any Blue (dissolved) segments which connect at both ends to Green segments, i.e find all the Green-Blue-Green. Yes, there are segments which come in from the side (stream tributaries) but they are not causing the problem. Dissolving (unsplit checked) the segments worked well. Then tried Intersect on Green (dissolved) and Blue (dissolved) but that didn't return any results. So then created layer Blue-Blue connected reaches, selected by location (boundary). Then erased from Blue (dissolved), which should have left just Blue reaches which fell between two Green reaches. However, still some Blue-Blue reaches were included. It appears that the dissolve did not fully work initially? Also tried Select by Location (within distance, varying meterages eg 50m, 100m), but still unable to get a clean set of Green-Blue-Green. Is my logic sound? Is there an easier way? I would really appreciate some advice, kind regards
I'm not entirely sure, and finding it hard to visualise what you're saying. Would you be able to provide some screenshots etc. to help - including an example where the dissolve has not worked? I'm not sure what reaches are either.
Are you using INTERSECTION on spatial join? I only ask because there is a tool called intersect which does something quite different.
Also, is the dataframe and data in the same projection/coordinate system, and what is it?
Hi, the data represents a river system with tributaries in a catchment. All polylines. Rivers are made up of reaches, i.e. a section of the river with a particular characterization, eg Reach/Stream condition - Good, Moderate, Poor. Reaches are connected at their endpoints to the next reach along the river, except for tributaries. Tributaries flow into main branches, connecting at their endpoints to somewhere along the polylines of the main branch. Tributaries are always separate reaches.
The original data comprised many reaches, which when dissolved, combined reaches that connected at endpoints, but tributaries formed their own dissolved reaches.
My goal is to select Moderate reaches which lie between 2 Good reaches (see Reaches GoodModPoor). This time I used Spatial Join/Intersect
Then to filter I used GoodMod_SpJn, and selected by attribute.
So getting closer with your help, and understanding it more, but not quite there yet! I really appreciate your assistance.
All data is from the one dataset, using same Coordinate System GDA1994NSWLambert