3 votos

Establecer una política / regla de división en un campo sin dominio en ArcMap

¿Puede definir una política de división o regla de división en un campo sin un dominio? Cuando hay un dominio involucrado, puede establecer el valor predeterminado del campo y elegir una regla para cuando una característica se divide o fusiona.

El setSplitRule existe, pero las únicas dos opciones son 'Ninguno' o 'Proporción'. 'Ninguno' establece los atributos en una copia del valor original. http://resources.arcgis.com/en/help/main/10.2/index.html#//018z0000004v000000

Estoy buscando establecer un campo en el Valor Predeterminado (nulo) en lugar de copiar el valor de la característica original.

3voto

Steve Puntos 11

En realidad, son dos cosas diferentes. Las herramientas de geoprocesamiento no respetan las políticas de división de clases de entidades o tablas como se señala en la mayoría de las páginas de ayuda para las herramientas - esta, por ejemplo (busca el triángulo amarillo de exclamación). Esas son las políticas establecidas mediante dominios, y ahí es donde entra esa tercera opción de Predeterminado. Hasta donde sé, esta funcionalidad no está disponible sin el uso de dominios.

Con una operación realizada en una Capa de Entidades puedes especificar una política de ratio como propiedad de esa capa de entidades, pero no tienes la elección de Predeterminado porque en realidad no es una política de división/fusión - solo usa ratio o no lo hagas.

Creo que el mismo principio se aplica en el método de campo arcpy al que enlazas aunque allí lo llaman regla de división. Si entiendo correctamente, las políticas de división/fusión solo entran en efecto durante tareas de edición, en contraposición a las herramientas de geoprocesamiento.

1voto

rowntreerob Puntos 131

Haría de esto un comentario, pero quería publicar el siguiente código que puede ayudar a entender cómo usar un objeto de información de campo, o al menos agregar un ejemplo (de aquí: https://geonet.esri.com/message/287684#287684). La clave resultó ser (y obviamente en ese hilo estábamos todos luchando con eso) que la información de campo se modifica como un objeto en memoria y está disponible para ser aplicada a otras capas en el procesamiento posterior.

inFeaturesAlb = "blocks_01_alb.shp"  

# Crear un objeto de descripción  
desc = arcpy.Describe(inFeaturesAlb)  

# Crear un objeto de información de campo  
field_info = desc.fieldInfo  

# Obtener el índice de campo y establecer la regla de división  
field_info.setSplitRule(field_info.findFieldByName("POP10"), "RATIO")    

layer = "temp_layer"  
arcpy.MakeFeatureLayer_management(inFeaturesAlb, layer, '', '', field_info)  

######################################################################      
#Hacer la intersección  
#####################################################################       
intOut = "State_01_int_3.shp"      
inFeatures_int = [USA_layer, layer]  

arcpy.Intersect_analysis(inFeatures_int, intOut)

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