Copiar clases de entidad de origen
Cada clase de entidad de una geodatabase tiene un Id. de clase de entidad, que es un entero generado automáticamente que identifica de forma única la clase de entidad dentro de una geodatabase. Al copiar una clase de entidad desde una geodatabase a otra, los Id. de clase de entidad del original y la copia probablemente serán diferentes. Si se copia y se pega dentro de la misma geodatabase, los Id. serán sin duda diferentes.
En un dataset de red, los registros y las entidades de origen participantes se hacen a veces referencia mutuamente, en parte, a través de los Id. de clase de entidad. Por tanto, si un Id. de clase de entidad es diferente de lo esperado, las referencias a las entidades se rompen.
Los tipos de datos de red que hacen referencia a Id. de clase de entidad y que, por tanto, pueden tener referencias rotas al copiar los datos, son los giros, los postes indicadores y las tablas de tráfico (en concreto, las tablas Streets-Profiles y Streets-TMC).
Las entidades de giro tienen valores de atributos que hacen referencia a los Id. de clase de entidad de dos o más orígenes de entidades de eje para identificar giros prohibidos o penalizados entre ejes adyacentes.
La tabla Signposts-Streets hace referencia a los Id. de clase de entidad de orígenes de entidades de eje para identificar maniobras etiquetadas entre ejes adyacentes con el fin de proporcionar indicaciones de conducción más detalladas.
La tabla de uniones Streets-Profiles tiene valores de atributos que hacen referencia al Id. de clase de entidad de un origen de entidad de eje para vincular los datos de tráfico históricos a las calles. Del mismo modo, los valores de atributos de la tabla de uniones Streets-TMC hacen referencia al Id. de clase de entidad de los orígenes de eje para ayudar a vincular los datos de tráfico en vivo a las calles.
Cuando los Id. de clase de entidad a los que hacen referencia los giros, los postes indicadores o las tablas de tráfico son incorrectos, se producen errores o, lo que es peor, los Id. son válidos pero incorrectos, lo que genera resultados inesperados. Por ejemplo, una tabla de uniones Streets-Profiles o Streets-TMC con datos de tráfico podría hacer referencia a entidades de calle erróneas y hacer que se mostraran o se usaran durante el análisis unas velocidades de circulación incorrectas. Del mismo modo, la tabla de uniones Signpost-Streets podría hacer referencia a calles erróneas, lo que generaría indicaciones giro por giro confusas.
Puede evitar problemas como estos copiando el dataset de red en otro dataset de entidades, en lugar de copiar las clases de entidad de origen individuales. Cuando se copia un dataset de red, los datos de origen se copian junto con la red y los Id. de clase de entidad a los que se hace referencia en las tablas de atributos para los giros, los postes indicadores y el tráfico se actualizan automáticamente para ajustarse a los nuevos Id. de clase de entidad.
Si copia giros, tablas de postes indicadores o tablas de tráfico por separado, la única forma de actualizar los campos de Id. referenciados es hacerlo mediante un proceso manual, algo que se debe tratar de evitar. Una alternativa es crear un dataset de red básico usando los datos de giros, postes indicadores, tráfico y otros datos de red que se vayan a usar y, a continuación, copiar y pegar el dataset de red temporal en lugar de las clases de entidad de origen individuales. Las clases de entidad de origen se copian automáticamente con el dataset de red. Cuando el proceso se haya completado, podrá eliminar el dataset de red temporal o seguir usándolo. Este método actualiza automáticamente las referencias a los Id. de clase de entidad para que no sea necesario realizar las actualizaciones manualmente.
Si copiar el dataset de red no es una opción aceptable, o si necesita actualizar los Id. de clase de entidad por otras razones, puede utilizar los pasos que se describen a continuación como guía.
Suponga que tiene una clase de entidad de origen de eje llamada Streets, que en los pasos siguientes se denominará clase de entidad Streets original. Suponga también que hay datos originales de giros, postes indicadores y tráfico asociados con la clase de entidad Streets original. A continuación, estos datos originales se copian en otro dataset de entidades, con lo que se crean datos de giros, postes indicadores y tráfico de Streets duplicados. En los pasos siguientes, los datos duplicados se denominan clase de entidad Streets, clase de entidad de giros, tabla signposts-streets y tablas de tráfico copiadas. Identificar de esta forma los datos originales y los datos copiados debería hacer más sencillo seguir los pasos que se describen.
- En la ventana Catálogo de ArcMap, busque la clase de entidad Streets original. Haga clic con el botón derecho del ratón en la clase de entidad y elija Propiedades.
- En el cuadro de diálogo Propiedades de la clase de entidad, haga clic en la pestaña General.
- Haga clic en el botón con puntos suspensivos situado junto al cuadro de texto Nombre.
El cuadro de diálogo ID de la clase de objeto indica el Id. de clase de entidad. Tome nota del valor mostrado, porque podría tener que buscarlo en los datos de giros, postes indicadores y tablas de tráfico copiados.
Agregue la clase de entidad a ArcMap.
Haga clic en el botón Ventana Python de la barra de herramientas Estándar para abrir la ventana Python.
En la ventana Python, escriba arcpy.Describe("<nombre de capa>").DSID, reemplazando <nombre de capa> por el nombre de la capa de entidades.
Por ejemplo, para obtener el Id. de clase de entidad de la capa Streets, escriba arcpy.Describe("Streets").DSID.
Presione INTRO.
El Id. de clase de entidad se visualiza debajo del comando introducido.
Elimine la capa de entidades Streets original de ArcMap.
- Obtenga el Id. de clase de entidad de la clase de entidad Streets copiada. Use el mismo método que ha empleado para obtener el Id. de la clase de entidad Streets original.
- Si los valores de Id. de clase de entidad son los mismos en la clase de entidad Streets original y en la copiada, no hace falta llevar a cabo ninguna otra acción. Sin embargo, si los Id. son diferentes tendrá que abrir las tablas de atributos de la clase de entidad de giros, la tabla Signpost-Streets y las tablas de tráfico copiadas y reemplazar el Id. de la clase de entidad Streets original encontrado en el paso 3 con el Id. de la clase de entidad Streets copiada encontrado en el paso 4.
Para reparar la clase de entidad de giros copiada, reemplace el valor del Id. de la clase Streets original encontrado en los campos denominados Edge#FCID (donde # representa un número) con el Id. de la clase de entidad Streets copiada.
Una táctica alternativa es crear un dataset de red en los datos copiados y ejecutar a continuación la herramienta Actualizar por geometría. Esta herramienta actualizará automáticamente los valores de campo de las entidades de giro, pero tendrá que editar manualmente la geometría de las entidades de giro cuyos vértices no se intersequen con las entidades de calle copiadas o que se intersequen con entidades de calle coincidentes. Actualizar por geometría requiere que los vértices de las entidades de giro se intersequen con un origen de eje con el fin de identificar los Id. de entidad y la clase de entidad de origen con los que los giros están asociados.
Para reparar las tablas de uniones copiadas Signposts-Streets, Streets-Profiles o Streets-TMC, busque el campo EdgeFCID y reemplace las repeticiones del Id. de la clase de entidad Streets original con el de la clase de entidad Streets copiada.
El botón de puntos suspensivos se agregó a ArcMap en la versión 10.1 para obtener el Id. de clase de elemento. Si necesita buscar un Id. de clase de elemento usando ArcMap 10.0, utilice la ventana Python como se describe a continuación.