Join Features

Join Features


The Join Features task works with two layers. Join Features joins attributes from one feature to another based on spatial, temporal, and attribute relationships or some combination of the three. The tool determines all input features that meet the specified join conditions and joins the second input layer to the first. You can optionally join all features to the matching features or summarize the matching features.

Join Features can be applied to points, lines, areas, and tables. A temporal join requires that your input data is time-enabled, and a spatial join requires that your data has a geometry.

Choose target layer


The layer that will have attributes from the join layer appended to its table.

Analysis using the Near spatial relationship requires a projected coordinate system. You can set the Processing coordinate system in Analysis Environments. If your processing coordinate system is not set to a projected coordinate system, you will be prompted to set it when you Run Analysis.

In addition to choosing a layer from your map, you can choose Browse Layers at the bottom of the drop-down list to browse to your contents for a big data file share dataset or feature layer.

Choose layer to join to target layer


The join layer with the attributes that will be appended to the target layer.

In addition to choosing a layer from your map, you can choose Browse Layers at the bottom of the drop-down list to browse to your contents for a big data file share dataset or feature layer.

Choose join operation


Determines how joins between the target and join layers will be handled in the output if multiple joining features are found to have the same relationship to the layer being joined. There are two join operations from which to choose:

  • Join one to one—This option summarizes all the matching features to each feature being joined.
  • Join one to many—This option joins all the matching features to the join layer.

For example, suppose we wanted to find supermarkets within 2 kilometers of a farmers market. In this case the layer being joined to has a single feature representing a farmers market, and the joining features represents the local grocery stores which has attributes such as total annual sales. Using the Join Features tool, we find that five grocery stores meet that criteria. If we specified a join operation of Join one to many, we would end up with five features in our result, each row representing the farmers market and a supermarket. If we specified a Join one to one relationship, we would end up with one feature representing the farmers market and the summarized information from the supermarkets, such as the count (2), and other statistics such as the sum of annual sales.

Select one or more joins


You may apply one, two, or three join types. The types of joins include the following:

  • Spatial—Uses a specified spatial relationship to join features. This requires that both layers have a geometry.
  • Temporal—Uses a temporal relationship to join features. This requires time to be enabled on both layers.
  • Attribute—Joins features based on equal fields.

Choose a spatial relationship


The spatial relationship that will determine if features are joined to each other. The available relationships will depend on the type of geometry (point, polyline, polygons) being used as the input features. The available relationships include the following:

  • Intersects—The feature will be matched if they intersect each other.
  • Equals—The features will be matched if they have the same geometry.
  • Near—The features will be matched if they are within a specified distance of each other. The target layer must be in a projected coordinate system or the processing spatial reference must be set to a projected coordinate system using the Analysis Environments if a spatial Near relationship is used.
  • Contains—The features will be matched if the layer being joined to is contained in the joining features.
  • Within—The features will be matched if the layer being joined to is within the joining features.
  • Touches—The features will be matched it they have a boundary that touches the feature being joined to.
  • Crosses—The features will be matched if they have a crossing outline.
  • Overlaps—The features will be joined if they overlap.


This distance specifies the radius applied to a spatial near relationship.

Suppose you had a dataset representing a nuclear plant and a dataset representing residences. You could set a 1 kilometer near distance to find houses within 1 kilometer of the nuclear plant.

Choose a temporal relationship


The temporal relationship that will determine if features are joined to each other. This option is only available if time is enabled on both layers and the available relationships will depend on the type of time (instant or interval) being used for the input features. The available relationships include the following:

  • Meets—The feature will be matched if the first feature meets the second.
  • Met By—The feature will be matched if the first features are met by the second.
  • Overlaps—The feature will be matched if the first features overlap the second.
  • Overlapped By—The feature will be matched if the first features are overlapped by the second.
  • During—The feature will be matched if the first features are during the second.
  • Contains—The feature will be matched if the first feature contains the second.
  • Equals—The feature will be matched if the first feature equals the second.
  • Finishes—The feature will be matched if the first feature finishes the second.
  • Finished By—The feature will be matched if the first features are finished by the second.
  • Starts—The feature will be matched if the first feature starts the second.
  • Started By—The feature will be matched if the first features are started by the second.
  • Intersects—The features are mapped if the times intersect at all.
  • Near—The features will be joined if they are near each other, determined by a specified time.


This temporal distance specifics the temporal radius applied to a temporal near relationship.

Suppose you have a layer of boating incidents and a layer of GPS tracks for a hurricane. You could look for boating incidents within a specified distance of hurricane tracks in both space (1 kilometer) and in time (5 hours). This would result in boating incidents joined to hurricanes that occurred close together in space and time.

Choose the fields to match


This relationship will match values in a field from one layer to values in a field in another layer.

For example, suppose we had a countywide geographic layer of residential addresses (including a field ZIP) and a tabular dataset of health demographics by ZIP Code (a field named HEALTHZIP). We can join the health dataset to the residential data by matching the field ZIP to HEALTHZIP, which will result in a layer of residences with the corresponding health data.

Add statistics (optional)


If the join operation is Join one to one, you can calculate statistics on your joined features. By default, all statistics will be calculated.

You can calculate statistics on features that are summarized. On numeric fields you can calculated the following:

  • Count—Calculates the number of nonnull values. Can be used on numeric fields or strings. The count of [null, 0, 2] is 2.
  • Sum—The sum of numeric values in a field. The sum of [null, null, 3] is 3.
  • Mean—The mean of numeric values. The mean of [0, 2, null] is 1.
  • Min—The minimum value of a numeric field. The minimum of [0, 2, null] is 0.
  • Max—The maximum value of a numeric field. The maximum value of [0, 2, null] is 2.
  • Range—The range of a numeric field. This is calculated as the minimum values subtracted from the maximum value. The range of [0, null, 1] is 1. The range of [null, 4] is 0.
  • Variance—The variance of a numeric field in a track. The variance of [1] is null. The variance of [null, 1,1,1] is 1.
  • Standard deviation—The standard deviation of a numeric field. The standard deviation of [1] is null. The standard deviation of [null, 1,1,1] is 1.

On string fields you can calculate the following:

  • Count—The number of nonnull strings.
  • Any—This statistic is a random sample of a string value in the specified field.
All statistics are calculated on nonnull values. The resulting layer will contain a new field for each statistic calculated. Any number of statistics can be added by choosing an attribute and statistic.

All statistics are calculated on nonnull values. The resulting layer will contain a new fields for each statistic calculated. Any number of statistics can be added by choosing an attribute and statistic.

Build an expression to join features by (optional)


Applies a condition to specified fields. Only features with fields that meet these conditions will be joined.

For example, suppose we want to apply a join to a dataset for only those features where health_spending is greater than 20 percent of income. To do this, apply a join condition of $target["health_spending"] > ($join["income"] * .20) using the field health_spending from the first dataset (the dataset features are joined to) and the income field from the second dataset (the dataset being joined).

Join conditions can be applied using the expression calculator.

Choose datastore


GeoAnalytics results are stores to an ArcGIS Data Store and exposed as a feature layer in Portal for ArcGIS. In most cases, results should be stored to the spatiotemporal data store and this is the default. In some cases saving results to the relational data store is a good option. The following are reasons why you may want to store results in the relational data store:

  • Use results in portal to portal collaboration.
  • Enable sync capabilities with your results.

You should not use the relational data store if you expect your GeoAnalytics results to increase, and need to take advantage of the spatiotemporal big data store's capabilities to handle large amounts of data.

Result layer name


This is the name of the layer that will be created in My Content and added to the map. The default name is based on the tool name and the input layer name. If the layer already exists, the tool will fail.

Using the Save result in drop-down box, you can specify the name of a folder in My Content where the result will be saved.