Esri ArcGIS Feature Service Reader/Writer (FME Form Package)
The Esri ArcGIS Feature Service Reader/Writer can read or write data from a standalone Esri ArcGIS Feature Service or a feature service hosted on ArcGIS Online, or an ArcGIS Enterprise instance.
Integrating this Format with FME Form
Download from FME Hub |
|
Dependencies |
FME 2024.2 or greater (b24187+) |
Product and System Requirements
Format |
Product |
Operating System |
||||
---|---|---|---|---|---|---|
Reader/Writer |
FME Form |
FME Flow |
FME Flow Hosted |
Windows 64-bit |
Linux |
Mac |
Reader |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Writer |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Overview
The Esri ArcGIS Feature Service format can be used to access feature services located on an ArcGIS site. ArcGIS Online and ArcGIS Enterprise are platforms for sharing and publishing geospatial data to the public, or privately within an organization. Data uploaded to ArcGIS Online or ArcGIS Enterprise can be visualized on the web.
Feature services can either be accessed through an account on ArcGIS Online or Enterprise, or directly via the feature server URL.
In FME, a Feature Service corresponds to a reader or a writer, and a layer or table within a Feature Service is a feature type.
Each layer contains features of a single geometry type. Tables are effectively layers that have no geometry. Raster layers of feature services are not supported and will not be displayed as valid feature types.
Some feature servers require HTTPS access. If you are connecting via a proxy server, ensure that it supports HTTPS.
- Esri ArcGIS Server Feature Service Reader/Writer (ARCGISFEATURES)
- Esri ArcGIS Online (AGOL) Feature Service Reader/Writer (ARCGISONLINEFEATURES)
- Esri ArcGIS Portal Feature Service Reader/Writer (ARCGISPORTALFEATURES)
The reader and writer support a wide variety of feature services. Certain operations (for example, Asynchronous Writes) may not be supported by all feature services, especially if the feature services were created on an older version of ArcGIS Enterprise.
Duplicate Layer Names
Feature services can contain duplicate layer names.
The Esri ArcGIS Feature Service Reader resolves ambiguity by appending the layer ID to the end of feature types if multiple layers share the same name. If a layer ID is present in the feature type, the ID takes precedence over the name.
Authentication
The ArcGIS Feature Service Reader/Writer provides multiple authentication options.
- [OAuth] – Users can use the Esri ArcGIS Online OAuth Web Service to authenticate to feature servers on Esri ArcGIS Online. For feature servers on an Esri ArcGIS Enterprise installation, an OAuth connection can be created using a connection created from an Esri ArcGIS Enterprise OAuth (Template) template Web Service.
- [Token] – Users can use the Esri ArcGIS Generate Token Web Service and login credentials to generate a token or the Esri ArcGIS Provide Token Web Service and provide their own token
- [Login] – Users can use Esri ArcGIS Login Web Service to authenticate via NTLM, HTTP Basic, or HTTP Digest.
- [IWA] – Users can authenticate via Kerberos (or Integrated Windows Authentication (IWA)). This authenticates as the current Windows user. This option is supported only on Windows systems connected to a domain.
Feature services can also be read anonymously without authentication. Some Feature Services may require anonymous access, and reject the access token used for listing Feature Services. In this scenario, the reader/writer will re-attempt the request without an access token.
Reader Overview
The Esri ArcGIS Feature Service Reader reads features from the layers in a Feature Service. Feature servers return features in JSON format, which are then converted into FME features.
Each Feature Service layer corresponds to a single FME feature type. Each layer contains features of a single geometry type.
Layers may be defined before they are read. A definition that specifies a subset of attributes will reduce data transfer and processing time. If a definition is not present for a layer (such as when using the FeatureReader transformer), all fields and records will be retrieved.
The reader supports reading Z-values and measures.
Writer Overview
The writer uses the ArcGIS REST API to create Feature Services and write features.
Insert, Update, and Delete operations are all batched into one or more request(s) per feature type. Upsert operations will be performed in a separate request for each feature type. If the operation for any single feature fails, then all other write operations in that batch are automatically rolled back if supported by the server. If the feature server API returns an error for any write operation, the writer will pass the error messages to the log and then stop.
If an existing Feature Service layer supports Z or M values, then these values are supported by the writer. However, it is currently not possible to create new Feature Service layers with Z or M support.
Feature Service Creation
If the Feature Service specified in the writer feature type parameters does not exist and the writer mode for all feature types is Insert, then the writer will create the Feature Service.
The mechanics of this operation differ significantly from writing to an existing Feature Service.
After a Feature Service is created, layers on the Feature Service will be created when the first features for the corresponding feature type are uploaded. Attribute indexes set on the FME feature type will be honored when creating the layer.
Aliases for fields can be defined as part of the layer creation process. Consider the user attribute foo. If the first feature to the feature type contains an unexposed attribute named foo_alias, this attribute value will be set as a field alias on the created layer. Aliases must be unique within a layer.
Object (Feature) IDs
When a Feature Service is created, every layer will be assigned a new field which serves as the primary key , known as the OBJECTID field. The default name for this field is usually OBJECTID, but it is possible for layers to assign this field a different name. A field with type OID will be treated by the writer as an Object ID field.
When the feature operation is set to Update or Delete, a value must be provided for the attribute that corresponds to the Object ID field. If the attribute is not present, the writer will output an error message that specifies the name of the required attribute.
Layer Creation
Layers can only be created as part of creating a Feature Service. Creating new layers in an existing Feature Service is not supported at this time. Feature types that do not correspond to a layer in an existing Feature Service will result in an error.