Does anyone know of an easy way to manage a large number (10,000's) of catchments/watersheds?

I have defined a stream network and for each segment, I have a corresponding catchment (in a unique shapefile). The name of the catchment is the x and y co-ordinate of the catchment outlet which is also assigned to the attribute table of relevant stream segment.

The end user will only want to view the stream network and maybe a few of the catchments (certainly not all!) at a time. I need a way to make it easy for the end user to view the catchments of interest (I guess they could search for them).

My only idea (which I am a little unsure of how to implement) is to build a tool (in ArcGIS) that loads the catchment when they click on a stream segment (with the tool selected)

For my idea, I think I would have a button similar to the identify tool the end user would use this tool to select a stream segment, the tool would then look in the attribute table to find the file location of the catchment and add this as a shape file.

Is such a thing possible to do?

I have coded up some python scripts before but have never attempted to integrate such functionality into ArcGIS.

We only have the basic version of ArcGIS, although if this sort of functionality is available in something like Arc Hydro I'd be interested to know!


1 Answer 1


If you're writing a tool it would be easier to modify the definition expression of a layer rather than to extract and load. This would be achievable in ArcPy but would be better suited to .net (VB or C#)

In ArcObjects the definition query can be modified in ILayerDescription which can be accessed from IFeatureLayer.

in VB:

dim pLayerDesc as ILayerDescription = ctype(MYlayer,ILayerDescription)
pLayerDesc.DefinitionExpression = "SQL query that defines the layers as text"

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.