This is the command v.transformgrass that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator
PROGRAM:
NAME
v.transform - Performs an affine transformation (shift, scale and rotate) on vector map.
KEYWORDS
vector, transformation, geometry, GCP
SYNOPSIS
v.transform
v.transform --help
v.transform [-twb] input=name [layer=string] output=name [xshift=float]
[yshift=float] [zshift=float] [xscale=float] [yscale=float] [zscale=float]
[zrotation=float] [columns=name[,name,...]] [--overwrite] [--help] [--verbose]
[--quiet] [--ui]
Flags:
-t
Shift all z values to bottom=0
-w
Swap coordinates x, y and then apply other parameters
-b
Do not build topology
--overwrite
Allow output files to overwrite existing files
--help
Print usage summary
--verbose
Verbose module output
--quiet
Quiet module output
--ui
Force launching GUI dialog
Parameters:
input=name [required]
Name of input vector map
Or data source for direct OGR access
layer=string
Layer number or name (’-1’ for all layers)
A single vector map can be connected to multiple database tables. This number
determines which table to use. When used with direct OGR access this is the layer
name.
Default: -1
output=name [required]
Name for output vector map
xshift=float
Shifting value for x coordinates
Default: 0.0
yshift=float
Shifting value for y coordinates
Default: 0.0
zshift=float
Shifting value for z coordinates
Default: 0.0
xscale=float
Scaling factor for x coordinates
Default: 1.0
yscale=float
Scaling factor for y coordinates
Default: 1.0
zscale=float
Scaling factor for z coordinates
Default: 1.0
zrotation=float
Rotation around z axis in degrees (counter-clockwise)
Default: 0.0
columns=name[,name,...]
Name of attribute column(s) used as transformation parameters
Format: parameter:column, e.g. xshift:xs,yshift:ys,zrot:zr
DESCRIPTION
v.transform performs an affine transformation (translate and rotate) of a vector map. An
affine transform includes one or several linear transformations (scaling, rotation) and
translation (shifting). Several linear transformations can be combined in a single
operation. The command can be used to georeference unreferenced vector maps or to modify
existing geocoded maps.
NOTES
Coordinate transformation based on Ground Control Points (GCPs) is done by v.rectify and
not supported by v.transform.
Transformation parameters (i.e. xshift, yshift, etc.) can be fetched from attribute table
connected to the vector map. In this case vector objects can be transformed with different
parameters based on their category number. If the parameter cannot be fetched from the
table, default value is used instead.
Note that the transformation matrix can be printed by m.transform.
EXAMPLE
DXF/DWG drawings
Most DXF/DWG drawings are done within XY coordinate space. To transform them to a national
grid, we can use v.transform together with v.rectify and a first-order transformation.
v.transform -t in=watertowerXY out=watertower_z zscale=0.04 zshift=1320
v.rectify in=watertower_z out=watertowerUTM points=wt.points order=1
Extrude 2D vector points to 3D based on attribute column values
Spearfish example with manual table editing for vertical shift:
# work on own map copy:
g.copy vect=archsites@PERMANENT,myarchsites
# add new ’zs’ column to later store height of each site:
v.db.addcolumn myarchsites col="zs double precision"
v.db.update myarchsites layer=1 column=zs value="cat * 1000"
# perform z transformation:
v.transform -t input=archsites output=myarchsites3d column="zshift:zs" table="archsites_t"
# drop table containing transformation parameters:
echo "drop table archsites_t" | db.execute
The resulting map is a 3D vector map.
Extrude 2D vector points to 3D based on attribute column values
Spearfish example with automated elevation extraction for vertical shift:
# work on own map copy:
g.copy vect=archsites@PERMANENT,myarchsites
# add new ’zs’ column to later store height of each site:
v.db.addcolumn myarchsites col="zs double precision"
# set region to elevation map and fetch individual heights:
g.region raster=elevation.10m -p
v.what.rast myarchsites rast=elevation.10m col=zs
# verify:
v.db.select myarchsites
# perform transformation to 3D
v.transform -t myarchsites output=myarchsites3d column="zshift:zs" layer=1
# drop table containing transformation parameters
v.db.dropcolumn myarchsites3d col=zs
The resulting map is a 3D vector map.
Use v.transformgrass online using onworks.net services