This program performs the conversion between VEC files containing lines and Top-MiraMon structured vector files (ARC and NOD). Both file formats are supported by MiraMon. VEC files are a superset of the Idrisi ASCII VEC files.
The first format consists on ASCII files that do not have topological structure (at least, not explicitly) and that are not linked to databases (every graphic object accepts only one attribute). A document file (DVC) must always exist in order to define the type of graphic object contained in the .VEC files as well as other general parameters.
The second format consist of Top-MM structured vector files, that are binary files usually with arc-node topology. They are linked to a relational database (A.REL, A.DBF, N.REL and N.DBF). In version 3.x, a document file (DVA and DVN) must exist, but in the next versions it is integrated in the corresponding REL file.
If we have a family of structured vectors as the one described above, we can convert it to VEC format (lines) with the Option 1 of the LINARC program. This is necessary to modify the graphic file from MiraMon or when we want the file to be in text format.
Up to version 3.x of MiraMon, line digitizing is done on non structured vectors. The topological structure of arcs and nodes posterior to the digitizing process is such a complex process that it results almost impossible to do it by hand. This task can be done by choosing the Option 2 of the LINARC program.
In some cases, a VEC file can contain lines that implicitly define arcs and nodes, for example when it comes from a conversion of a family of arc-node files to a VEC through Option 1 of LINARC. In this case, we can choose, through Option 3, not to perform the computing task to define the topological relationships to generate ARC/NOD files, so the process becomes much faster. This option can only be used when la topological structure is not essential; it sometimes is the case of line layers such as contour lines. When polygons have to be built over this layer, this option it is possible to use this option only when the VEC file has implicit arc-node topology, due to topological relationships are essential to cicle polygons. Network analysis is another case where the topology is essential.
Option 2 supports a polygon VEC file as input file, but Option 3 does not support it. In the former case, polygon boundaries are treated simply as lines.
The program creates the LONG_ARC
field in the database, indicating the length of each arc. The values of the
LONG_ARC field is calculated based on the coordinates in the (map)
projection and, therefore, do not give the length on the Earth but as they
appear on the map, calculated as it would normally be by a computer assisted
drawing (CAD) program. In projections such as UTM these calculations are
accurate enough for most purposes. For example, within a UTM zone the length
of each arc on the map may differ from the length on the terrestrial
ellipsoid by a factor between 0.9996 and 1.0009811009).
When the cartographic projection is known (see list of known projections), as well as the LONG_ARC field the
program also creates the LONG_ARCE field, that indicates the real length of
each arc as calculated over the terrestrial ellipsoid using accurate
geodesic criteria. These new field is especially relevant for cartographic
projections in which the calculations made on the maps give clearly
different values from the real values over the Earth's surface (for
example, the Mercator projection) or in map projections where the difference
may be small but significant errors may be accumulated when dealing with
long lines. According to the map projection used the program makes LONG_ARC or
LONG_ARCE visible and hides the other field, depending on which is the most
commonly used measure of length in that projection. These display criteria
may be changed in the REL file. In options 2 and 3, the program deletes the coordinates repeated (only one preserved). Furthermore, entities formed by a single vertex are removed. Very important: all these tolerances are usually unnecessary if one scans correctly using MiraMon tools
connection. However, when a file has been digitalized without following these basic rules of connection, or it has been generated with another software
that not properly connects the elements can be necessary to apply these tolerances. In the following example, a list file is given, with a VEC file and an
ARC file. The ARC file will be processed before the VEC file.
Syntax:
Options:
Parameters:
Modifiers:
/TAULA=
(Table name)
Set database table to be exported in a VEC format. To learn more about the values of these parameters follow the considerations in general syntax. (Input parameter) /CAMP=
(Field name)
Set database field to be exported in a VEC format. To learn more about the values of these parameters follow the considerations in general syntax. (Input parameter) /SI_EN_BLANC=
(Blank field)
Sets the VEC exportation behaviour when the attribute do not exist in the database (blank field). Can be "CONSTANT" to write a constant value, "ID_GRAFIC" to write graphic identificator or "IGNORAR" to ignore vectors without attribute (default value). (Input parameter) /ATRIBUT_CONSTANT=
(Constant value)
Sets a constant that is going to be write as object attribute when exporting to VEC format. If it is used in combination with /TAULA=, /CAMP= and /SI_EN_BLANC=CONSTANT is the attribute that is going to be used when there is no data (blank field). (Input parameter) /ALCADA=
(Height)
Sets which of the possible heights are used in the VEC. To learn more about the values of this parameter follow the considerations in general syntax. (Input parameter) /ALGORISME=
(Algorithm)
This parameter is used to determine the type of algorithm that the application will use to cut the vectors in the topological structure.
(Input parameter) /AJUST_ENV (Ajust envelope) Ajust the envelope documented in the layer metadata to the minimum rectangle. (1,2,3 options). (Input parameter)
Options detailed description:
From Arc to VEC (option 1):
Converts an ARC family of topologically structured files to a VEC file, which is an ASCII file containing lines that does not have explicit topological relationships. Attributes in the resulting file can be the graphic identifier, a constant attribute or a field of the ARC database (A.REL and A.DBF). The program supports the existence of more than one database record for each graphic element. In this case it writes as many coincident lines as existing records for this graphic element; every line will have one of the multiple attributes.
De VEC a ARC/NOD (option 2):
Takes a file and structures it topologically, creating nodes where arcs intersect and connecting those under the tolerance limit. Later it saves a topological ARC/NOD family. Original file can be a single VEC file, a single ARC file or a set of VEC and ARC files listed in a list file. This last possibility allows overlaying vector layers. Original database fields are combined in the output database A.DBF, becoming a single field if they have the same name (they get a compatible size and type) or different fields if they have different name. Fields of NODE databases are not inherited in the output file. A VEC file is treated as a one-field database of type indicated in the documentation file or with the name that figures in the command line or in the list.
From VEC to ARC/NOD (option 3):
Converts from VEC format to an ARC/NOD family. The only change in the geometry of the original file is the following: given two nodes at a distance lower than the tolerance, the program will consider them as the same node; the position of the second coincidental node will be modified to be equal to the first.
Fusion (option 4):
It joins pairs of arches with the same thematic attributes which share a node and, at the same time, no other arch coincides with the node. This operation does not carry out any topological structuring (it does not divide arches, carry out connections, etc). It is useful for importing files from other formats which display limitations in the number of vertices by object which forces them to make more than one object per strip of vertices due to the fact that as MiraMon has practically no limitations regarding the number of vertices per arch, it is better from a conceptual perspective to join contiguous arches. Please note that a conventional structuring could generate undesired intersections (e.g. roads on two levels that could intersect on one level).
Minimal local Distances (option 5):
Analyses minimal local distances between arcs. It generates a table that can be represented as a frequency histogram of minimal distances; useful to determine snap tolerance thresholds for option 2. It also generates a VEC file of lines that join points of different arcs being at a distance between ThresholdMin and ThresholdMax. This file allows to see all the movements that will be produced on arcs when applying option 2, and thus determine the percentage of automatically correctly solved errors.
Type of tolerance and its application in the program LinArc, option 2.
LinArc defines six types of tolerances for 6 different cases that can be founded in the structure of a vector file. This section
explains how each type of situation corresponds geometric tolerance and how LinArc applies them in the program (only in option 2).
Fig 1. The figure shows the original vectors in black and the result of the topological structure in red.
Fig 2. When three objects are closer than dangle tolerance, a path is found somewhere between
them, but the object was first digitized remains stationary (in the figure above) while the secondly digitalized (on the left) moves to
meet the first and the third one moves to connect with other two at the same point.
How can we define all these tolerances?
Using expanded syntax:
LINARC 2 OriFile ArcFile T_Arc FieldDescrip FieldName Prec T_Psgen T_Usht T_Nod T_Dngl
To guarantee an optimal result, it is recommended to follow these
suggestions:
To eliminate ending nodes it is recommended using:
In the simplified syntax, the parameter is equivalent to the amplified following tolerance:
If any of these tolerances is 0 (except in precision) the process of this tolerance is being eliminate from the process, making it a quickly execution. It is only recommended when you know
that the file or files you are processing don't have a specific king of problem. In precision, 0 is in fact 1e-5. If you indicate Tolerance=0 the result is:
If any tolerance is 0 (but precision), its module is not executed and
the processing time is lower. This is recommended in the case the original
file do not have one of the possible problems. If the precision given is 0,
1e-5 is used as default. In the simplified syntax, tolerance parameter is
equivalent to the following expanded tolerances:
IMPORTANT: Usually, these tolerances are only required in files that
have been digitized with other software packages or with MiraMon without
adequately using the tools that the program offers to connect graphical
objects. When digitizing has been correctly done with MiraMon, a simplified
tolerance of 0 value is the adequate option. It normally results in rapid
and problem-safe processes:
LINARC 2 VecFile ArcFile 0
List file format (to structure several files simultaneously).
Simple format
This format corresponds to a simple list of file names
written one after another separated by a blank space or each file name in a
separate line. In the case, that the file names contain blank spaces double
quotes must be used. This is an option to facilitate the use of this
functionality but which does not have the richness of control and options of
the other format.
Simple file format
primer.arc
segon.vec
tercer.vec
Advanced format
This format is based on the format INI of the
configuration files of Windows or on the PAR formats. It has a section
[FITXERS] and several sections [FITXER_#], where # is a numerical value.
Section [FITXERS] only has a key 'Llista' which is equal to the #
numeric values in each of the section [FITXER_#] separated by a comma.
Sections [FITXER_#] have 5 keys:
Sections [FITXER_#] do not need to be ordered (the order is given in
the key 'List') and can be absent in the key 'List'. In
this case, this files will not be used.
Advanced file format
[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
When the key List of [FITXERS] is greater than 255 characters it is
possible to type it in several lines, as:
[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
...
How to know what type of algorithm use in option 2? (optional modifier /ALGORITME=)
Go to general syntax for more information.
Idrisi is a program © of J.Ronald Eastman and Clark University.
MiraMon is a program © of Xavier Pons.