Mini Tutoriales | ArcGIS Pro
Automatización de atributos con reglas de cálculo en ArcGIS Pro
Por: Elizabeth Pareja - GeoSpatial Analyst
Las reglas de atributos mejoran la experiencia de edición y perfeccionan la integridad de los datos para los datasets de geodatabase. Son reglas definidas por el usuario que se pueden usar para rellenar automáticamente los atributos, restringir las ediciones no válidas durante las operaciones de edición y realizar comprobaciones de garantía de calidad en las entidades existentes.
En este minitutorial aprenderás a crear y aplicar reglas de atributo para una capa de monitoreo en ArcGIS Pro. Las reglas de cálculo permiten automatizar la generación de valores en los campos de una capa de forma inmediata durante las operaciones de edición. Estas reglas se ejecutan según el evento desencadenador definido en su configuración, utilizando el lenguaje Arcade como motor de expresión.
El objetivo en este ejemplo será configurar una capa de puntos (Puntos_Monitoreo) dentro de una File Geodatabase (.gdb) para automatizar el cálculo de Coordenadas UTM (Este y Norte), distancia a la vía más cercana, y ROL (nombre o código de la ruta más cercana). Para esto, utilizaremos datos públicos.
Antes de comenzar, ejecuta ArcGIS Pro con tus credenciales de usuario.
Paso 1: Crea o conecta el archivo Geodatabase y la capa base
En ArcGIS Pro Crea o conecta la File Geodatabase y la capa base, Las reglas de atributo solo funcionan dentro de una Geodatabase. En el panel Catalog, clic derecho sobre tu carpeta de trabajo → New > File Geodatabase.
Luego haz clic sobre la nueva GDB → New > Feature Class. Nombra la capa Puntos_Monitoreo y selecciona el tipo Point Features y el sistema Coordinate System: tu proyección UTM. Agrega los Campos. Clic en Finish.
Paso 2: Importa la capa de referencia "Red Vial"
Esta capa servirá como referencia para calcular la distancia y el nombre Rol de la vía más cercana. Arcade utilizará sus geometrías y su campo ROL. En la misma GDB → clic → Import→ FeatureClass. Seleccionas la capa Red_Vial (Input Features).
Paso 3: Agregar campo Global ID
ArcGIS necesita un identificador único y permanente para cada entidad antes de asociarle reglas. Dirígete en el panel Catalog y haz clic sobre Puntos_Monitoreo en la GDB → Selecciona Manage → Global IDs.
Paso 4: Definir reglas de atributo
Abrir el Administrador de Reglas, aquí se definen las reglas de atributo. Cada una contiene el campo afectado, el evento que la activa (Insert/Update) y la expresión Arcade que ejecuta el cálculo. Selecciona en el panel Catalog sobre Puntos_Monitoreo → Data Design > Attribute Rules.
5: Crear regla de cálculo de coordenadas
Crear la regla para cálculo de coordenadas Este y Norte UTM WGS84. En Attribute Rules, en la pestaña Calculation, haz Clic en Add Rule. Ingresa los parámetros y la expresión arcade para Este:
Rule Name: Calc_Este
Field: Este_UTM_m
Expression Arcade:
var g = Geometry($feature);
if (IsEmpty(g)) { return null; }
return g.x;
Triggers: Insert,Update
Active: Shape.
Clic en Add Rule e ingresa los parámetros para la regla de calculo de Norte:
Rule Name: Calc_Norte
Field: Norte_UTM_m
Expression Arcade:
var g = Geometry($feature);
if (IsEmpty(g)) { return null; }
return g.x;
Triggers: Insert,Update
Active: Shape.
Dirígete a guardar en la cinta ribbon pestaña Attributes Rules → Save
6: Cálculo de distancia más corta a la vía más cercana
Crear la regla “Calc_Dist_Via_km” . Esta regla busca la distancia más corta desde el punto hasta la vía más cercana. Arcade recorre cada línea de Red_Vial, mide la distancia al punto y devuelve la menor. El cálculo se actualiza automáticamente si el punto se mueve. En Attribute Rules, en la pestaña Calculation, haz Clic en Add Rule. Ingresa los parámetros y la expresión arcade.
Rule Name: Calc_Dist_Via_km
Field: Dist_Via_km
Triggers: Insert,Update
Active: Shape.
Expression Arcade:
var g = Geometry($feature);
if (IsEmpty(g)) { return null; }
var p2d = Point({
'x': g.x,
'y': g.y,
'spatialReference': Geometry($feature).spatialReference
});
var vias = FeatureSetByName($datastore, "Red_Vial", ["OBJECTID", "Shape"], true);
if (IsEmpty(vias)) { return null; }
var radios = [200, 500, 1000, 5000, 10000, 100000];
var min_m = Infinity;
for (var i in radios) {
var r = radios[i];
var zona = Buffer(p2d, r);
var cand = Intersects(vias, zona);
if (Count(cand) > 0) {
for (var v in cand) {
var vg = Geometry(v);
if (!IsEmpty(vg)) {
var d = Distance(p2d, vg);
if (!IsNan(d) && d < min_m) {
min_m = d;
}
}
}
break;
}
}
if (min_m == Infinity) {
return null;
} else {
return Round(min_m / 1000.0, 3);
}
Dirígete a guardar en la cinta ribbon pestaña Attributes Rules → Save
7: Cálculo para identificación de ruta
Crear la regla “Calc_ROL, Identifica la vía o ruta más cercana y copia su ROL. Esta permite saber a qué ruta está asociado cada punto de monitoreo. Desde Attribute Rules, en la pestaña Calculation, haz Clic en Add Rule.
Rule Name: Calc_ROL
Field: ROL
Triggers: Insert,Update
Active: Shape.
Expression Arcade:
var g = Geometry($feature);
if (IsEmpty(g)) { return null; }
var p2d = Point({
'x': g.x,
'y': g.y,
'spatialReference': Geometry($feature).spatialReference
});
var vias = FeatureSetByName($datastore, "Red_Vial", ["OBJECTID", "Shape", "ROL"], true);
if (IsEmpty(vias)) { return null; }
var radios = [200, 500, 1000, 5000, 10000, 100000];
var min_m = Infinity;
var bestROL = null;
for (var i in radios) {
var r = radios[i];
var zona = Buffer(p2d, r);
var cand = Intersects(vias, zona);
if (Count(cand) > 0) {
for (var v in cand) {
var vg = Geometry(v);
if (!IsEmpty(vg)) {
var d = Distance(p2d, vg);
if (!IsNan(d) && d < min_m) {
min_m = d;
bestROL = DefaultValue(v.ROL, null);
}
}
}
break;
}
}
if (min_m == Infinity) {
return null;
} else {
return bestROL;
}
Dirígete a guardar en la cinta ribbon pestaña Attributes Rules → Save
8: Pon a prueba las reglas
Verifica y prueba, asegúrate de que las 4 reglas estén Enabled , y Exclude from application evaluation: debe estar desmarcado. Dirígete al mapa y agrega las capas Puntos_Monitoreo y Red_Vial. Actívalas en la pestaña Edit → Create Features y crea un punto para verificar el cálculo en los atributos.
9: Carga de datos
Carga los datos utilizando la herramienta Append con reglas activas. La herramienta se encuentra en el panel de Geoprocessing > Toolsboxes> Data Management Tools > General > Append. Al insertar nuevos registros, ArcGIS Pro ejecutará automáticamente las reglas con el Trigger = Insert que configuramos en las reglas.
Siguiendo este minitutorial podrás simplificar tus flujos de trabajo y ahorrar tiempo en tus gestiones.
Video Tutorial
Revisa más de nuestros mini tutoriales en esta página.