1 votos

unión espacial por coincidencia de atributos desde shapefile

Necesito unir espacialmente el shapefile que tiene atributos, es decir, seleccionar por atributo que sigue siendo el mismo para el objetivo y unirse a la característica y obtener la salida como por atributo seleccionado Quiero preparar un modelo para optimizar el flujo de trabajo Soy nuevo en el model builder y estoy usando 9.3 arc GIS cualquier script o modelo será de gran ayuda.

unión espacial por coincidencia de atributos entre línea y ploygon con atributo de puntos. Es decir, el iterador no está disponible en la versión inferior, por lo que no pudo probarlo.

1voto

Markus Olsson Puntos 12651

Simplemente puede incorporar el Unión espacial que está disponible en ArcGIS 9.3, en su modelo.

Como alternativa, puede utilizar las secuencias de comandos de Python en 9.3:

    # Create the geoprocessor object
import arcgisscripting, sys

gp = arcgisscripting.create()

# Want to join USA cities to states and calculate the mean city population
# for each state
targetFeatures = "C:/data/USA.gdb/states"
joinFeatures = "C:/data/USA.gdb/cities"

# Output will be the target features, states, with a mean city population field (mcp)
outfc = "C:/data/USA.gdb/states_mcp"

# Create a new fieldmappings and add the two input feature classes.
fieldmappings = gp.CreateObject("FieldMappings")
fieldmappings.AddTable(targetFeatures)
fieldmappings.AddTable(joinFeatures)

# First get the POP1990 fieldmap. POP1990 is a field in the cities feature class.
# The output will have the states with the attributes of the cities. Setting the
# field's merge rule to mean will aggregate the values for all of the cities for
# each state into an average value. The field is also renamed to be more appropriate
# for the output.
fieldmap = fieldmappings.GetFieldMap(fieldmappings.FindFieldMapIndex("POP1990"))

# Get the output field's properties as a field object
field = fieldmap.OutputField

# Rename the field and pass the updated field object back into the field map
field.Name = "mean_city_pop"
field.AliasName = "mean_city_pop"
fieldmap.OutputField = field

# Set the merge rule to mean and then replace the old fieldmap in the mappings object
# with the updated one
fieldmap.MergeRule = "mean"
fieldmappings.ReplaceFieldMap(fieldmappings.FindFieldMapIndex("POP1990"), fieldmap)

# Delete fields that are no longer applicable, such as city CITY_NAME and CITY_FIPS
# as only the first value will be used by default
x = fieldmappings.findfieldmapindex("CITY_NAME")
fieldmappings.removefieldmap(x)
x = fieldmappings.findfieldmapindex("CITY_FIPS")
fieldmappings.removefieldmap(x)

#Run the Spatial Join tool, using the defaults for the join operation and join type
gp.SpatialJoin(targetFeatures, joinFeatures, outfc, "#", "#", fieldmappings)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X