1 votos

Ordnance Survey TOIDS: conversión de cadenas a enteros

Estoy planeando cargar una serie de conjuntos de datos del SO en Postgres/PostGIS.

Para ahorrar espacio y acelerar las consultas, me gustaría quitar el 'osgb' de la parte delantera de las cadenas TOID y luego almacenar el número restante como un bigint.

¿Existen riesgos (o directamente problemas) con esto?

Supongo que la parte numérica de la cadena TOID es en sí misma única, pero sé que algunos TOIDs tienen 13 dígitos numéricos y otros 16, y me gustaría estar seguro de que los ceros iniciales que siguen a 'osgb' no son materiales para la parte numérica. Esto sería un problema si, por ejemplo, hubiera dos TOIDs en el mismo conjunto de datos como el siguiente, en el que quitando el 'osgb' se obtendría el mismo número:

osgb0000123412341234
osgb0123412341234 

Gracias.

3voto

Nick Puntos 3115

Los TOIDS (Topological ID) del Ordnance Survey son, en efecto, identificaciones únicas para las características del OS. La razón por la que a veces hay 13 y a veces 16 dígitos después del bit 'osgb' es porque cambiaron la especificación, pero algunos datos ya se habían publicado con los primeros TOIDS de 13 dígitos, así que se quedaron con ellos.

Muchos sistemas diseñados para trabajar con los datos del SO anteponen los ceros a la izquierda por coherencia y para facilitar el análisis posterior, pero no forman parte de la especificación original y pueden ser eliminados impunemente. De hecho, el propio OS Servicio de validación TOID solicita que se omitan los ceros iniciales.

La parte 'osgb' es común a todos los TOIDs del SO y realmente sólo identifica un TOID como un ID que pertenece y/o se origina en los datos del SO para permitir una rápida distinción entre los datos de otras fuentes. Si puede garantizar que sus bases de datos nunca adquirirán datos de otros lugares, podría ser lo suficientemente seguro como para perder el 'osgb'.

Sin embargo, dicho todo esto, el TOID es la base para recibir las actualizaciones de sólo cambios del SO, por lo que habría que hacer ingeniería inversa de todo el ahorro de espacio para cada actualización. Además, al haber dirigido un equipo que desarrollaba métodos de procesamiento automatizados que trabajaban con todo el conjunto de datos de OS MasterMap más los datos derivados de otras fuentes, puedo decir por experiencia que tener el TOID completo con 'osgb' era muy útil para rastrear la procedencia de una característica problemática en algunos conjuntos de datos combinados y derivados cuando se está a pocos pasos de los datos "en bruto". Dado que el espacio en disco es barato hoy en día, prefiero comprar una unidad un poco más grande que ahorrar el espacio si es necesario. Incluso si mantienes tus datos "en bruto" puros (¡recomendado!), los datos del SIG se usan y se abusan, por lo que tener una idea de la procedencia después de que los datos del SO se hayan combinado o analizado con otros datos que no son del SO es muy útil. Conocer el TOID completo en tales circunstancias significa también saber si hay que volver a calcular los datos derivados tras una actualización del SO. Sin el TOID completo, no se puede garantizar que se conozca la procedencia de una característica después del procesamiento.

Además de lo anterior, los datos del SO también contienen una serie de atributos de la forma "ReferenceTo". Se trata de referencias entre conjuntos de datos que proporcionan información adicional sobre cómo se interrelacionan (por ejemplo, cómo pueden relacionarse las líneas con los polígonos, es decir, una línea de revestimiento de carretera se relaciona con el polígono de área topológica de carretera correspondiente). Cualquier ejercicio de desmontaje que se realice en el propio TOID debe coincidir también con estos campos, lo que aumenta el riesgo de error durante el proceso de desmontaje.

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