ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Ayuda
  • Sign Out
ArcGIS Desktop

ArcGIS Online

La plataforma de representación cartográfica para tu organización

ArcGIS Desktop

Un completo SIG profesional

ArcGIS Enterprise

SIG en tu empresa

ArcGIS for Developers

Herramientas para crear aplicaciones basadas en la ubicación

ArcGIS Solutions

Plantillas de aplicaciones y mapas gratuitas para tu sector

ArcGIS Marketplace

Obtén aplicaciones y datos para tu organización.

  • Documentación
  • Soporte
Esri
  • Iniciar sesión
user
  • Mi perfil
  • Cerrar sesión

ArcMap

  • Inicio
  • Introducción
  • Cartografiar
  • Analizar
  • Administrar datos
  • Herramientas
  • Extensiones

Trabajar con conjuntos de entidades y conjuntos de registros

  • Crear y utilizar objetos de FeatureSet y RecordSet
  • Ejemplo: cargar datos en un conjunto de entidades utilizando cursores y una clase de entidad en memoria

Los objetos FeatureSet son representaciones ligeras de una clase de entidad. Son elementos de datos especiales que no solo contienen esquemas (tipo de geometría, campos, referencia espacial) sino también datos, incluida la geometría. Los objetos RecordSet son similares, pero comparables a una tabla. Cuando se utilizan en una herramienta de secuencia de comandos, los conjuntos de entidades y los conjuntos de registros se pueden utilizar para definir entidades y registros interactivamente.

Nota:

Las herramientas de servidor se comunican mediante conjuntos de entidades y conjuntos de registros, lo que significa que los datos se deben crear con estos objetos o cargados en ellos al utilizar las herramientas del servidor.

Las clases FeatureSet y RecordSet tienen los dos mismos métodos.

PropiedadExplicación

load

Importe una clase de entidad en el objeto FeatureSet.

save

Exporte a una clase de entidad de geodatabase o un shapefile.

Clase FeatureSet

PropiedadExplicación

load

Importe una tabla en el objeto RecordSet.

save

Exporte a una tabla de geodatabase o un archivo dBASE.

Clase de RecordSet

Crear y utilizar objetos de FeatureSet y RecordSet

Los objetos FeatureSet y RecordSet se pueden crear de diversas maneras según la necesidad y la aplicación. El método load se puede utilizar para agregar nuevas entidades o filas al objeto y el método save para conservar las entidades o filas en el disco. Además, la tabla o la clase de entidad de entrada se puede suministrar como argumento para la clase. Los objetos FeatureSet y RecordSet también se pueden utilizar directamente como entrada de una herramienta de geoprocesamiento.

Cree un conjunto de entidades vacío.

import arcpy

# Create an empty FeatureSet object
feature_set = arcpy.FeatureSet()

Construir un conjunto de entidades a partir de una clase de entidad de entrada.

import arcpy

# Construct a FeatureSet from a feature class
feature_set = arcpy.FeatureSet("c:/base/roads.shp")

Función GetParameterValue

Si desea crear un conjunto de entidades o un conjunto de registros con el esquema específico de la entrada de una herramienta, utilice GetParameterValue() para crear un objeto FeatureSet o RecordSet vacío con el esquema adecuado.

import arcpy

# Add a custom server toolbox
arcpy.ImportToolbox("http://flame7/arcgis/services;BufferByVal", "servertools")

# Get the default input from a tool
in_recordset = arcpy.GetParameterValue("bufferpoints", 0)

Usar la función GetParameter

Al trabajar con herramientas de secuencia de comandos, los objetos FeatureSet y RecordSet se pueden adquirir desde la herramienta mediante la función GetParameter().

import arcpy

# Get the RecordSet from a script tool
in_recordset = arcpy.GetParameter(0)

Más información sobre la función GetParameter

Métodos getInput y getOutput de la clase Result

Al utilizar una herramienta del servidor, debe pedir explícitamente su salida. Cuando la salida es un conjunto de entidades o un conjunto de registros, el método getOutput() de la clase Result se puede utilizar para devolver la salida de la herramienta en un objeto FeatureSet o RecordSet. Además, se puede usar el método getInput del objeto Result para obtener un objeto FeatureSet o RecordSet de entrada.

import time
import arcpy

# Add a toolbox from a server
arcpy.ImportToolbox("http://flame7/arcgis/services;GP/BufferByVal",
                    "servertools")

# Use GetParameterValue to get a featureset object with the default
# schema of the first parameter of the tool 'bufferpoints'
in_featureset = arcpy.GetParameterValue("bufferpoints", 0)

# Load a shapefile into the featureset
in_featureset.load("c:/base/roads.shp")

# Run a server tool named BufferPoints with featureset created above
result = arcpy.BufferPoints_servertools(in_featureset, "5 feet")

# Check the status of the result object every 0.2 seconds until it
# has a value of 4 (succeeded) or greater
while result.status < 4:
    time.sleep(0.2)

# Get the output FeatureSet back from the server and save to a
# local geodatabase
out_featureset = result[0]
out_featureset.save("c:/temp/base.gdb/towers_buffer")

Ejemplo: cargar datos en un conjunto de entidades utilizando cursores y una clase de entidad en memoria

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)

Temas relacionados

  • Un recorrido rápido por el uso de Conjunto de entidades y Conjunto de registros

ArcGIS Desktop

  • Inicio
  • Documentación
  • Soporte

Plataforma ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Acerca de Esri

  • Quiénes somos
  • Empleo
  • Blog de Esri
  • Conferencia de usuarios
  • Cumbre de desarrolladores
Esri
Díganos su opinión.
Copyright © 2019 Esri. | Privacidad | Legal