Spatial Joins in ArcGIS Pro
Revised 6 June 2026
A join is a database operation where two tables are connected based on common key values. Joins are very commonly used for processing and analyzing geospatial data.
A spatial join connects two datasets based on a spatial relationship where attribute values are transferred from a set of features in a join layer to a target layer. The ability to use spatial relationships as join keys is a unique characteristic of geospatial data that permits analysis of a variety of social and environmental phenomena.
This tutorial covers basic spatial join techniques that you can use in ArcGIS Pro. Most of the examples will use data from the US Census Bureau.
All videos in this tutorial are silent.
Summarize
Spatial joins can be used to summarize attributes from one layer into another based on the spatial relationships between features.
These examples use hospital and demographic data.
- Hospital points (Hospitals) are from the Minn 2024 US Hospitals feature service in the University of Illinois ArcGIS Online organization, which was originally sourced from Oak Ridge National Laboratories via the US Department of Homeland Security Homeland Infrastructure Foundation-Level Data (HIFLD). The points are filtered to show only Level I and II trauma centers that can provide critical care for patients suffering from traumatic injuries such as those involving firearms, motor vehicles, or farm equipment.
- County demographics are from the Minn 2020-2024 ACS Counties feature service (Counties) originally sourced from the US Census Bureau American Community Survey 2020-2024 five year estimates and TIGER/Line shapefiles.
Summarize Points in Polygons
Spatial joins can be used to get counts of points within polygons and summarize point attributes.
This example aggregates hospital bed counts by county in Illinois.
- Use the Summarize Within tool to perform a spatial join.
- Input Polygons: Counties
- Input Summary Features: Hospitals
- Output Feature Class: County_Hospitals
- Keep all input polygons: Check this
- Summary Fields: Sum the BEDS field
- Add shape summary attributes: Check for a point count
- Symbolize on the Count of Points field for the count of hospitals in each county.
- Symbolize on the Sum_BEDS field for the total hospital beds in each county.
- You can also use a formula to symbolize by a normalized beds per 100k residents.
Summarize Points Near Polygons
Spatial joins can be used to get counts and attribute summaries of point data nearby polygons to address accessibility to facilities outside the borders of particular areas.
This example summarizes the count of hospital beds at facilities within 15 miles of each census tract in Illinois, which is a rough estimate of accessibility within the "golden hour" for beginning successful acute ischemic stroke treatment (Spiotta et al. 2014).
- Use the Join Features tool to sum the number of beds within 15 miles of each tract.
- Target Layer: Tracts
- Join Layer: Hospitals
- Output Dataset: Tract_Hospitals
- Join Operation: Join one to one
- Spatial Relationship: Planar Near
- Spatial Near Distance: 15 Statute Miles
- Keep All Target Features: Leave checked
- Summary Fields: Sum the BEDS field
- Symbolize on the COUNT field for the count of trauma centers accessible from each census tract. Using the quantile classification method will reveal areas hidden by the use of natural breaks with a heavily skewed distribution.
- Symbolize on the Sum_BEDS field for the total hospital beds in each county.
- You can also use a formula to symbolize by a normalized beds per 100k residents.
Summarize Polygons Near Points
Spatial joins can be used to get counts and attribute summaries from polygons surrounding points.
This example summarizes demographic characteristics of census tracts surrounding each hospital in Illinois.
- Use the Summarize Nearby tool to perform a spatial join.
- Input Features: Hospitals
- Input Summary Features: Tracts
- Output Feature Class: Hospital_Demographics
- Distance Measurement: Straight line
- Distances: 2
- Distance Units: Miles
- Keep polygons with no points: Leave checked
- Summary Fields: Median_Household_Income (mean), Percent_Bachelors_Degree (mean), Median_Age (mean)
- Symbolize by the desired demographic variable.
While ArcGIS Pro does not have a simple feature for creating comparison visualizations across feature classes, you can place charts from different feature classes on the same layout.
- Create box plots for median household income from the Hospital_Demographics and Tracts feature classes.
- Replace the default chart titles to reflect the different feature classes (Near Hospitals, All Tracts).
- Set the same Y-axis scale so the charts are comparable.
- Insert a new 6 x 4 layout (Hospital_Demographics).
- Insert a map frame outside the layout area and zoom to the full map extent. This is needed because you can only add charts to a layout for feature classes displayed in a map frame.
- Insert chart frames for the two chars and size them as 3 x 4 so they are symmetrical.
- Note that if you hide or remove the source layers from the map, the layout will display blank charts in the chart frames.
Proximity
Proximity analysis is the extraction of information from geospatial data based on distance between features. Proximity analysis is especially useful for evaluating two characteristics:
- Influence (core to periphery): Projection of materials or power from central locations outward, such as political control, chemical emissions, or habitat extent
- Accessibility (periphery to core): Ability to reach desirable destinations like transit hubs or green space
Proximity analysis assumes distance decay, where the power of the relationship between locations decreases as distance between locations increases. Distance decay is a fundamental assumption behind gravity models.
- With desirable characteristics (like appeal to tourists), distance decay means that distant locations are less desirable than closer locations (closer locations require less travel effort).
- With undesirable characteristics (like toxic emissions), this means that distant locations are more desirable than closer locations (pollution disperses over space and is less intense the further you are from the source).
Categorical Proximity
Categorical proximity divides areas into two classes (adjacent and non-adjacent) based on proximity to specific locations.
Hospitals are destinations for helicopters and ambulances with sirens 24/7/365. As such, the areas around large hospitals often have levels of noise that are undesirable for residents. Community noise can also have negative effects on hospital patients (Montes-González et al. 2019). Identifying the extent of such areas can be useful to planners for designing zoning to mitigate exposure, or for public health analysts seeking to identify stressors that could affect local residents.
Use of categorical proximity operates on the imperfect assumption of influence or accessibility to a point distributed evenly around the points, and is therefore only useful for rough estimation of influence or accessibility. In the case of dispersions of pollutants a transport model is needed to more accurately model wind and flow patterns and how they transport the toxins. These models can be quite complex (Beyea and Hatch 1999).
- Use the Join Features tool to count the number of hospitals within one mile of each census tract.
- Target Layer: Tracts
- Join Layer: Hospitals
- Output Feature Class: Noise_Tracts
- Keep All Target Features: Check
- Relationship: One to One
- Keep All Target Features: Select this
- Spatial Relationship: Planar near
- Near Distance: 1 mile
- Use the Calculate Field tool to create a categorical field that classifies each tract as near (1) or not near (0) a hospital. This classification creates a numeric value so it can be used as a dummy variable in further analysis like regression.
- Input Table: Noise_Tracts
- Field Type: Long
- Field Name: Near_Hospital
- Expression: reclass(!Count!)
- Code Block:
def reclass(Count): if Count > 0: return 1 else: return 0
- Primary symbology: Unique Values
- Field: Near_Hospital
- Reset colors
Weighted Proximity
Weighted proximity involves measuring the distance between each feature in one set of features to the nearest features in another set of features.
When analyzing phenomenon with distance decay, these distances represent decreasing influence (such as with dilution of pollution further from industrial facilities) or decreasing accessibility (such as with increased walking distance to transit stops.
Use of continuous distances rather than categorical near/not-near classification can be helpful for measuring phenomena where the boundaries of accessibility or influence are ambiguous.
The association between hospital travel time and general health outcomes is mixed (Kelly et al. 2016), although proximity to a hospital has a strong association with mortality for time-sensitive acute conditions like heart attack (Yamashita and Kunkel 2010) and stroke (Acharya et al. 2011).
- Add the Select tool to create a copy of the tracts. You should copy your input features because the Near tool modifies the input feature class, which can cause problems if you need to run the tools multiple times.
- Input Features: Tracts
- Output Feature Class: Distance_Tracts
- Add the Near tool to find the distance between each tract and the nearest hospital.
- Input Features: Distance_Tracts
- Near Features: Hospitals
- Search Radius: 10000 Kilometers (use a large distance to avoid -1 values with tracts that are a long distance from the nearest point)
- Method: Planar
- Field Names (Distance): Miles_to_Hospital
- Distance Unit: Miles
- Add to Display the Hospital_Tracts and symbolize by graduated colors to validate the distances.
Weighted Proximity with Centroids
Because the Near tool uses the nearest edge of polygons to calculate distance, calculations with large or overlapping polygons may result in distances that are unreflective of distance to the majority of the area within the near features.
You can mitigate this issue by calculating distance using polygon centroids.
- Add the Feature to Point tool to create a feature class of area centroids.
- Input Features: Tracts
- Output Feature Class: Tract_Centroids
- Inside: Check to create centroids
- Add the Near tool to find the distance between each tract and the nearest hospital.
- Input Features: Tract_Centroids
- Near Features: Hospitals
- Search Radius: 1000 Kilometers (use a large distance to avoid -1 values with tracts that are a long distance from the nearest point)
- Method: Planar
- Field Names (Distance): Km_to_Hospital
- Distance Unit: Kilometers
- Add to Display the Tract_Centroids and symbolize by graduated colors to validate the distances.
Weighted Proximity with Line Points
Note that the Near tool calculates distance from the nearest adjacent vertex for lines. If you are working with long straight line features with a limited number of vertices, you may want to use the Generate Points Along Lines tool to convert the lines to a sequence of points that will more clearly reflect distance from a point or polygon to the nearest line.
In this example, we convert interstate highway lines to one-mile points and use Near to find stretches of interstate highway where travel time to hospitals for accident victims may be long.
- Add Generate Points Along Lines tool to convert the lines to a sequence of one-mile points.
- Input Features: Interstates
- Output Feature Class: Interstate_Points
- Distance: 1 statute mile
- Add the Near tool to find the distance between each tract and the nearest hospital.
- Input Features: Interstate_Points
- Near Features: Hospitals
- Search Radius: 1000 Kilometers (use a large distance to avoid -1 values with tracts that are a long distance from the nearest point)
- Method: Geodesic. Note that because this data source is unprojected NAD 83, calculated distances will always be in meters. Selecting Planar will use the unit of the data coordinate system (degrees), which is usually useless for distance analysis.
- Field Names (Distance): Meters_to_Hospital
- Add to Display the Interstate_Points and symbolize by graduated colors to validate the distances.
Dissimilar Areas
Spatial joins can be used in situations where you need to join layers of polygons with dissimilar types or boundaries. While such techniques introduce uncertainty, they may be the best acceptable option with some types of data, especially if the underlying aggregated data has meaningful margins of error.
Upsampling Areas
Spatial joins can be used to upsample data from smaller polygons into larger polygons.
This example demonstrates use of a spatial join to join demographic census tract data from the Minn 2020-2024 ACS Tracts feature service (Tracts) to neighborhood boundaries in the City of Chicago (Neighborhoods).
- Run the Feature to Point tool to create a feature class of centroids for census tracts in the analysis county (Tract_Centroids). Centroids are used to roughly approximate whether a majority of residents in each tract are within the buffered area. Centroids also avoid situations where tract boundaries straddle neighborhood boundaries.
- Run the Summarize Within tool.
- Input Polygons: The destination areas (Neighborhoods)
- Input Summary Features: The source areas (Tracts)
- Output Feature Class: Provide a meaningful name (Neighborhood_Demographics)
- Keep all input polygons: Check this
- Summary fields: Provide the name(s) of demographic fields along with the way that the tool should handle multiple tracts that intersect a single destination area. For this example:
- Total Households (sum)
- Median Household Income (mean)
- Median Monthly Rent (mean)
- Median Age (mean)
- Minutes To Work (mean)
- Symbolize by one of the joined variables to verify expected results.
Downsampling Areas
A challenge with polygon joins is that the areas used between different years can have slightly different borders resulting from minor data changes over time. This can result in sliver overlaps where spatial joins average values from adjacent join polygons that are not actually representative of areas covered by target polygons.
- One technique for mitigating that issue is the use of centroids for either the join or target features so that each polygon is only joined to features that are clearly associated.
- If you are dealing with areas like census tracts that are likely to have split or moved between your analysis periods, you can create centroids from the target features that you can then use to get specific values from the join features.
- One disadvantage of this technique is that it will ignore situations where a target feature represents an area that is the combination of two or more join areas.
- A centroid join also produces a point feature classs that you would need to join back to areas if you want to map as a choropleth.
This example analyzes income and population density change in Cook County, IL census tracts between 2010-2014 and 2019-2023.
- Use Feature to Point to convert the target features (Tracts_2023) into centroids (Tracts_2023_Centroids).
- Use Join Features tool to get values from the join polygons in the target centroids.
- Target Layer: Select the polygon layer for the ending period (Tracts_2013).
- Join Layer: Select the polygon layer for the starting period (Tracts 2014).
- Output Name: Browse to the project geodatabase and provide a meaningful name (Tracts_Change).
- Spatial Relationship: Intersects
- Join Operation: Join one to many
- Use the Calculate Field tool to calculate the amount of change (Density_Change).
- If you wish to bring the joined data back into the polygons, use Delete Field to remove unneeded (confusing) fields and Join Features to attribute join the attributes back to the target polygons.
Aggregate Coverage
Spatial joins can be used to calculate the areas of polygon features that are covered by areas in another feature class.
This example estimates the percentage of census tracts in Milwaukee County, WI (Tracts) that are covered with tree canopy based on a feature class of tree canopy polygons (Tree_Canopy) digitized from 2020 lidar data by the Milwaukee County GIS and Land Information Office.
- Use the Tabulate Intersection tool to calculate the area of each tract covered by tree canopy polygons.
- Input Zone Features: The polygons being covered (Tracts)
- Zone Fields: Unique identifier for the Input Zone Features (GEOIDFQ)
- Input Class Features: The covering polygons (Tree_Canopy)
- Output Table: Canopy_Table
- Output Units: Square Meters (same as USCB area unit)
- Use the Join Features tool to join the intersection table with the tracts.
- Target Layer: Tracts
- Join Layer: Canopy_Table
- Output Dataset: Canopy_Tracts
- Keep All Target Features: Check this
- Attribute Relationship: The common key is GEOIDFQ
- Summary Fields
- AREA (Sum)
- PERCENTAGE (Sum)
- Use the Alter Field tool to rename the covered area and percentage to more meaningful values.
- Input Table: Canopy_Tracts
- Field Name: SUM_AREA / SUM_PERCENTAGE
- New Field Name: Canopy_Area / Canopy_Percent
- New Field Alias: Canopy_Area / Canopy_Percent
Categorical Percentage
Spatial joins can be used to calculate percentages of features based on categorical variables.
This example estimates the percentage of waterways by Illinois county that are classified by the US Environmental Protection Agency (EPA) as too polluted or otherwise degraded to support their potential or existing uses (impaired). The original data source is the EPA via the ArcGIS Living Atlas USA Impaired or Threatened Waterbodies lines feature service.
The feature class contains an is_impaired flag (Y/N) to indicate impairment status.
- Use Join Features to sum the total waterway length in each county.
- Target Layer: Counties
- Join Layer: Waterways
- Output Dataset: County_Waterways
- Keep All Target Features: Check this
- Spatial Relationship: Intersects
- Summary Fields: Shape_Length (Sum)
- Use the Select tool to create a Alter Field tool to rename the covered area and percentage to more meaningful values.
- Input Features: Waterways
- Output Feature Class: Waterways_Impaired
- Expression: Is_Impaired is Y
- Use Join Features to sum the total impaired waterway length in each county.
- Target Layer: County_Waterways
- Join Layer: Waterways_Impaired
- Output Dataset: County_Impaired
- Keep All Target Features: Check this
- Spatial Relationship: Intersects
- Summary Fields: Shape_Length (Sum)
- Use the Calculate Field tool to calculate the percentage of total waterway length that is imapired.
Buffers
Buffers are polygons that cover a fixed distance around features.
Buffers are commonly used to visualize proximity to features.Euclidean Buffers
Euclidean buffers are polygons drawn based on Euclidean straight-line distance. While such distances are often unreflective of actual travel time through transport networks or dispersion of pollutants through air or water, they represent a conveniently proxy that is adequate for simple research.
This example creates one kilometer buffers around hospitals in Illinois representing area that might be affected by noise from emergency vehicles.
Add the Buffer tool to create the buffers.
- Input Features: Hospitals
- Output Feature Class: Noise_Buffers
- Distance: 1 kilometer
- Dissolve: None
Travel Time Buffers
Travel time buffers calculate distances based on estimated travel time through transportation networks (roads, railways, sidewalks, etc.). Because people generally experience distance as time, travel time buffers represent a
Travel time calculations require information from databases of travel network links. Those databases require continuous effort to build and maintain, so travel time calculations with ArcGIS Pro involve access to ArcGIS Online services that involve expenditure of ArcGIS Online credits, which must be purchased by the organization managing your ESRI license. Accordingly, you will want to minimize the number of buffers you create avoid unnecessary expenditures and exhaustion of your credit allocation.
In this example we use fifteen minute drive-time buffers around the hospitals to identify residents within the "golden hour" for beginning successful acute ischemic stroke treatment (Spiotta et al. 2014).
- To minimize credit expenditure, we manually select features in St. Clair County, Illinois and then run Export Features tool to copy those features to a new feature class (County_Hospitals).
- Manually run the Generate Drive Time Trade Areas tool to create the drive-time buffers. If you are buffering large numbers of features, you will probably wish to leave the tool out of ModelBuilder to avoid inadvertently running the tool when you re-run a model.
- Input Features: County_Hospitals
- Output Feature Class: Hospital_Travel
- Distance Type: Drive Time
- Distances: 15
- Distance Units: Minutes
Categorical Proximity Analysis with Buffers
Although the Planar Near option in Join Features makes buffers unnecessary for many types of proximity analysis, buffers can also be useful for analysis when working with irregular or non-Euclidean distances like drive time.
For this example we use the drive-time buffers created above to analyze accessibility to hospitals in St. Clair County, Illinois.
- Add the Feature to Point tool to create a feature class of centroids for census tracts in the analysis county. Centroids are used to roughly approximate whether a majority of residents in each tract are within the buffered area.
- Input Features: County_Tracts
- Output Feature Class: County_Centroids
- Inside: Check to create centroids
- Add the Join Features tool to count the number of hospitals within one kilometer of each census tract.
- Target Layer: County_Centroids
- Join Layer: Hospital_Travel
- Output Feature Class: County_Accessible
- Keep All Target Features: Check
- Relationship: One to One
- Keep All Target Features: Select this
- Spatial Relationship: Intersects
- Add the Calculate Field tool to convert the COUNT field to a text field with a more readable name that can be used with a box plot.
- Input Table: County_Accessible
- Field Type: Text
- Field Name: Accessible_Hospitals
- Expression: !Count!
- Select Create Chart and Box Plot
- Numeric field(s): Median_Monthly_Mortgage
- Categories: Accessible_Hospitals
- Aside from the outlying high-income areas with limited hospital accessibility, access to more hospitals was generally associated with more expensive homes in St. Clair County, IL in 2019-2023. However the considerable overlap between distributions indicates that the relationship is weak.
Raster and Elevation Data
While the USCB does not provide raster or elevation data, ArcGIS Pro provides tools that can be used to acquire, clip, and summarize raster data within USCB polygons.
Image Service Download
Image services provide clients with the ability to access raster and image data from a server geodatabase.
- The Living Atlas provides a number of image servers using raster data from US government agencies like the US Geological Survey or NASA.
- Although Living Atlas image services are primarily intended for display, in some cases it is possible to export portions of the image data to rasters in your project geodatabase for further use in ArcGIS Pro.
- When performing rigorous data analysis, such as for hydrological research, you may be better served by accessing GeoTIFF raster files from sites like the USGS EarthExplorer or the National Map downloader.
The National Agricultural Imagery Program (NAIP) is a program begun by the US Department of Agriculture (USDA) in 2002 to collect leaf-on aerial imagery during the agricultural growing season. Aside from research value, the imagery is used to maintain the USDA's Common Land Unit (CLU) database of farm fields across the US (ESRI n.d.).
For this example we demonstrate how to download a portion of the USA NAIP Imagery: Natural Color Living Atlas layer covering Peoria County, Illinois to a raster in the project geodatabase.
- Acquire: Add the desired image service layer to your map.
- Zoom so the extent of your map display covers the desired area for export.
- Store: Right click on the image layer and select Data and Export Raster tool
- Output Raster Dataset: Open the folder, navigate to the project geodatabase, and provide a meaningful name (County_NAIP)
- Coordinate System: Web Mercator (keep the default)
- Make sure the full area you want exported is visible on the map.
- Clipping Geometry: Select Current Display Extent. This will reset the Extent boxes and immediately change to As Specified Below.
- Select Maintain Clipping Extent.
- Raster Properties - Raster Size: Change the Columns and Rows to the maximum of 4000 for highest resolution.
- Click Export.
- Communicate: Remove the ArcGIS Online tile layer and leave only the new raster layer on the map.
Clipped Image Service Download
If you have boundary polygon(s), you can clip the downloaded raster.
- Acquire: Add the desired image service layer to your map.
- Zoom so the extent of your map display covers the desired area for export.
- Store: Right click on the image layer and select Data and Export Raster tool
- Output Raster Dataset: Open the folder, navigate to the project geodatabase, and provide a meaningful name (County_NAIP)
- Coordinate System: Web Mercator (keep the default)
- Clipping Geometry: Select the polygons to which you want to clip.
- Select Use input features for clipping geometry
- Select Maintain Clipping Extent.
- Raster Properties - Raster Size: Change the Columns and Rows to the maximum of 4000 for highest resolution.
- Click Export.
- Communicate: Remove the ArcGIS Online tile layer and leave only the new raster layer on the map.
- You may need to Refresh your Catalog view to see the raster in your project geodatabase.
Point Elevation
If your primary interest is getting elevation values for points and you have fewer than 1,000 features, the Summarize Elevation tool can be used to add an elevation field to a point feature class from ESRI's world elevation service.
This example demonstrates adding elevation values to a point feature class of Chicago Transit Authority "L" Stations.
Area Elevation
As with points, if your primary interest is getting elevation values for areas and you have fewer than 1,000 features, the Summarize Elevation tool can be used to add an elevation field to an area feature class.
This example adds elevation to neighborhood boundaries in the City of Chicago.
Correlation
An initial investigation of relationships between two joined data sets often starts by looking for bivariate correlation between pairs of attributes.
Correlation is "a relation existing between phenomena or things or between mathematical or statistical variables which tend to vary, be associated, or occur together in a way not expected on the basis of chance alone" (Merriam-Webster 2022). While it is important to always remember that correlation and causation are two different things, correlation analysis is a very powerful exploratory technique for determining whether there is a relationship between two variables.
The strength of a correlation is measured using the coefficient of determination which is more commonly called R-squared.This can be written as R2, R squared, R-squared, or R^2.
Evaluation of R-squared to determine whether correlation should be considered strong or not depends on the type of phenomena being studied (Gupta et al. 2024).
- The range of R-squared is from 0.000 (no correlation) to 1.000 (perfect correlation).
- Values of less than 0.100 can usually be considered to represent no meaningful relationship.
- In the social sciences where relationships often involve the complex interplay of ambiguous factors, values as low as the 0.100 to 0.300 range can be considered strong enough to merit further investigation.
- In the natural sciences, values above 0.700 are often expected to consider a model to have a strong fit.
Scatter Plots
Correlation can be visualized by plotting the two variables on an x/y scatter chart and looking for an upward or downward pattern of dots diagonally across the chart.
- Negative correlation means that as one variable goes up, the other goes down. When two variables with a negative correlation are plotted on the two axes of an X/Y scatter chart, the points form a rough line or curve downward from left to right.
- Positive correlation means that as one variable goes up, the other goes up as well. When two variables with a positive correlation are plotted on the two axes of an X/Y scatter chart, the points form a rough line or curve upward from left to right.
- When there is no correlation, the X/Y scatter chart dots have no clear upward or downward pattern.
To create an X-Y scatter chart in ArcGIS Pro:
- Select the layer in the Contents pane, and under Data, Visualize, Scatter configure the chart.
- Choose the variables to compare (MM_BTU_per_Capita and GDP_per_Capita_PPP_Dollars).
- If your fields are highly skewed (visible as most dots clustered in a corner), changing the axis to Log (logarithmic transformation) will make the presence or absence of a pattern clearer. In some cases (like this), using log axes will cause the regression line to be visually misaligned with the points, so removing the line may be less confusing.
- Display the R2 value on the chart.
- Remove the redundant Chart Title.
- If needed, Export the chart.
Local Bivariate Relationships
The Local Bivariate Relationships tool visualizes the variability of the relationship between two variables across geographic space.
The Post Hoc Fallacy
While correlation may be interesting, what we are usually more interested in is causation. Correlation is a simple mathematical relationship between two variables, but causation means that there is a material cause-and-effect relationship between the two phenomenon we are measuring with our variables.
Correlation is empirical (based on observation), and causation is rational (based on reason). When we observe two phenomena occurring together and we observe that there is some mechanism connecting the two phenomena, we use reason and logic to tie those two phenomena together in a cause and effect relationship.
Assuming that correlation proves causation is the post hoc fallacy, from the Latin phrase post hoc ergo propter hoc (after this, therefore because of this). A logical fallacy is "an often plausible argument using false or invalid inference."
For example, the correlation between per capita energy use and level of nuclear power production could lead to a fallacious inference that the use of nuclear power increases energy use.
However, both the presence of nuclear power and high per capita energy use are probably more causally related through a third variable of early economic development, which results in higher energy use and the development of complex and expensive nuclear technology that is both economically out of reach of poorer countries, and which is actively blocked from proliferation for political reasons by wealthy countries.
Correlation points to possible causal relationships, but does not prove them, and there are a variety of logical arguments to show how making a simple assumption that correlation is causation will lead you astray. Determining whether there is a cause-and-effect relationship requires more sophisticated techniques and domain knowledge beyond simple mathematical correlation.