Introducción
En este apartado se recogen aspectos de sintaxis que afectan a algunas Aplicaciones de Soporte a MiraMon.

Selección de un campo de la base de datos asociada
- REL v.1:
- /TAULA= es el índice, numerado desde 0, que indica cuál es la tabla de la base de datos que contiene el campo atributivo de interés: indique -1 si es la tabla principal o bien el índice del campo de la tabla principal sobre el que está vinculada la tabla asociada (normalmente un tesaurus).
- /CAMP= es el índice del campo dentro de la tabla escogida (también numerado desde 0). Estos criterios de indexación pueden conocerse con InfoTop o utilizando la propia interfaz Windows del programa wCombiCa y pulsando el botón ">>BAT...".
- REL v.4:

Selección de un registro cuando hay registro múltiple para un objeto gráfico
- /REPE= indica qué ficha se toma en caso de que existan múltiples registros sobre el mismo identificador gráfico (1 para la 1a, 2 para la 2a...). Si se indica con signo menos se empieza a contar por la última; si indica, por ejemplo, 2a ocurrencia y esta NO existe, el objeto gráfico es totalmente ignorado. El valor por defecto es 1.

Selección de objectos gráficos a partir de los atributos de la base de datos, o de celdas de rásters para consulta sobre sus valores
- /COND#_TAULA= y /COND#_CAMP= tabla y campo escogidos para la condición #. # es un índice que empieza desde 1. Para saber más sobre el valor de estos parámetros siga las consideraciones del apartado Selección de un campo de la base de datos asociada de este mismo documento.
- /COND#_OP= es el operador lógico de la condición #. # es un índice que empieza desde 1. Puede ser:
- "EQ" igual (=)
- "NO_EQ" diferente (=/=)
- "LT" más pequeño que... (<)
- "GT" más grande que... (>)
- "LT_EQ" más pequeño o igual que... (<=)
- "GT_EQ" más grande o igual que... (>=)
- "INTERVAL" intervalo cerrado, incluye los extremos ([a,b])
- "EQ_SUBCADENA" cadena con... (con)
- "NO_EQ_SUBCADENA" cadena sin... (sin)
- /COND#_VALOR= es el valor del campo. Hacen falta comillas si lleva espacios.
- /COND#_NEXE= nexo entre las condiciones # y #+1. Puede ser AND (y) o OR (o).
- /COND#_PRIOR= prioridad del nexo #, indexada desde 1. Es un parámetro optativo. Si no se indica la prioridad es, simplemente, el orden. Las cajas de diálogo muestran una traducción de las prioridades de cada condición expresada en notación de paréntesis.

Selección de una coordenada Z para cada vértice en un fichero vectorial 3D con múltiples alturas para cada vértice
- /ALCADA= Determina cual de las posibles alturas se escoge: para la primera encontrada,1 para la superior y 2 para la inferior.

Formato interno de la fecha y la hora
- FECHA: La fecha se guarda con el formato AAAAMMDD, es decir 20030103 para el 1 de marzo de 2003. Este formato tiene la ventaja de que es directamente ordenable.
- HORA: La hora puede almacenarse hasta centésimas de segundo siguiendo el formato HHmmsscc, es decir 23595999 para las 23:59:59.99 horas (en hora local oficial). Note que se usa un formato de 24h y no se soporta la notación en 12h y am/pm. Según el tipo de hora puede añadirse a continuación de esta cadena alguna otra codificación:
- Hora UTC: Se añade una Z al final de la hora, por ejemplo: 23595999Z para las 23:59:59.99 hora UTC.
- Hora local oficial con corrector: Se añade el corrector horario al final de la hora. Este está compuesto por un signo (+ o -), dos dígitos indicando el número de horas y dos dígitos indicando el número de minutos (sin separadores). Por ejemplo: 23595999+0130 para las 23:59:59.99 hora local oficial con un corrector de paso de UTC a local de hora y media.
- Hora solar: Se añade una S al final de la hora, por ejemplo: 23595999S para las 23:59:59.99 hora solar local.
- FECHA y HORA ÚNICA: La fecha y la hora se escriben seguidas y separadas por un espacio, por ejemplo "20030103 2359599" para el 1 de marzo de 2003 a las 23:59:59.99 hora local oficial (sin corrector).
- INTERVALO DE FECHA y HORA: La fecha y hora finales del intervalo se escriben detrás de la fecha y hora iniciales del intervalo y separadas por una coma (sin espacios). Por ejemplo "20030103 2359599,20040103 2359599" para el período entre el 1 de marzo de 2003 a las 23:59:59.99 y el 1 de marzo de 2004 a las 23:59:59.99 con horas locales oficiales (sin corrector). Las dos horas de un intervalo deben ser del mismo tipo. No es posible mezclar, por ejemplo, una hora local oficial con corrector con una hora local oficial sin corrector, aunque sí es posible almacenar un corrector horario diferente para la fecha inicial y final.
- FECHA Y HORA INCOMPLETA: En el caso de querer documentar una hora de forma incompleta utilice el 9 como marca de desconocido. Si toda la hora es desconocida no es necesario escribirla. Por ejemplo "20030103 23999999,20040103" correspondería al período entre el 1 de marzo de 2003 a las 23 horas (minutos, segundos y centésimas desconocidos) y el 1 de marzo de 2004 (hora desconocida).
Para más información consulte las consideraciones generales sobre la fecha y la hora.

Algoritmos disponibles para la estructuración topológica (/ALGORISME)
MiraMon permite estructurar topológicamente los conjuntos de información vectoriales. Esta estructuración topológica implica analizar y, consecuentemente organizar, a las entidades vectoriales de forma que sus relaciones espaciales estén explícitamente descritas. Los beneficios de esta estructuración topológica son múltiples: garantizar la consistencia espacial, evitar superposiciones indeseadas (totales o parciales) de entidades, evitar errores como "grietas" entre polígonos, ahorrar espacio de almacenamiento y aumentar la velocidad de transmisión de los datos, permitir análisis de redes, etc. Estos beneficios permiten incrementar el abanico posible de análisis geográficos (algunos de los cuales no son posibles sin estructuración topológica) y efectuarlos de forma robusta y fiable.
En el caso de elementos lineales (e.g., ríos), o en el caso de los bordes de los elementos poligonales (e.g., parcelas catastrales), el análisis a efectuar comporta la detección de intersecciones entre los segmentos que forman las líneas y los bordes de polígonos; estas intersecciones pueden ser a lo largo de los segmentos o por contacto de sus extremos y generan vértices especiales que se llaman nodos (como también son nodos los vértices de los segmentos que no intersecan con ningún otro segmento). En capas con muchas líneas o polígonos, este procedimiento puede requerir un tiempo de cálculo considerable, que puede aumentar exponencialmente según estén dispuestas las entidades originales (grandes líneas que presentan muchas intersecciones con el resto, superposición explícita por parejas de segmentos [como ocurre en las capas de polígonos explícitos de la mayoría de formatos de SIG], etc). Para realizar esta detección de forma lo más eficaz posible, se puede escoger entre dos algoritmos (procedimientos): "algoritmo directo" y "algoritmo de barrido" (escombratge). Estos algoritmos están disponibles en las diferentes aplicaciones de MiraMon que realizan estructuración topológica (LinArc, BufDist, CombiCap, Retalla, SHPTop, etc) y se indican, en la línea de comando, con el modificador /ALGORISME=. A continuación se consignan los distintos algoritmos disponibles.
- /ALGORISME=DIRECTE (algoritmo directo): El algoritmo determina la intersección de cada uno de los segmentos con el resto de segmentos, analizándolos dos a dos. Cada intersección encontrada implica, excepto cuando es por el extremo de ambos segmentos, la partición de un segmento o de ambos, y el aumento de la complejidad de la tarea de análisis pendiente hasta concluir la estructuración topológica.
- /ALGORISME=ESCOMBRATGE (algoritmo de barrido): Utiliza el algoritmo de Bentley-Ottmann, el cual ordena los elementos vectoriales de una determinada manera en el plano y hace un barrido de izquierda a derecha que va calculando las intersecciones entre elementos cercanos. Con ello se evita comparar elementos que se sabe que nunca se van a cortar, evitando así mucho tiempo de cálculo en un gran número de situaciones.
- /ALGORISME=AUTOMATIC (algoritmo automático): Se deja en el programa la elección entre los métodos descritos anteriormente.
Entonces,
- /ALGORISME=DIRECTE es más rápido para capas donde ya se haya realizado una estructuración previa, o bien se sepa que no hay intersecciones más allá de los vértices ya existentes (la estructuración topológica es implícita o es una capa de polígonos explícitos [bordes repetidos 2 veces]).
- /ALGORISME=ESCOMBRATGE es más rápido justamente en el caso contrario: capas donde los elementos cortan otros elementos provocando intersecciones en puntos que no eran previamente vértices al final de línias y que, por tanto, son nuevos nodos de la capa de salida.
Si en el momento de estructurar una capa se sabe que la estructuración generará nuevos vértices (es decir, se detectarán intersecciones) es mejor escoger "escombratge" (barrido). De lo contrario, se puede elegir "directo". En caso de duda, se puede indicar "automatic" (automático), pero este modo puede requerir más tiempo que el más rápido de los dos anteriores (pero menos que el más lento), ya que si cuando se ha realizado un porcentaje de los procedimientos se detecta que el modo inicial no es óptimo se vuelve a empezar con el otro modo.

Desempate para los cuantiles (modificador opcional /MEDIANA_EMPAT=)
Si una aplicación efectúa el cálculo de algún cuantil (como la mediana, un cuartil o un percentil), puede indicarse el tipo de desempate a usar para su cálculo cuando la posición del cuantil sea entre dos valores de la serie. El criterio también se aplicará para calcular la media de las desviaciones absolutas respecto a la mediana (ya que requiere calcular la mediana). Las opciones de cálculo son:
- /MEDIANA_EMPAT=1 para elegir valor alternado.
- /MEDIANA_EMPAT=2 para elegir valor inferior.
- /MEDIANA_EMPAT=3 para elegir valor superior.
- /MEDIANA_EMPAT=4 para elegir promedio de los dos valores entre los que los encuentra.
La opción por defecto es la 1.
