4 votos

¿ArcPy o FME para agregar historia a un objeto?

Tengo un problema muy específico y estoy en busca de una solución. Tengo que añadir algún tipo de historia a un objeto. La historia será almacenado como este:

  • begin_date
  • end_date
  • previous_id

Supongamos que el objeto que estoy queriendo agregar la historia a es X. Tenemos una base de datos central (en el momento en que todos los archivos mdb, vamos a cambiar pronto de gdb) que contiene el objeto X con la historia. Los trabajadores en el campo tienen una versión local de la base de datos y también rellenar un objeto X_i que tiene un atributo cambiado. X y X_i tener un id para el seguimiento de los mismos.

Ahora, cuando queremos combinar la versión local de la base de datos de una secuencia de comandos se deben ejecutar y llenar la historia de la central db como este:

if X_i.changed = true:
    search central_X.id, fill end_date with today
    search local_X.id, copy this attribute to central_X and:
        fill begin_date
        fill previous_id with central_X.id
        generate new unique id for the central_X

También vamos a añadir nuevos campos a la central de db y actualización de los identificadores únicos:

for every i in local_X:
    if i not in central_X:
        copy i to central_X
        generate new unique id for i
        enter begin_date

Para los elementos eliminados de hacer algo similar, pero a continuación, establecemos la end_date.

Al final de la combinación. Vamos a crear una nueva X_i donde todos los identificadores se han rellenado correctamente y el atributo modificado se vacía en todas partes.

Mi pregunta acerca de esto es:

Yo estaba pensando en hacer esto en ArcPy o FME porque tengo algo de experiencia con ambos. ¿Cuál cree usted que sería mejor, ArcPy o FME (o algo más).

Puede que me apunte en la dirección correcta; lo que son las cajas de herramientas, funciones que se utilizan para esto?

He mirado en alternativas como una de ArcSDE con archivo, pero eso significaría que tendría que invertir en una de ArcSDE, el cambio de una parte significativa de nuestro flujo de trabajo y no todos los elementos que nos cambio X_i.cambiado, por lo que el archivo podría contener demasiada información para ser realmente útil.

Edit: añadido el flujo de trabajo para aclarar. workflow

  1. Puedo usar changedetector para esto.
  2. Si X_i.cambiado es cierto
  3. Si X_i.id no está vacío
  4. conjunto de end_date para todos los datos procesados
  5. ni idea de cómo hacerlo
  6. ni idea de cómo hacerlo
  7. ni idea de cómo hacerlo
  8. encontrar el mayor de los id de tan lejos y proceder a partir de esta identificación.

4voto

Erik Öjebo Puntos 6937

La OMF cuenta con la TimeStamper http://www.fmepedia.com/index.php/TimeStamper

Utilice su previous_id y definir la fecha de inicio

cualquier cambio en los datos pueden ser grabados con previous_id cambios y current_id donde el timestamper puede ser asignada y end_date.

Python puede ser utilizado para registrar los cambios históricos http://docs.python.org/library/time.html

Actualización después de comentar

enter image description here

http://docs.safe.com/fme/2009/html/Transformers/content/transformers/changedetector.htm

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