Este programa hace la transformación entre ficheros vectoriales de líneas de tipo VEC y ficheros ARC y NOD del formato vectorial estructurado Top-MM. Ambos formatos son soportados por MiraMon. Los ficheros VEC son una ampliación de los ficheros VEC de Idrisi.
Los ficheros vectoriales de líneas de tipo VEC son de ficheros ASCII que no presentan topología (como mínimo ésta no está explicitada) y no están vinculados a bases de datos (cada objeto gráfico soporta un solo atributo). Los acompaña un fichero de documentación (DVC).
Los ficheros estructurados Top-MM de tipo ARC y NOD son ficheros binarios, habitualmente con topología arco-nodo y que están vinculados a una base de datos relacional (A.REL, A.DBF, N.REL y N.DBF). En la versión 3.x los acompaña un fichero de documentación (DVA y DVN), el cual queda integrado en el correspondiente fichero REL en las versiones posteriores.
Si tenemos una familia de vectores estructurados como la antes descrita, se puede convertir al formato VEC de líneas con la opción 1 del programa LINARC. Esto es útil para digitalizar y cuando se quiere el fichero en un formato de texto.
Hasta la versión 3.x de MiraMon, la digitalización de líneas se realiza sobre ficheros no estructurados. La estructuración topológica de arcos y nodos posterior a la digitalización es un proceso tan complejo que resulta casi imposible llevar a cabo manualmente, tarea que realiza la opción 2 del programa Linarc.
A veces un fichero VEC de líneas puede contener arcos y nodos de forma implícita, por ejemplo cuando proviene de una conversión de una familia de ficheros arco-nodo a VEC a través de LINARC con la opción 1. En este caso podemos indicar a LINARC, a través de la opción 3, que no realice los cálculos de estructuración topológica, lo cual es mucho más rápido. Esta opción sólo puede utilizarse cuando la estructura topológica no es esencial, como sucede a veces en las capas de líneas como las curvas de nivel. En una capa sobre la que es necesario construir polígonos solo se puede aplicar esta opción cuando el fichero VEC contiene estructura arco-nodo implícita, ya que las relaciones topológicas son esenciales para poder ciclar polígonos. El análisis de redes es otro caso donde la topología es esencial.
La opción 2 del programa soporta un fichero VEC de polígonos como fichero de entrada, pero la opción 3 no. En el primer caso, los contornos de los polígonos se tratan simplemente como líneas.
El programa crea en la base de datos
el campo LONG_ARC, que indica la longitud de cada arco. Los valores de los
campo LONG_ARC se calculan sobre las coordenadas de la proyección (del mapa)
y, por tanto, no dan distancias sobre la Tierra sino sobre el mapa,
calculadas como lo haría normalmente un programa de dibujo asistido por
ordenador (CAD). En proyecciones como la UTM, estos valores son
suficientemente precisos para la mayor parte de propósitos. Por ejemplo,
dentro de un huso UTM, una distancia sobre el mapa puede diferir de la
distancia sobre el elipsoide terrestre en un factor entre 0.9996 y
1.0009811009).
Cuando la proyección cartográfica es conocida (vea listado de proyecciones conocidas), además del campo LONG_ARC, el
programa también crea el campo LONG_ARCE, que indica la longitud real de
cada arco calculada sobre el elipsoide terrestre con criterios geodésicos
precisos. Este nuevo campo resulta especialmente indicado en proyecciones
cartográficas en las que los cálculos sobre el mapa dan valores claramente
diferentes a los reales sobre la superficie terrestre (por ejemplo, la
proyección Mercator) o en proyecciones en mapas en los que la diferencia es
pequeña pero aparecen líneas largas que pueden acumular errores importantes. Según la proyección cartográfica utilizada el programa declara visible
LONG_ARC o LONG_ARCE y deja oculto el otro campo, según sea el más
comúnmente usado como medida de longitud en aquella proyección. Puede
cambiar estos criterios de visibilidad en el fichero REL. En las opciones 2 y 3, el programa elimina las coordenadas repetidas
(sólo se conserva una). Por otro lado, las entidades formadas por un solo
vértice son eliminadas. LinArc define 6 tipos de tolerancias diferentes para 6 casos que se
pueden encontrar en la estructuración de un fichero vectorial. Esta sección
explica a qué situación geométrica corresponde cada tipo de tolerancia y
cómo se aplica dentro del programa LinArc (sólo en la opción 2). Muy importante: todos estos tipos de tolerancias son habitualmente
innecesarias si se digitaliza utilizando correctamente las herramientas de
conexión de MiraMon. Sin embargo, cuando un fichero ha sido digitalizado sin
seguir estas normas básicas de conexión, o bien ha estado generado con
otro software que no conecta correctamente los elementos, puede ser
necesario aplicar estas tolerancias. En el siguiente ejemplo presentamos un fichero lista, con un fichero VEC y un fichero ARC. El fichero ARC se procesará antes que el VEC.
Sintaxis:
Opciones:
Parámetros:
Modificadores:
/TAULA=
(Nombre de la tabla)
Indica la tabla de la base de datos que se exporta a formato VEC. Para saber más sobre los valores de estos parámetros siga las consideraciones del documento de sintaxis general. (Parámetro de entrada) /CAMP=
(Nombre de campo)
Indica el camp de la base de datos que se exporta a formato VEC. Para saber más sobre los valores de estos parámetros siga las consideraciones del documento de sintaxis general. (Parámetro de entrada) /SI_EN_BLANC=
(Campo en blanco)
Indica el comportamiento que tendrá la exportación a VEC cuando no exista atributo en la base de datos (campo en blanco). Puede valer "CONSTANT" para un valor constante, "ID_GRAFIC" para identificador gráfico o "IGNORAR" para ignorar los vectores sin atributo (valor por defecto). (Parámetro de entrada) /ATRIBUT_CONSTANT=
(Valor Constante)
Indica la constante que quiere exportar a formato VEC como atributo de los objetos. Si se usa en combinación con /TAULA=, /CAMP= y /SI_EN_BLANC=CONSTANT es el atributo que se usará cuando no haya datos (campo en blanco). (Parámetro de entrada) /ALCADA=
(Altura)
Indica cual de las posibles alturas se escribe en el VEC. Para saber más sobre los valores de este parámetro siga las consideraciones del documento de sintaxis general. (Parámetro de entrada) /ALGORISME=
(Algoritmo)
Éste parámetro sirve para determinar el tipo de algortimo que la aplicación usará para recortar los vectores durante la estructuración topológica.
(Parámetro de entrada) /AJUST_ENV (Ajustar envolvente) Ajusta el envolvente documentado en los metadatos al mínimo rectángulo (opciones 1, 2,3). (Parámetro de entrada)
Descripción detallada de las opciones:
De Arc a VEC (opción 1):
Convierte una familia ARC, de ficheros de arcos topológicamente estructurados, en un fichero VEC, que es un fichero ASCII con líneas que no presentan relaciones topológicas explícitas. El atributo del fichero resultante puede ser el identificador gráfico, un atributo constante o un campo de la base de datos del fichero ARC (A.REL y A.DBF). El programa soporta que exista más de un registro de la base de datos para cada elemento gráfico, y en este caso escribe tantos vectores coincidentes como registros existen para aquél elemento gráfico; cada vector tendrá uno de los múltiples atributos.
De VEC a ARC/NOD (opción 2):
Estructura topológicamente, creando nodos donde intersecan los arcos y conectando aquellos que están por debajo del límite de la tolerancia. Posteriormente guarda una familia topológica ARC/NOD. Los ficheros origen pueden ser un solo fichero VEC, un solo fichero ARC o un conjunto de ficheros VEC y ARC, explicitados en un fichero lista. Esta última posibilidad permite la superposición (overlay) de capas de arcos. Los campos de la base de datos originales se combinan en la base de datos de salida A.DBF, fusionándose en uno solo cuando tienen el mismo nombre (promocionándose a un tipo y tamaño compatible entre ellos) o restando como campos separados en caso de tener nombres diferentes. Los campos de las posibles bases de NODOS originales no se heredan en la de salida. Un fichero VEC se trata como una base de datos de un solo campo del tipo indicado en su fichero de documentación o con el nombre del campo que figura en la línea de comandos o en la lista.
De VEC a ARC/NOD (opción 3):
Convierte del formato VEC a una familia topológica ARC/NOD. Esta opción trabaja igual que la anterior a excepción que alberga ninguna fase de estructuración topológica. El único cambio en la geometría del fichero original es el siguiente: dados dos nodos a distancia inferior a la tolerancia, se considerarán el mismo nodo; la posición del segundo nodo coincidente se modificará igualándola a la del primero.
Fusiona (opción 4):
Fusiona parejas con sus atributos temáticos iguales de arcos que comparten un nodo y, a la vez, ningún otro arco no coincide con el nodo. Esta operación no realiza estructuración topológica (no parte arcos, ni realiza conexiones, etc). Suele ser conveniente al importar ficheros de otros formatos que presentan limitaciones en el número de vértices por objeto y se ven obligados a hacer más de un objeto por tira de vértices ya que al no tener en MiraMon prácticamente ninguna limitación con lo que respecta al número de vértices por arco, es conceptualmente mejor unir los arcos contiguos; obsérvese que una estructuración convencional podría generar intersecciones no deseadas (por ejemplo carreteras a dos niveles que pasasen a tener un cruce a nivel).
Análisis de distancias mínimas (opción 5):
Analiza las distancias mínimas locales entre arcos. Genera una tabla que puede ser representada en forma de histograma de frecuencias de distancias mínimas; útil para determinar los umbrales de tolerancia de acortamientos que hay que aplicar en la opción 2. También genera un fichero VEC de segmentos (líneas) que unen los puntos entre los diferentes arcos que están a distancias mínimas comprendidas entre UmbralMínimo y UmbralMáximo. Este fichero permite ver representados todos los movimientos que se producirán entre los arcos al aplicar la opción 2 y determinar el porcentaje de errores resueltos correctamente de manera automática.
Tipos de tolerancia y su aplicación en el programa LinArc.
Fig 1. La figura muestra los vectores originales en negro y el resultado del proceso de estructuración topológica en rojo.
Fig 2. Cuando tres objetos están a una distancia inferior a la tolerancia de acortadas, no se busca un trazado intermedio entre ellos, sino que el objeto que ha sido digitalizado primero permanece inmóvil (en la figura el superior) mientras que el que ha sido digitalizado en segundo lugar (el de la izquierda) se mueve hasta encontrarse con el primero, y el tercero, se mueve hasta conectar con los otros dos en el mismo punto.
¿Cómo se pueden definir todas estas tolerancias?.
LINARC 2 F_Ori F_Arc T_Arc DescriptorCamp NomCamp Prec T_Psgen T_Esc T_Nod T_Allg
Para garantizar un resultado óptimo, es muy recomendable seguir las indicaciones siguientes:
Para la eliminación de nodos finales, se recomienda utilizar:
En la sintaxis simplificada, el parámetro tolerancia es equivalente a las tolerancias ampliadas siguientes:
Si en alguna de las tolerancias se indica 0 (excepto en la precisión), se elimina el procesado del módulo referente a aquella tolerancia, lo que resulta en una ejecución más rápida. Esto se recomienda en caso de saber que el fichero o ficheros a procesar no presentan algún determinado tipo de problema. En el caso de la precisión, 0 resulta en 1e-5. Si en la notación simplificada se indica tolerancia=0 el resultado es:
IMPORTANTE: Habitualmente, estas tolerancias bastan en ficheros digitalizados en otros softwares o digitalizados en MiraMon sin utilizar adecuadamente las herramientas de conexión. Cuando se digitaliza correctamente con MiraMon una tolerancia simplificada y de valor 0 es la elección adecuada, resultando en procesos rápidos y sin problemas:
LINARC 2 F_Vec F_Arc 0
Formato del fichero lista (para estructuración de diversos ficheros a la
vez).
Formato simple
Este formato es una lista de nombres de ficheros escritos uno tras otro separados por retornos de carro o espacios (si algún nombre de fichero contiene espacios es necesario especificarlo entre comillas dobles). Esta posibilidad es simple pero no permite el nivel de control ni las posibilidades que permite el segundo formato.
Ejemplo de formato simple
primer.arc
segon.vec
tercer.vec
Formato avanzado
Este formato se basa en el formato INI del fichero
de configuración de Windows o en los formatos PAR de MiraMon. Está
constituido por una sección [FITXERS] i diversas secciones [FITXER_#] (#representa un valor numérico). La sección [FITXERS] sólo tiene una clave
'Llista' que es igual a los valores numéricos '#' de cada una de las secciones [FITXER_#] separados por una coma. La sección
[FITXER_#] tiene 5 claves posibles:
Las secciones [FITXER_#] no precisan estar ordenadas (el orden se establece en la clave 'Llista') o pueden no estar presente en la clave 'Llista' y en este caso los ficheros no se usarán (cuidado, pues, de no olvidar la inclusión en la llista).
Ejemplo de formato avanzado
[FITXERS]
Llista=2,1,3
[FITXER_1]
NomFitxer=segundo.vec
NomCamp=ATRIBUTO
DescriptorCamp=Atributo
[FITXER_2]
NomFitxer=primero.arc
[FITXER_3]
NomFitxer=marco.vec
NomCamp=ATRIBUTO
DescriptorCamp=Atributo
Marc=1
Incloure=1
Si la clave Llista de [FITXERS] supera los 255 caracteres, es posible escribir la lista en diversas líneas haciendo:
[FITXERS]
Llista=1,2,3,4,5,6,7,8,9,10,11,12
Llista2=13,14,15,16,17,18,19,20,21,22,23,24
Llista3=25,26
...
¿Cómo saber qué tipo de algoritmo utilizar en la opción 2? (modificador opcional /ALGORITMO=)
Consulte sintaxis general para más información.
Idrisi es un programario © de J.Ronald Eastman and Clark
University.
MiraMon es un programario © de Xavier Pons.