123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310 |
- <h2>DESCRIPTION</h2>
- <em>v.in.ascii</em> converts a vector map
- in <a href="vectorascii.html">GRASS ASCII vector format</a> to a
- vector map in binary format. The module may import two formats:
- <ul>
- <li><b>standard</b> contains all data types, each coordinate on one row</li>
- <li><b>point</b> (default) reads only points, each point defined on
- one row. Values are separated by a user-definable delimiter. If
- the <b>columns</b> option is not defined, default names are used. It
- is possible to specify the column order for the x,y,z coordinates
- and category values.</li>
- </ul>
- <p><em><a href="v.out.ascii.html">v.out.ascii</a></em> performs the
- function of <em>v.in.ascii</em> 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.
- <h2>NOTES</h2>
-
- The input is read from the file specified by the <b>input</b> option or
- from standard input.
- <p>The field separator may be a character, the word '<tt>tab</tt>'
- (or '<tt>\t</tt>') for tab, '<tt>space</tt>' (or ' ') for a blank,
- or '<tt>comma</tt>' (or ',') for a comma.
- <p>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
- <b>columns</b> parameter.
- <p>Use the <b>-z</b> flag to convert ASCII data into a 3D vector map.
- <p>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>-b</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 <b>-t</b> flag) or
- within a subregion (the <b>-r</b> flag) before resorting to the
- disabling of topology.
- <p>If old version is requested, the <b>output</b> files
- from <em><a href="v.out.ascii.html">v.out.ascii</a></em> is placed in
- the <tt>$LOCATION/$MAPSET/dig_ascii/</tt>
- and <tt>$LOCATION/$MAPSET/dig_att</tt> directory.
- <h3>Import of files without category column</h3>
- If 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 <b>cat</b> parameter must be
- set to the virtual column number 0 (<tt>cat=0</tt>). This is the
- default action if the <b>cat</b> parameter is not set.
- <h3>Importing from a spreadsheet</h3>
- Data may be imported from many spreadsheet programs by saving the
- spreadsheet as a comma separated variable (.csv) text file, and then
- using the <b>separator=','</b> or <b>separator=comma</b> option
- with <em>v.in.ascii</em> in <b>points</b> mode. If the input file
- contains any header lines, such as column headings, the
- <b>skip</b> parameter should be used. These skipped header lines will
- be written to the map's history file for later reference (read with
- <tt>v.info -h</tt>). The skip option only works in <b>points</b> mode.
- <p>Any line starting with the hash character ('<tt>#</tt>') 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 <b>skip</b> parameter, it will be treated as
- a header line and written to the history file.
- <h3>Import of sexagesimal degree (degree, minutes, seconds, DMS)</h3>
- 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 <tt>varchar()</tt>, not as numbers. A warning will be
- issued which can be ignored. See <a href="vectorascii.html">GRASS
- ASCII vector format specification</a> for details.
- <h3>Importing only selected columns</h3>
- Although <em>v.in.ascii</em> 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.:
- <div class="code"><pre>
- # 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>
- </pre></div>
- <h2>EXAMPLES</h2>
- <h3>Example 1a) - standard format mode</h3>
- Sample ASCII polygon vector map for 'standard' format mode.
- The two areas will be assigned categories 20 and 21.
- <p><div class="code"><pre>
- 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
- 5958812.48844435 3400828.84221011
- 5958957.29887089 3400877.11235229
- 5959021.65906046 3400930.7458436
- 5959048.47580612 3400973.65263665
- 5959069.92920264 3401032.64947709
- 5958812.48844435 3400828.84221011
- C 1 1
- 5958952.42189184 3400918.23126419
- 1 20
- B 4
- 5959010.9323622 3401338.36037757
- 5959096.7459483 3401370.54047235
- 5959091.38259917 3401450.99070932
- 5959010.9323622 3401338.36037757
- C 1 1
- 5959063.08352122 3401386.98533277
- 1 21" | v.in.ascii in=- format=standard output=test_polygons
- </pre></div>
- <h3>Example 1b) - standard format mode</h3>
- Sample ASCII 3D line vector map for 'standard' format mode with simplified input
- (note the space field separator).
- Note the <b>-z</b> flag indicating 3D vector input, and the <b>-n</b> flag
- indicating no vector header should be expected from the input file.
- <div class="code"><pre>
- 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
- </pre></div>
- 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).
- <h3>Example 2 - point format mode</h3>
- Generate a 2D points vector map 'coords.txt' as ASCII file:
- <div class="code"><pre>
- 1664619|5103481
- 1664473|5095782
- 1664273|5101919
- 1663427|5105234
- 1663709|5102614
- </pre></div>
- <p>Import into GRASS:
- <div class="code"><pre>
- v.in.ascii input=coords.txt output=mymap
- </pre></div>
- As the <b>cat</b> option is set to 0 by default, an extra column 'cat'
- containing the category numbers will be auto-generated.
- <h3>Example 3 - point format mode</h3>
- Generate a 2D points vector map 'points.dat' as ASCII file:
- <div class="code"><pre>
- 1|1664619|5103481|studna
- 2|1664473|5095782|kadibudka
- 3|1664273|5101919|hruska
- 4|1663427|5105234|mysi dira
- 5|1663709|5102614|mineralni pramen
- </pre></div>
- <p>Import into GRASS:
- <div class="code"><pre>
- cat points.dat | v.in.ascii in=- out=mypoints x=2 y=3 cat=1 \
- columns='cat int, x double precision, y double precision, label varchar(20)'
- </pre></div>
- <p>The module is reading from standard input, using the default '|' (pipe) delimiter.
- <h3>Example 4 - point format mode - CSV table</h3>
- Import of a 3D points CSV table ('points3d.csv') with attributes:
- <div class="code"><pre>
- "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
- </pre></div>
- <p>Import into GRASS:
- <div class="code"><pre>
- # import: skipping the header line, categories generated automatically,
- # column names defined with type:
- v.in.ascii -z in=points3d.csv out=mypoints3D separator=comma \
- columns="num integer, x double precision, y double precision, z double precision, temp double precision" \
- x=2 y=3 z=4 skip=1
- # verify column types
- v.info -c mypoints3D
- # verify table content
- v.db.select mypoints3D
- </pre></div>
- <h3>Example 5 - point format mode</h3>
- Generating a 3D points vector map from DBMS (idcol must be an integer column):<br>
- <div class="code"><pre>
- echo "select east,north,elev,idcol from mytable" | db.select -c | v.in.ascii in=- -z out=mymap
- </pre></div>
- With <b>in=-</b>, the module is reading from standard input, using the default '|' (pipe) delimiter.
- <br>
- The import works for 2D maps as well (no elev column and no '-z' flag).
- <h3>Example 6 - point format mode</h3>
- Generate a 3D points vector map 'points3d.dat' with attributes as ASCII file:
- <div class="code"><pre>
- 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
- </pre></div>
- <p>Import into GRASS:
- <div class="code"><pre>
- #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 \
- columns='x double precision, y double precision, z double precision, \
- label_cz varchar(20), label_en varchar(20)'
- v.info -c mypoints3D
- v.info mypoints3D
- </pre></div>
- <h3>Example 7 - point format mode</h3>
- Generate points file by clicking onto the map:
- <div class="code"><pre>
- #For LatLong locations:
- d.where -d -l | awk '{printf "%f|%f|point\n", $1, $2}' | v.in.ascii in=- out=points \
- columns='x double precision, y double precision, label varchar(20)'
- #For other projections:
- d.where | awk '{printf "%f|%f|point\n", $1, $2}' | v.in.ascii in=- out=points \
- columns='x double precision, y double precision, label varchar(20)'
- </pre></div>
- 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 <em>v.in.ascii</em>, only the vector map geometry will be generated.
- <h3>Example 8 - point format mode</h3>
- Convert ground control points into vector points:
- <div class="code"><pre>
- cat $MAPSET/group/$GROUP/POINTS | v.in.ascii in=- out=$GROUP_gcp separator=space skip=3 \
- col='x double precision, y double precision, x_target double precision, \
- y_target double precision, ok int'
- </pre></div>
- <h2>REFERENCES</h2>
- <a href="sql.html">SQL command notes</a> for creating databases
- <br>
- <a href="vectorascii.html">GRASS ASCII vector format</a> specification
- <h2>SEE ALSO</h2>
- <em>
- <a href="db.execute.html">db.execute</a>,
- <a href="r.in.ascii.html">r.in.ascii</a>,
- <a href="r.in.xyz.html">r.in.xyz</a>,
- <a href="v.build.html">v.build</a>,
- <a href="v.build.polylines.html">v.build.polylines</a>,
- <a href="v.centroids.html">v.centroids</a>,
- <a href="v.clean.html">v.clean</a>,
- <a href="v.db.connect.html">v.db.connect</a>,
- <a href="v.import.html">v.import</a>,
- <a href="v.info.html">v.info</a>,
- <a href="v.out.ascii.html">v.out.ascii</a>
- </em>
- <h2>AUTHORS</h2>
- Michael Higgins,
- U.S.Army Construction Engineering
- Research Laboratory<br>
- James Westervelt, U.S.Army Construction Engineering
- Research Laboratory<br>
- Radim Blazek, ITC-Irst, Trento, Italy
- <p><i>Last changed: $Date$</i>
|