Join Features

Join Features


The Join Features tool 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 Choose Analysis Layer 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 Choose Analysis Layer 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 you wanted to find supermarkets within 2 kilometers of a farmer's market. In this case, the target layer has a single feature representing a farmer's market, and the join layer represents the local grocery stores and has attributes such as total annual sales. Using the Join Features tool, you find that five grocery stores meet the criteria. If you specified a join operation of Join one to many, you would end up with five features in your result, each row representing the farmer's market and a supermarket. If you specified a Join one to one relationship, you would end up with one feature representing the farmer's 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


Specifies the join option used. You can apply one, two, or three of the following join types:

  • 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 that time 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 following available relationships depend on the type of geometry (point, polyline, or polygon) being used as the input features:

  • Intersects—The features 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 Analysis Environments if a spatial Near relationship is used.
  • Contains—The features will be matched if the target layer is contained in the joining features.
  • Within—The features will be matched if the target layer is within the joining features.
  • Touches—The features will be matched if they have a boundary that touches the target feature.
  • Crosses—The features will be matched if they have a crossing outline.
  • Overlaps—The features will be joined if they overlap.


Specifies the radius applied to a spatial near relationship.

For example, if you had a dataset representing a nuclear plant and a dataset representing residences, you could set a 1 kilometer nearSpatial 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 depend on the type of time (instant or interval) used for the input features. The available temporal relationships are as follows:

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


Specifics the temporal radius applied to a temporal near relationship. A temporal near relationship includes Near, Near Before, and Near After.

For example, if 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 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


Matches values in a field from one layer to values in a field in another layer.

For example, if you had a countywide geographic layer of residential addresses (including a ZIP field) and a tabular dataset of health demographics by ZIP Code (a field named HEALTHZIP), you could join the health dataset to the residential data by matching the ZIP field to the HEALTHZIP field. This would result in a layer of residences with the corresponding health data.

Add statistics (optional)


Calculates statistics on the joined features if the join operation is Join one to one. All statistics will be calculated by default.

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

  • Count—Calculates the number of nonnull values. It 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,0,1,1] is 0.25.
  • Standard deviation—The standard deviation of a numeric field. The standard deviation of [1] is null. The standard deviation of [null, 1,0,1,1] is 0.5.

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 field for each statistic calculated. Any number of statistics can be added by choosing an attribute and a 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, if you want to apply a join to a dataset for only those features where health_spending is greater than 20 percent of income, 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 stored to an 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 to the relational data store:

  • You can use results in portal-to-portal collaboration.
  • You can 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


The name of the layer that will be created. If you are writing to an ArcGIS Data Store, your results will be saved in My Content and added to the map. If you are writing to a big data file share, your results will be stored in the big data file share and added to its manifest. It will not be 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.

When writing to ArcGIS Data Store (relational or spatiotemporal big data store) 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.