![]() |
![]()
| ![]() |
![]()
NAMEv.in.ascii - Creates a vector map from an ASCII points file or ASCII vector file. KEYWORDSvector, import, ASCII, level1, area, line, point SYNOPSISv.in.ascii
Flags:
Parameters:
DESCRIPTIONv.in.ascii converts a vector map in GRASS ASCII vector format to a vector map in binary format. The module may import two formats:
v.out.ascii performs the function of v.in.ascii in reverse; i.e., it converts vector maps in binary format to GRASS ASCII vector format. These two companion programs are useful both for importing and exporting vector maps between GRASS and other software, and for transferring data between machines. NOTESThe input is read from the file specified by the input option or from standard input. The field separator may be a character, the word ’tab’ (or ’\t’) for tab, ’space’ (or ’ ’) for a blank, or ’comma’ (or ’,’) for a comma. An attribute table is only created if it is needed, i.e. when at least one attribute column is present in the input file besides geometry columns. The attribute column will be auto-scanned for type, but may be explicitly declared along with the geometry columns using the columns parameter. Use the -z flag to convert ASCII data into a 3D vector map. In special cases of data import, such as the import of large LIDAR datasets (millions of data points), it may be necessary to disable topology support (vector level 1) due to memory constraints. This is done with the -b flag. As only very few vector modules support points data processing at vector level 1, usually topology is required (vector level 2). Therefore it is recommended that the user first try to import the data without creating a database (the -t flag) or within a subregion (the -r flag) before resorting to the disabling of topology. If old version is requested, the output files from v.out.ascii is placed in the $LOCATION/$MAPSET/dig_ascii/ and $LOCATION/$MAPSET/dig_att directory. Import of files without category columnIf the input file does not contain a category column, there is the possibility to auto-generate these IDs (categories). To automatically add an additional column named ’cat’, the cat parameter must be set to the virtual column number 0 (cat=0). This is the default action if the cat parameter is not set. Importing from a spreadsheetData may be imported from many spreadsheet programs by saving the spreadsheet as a comma separated variable (.csv) text file, and then using the separator=’,’ or separator=comma option with v.in.ascii in points mode. If the input file contains any header lines, such as column headings, the skip parameter should be used. These skipped header lines will be written to the map’s history file for later reference (read with v.info -h). The skip option only works in points mode. Any line starting with the hash character (’#’) will be treated as a comment and skipped completely if located in the main data file. If located in the header, as defined by the skip parameter, it will be treated as a header line and written to the history file. Import of sexagesimal degree (degree, minutes, seconds, DMS)The import of DMS formatted degrees is supported (in this case no sign but N/S, E/W characters are used to indicate the hemispheres). While the positions are internally translated into decimal degrees during the import, the original DMS values are maintained in the attribute table. This requires both the latitude and the longitude columns to be defined as varchar(), not as numbers. A warning will be issued which can be ignored. See GRASS ASCII vector format specification for details. Importing only selected columnsAlthough v.in.ascii doesn’t have an option to
specify which columns should be imported, you can use a shell filter to
achieve the same effect, e.g.:
# Print out the column number for each field, supposing the file has a header head -1 input_file | tr ’<the_field_separator_character>’ ’\n’ | cat -n # From the listing, select the columns you want and feed them to v.in.ascii # use input=- to read from stdin cut -d<the_field_separator_character> -f<comma-separated_list_of_columns> input_file | v.in.ascii in=- <your_options> EXAMPLESExample 1a) - standard format modeSample ASCII polygon vector map for ’standard’ format mode. The two areas will be assigned categories 20 and 21. For details on the structure of standard format data files see the second reference at the bottom of this page. echo "ORGANIZATION: GRASS Development Team DIGIT DATE: 1/9/2005 DIGIT NAME: - MAP NAME: test MAP DATE: 2005 MAP SCALE: 10000 OTHER INFO: Test polygons ZONE: 0 MAP THRESH: 0.500000 VERTI: B 6 Example 1b) - standard format modeSample ASCII 3D line vector map for ’standard’
format mode with simplified input (note the space field separator). Note the
-z flag indicating 3D vector input, and the -n flag indicating
no vector header should be expected from the input file. The first line in
this example specifies that the line (L) has 5 vertices and 1 category. The
last line specifies the layer (1) and the category value (321).
echo "L 5 1 591336 4927369 1224 594317 4925341 1292 599356 4925162 1469 602396 4926653 1235 607524 4925431 1216 1 321 " | v.in.ascii -zn in=- out=line3d format=standard This can be used to create a vector line of a GPS track: the GPS points have to be stored into a file with a preceding ’L’ and the number of points (per line). Example 2 - point format modeGenerate a 2D points vector map ’coords.txt’ as
ASCII file:
1664619|5103481 1664473|5095782 1664273|5101919 1663427|5105234 1663709|5102614 Import into GRASS:
v.in.ascii input=coords.txt output=mymap As the cat option is set to 0 by default, an extra column ’cat’ containing the category numbers will be auto-generated. Example 3 - point format modeGenerate a 2D points vector map ’points.dat’ as
ASCII file:
1|1664619|5103481|studna 2|1664473|5095782|kadibudka 3|1664273|5101919|hruska 4|1663427|5105234|mysi dira 5|1663709|5102614|mineralni pramen Import into GRASS:
cat points.dat | v.in.ascii in=- out=mypoints x=2 y=3 cat=1 \ The module is reading from standard input, using the default ’|’ (pipe) delimiter. Example 4 - point format mode - CSV tableImport of a 3D points CSV table (’points3d.csv’)
with attributes:
"num","X","Y","Z","T" 1,2487491.643,5112118.33,120.5,18.62 2,2481985.459,5109162.78,123.9,18.46 3,2478284.289,5105331.04,98.3,19.61 Import into GRASS:
# import: skipping the header line, categories generated automatically, # column names defined with type: v.in.ascii -z in=points3d.csv out=mypoints3D separator=comma \ Example 5 - point format modeGenerating a 3D points vector map from DBMS (idcol must be an
integer column):
echo "select east,north,elev,idcol from mytable" | db.select -c | v.in.ascii in=- -z out=mymap With in=-, the module is reading from standard input, using
the default ’|’ (pipe) delimiter.
Example 6 - point format modeGenerate a 3D points vector map ’points3d.dat’ with
attributes as ASCII file:
593493.1|4914730.2|123.1|studna|well 591950.2|4923000.5|222.3|kadibudka|outhouse 589860.5|4922000.0|232.3|hruska|pear 590400.5|4922820.8|143.2|mysi dira|mouse hole 593549.3|4925500.7|442.6|mineralni pramen|mineral spring 600375.7|4925235.6|342.2|kozi stezka|goat path Import into GRASS:
#As the ’cat’ option is set to 0 by default, an extra column ’cat’ #containing the IDs will be auto-generated (no need to define that): cat points3d.dat | v.in.ascii in=- -z z=3 cat=0 out=mypoints3D \ Example 7 - point format modeGenerate points file by clicking onto the map:
#For LatLong projects: d.where -d -l | awk ’{printf "%f|%f|point\n", $1, $2}’ | v.in.ascii in=- out=points \ The ’point’ string (or some similar entry) is required to generate a database table. When simply piping the coordinates (and optionally height) without additional column(s) into v.in.ascii, only the vector map geometry will be generated. Example 8 - point format modeConvert ground control points into vector points:
cat $MAPSET/group/$GROUP/POINTS | v.in.ascii in=- out=$GROUP_gcp separator=space skip=3 \ REFERENCESSQL command notes for creating databases,
SEE ALSOdb.execute, r.in.ascii, r.in.poly, r.in.xyz, v.build, v.build.polylines, v.centroids, v.clean, v.db.connect, v.import, v.info, v.in.lines, v.in.mapgen, v.out.ascii AUTHORSMichael Higgins, U.S.Army Construction Engineering Research
Laboratory
SOURCE CODEAvailable at: v.in.ascii source code (history) Latest change: Tuesday Dec 17 20:17:20 2024 in commit: d962e90c026708a4815ea2b9f46c0e84c17de22d Main index | Vector index | Topics index | Keywords index | Graphical index | Full index © 2003-2025 GRASS Development Team, GRASS GIS 8.4.1 Reference Manual
|