FeatureSet (arcpy)
Summary
FeatureSet objects are a lightweight representation of a feature class. They are a special data element that contains not only schema, but also the data. The FeatureSet object is also how feature data is sent and received from the server.
Discussion
If loading a feature class into a new FeatureSet and modifying the FeatureSet with a geoprocessing tool that modifies the input like Calculate Field or an arcpy function like UpdateCursor, the original feature class will also be modified.
Syntax
Parameter | Explanation | Data Type |
table |
Feature data to be loaded into the FeatureSet object. | String |
Properties
Property | Explanation | Data Type |
JSON (Read Only) |
Returns a JSON representation of the geometry as a string. Tip: The returned string can be converted to a dictionary using Python's json.loads function. | String |
Method Overview
Method | Explanation |
load (table_path) |
Import from a table. |
save (table_path) |
Export to a table. |
Methods
Parameter | Explanation | Data Type |
table_path |
The table to be imported. | String |
Parameter | Explanation | Data Type |
table_path |
The output table to be created. | String |
Code Sample
Load data into a FeatureSet and insert into feature class.
import arcpy
arcpy.env.overwriteOutput = True
arcpy.ImportToolbox("http://flame7/arcgis/services;BufferByVal",
"servertools")
# List of coordinates
coordinates = [[-117.196717216, 34.046944853],
[-117.186226483, 34.046498438],
[-117.179530271, 34.038016569],
[-117.187454122, 34.039132605],
[-117.177744614, 34.056765964],
[-117.156205131, 34.064466609],
[-117.145491191, 34.068261129],
[-117.170825195, 34.073618099],
[-117.186784501, 34.068149525],
[-117.158325598, 34.03489167]]
# Create an in_memory feature class to initially contain the coordinate pairs
feature_class = arcpy.CreateFeatureclass_management(
"in_memory", "tempfc", "POINT")[0]
# Open an insert cursor
with arcpy.da.InsertCursor(feature_class, ["SHAPE@XY"]) as cursor:
# Iterate through list of coordinates and add to cursor
for (x, y) in coordinates:
cursor.insertRow([(x, y)])
# Create a FeatureSet object and load in_memory feature class
feature_set = arcpy.FeatureSet()
feature_set.load(feature_class)
results = arcpy.BufferPoints_servertools(feature_set)