The Find Existing Locations tool selects features in your study area that meet a series of criteria based on spatial or attribute queries.
A query on spatial relationships.
A query on field values.
An investment firm has purchased a small chain of grocery stores and is looking for a location for their new distribution center. Their distribution center will require a vacant lot that is at least 20 acres, is located within 1 mile of a highway, and is not located in a flood zone. Find Existing Locations can be used to select all of the lots in a city that fit these criteria.
A GIS analyst is performing a preliminary review of wind farm applications to determine which proposals should be submitted for further assessment. Her criteria are that the proposals must have road access and cannot be on or within view of protected areas. Find Existing Locations can be used to select the sites that meet all of the criteria.
A city's police department is conducting an analysis to determine if there is a relationship between violent crimes and unemployment rates. An expanded summer job program will be implemented for high schools in areas where there is high violent crime and high unemployment. Find Existing Locations can be used to select high schools within a quarter mile of the remediation areas.
A single input of point, line, or area features is required. The input is the only layer that can be queried unless another layer is added through a spatial join.
A query can be built using Add Expression. Multiple expressions, including a combination of spatial and attribute queries can be added. The features from the input layer that satisfy the expression will be written to the result layer.
There are several operators that can be used for an attribute query, depending on whether the field you are querying is categorical or numerical.
If your field is categorical, the following operators can be used:
- is not
- starts with
- ends with
- does not contain
- is blank
- is not blank
If your field is numerical, the following operators can be used:
- is not
- is at least
- is less than
- is at most
- is greater than
- is between
- is not between
- is blank
- is not blank
For more information on building attribute expressions, see the How Find Existing Locations works section.
The following spatial expressions can be used in a spatial query:
- does not intersect
- within a distance of
- not within a distance of
- completely contains
- does not completely contain
- completely within
- not completely within
For more information on building spatial queries, see the How Find Existing Locations works section.
Multiple expressions can be added to the query using the Add Expression button. The expressions can be combined using either and or or as an operator.
If Use current map extent is checked, only the features in the input layer that are visible within the current map extent will be analyzed. If unchecked, all features will be analyzed, even if they are outside the current map extent.
How Find Existing Locations works
To build an expression, click the Add Expression button to open the Add Expression dialog box.
Attribute expressions are created by using where (attribute query) as the expression type.
Layers you can use in the expression are listed here. Initially, the only choice will be the analysis layer. Once you establish a spatial relationship to other layers (for example, Parcels completely within City Boundaries), the other layers will be listed in the drop-down menu.
This is the expression type. For attribute expressions, choose where (attribute query).
Choose the field you want to query against from the list.
Choose an operator for the expression.
If any of your layers has a filter applied, only those features that meet the filter expression will be used in the analysis.
Spatial expressions are created by choosing expression types such as completely within or intersects (the complete list can be found in the Spatial expression types section).
When you choose a spatial expression type, the Add Expression dialog box changes depending on the expression type you choose.
The first layer. Initially, the only choice will be the analysis layer. Once you establish a spatial relationship to other layers (for example, Parcels completely within Community Boundaries), the other layers will be listed in the drop-down menu.
The spatial expression type. See below for details about each of the spatial expression types.
The second layer. These are the other layers in your map.
Example of a completed query
Here is an example query borrowed from the book Understanding GIS, An ArcGIS Project Workbook. The premise of the book is that you're looking for vacant parcels in the city of Los Angeles suitable for developing public parks. The criteria for a suitable park site include the following:
- The parcel must be vacant.
- It must be within the Los Angeles city limits.
- It must be greater than one acre in size.
- Some part of the parcel must be within 0.75 miles of the Los Angeles river.
- The parcel must be at least 0.25 miles from existing parks.
The following screen shot shows a Find Existing Locations query based on the above criteria using layers named Parcels, Rivers, and City Boundaries:
- The order of the expressions does not affect the result of the analysis.
- You can group and ungroup expressions by clicking the group and ungroup buttons . To create groups, select two or more expressions and click the group button. For more information about groups, see the Grouping topic in How Find Existing Locations works.
- Clicking switches the operator to . Clicking switches the operator to .
Spatial expression types
A spatial expression establishes a relationship between two layers. If you need to establish a spatial relationship between features in the same layer (for example, you want to select vacant parcels within a distance of industrial parcels), copy the parcels layer and add it to your map so that you have two layers using the same parcel features.
Within a distance of/Not within a distance of
The within a distance relationship uses the straight-line distance between features in the first layer to those in the second layer.
- Within a distance of—A feature in the first layer is selected (included in the output) if any part is within the specified distance of a feature in the second layer; for example, parcels within 100 meters of a river will be included in the output.
- Not within a distance of—A feature in the first layer is excluded (not included in the output) if it is within a distance of another feature; for example, parcels within 100 meters of a river will not be included in the output. You can think of this relationship as "is farther away than".
Distances are calculated between the closest parts of features. In the example above, where parcels had to be within 0.75 miles of the Los Angeles River, parcels are selected if any part of the parcel is within 0.75 miles. If the criteria is that the entire parcel must be within 0.75 miles, you would use the Create Buffers tool with a distance of 0.75 miles around the Los Angeles River to create a new layer. You would then create an expression where parcels are completely within the buffer layer.
Completely contains/Does not completely contain
A feature in the first layer passes this test if it completely surrounds a feature in the second layer. No portion of the contained feature can be outside the containing feature; however, the contained feature is allowed to touch the containing feature (that is, share a common point along its boundary).
- Completely contains—If a feature in the first layer contains a feature in the second layer, the feature in the first layer is included in the output.
- Does not completely contain—If a feature in the first layer contains a feature in the second layer, the feature in the first layer is excluded from the output.
You can use the contains relationship with points and lines. For example, you have a layer of street centerlines (lines) and a layer of manhole covers (points), and you want to find streets that contain a manhole cover. You could use completely contains to find streets that contain manhole covers, but for a line to contain a point, the point must be exactly on the line (that is, in GIS terms, they are snapped to each other). If there is any doubt about this, use the within a distance of relationship with a suitable distance value.
Completely within/Not completely within
A feature in the first layer passes this test if it is completely surrounded by a feature in the second layer. The entire feature in the first layer must be within the containing feature; however, the two features are allowed to touch (that is, share a common point along its boundary).
- Completely within—If a feature in the first layer is completely within a feature in the second layer, the feature in the first layer is included in the output.
- Not completely within—If a feature in the first layer is completely within a feature in the second layer, the feature in the first layer is excluded from the output.
You can use the within relationship for points and lines, just as you can with the contains relationship. For example, your first layer contains points representing manhole covers and you want to find the manholes that are on street centerlines (as opposed to parking lots or other non-street features). You could use completely within to find manhole points within street centerlines, but for a point to contain a line, the point must be exactly on the line (that is, in GIS terms, they are snapped to each other). If there is any doubt about this, use the within a distance of relationship with a suitable distance value.
Intersects/Does not intersect
A feature in the first layer passes the intersects test if it overlaps any part of a feature in the second layer, including touches (where features share a common point).
- Intersects—If a feature in the first layer intersects a feature in the second layer, the feature in the first layer is included in the output.
- Does not intersect—If a feature in the first layer intersects a feature in the second layer, the feature in the first layer is excluded from the output.
Two or more consecutive expressions can be grouped together using the group button . Select multiple expressions to group using Shift+click.
Here is an example where grouping is needed:
- You have a point layer of sites containing toxic chemicals. Each point has an attribute, CHEMICAL, containing the name of the toxic chemical known to exist at the site.
- You want to find toxic sites containing MERCURY or SELENIUM that are near a river.
- You also want to find toxic sites containing BENZENE or LEAD that are near a park.
In the above example, two sets of features are created from the same toxic sites layer: toxic sites near parks and toxic sites near rivers. These two sets are distinct from each other.
Since the set of toxic sites near a river is distinct from the toxic sites near a park, you would want to use grouping to construct the query. Figure 1 shows the initial query without any grouping or modification of logical operators (they are all ). This query would result in toxic sites within a kilometer of both a park and a river. This is not the goal; the desired result is one set of toxic sites within a kilometer of a river and another distinct set within a kilometer of a park.
To construct a query that meets the criteria outlined above, groups need to be created. Each group forms a subquery whose results are combined with the previous expression.
Start by selecting the first two attribute expressions, as shown in Figure 2.
After selecting the two attribute expressions, click the group button . The group becomes indented, as shown in Figure 3.
Select the second group of attribute expressions, as shown in Figure 3.
After selecting the second group, click the group button.
Finally, select the second group of attribute expressions and the spatial expression to which they belong, as shown in Figure 4.
Click the group button and the query becomes indented, as shown in Figure 5. The final step is to switch to , as shown in Figure 5.
The query shown in Figure 5 will yield the desired results.
- Toxic Sites with LEAD or BENZENE are found and these features are subset by finding those within one kilometer of Parks.
- Next, Toxic Sites with SELENIUM or MERCURY are found and these features are subset by finding those within one kilometer of the River.
- Finally, the two sets of features are combined using a logical .
Grouping expressions is only necessary when you need to create two or more distinct sets of features from the same layer. One way to think of grouping is that without grouping, you would have to execute Find Existing Locations twice, once to find sites near rivers and again to find sites near parks. You would then need to use the Merge tool to combine the two results.
You can click the text button to view a textual representation of the query. The textual representation uses parentheses to denote groups.
Use Find Existing Locations to select features that meet a series of criteria with attribute and spatial queries. Other tools may be useful in solving similar but slightly different problems.
Map Viewer analysis tools
If you are trying to find locations that are similar to a reference location, use the Find Similar Locations tool.
If you are trying to use a query to create new features, use the Derive New Locations tool.
The main difference between the Find Existing Locations tool and the Derive New Locations tool is that the result of Derive New Locations can contain partial features.
- In both tools, the attribute expression where and the spatial expressions completely within and completely contains return the same result because the expressions return entire features.
- When intersects or within a distance of is used, Derive New Locations creates new features in the output result layer.