Select to view content in your preferred language

# Speeding up a large spatial join

1178
3
08-12-2014 05:26 AM
New Contributor III

Hi folks.

I want to join a layer of elevation points (~47 million of them for this given county) to a layer of features (~1700) that I want to know the elevation of. Is there a way to speed this process up or just generally make it less awful? My machine has 8gb of ram and 3+ ghz of processing power and it got through less than 1/6 of the points in about an hour. Do I just need to brute force it and let it run for a day?

Tom

Tags (2)
1 Solution

Accepted Solutions
Esri Esteemed Contributor

I wouldn't join those 47 million points with your 1700 features. For these types of analysis it is custom to convert your elevation points to a Digital Elevation Model (DEM). Use Spatial Analyst of 3D Analyst for this purpose.

Depending the type of geometry of your features you can do various things:

• For polygons perform a zonal statistics (as table), using your polygons as zones and the DEM as value raster. This will yield statistics (min, max, mean, etc) for each polygon (Spatial Analyst required)
• In case of points you can use the Extract Values to Points tool that will retrieve a single elevation for each point (Spatial Analyst required)
• For lines I would probably convert them to raster using a unique identifier and do the Zonal Statistics (Spatial Analyst required).

In case you don't have 3D Analyst and/or Spatial Analyst, select relevant features by a select by location, using a small buffer. Export that selection to a separate layer and perform the join...

Kind regards, Xander

3 Replies
Esri Esteemed Contributor

I wouldn't join those 47 million points with your 1700 features. For these types of analysis it is custom to convert your elevation points to a Digital Elevation Model (DEM). Use Spatial Analyst of 3D Analyst for this purpose.

Depending the type of geometry of your features you can do various things:

• For polygons perform a zonal statistics (as table), using your polygons as zones and the DEM as value raster. This will yield statistics (min, max, mean, etc) for each polygon (Spatial Analyst required)
• In case of points you can use the Extract Values to Points tool that will retrieve a single elevation for each point (Spatial Analyst required)
• For lines I would probably convert them to raster using a unique identifier and do the Zonal Statistics (Spatial Analyst required).

In case you don't have 3D Analyst and/or Spatial Analyst, select relevant features by a select by location, using a small buffer. Export that selection to a separate layer and perform the join...

Kind regards, Xander

New Contributor III

Hi Xander,

I actually already have DEM's of the county in question. I am rather new to GIS and was unsure of how to go about this. I downloaded the DEM's online, converted them to raster and then did a raster to point shapefile. Currently I also have a full raster image (converted from the ~30 DEM's I downloaded and mosaic'd together) of the county. Can I perform the extract values to points on that raster image?