asignar una identificación única para señalar características

10

El estándar de parcelas MassGIS (http://www.mass.gov/mgis/ParstndrdVer1_5_1.pdf) utiliza una concatenación de la porción del número entero de las coordenadas x e y para crear una identificación única (LOC_ID) para las características. Estoy considerando hacer lo mismo para una clase de entidad de puntos. Me gusta la metodología consistente, pero quizás estoy pasando por alto algo. ¿Existe una práctica estándar o mejor para crear identificadores únicos para entidades de puntos?

cwb
fuente
Pregunta de seguimiento: ¿Es mejor crear y mantener la identificación única en el DBMS (SQL Server) o en el software SIG (ArcGIS)?
cwb
1
¿Puede proporcionar más detalles sobre su proyecto? ¿Qué representan las características? ¿Ya tienen una identificación natural única? ¿Para qué planea usar este número?
Chris M
Las características del punto representan cuencas de captura. No hay una identificación única natural. El personal de DPW desea vincular a una tabla de información sobre el programa de limpieza de cuencas. No tengo más detalles, pero conjetura que el personal en el campo va a hacer notas sobre cuándo tuvo lugar la limpieza, la condición del sumidero, etc.
CWB
para cuencas tiene número de ottobasins. Supongo que es único. busque ottobacia (ottobasins) para obtener un control de la metodología. Solo encontré resultados en portugués.
George Silva el

Respuestas:

18

Si usa esa identificación para algo así como una clave externa en relación con otra tabla, toda su base de datos se verá en grandes problemas si tiene que mover un punto por alguna razón. Probablemente tendrá que mantener la identificación incluso si ya no describe las coordenadas xy.

Como una clave única, a menudo es mejor tener algo que no dice nada sobre los datos, porque la mayoría de los datos pueden cambiar.

/ Nicklas

Nicklas Avén
fuente
77
+1 Nunca jamás use identificadores que significan algo o use datos comerciales en ellos. Alguien en mi trabajo acaba de quemarse porque usaron nombres de carreteras en la identificación y he aquí que el nombre de la carretera tuvo que ser cambiado, ahora la identificación está equivocada.
Nathan W
4

Agregando la respuesta de Nicklas y mi comentario.

Yo diría que la convención más utilizada y más recomendada es usar una identificación de incremento automático, por ejemplo, comenzar en 1 y continuar. Sin lógica y simple.

Si tiene un sistema distribuido, o no le gustan los números de incremento automático, puede usar un GUID. La mayoría de las bases de datos se encargarán de crear este tipo de identificación para usted. Sin embargo, es una molestia para un usuario ingresar manualmente, para buscar, etc., así que tenlo en cuenta.

La otra opción es usar algún tipo de hash de los datos, pero no lo recomendaría. Significaría que si necesita escribir un algoritmo para hacer esto por usted, no siempre puede garantizar la unicidad, también tienden a ser difíciles de ingresar para la búsqueda.

Estas son solo mis opiniones, pero por experiencia personal, confía en mí, nunca uses datos comerciales en las ID.

Nathan W
fuente
4

Pregunta de seguimiento: ¿Es mejor crear y mantener la identificación única en el DBMS (SQL Server) o en el software SIG (ArcGIS)?

Sugeriría encarecidamente comprobar la unicidad dentro del DBMS. Esa es una de las muchas fortalezas de los DBMS. También le permite acceder a sus datos con diferentes software SIG que probablemente no serían conscientes de las limitaciones únicas.

bajo oscuro
fuente
3

Nuestro esquema de identificación no fue elegido por mí, pero es el siguiente: código de 2,3,4 caracteres, que es la clase de activo y un número secuencial de 6 dígitos (elegiría el recuento de dígitos que funcione para usted). Un procedimiento almacenado crea estos ID y se basa en un par de tablas que no son de geodatabase en la misma base de datos de SQL Server.

Mantengo una identificación de incremento automático secuencial separada. También mantengo un campo de geohash de 13 caracteres (para entidades de puntos), pero nunca lo usaría como clave. El campo se rellena automáticamente (mediante una extensión de editor personalizada) cada vez que se mueve la función.

Si sus datos SIG se van a utilizar con cualquier tipo de sistema de gestión de activos, querrá que sus ID sean globalmente únicos dentro de su geodatabase (y tal vez únicos en todas las geodatabases de su organización). Esto también facilitará un poco la refactorización de geodatabase en el futuro.

Jay Cummins
fuente
1

Personalmente, he usado cálculos CRC en el pasado para crear valores similares. No es demasiado difícil de crear y las bibliotecas / algoritmos están disponibles en línea.

La ventaja es que puede hacer características mayores que los puntos, mientras que una concatenación realmente tendría que ser solo características de puntos (a menos que desee una clave realmente masiva).

Y creo que es poco probable que un usuario final esté buscando por esta ID de todos modos, así que no lo veo como un problema.

Dicho esto, no veo muchos beneficios explícitos de asignar una identificación como esa. Podría usar el método para la detección de cambios (porque es mucho menos eficiente comparar dos valores CRC que dos conjuntos de geometría) pero aun así, ¿por qué usarlo como ID principal?

Mark Ireland
fuente
1

"Los GUID pueden, por supuesto, generarse usando VB Script. Pero dado el énfasis gradual de VB Script por ESRI, realizaremos la generación de GUID en ArcMap usando la novena maravilla del mundo, Python. Para aquellos de ustedes que aún no están en el sé, Python es el regalo de Dios para inveterar hackers SIG. Mi consejo: ¡Aprende! ¡Vívelo! ¡Ámalo! "

http://eaglemap.com/blog/bid/45555/How-to-Generate-GUIDs-in-ArcMap

Simón
fuente
0

Arc Hydro Tools de ESRI viene con una barra de herramientas que también instala un administrador de ID único que se ejecuta en segundo plano. La barra de herramientas le permite asignar ID únicos por clase de entidad o por geodatabase. El administrador de ID por defecto solo maneja atributos de ID únicos llamados, por ejemplo, HydroID, que es parte del modelo de datos Arc Hydro. Pero también se puede configurar para manejar otros atributos. Las herramientas vienen con mucha documentación, por lo que configurar el administrador de ID a sus necesidades no debería ser un problema.

La identificación única es, que yo sepa, siempre un número entero. Después de asignar ID únicos una vez que el administrador se encarga de asignar nuevos ID únicos para cada característica recién creada que se ajuste a la configuración.

El administrador de ID único podría ser útil para backends de bases de datos que (AFAIK) no admiten números de incremento automático como la geodatabase personal.

Y uno
fuente