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?
10
Respuestas:
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
fuente
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.
fuente
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.
fuente
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.
fuente
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?
fuente
"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
fuente
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.
fuente