Aquest programa fa la transformació entre fitxers vectorials de línies de tipus VEC i fitxers ARC i NOD del format vectorial estructurat Top-MM. Ambdós formats són suportats pel MiraMon. Els fitxers VEC són un superconjunt dels fitxers VEC ASCII d'Idrisi.

Els fitxers vectorials de línies de tipus VEC són fitxers ASCII que no presenten topologia (com a mínim aquesta no està explicitada) i no estan vinculats a bases de dades (cada objecte gràfic suporta un sol atribut). Els acompanya un fitxer de documentació (DVC).

Els fitxers estructurats Top-MM de tipus ARC i NOD són fitxers binaris, habitualment amb topologia arc-node i que estan vinculats a una base de dades relacional (A.REL, A.DBF, N.REL i N.DBF). En la versió 3.x els acompanya un fitxer de documentació (DVA i DVN), el qual queda integrat en el corresponent fitxer REL en les versions posteriors.

Si tenim una família de vectors estructurats com la descrita abans, es pot convertir al format VEC de línies amb l'opció 1 del programa LinArc. Això és necessari per a poder modificar el fitxer gràfic des del MiraMon o quan es vol el fitxer en un format de text.

Fins a la versió 3.x del MiraMon, la digitalització de línies es realitza sobre fitxers no estructurats (VEC). L'estructuració topològica d'arcs i nodes posterior a la digitalització és un procés tan complex que resulta quasi impossible de fer-la manualment, tasca que duu a terme l'opció 2 del programa LinArc.

De vegades un fitxer VEC de línies pot contenir arcs i nodes de forma implícita, per exemple quan prové d'una conversió d'una família de fitxers arc-node cap a VEC a través de LinArc amb l'opció 1. En aquest cas podem indicar a LinArc, a través de l'opció 3, que no realitzi els càlculs d'estructuració topològica per generar els fitxers ARC/NOD, la qual cosa és molt més ràpida. Aquesta opció només pot utilitzar-se quan la estructura topològica no és essencial, com passa a vegades en les capes de línies com p.ex. en les corbes de nivell. En una capa sobre la qual s'hauran de construir polígons només es pot aplicar aquesta opció quan el fitxer VEC conté estructura arc-node implícita, ja que les relacions topològiques són essencials per poder ciclar polígons. L'anàlisi de xarxes és un altre cas on la topologia és essencial.

L'opció 2 del programa suporta un fitxer VEC de polígons com a fitxer d'entrada, però l'opció 3 no. En el primer cas, les vores dels polígons es tracten simplement com a línies.

El programa crea a la base de dades el camp LONG_ARC, que indica la longitud de cada arc. Els valors del camp LONG_ARC es calculen sobre les coordenades de la projecció (del mapa) i, per tant, no donen distàncies sobre la Terra sinó sobre el mapa, calculades com ho faria normalment un programa de dibuix assistit per ordinador (CAD). En projeccions com la UTM, aquestes distàncies són suficientment precises per a la major part de propòsits. Per exemple, dintre d'un fus UTM, una distància sobre el mapa pot arribar a diferir de la distància sobre l'el·lipsoide terrestre en un factor entre 0.9996 i 1.0009811009).

Quan la projecció cartogràfica és coneguda (vegeu llistat de projeccions conegudes), a més del camp LONG_ARC, el programa també crea el camp LONG_ARCE, que indica la longitud real de cada arc calculada sobre l'el·lipsoide terrestre amb criteris geodèsics acurats. Aquest nou camp resulta especialment indicat en projeccions cartogràfiques en què el càlcul sobre el mapa dóna valors clarament diferents dels reals sobre la superfície terrestre (per exemple, la projecció Mercator) o en projeccions en mapes en què la diferència és petita, però on apareixen llargues línies que poden acumular errors importants.

Segons la projecció cartogràfica utilitzada, el programa declara visible LONG_ARC o LONG_ARCE i deixa ocult l'altre camp, segons el més comunament usat com a mesura de longitud en aquella projecció. Podeu canviar aquests criteris de visibilitat en el fitxer REL.


Sintaxi:

Opcions:

Paràmetres:

Modificadors:

Descripció detallada de les opcions:

En les opcions 2 i 3, el programa elimina les coordenades repetides (només se'n conserva una). Per altra banda, les entitats formades per un sol vèrtex són eliminades.


Tipus de tolerància i la seva aplicació en el programa LinArc, opció 2.

LinArc defineix 6 tipus de toleràncies diferents per 6 casos que hom pot trobar en l'estructuració d'un fitxer vectorial. Aquesta secció explica a quina situació geomètrica correspon cada tipus de tolerància i com s'aplica dins el programa LinArc (només en l'opció 2).

Molt important: tots aquest tipus de toleràncies són habitualment innecessàries si hom digitalitza utilitzant correctament les eines de connexió del MiraMon. Tanmateix, quan un fitxer ha estat digitalitzat sense seguir aquestes normes bàsiques de connexió, o bé ha estat generat amb un altre software que no connecta correctament els elements, pot ser necessari aplicar aquestes toleràncies.

Precisió (Tolerància borrosa/Fuzzy tolerance) [Prec]
Mínima distància entre vèrtexs. Ha de ser un valor molt petit, pràcticament infinitesimal.
Tolerància de pseudogeneralització. [T_Psgen]
Tolerància per eliminar vèrtexs situats sobre un mateix traçat rectilini (fig 1.a). (És una definició local a cada arc.)
Tolerància entre arcs(Arc snap tolerance) [T_Arc]
Distància que un vèrtex es pot moure (fig 1.b1) o un segment es pot doblegar, generant-se un nou vèrtex (fig 1.b2) per connectar amb un altre. (Implica una relació entre un arc i els altres.)
Tolerància d'escurçades (fig 1.c)(Undershoot tolerance) [T_Esc]
Distància que es pot moure un node final per connectar-se amb un arc. El moviment del node s'efectua de forma que el desplaçament sigui mínim. (Implica una relació entre un node final i els arcs.)
Tolerància entre nodes (fig 1.d) (Node snap tolerance) [T_Nod]
Distància mínima entre dos nodes. És la distància en què un node absorbeix o és absorbit pels seus nodes veïns. (Implica una relació entre un node i els altres.)
Tolerància d'allargades (fig 1.e) (Dangle tolerance) [T_Allg]
Els arcs que són més curts que aquesta tolerància seran eliminats si presenten un o dos nodes finals. (És una definició local a un sol arc.)
Diagrama de toleràcies
Fig 1. La figura mostra els vectors originals en negre i el resultat del procés d'estructuració topològica en vermell.
  1. La tolerància de pseudogeneralització redueix el nombre de vèrtexs dels vectors, eliminant alineacions.
  2. La tolerància entre arcs tendeix a connectar vectors que estan pròxims. El vèrtex del vector digitalitzat amb posterioritat es mou per connectar-se sobre l'altre (1). El segment superior es doblega per connectar-se al vèrtex proper digitalitzat amb anterioritat (2).
  3. La tolerància d'escurçades connecta un vèrtex final que ha quedat prop d'un altre arc. En la figura el vector superior ha estat digitalitzat abans que l'altre.
  4. La tolerància entre nodes mou el node inferior per connectar-lo amb el superior, que havia estat generat anteriorment.
  5. La tolerància d'allargades fa desaparèixer el tros de vector que sobresurt d'un altre vector sobre el qual es volia connectar.

Fig 2. Quan tres objectes estan a una distància inferior a la tolerància d'escurçades, no es busca un traçat intermedi entre ells, sinó que l'objecte que ha estat digitalitzat primer roman immòbil (en la figura el superior) mentre que el que ha estat digitalitzat en segon lloc (el de l'esquerra) es mou fins a trobar-se amb el primer, i el tercer, es mou fins a connectar amb els altres dos en el mateix punt.

Com es poden definir totes aquestes toleràncies?

LINARC 2 F_Ori F_Arc T_Arc DescriptorCamp NomCamp Prec T_Psgen T_Esc T_Nod T_Allg
Per tal de garantir un òptim resultat, és molt recomanable seguir les següents indicacions:
  1. Prec <= T_Psgen <= T_Arc <= T_Esc <= T_Nod <=T_Allg
  2. Prec i T_Psgen infinitessimal (a la pràctica poseu-hi 0).
Per a l'eliminació de nodes finals, es recomana fer servir:
  1. Prec=T_Psgen=T_Arc=T_Nod=0
  2. T_Esc amb valor moderat i T_Allg de valor alt.
En la sintaxi simplificada, el paràmetre tolerància és equivalent a les toleràncies ampliades següents:
  1. T_Arc=T_Nod=T_Esc=T_Allg=tolerància
  2. Prec=T_Psgen=1e-5
Si en alguna de les toleràncies s'indica 0 (excepte en la precisió), s'elimina el processat del mòdul referent a aquella tolerància, el que resulta en una execució més ràpida. Això es recomana en el cas de saber que el fitxer o fitxers a processar no presenten algun determinat tipus de problema. En el cas de la precisió, 0 resulta en 1e-5. Si en la notació simplificada s'indica tolerància=0 el resultat és:
  1. T_Arc=T_Nod=T_Esc=T_Allg=0
  2. Prec=T_Psgen=1e-5
IMPORTANT: Habitualment, aquestes toleràncies només calen en fitxers digitalitzats en altres softwares o digitalitzats en el MiraMon sense utilitzar adequadament les eines de connexió. Quan es digitalitza correctament amb el MiraMon una tolerància simplificada i de valor 0 és l'elecció adequada, resultant en processos ràpids i sense problemes:
LINARC 2 F_Vec F_Arc 0

Format del fitxer llista (per a estructuració de diversos fitxers alhora).

Format simple

Aquest format és una llista de noms de fitxers escrits un darrere l'altre separats per retorns de carro o espais (si algun nom de fitxer conté espais cal posar-lo entre cometes dobles). Aquesta possibilitat és simple però no permet el nivell de control ni les possibilitats que permet el segon format.
Exemple de format simple
primer.arc
segon.vec
tercer.vec

Format avançat

Aquest format es basa en el format INI del fitxers de configuració de Windows o en els formats PAR del MiraMon. Està constituït per una secció [FITXERS] i diverses seccions [FITXER_#] (# representa un valor numèric). La secció [FITXERS] només te una clau 'Llista' que és igual als valor numèrics '#' de cada una de les seccions [FITXER_#] separats per una coma. La secció [FITXER_#] té 5 claus possibles: Les seccions [FITXER_#] no cal que estigui ordenades (l'ordre s'estableix en la clau 'Llista') o poden no estar presents a la clau 'Llista' i en aquest cas els fitxers no s'usaran (compte, doncs, a no oblidar la inclusió a la llista).

En el següent exemple presentem un fitxer llista, amb un fitxer VEC i un fitxer ARC. El fitxer ARC es processarà abans que el VEC.

Exemple de format avançat
[FITXERS]
Llista=2,1,3

[FITXER_1]
NomFitxer=segon.vec
NomCamp=ATRIBUT
DescriptorCamp=Atribut

[FITXER_2]
NomFitxer=primer.arc

[FITXER_3]
NomFitxer=marc.vec
NomCamp=ATRIBUT
DescriptorCamp=Atribut
Marc=1
Incloure=1

Si la clau Llista de [FITXERS] supera els 255 caràcters, és possible escriure la llista en diverses línies fent:
[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
...

Com saber quin tipus d'algorisme utilitzar en l'opció 2? (modificador opcional /ALGORISME=)

Trobareu més informació a sintaxi general.
Aquest programa suporta format REL v.4 i format ARC v. 1.1 amb o sense coordenades 3D.

Idrisi és un programari © de J.Ronald Eastman and Clark University.
MiraMon® és programari © de Xavier Pons.