"The frequency illusion (also known as the Baader–Meinhof phenomenon) is a cognitive bias in which a person notices a specific concept, word, or product more frequently after recently becoming aware of it."
The frequency illusion is happening to me. I have a friend taking a GIS class and he asked me what the difference was between a feature class and a feature layer. Cut to a week later, I received some user feedback describing their bewilderment regarding terms prefixed with "feature". Not to mention that I see the word "feature" everywhere!
Upon explaining to my friend what it is in my brain regarding "feature class" and "feature layer", I realized that my definitions were specific to where I have spent my GIS career. This means some context around where "feature" is being used is needed. Let's break down some of the more common places among the Esri stack that rely on this root word.
Before we jump in, let's define "feature" in the general geographic sense:
Feature:
Any part of the earth's surface, or anything found on the earth's surface, that can be represented on a map. Features can represent various types of geographic entities, such as points, lines, polygons, or more complex objects like networks or surfaces.
Feature Definition | GIS Dictionary
Or, to be GIS specific:
Feature data:
Geographic entities (or features) represented as points, lines, and polygons.
Feature Data Definition | GIS Dictionary
Now that we understand the root word, let's look at its different variations and combinations.
This includes file geodatabases, enterprise geodatabases, data warehouses, SQLite, MS Access (personal gdb) and the like. Here are the common terms prefixed by "feature":
Feature Class:
A collection of geographic features of the same type of geometry (point, line, polygon), the same attributes and the same spatial reference.
Feature Class Definition | GIS Dictionary
Feature Dataset:
A collection of feature classes maintained within a single data structure. Think of a feature dataset as a container of feature classes with the same spatial reference.
Feature Dataset Definition | GIS Dictionary
Notice that the feature class definition from the GIS Dictionary does not mention any type of data storage. There are other data storage types that are not found in a geodatabase. Shapefiles are also considered feature classes. Other types of GIS storage formats may or may not be officially classified as feature classes but items such as KML, GML, GeoJson could also be labeled as such.
In this discussion, ArcGIS Enterprise means ArcGIS Server and ArcGIS Portal. These technologies are from where spatial data is typically accessed. That could be from ArcGIS Pro, some Web GIS application or their web interfaces.
The GIS Dictionary says a feature layer is a "layer that references a set of feature data". This is true but we are working within the context of ArcGIS Enterprise. This context pushes us to expand the word to denote its data storage.
Feature Layer:
The ArcGIS Enterprise documentation splits off into two basic types. Hosted feature layers are created when you publish a feature layer to ArcGIS Enterprise from ArcGIS Pro or from files in the portal. These layers are backed by data that is copied to a system-maintained data store.
If Feature Layer is the abstract term for "layer that references a set of feature data" then what are the specific types? These include - Tile Layer, Scene Layer, 3D Tile Layer, Video Layer, Imagery Layer, Group Layer etc. And, to make matters more confusing, a Feature Layer is a type of Feature Layer. Think of the non-abstract Feature Layer as a feature class published to an enterprise.
Feature layers—Portal for ArcGIS | Documentation for ArcGIS Enterprise
Feature Service:
Feature services allow you to serve feature data and nonspatial tables over the internet or your intranet. Think of a feature service as its REST components from ArcGIS Server or through the Portal's data store. A feature service is also defined as an ArcGIS Server feature layer mentioned above.
Feature services—ArcGIS Server | Documentation for ArcGIS Enterprise
The ArcGIS Python API allows one to access GIS data from ArcGIS Enterprise, file-based data such as file geodatabase feature classes and shapefiles. One can also work with OGC data, GeoJson and spatially enabled files like CSV and Excel sheets. When discussing the "feature" terms in the ArcGIS Python API context, we're dealing with Pythonic object types.
When accessing data from ArcGIS Enterprise, there are typically three types of objects representing feature data.
FeatureLayerCollection:
A Feature Layer Collection is a representation of a Feature Service. A feature layer collection can have one or more feature layers within.
FeatureLayerCollection: arcgis.features module | ArcGIS API for Python | Esri Developer
FeatureLayer:
Consider a feature layer a single item in a feature layer collection. A feature layer can also be accessed directly but it will only represent one GIS entity.
FeatureLayer: arcgis.features module | ArcGIS API for Python | Esri Developer
FeatureCollection:
Ugh, I know. A FeatureCollection object is an in-memory collection of features. It is an object that has a layer definition and a FeatureSet.
FeatureCollection: arcgis.features module | ArcGIS API for Python | Esri Developer
FeatureSet / Feature:
A feature set is collection of features. Think of a FeatureSet as a query with multiple results returned. A single result would be a feature.
FeatureSet: arcgis.features module | ArcGIS API for Python | Esri Developer
Feature: arcgis.features module | ArcGIS API for Python | Esri Developer
So it looks like context matters. There are many concepts wrapped up in very similar sounding terms and many of those terms are used interchangeably. In my experience, it boils down to a feature is one entity, feature classes and feature layers are collections of similar features and collections are many feature layers in one collection.
What are your thoughts? Have you ever run into confusing terminology in the GIS world?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.