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. 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. 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. 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.
Sintaxi:
Opcions:
Paràmetres:
Modificadors:
/TAULA=
(Nom taula)
Indica la taula de la base de dades que s'exporta a format VEC. Per saber més sobre els valors d'aquests paràmetres seguiu les consideracions del document de sintaxi general. (Paràmetre d'entrada) /CAMP=
(Nom camp)
Indica el camp de la base de dades que s'exporta a format VEC. Per saber més sobre els valors d'aquests paràmetres seguiu les consideracions del document de sintaxi general. (Paràmetre d'entrada) /SI_EN_BLANC=
(Camp en Blanc)
Indica el comportament que tindrà l'exportació a VEC quan no hi hagi atribut a la base de dades (camp en blanc). Pot valer "CONSTANT" per a un valor constant, "ID_GRAFIC" per a l'identificador gràfic o "IGNORAR" per a ignorar els vectors sense atribut (valor per defecte). (Paràmetre d'entrada) /ATRIBUT_CONSTANT=
(Valor constant)
Indiquen la constant que voleu exportar a format VEC com atribut dels objectes. Si s'usa en combinació amb /TAULA=, /CAMP= i /SI_EN_BLANC=CONSTANT és l'atribut que es farà servir quan no hi ha dades (camp en blanc). De no indicar-se /TAULA=, /CAMP= o /ATRIBUT_CONSTANT= l'exportació a format VEC es fa a partir de l'identificador gràfic com atribut. (Paràmetre d'entrada) /ALCADA=
(Alçada)
Indica quina de les possibles alçades s'escriu en el VEC. Per saber més sobre els valors d'aquest paràmetre seguiu les consideracions del document de sintaxi general. Els possibles valors són: 0 per a la primera, 1 per a la superior, 2 per a la inferior. (Paràmetre d'entrada) /ALGORISME=
(Algorisme)
Aquest paràmetre serveix per a determinar el tipus d'algorisme que l'aplicació emprarà per a tallar els vectors en l'estructuració topològica.
(Paràmetre d'entrada) /AJUST_ENV (Ajustar envolupant) Ajusta l'envolupant documentada a les metadades al rectangle mínim (opcions 1,2,3). (Paràmetre d'entrada)
Descripció detallada de les opcions:
De Arc a VEC (opció 1):
Converteix una família ARC, de fitxers d'arcs topològicament estructurats, a un fitxer VEC, que és un fitxer ASCII amb línies que no presenten relacions topològiques explícites. L'atribut del fitxer resultant pot ser l'identificador gràfic, un atribut constant o un camp de la base de dades del fitxer ARC (A.REL i A.DBF). El programa suporta que existeixi més d'un registre de la base de dades per cada element gràfic, i en aquest cas escriu tants vectors coincidents com registres existeixen per a aquell element gràfic; cada vector tindrà un dels múltiples atributs.
De VEC/ARC a ARC/NOD (opció 2):
Estructura topològicament, creant nodes on intersequen els arcs i connectant aquells que estan per sota del límit de la tolerància. Posteriorment desa una família topològica ARC/NOD. Els fitxers origen poden ser un sol fitxer VEC, un sol fitxer ARC o un conjunt de fitxers VEC i ARC, explicitats en una fitxer llista. Aquesta darrera possibilitat permet la superposició (overlay) de capes d'arcs. Els camps de la base de dades originals es combinen en la taula de sortida A.dbf, fusionant-se en un de sol quan tenen el mateix nom (promocionant-se a un tipus i mida compatible entre ells) o restant com a camps separats en cas de tenir noms diferents. Els camps de les possibles bases de NODES originals no s'hereten a la de sortida. Un fitxer VEC és tractat com una base de dades d'un sol camp del tipus indicat en el seu fitxer de documentació o amb el nom del camp que figura en la línia de comanda o en la llista.
De VEC a ARC/NOD (opció 3):
Converteix del format VEC a una família topològica ARC/NOD. Aquesta opció treballa igual que l'anterior excepte que no té lloc cap fase d'estructuració topològica. L'únic canvi en la geometria del fitxer original és el següent: donats dos nodes a distància inferior a la tolerància, es consideraran el mateix node; la posició del segon node coincident es modificarà igualant-la a la del primer.
Fusiona (opció 4):
Fusiona parelles d'arcs amb els seus atributs temàtics iguals que comparteixen un node i, alhora, cap més arc no coincideix en el node. Aquesta operació no realitza cap estructuració topològica (no parteix arcs, ni realitza connexions, etc). Sol ser convenient en importar fitxers d'altres formats que presenten limitacions en el nombre de vèrtexs per objecte i es veuen obligats a fer més d'un objecte per tira de vèrtexs ja que en no haver-hi en MiraMon pràcticament cap limitació pel que fa al nombre de vèrtexs per arc, és conceptualment millor unir els arcs contigus; observeu que una estructuració convencional podria generar interseccions no desitjades (per exemple carreteres a dos nivells que passessin a tenir un encreuament a nivell).
Anáslisi de distàncies mínimes (opció 5):
Analitza les distàncies mínimes locals entre arcs. Genera una taula que pot ser representada en forma d'histograma de freqüències de distàncies mínimes; útil per determinar els llindars de tolerància d'arcs que cal aplicar en l'opció 2. També genera un fitxer VEC de segments (línies) que uneixen els punts entre els diferents arcs que estan a distàncies mínimes compreses entre LlindarMinim i LlindarMaxim. Aquest fitxer permet veure representats tots el moviments que es produiran entre els arcs en aplicar l'opció 2 i determinar el percentatge d'errors resolts correctament de manera automàtica.
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).
Fig 1. La figura mostra els vectors originals en negre i el
resultat del procés d'estructuració topològica en
vermell.
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:
Per a l'eliminació de nodes finals, es recomana fer servir:
En la sintaxi simplificada, el paràmetre tolerància és
equivalent a les toleràncies ampliades següents:
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:
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).
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.
Idrisi és un programari © de J.Ronald Eastman and Clark University.
MiraMon® és programari © de Xavier Pons.