1v.surf.bspline(1) GRASS GIS User's Manual v.surf.bspline(1)
2
3
4
6 v.surf.bspline - Performs bicubic or bilinear spline interpolation
7 with Tykhonov regularization.
8
10 vector, surface, interpolation, LIDAR
11
13 v.surf.bspline
14 v.surf.bspline --help
15 v.surf.bspline [-ce] input=name [layer=string] [column=name]
16 [sparse_input=name] [output=name] [raster_output=name]
17 [mask=name] [ew_step=float] [ns_step=float] [method=string]
18 [lambda_i=float] [solver=name] [maxit=integer] [error=float]
19 [memory=memory in MB] [--overwrite] [--help] [--verbose] [--quiet]
20 [--ui]
21
22 Flags:
23 -c
24 Find the best Tykhonov regularizing parameter using a
25 "leave-one-out" cross validation method
26
27 -e
28 Estimate point density and distance
29 Estimate point density and distance in map units for the input vec‐
30 tor points within the current region extents and quit
31
32 --overwrite
33 Allow output files to overwrite existing files
34
35 --help
36 Print usage summary
37
38 --verbose
39 Verbose module output
40
41 --quiet
42 Quiet module output
43
44 --ui
45 Force launching GUI dialog
46
47 Parameters:
48 input=name [required]
49 Name of input vector point map
50 Or data source for direct OGR access
51
52 layer=string
53 Layer number or name
54 Vector features can have category values in different layers. This
55 number determines which layer to use. When used with direct OGR ac‐
56 cess this is the layer name.
57 Default: 1
58
59 column=name
60 Name of the attribute column with values to be used for approxima‐
61 tion
62 If not given and input is 3D vector map then z-coordinates are
63 used.
64
65 sparse_input=name
66 Name of input vector map with sparse points
67 Or data source for direct OGR access
68
69 output=name
70 Name for output vector map
71
72 raster_output=name
73 Name for output raster map
74
75 mask=name
76 Raster map to use for masking (applies to raster output only)
77 Only cells that are not NULL and not zero are interpolated
78
79 ew_step=float
80 Length of each spline step in the east-west direction
81 Default: 4 * east-west resolution
82
83 ns_step=float
84 Length of each spline step in the north-south direction
85 Default: 4 * north-south resolution
86
87 method=string
88 Spline interpolation algorithm
89 Options: bilinear, bicubic
90 Default: bilinear
91 bilinear: Bilinear interpolation
92 bicubic: Bicubic interpolation
93
94 lambda_i=float
95 Tykhonov regularization parameter (affects smoothing)
96 Default: 0.01
97
98 solver=name
99 The type of solver which should solve the symmetric linear equation
100 system
101 Options: cholesky, cg
102 Default: cholesky
103
104 maxit=integer
105 Maximum number of iteration used to solve the linear equation sys‐
106 tem
107 Default: 10000
108
109 error=float
110 Error break criteria for iterative solver
111 Default: 0.000001
112
113 memory=memory in MB
114 Maximum memory to be used (in MB)
115 Cache size for raster rows
116 Default: 300
117
119 v.surf.bspline performs a bilinear/bicubic spline interpolation with
120 Tykhonov regularization. The input is a 2D or 3D vector points map.
121 Values to interpolate can be the z values of 3D points or the values in
122 a user-specified attribute column in a 2D or 3D vector map. Output can
123 be a raster (raster_output) or vector (output) map. Optionally, a
124 "sparse point" vector map can be input which indicates the location of
125 output vector points.
126
128 From a theoretical perspective, the interpolating procedure takes place
129 in two parts: the first is an estimate of the linear coefficients of a
130 spline function is derived from the observation points using a least
131 squares regression; the second is the computation of the interpolated
132 surface (or interpolated vector points). As used here, the splines are
133 2D piece-wise non-zero polynomial functions calculated within a lim‐
134 ited, 2D area. The length (in mapping units) of each spline step is de‐
135 fined by ew_step for the east-west direction and ns_step for the
136 north-south direction. For optimal performance, the length of spline
137 step should be no less than the distance between observation points.
138 Each vector point observation is modeled as a linear function of the
139 non-zero splines in the area around the observation. The least squares
140 regression predicts the the coefficients of these linear functions.
141 Regularization, avoids the need to have one observation and one coeffi‐
142 cient for each spline (in order to avoid instability).
143
144 With regularly distributed data points, a spline step corresponding to
145 the maximum distance between two points in both the east and north di‐
146 rections is sufficient. But often data points are not regularly dis‐
147 tributed and require statistial regularization or estimation. In such
148 cases, v.surf.bspline will attempt to minimize the gradient of bilinear
149 splines or the curvature of bicubic splines in areas lacking point ob‐
150 servations. As a general rule, spline step length should be greater
151 than the mean distance between observation points (twice the distance
152 between points is a good starting point). Separate east-west and
153 north-south spline step length arguments allows the user to account for
154 some degree of anisotropy in the distribution of observation points.
155 Short spline step lengths - especially spline step lengths that are
156 less than the distance between observation points - can greatly in‐
157 crease the processing time.
158
159 Moreover, the maximum number of splines for each direction at each time
160 is fixed, regardless of the spline step length. As the total number of
161 splines used increases (i.e., with small spline step lengths), the re‐
162 gion is automatically split into subregions for interpolation. Each
163 subregion can contain no more than 150x150 splines. To avoid subregion
164 boundary problems, subregions are created to partially overlap each
165 other. A weighted mean of observations, based on point locations, is
166 calculated within each subregion.
167
168 The Tykhonov regularization parameter (lambda_i) acts to smooth the in‐
169 terpolation. With a small lambda_i, the interpolated surface closely
170 follows observation points; a larger value will produce a smoother in‐
171 terpolation.
172
173 The input can be a 2D or 3D vector points map. If input is 3D and col‐
174 umn is not given than z-coordinates are used for interpolation. Parame‐
175 ter column is required when input is 2D vector map.
176
177 v.surf.bspline can produce a raster_output OR a output (but NOT simul‐
178 taneously). Note that topology is not build for output vector point
179 map. The topology can be built if required by v.build.
180
181 If output is a vector points map and a sparse vector points map is not
182 specified, the output vector map will contain points at the same loca‐
183 tions as observation points in the input map, but the values of the
184 output points are interpolated values. If instead a sparse vector
185 points map is specified, the output vector map will contain points at
186 the same locations as the sparse vector map points, and values will be
187 those of the interpolated raster surface at those points.
188
189 A cross validation "leave-one-out" analysis is available to help to de‐
190 termine the optimal lambda_i value that produces an interpolation that
191 best fits the original observation data. The more points used for
192 cross-validation, the longer the time needed for computation. Empirical
193 testing indicates a threshold of a maximum of 100 points is recom‐
194 mended. Note that cross validation can run very slowly if more than 100
195 observations are used. The cross-validation output reports mean and rms
196 of the residuals from the true point value and the estimated from the
197 interpolation for a fixed series of lambda_i values. No vector nor
198 raster output will be created when cross-validation is selected.
199
201 Basic interpolation
202 v.surf.bspline input=point_vector output=interpolate_surface method=bicubic
203 A bicubic spline interpolation will be done and a vector points map
204 with estimated (i.e., interpolated) values will be created.
205
206 Basic interpolation and raster output with a longer spline step
207 v.surf.bspline input=point_vector raster=interpolate_surface ew_step=25 ns_step=25
208 A bilinear spline interpolation will be done with a spline step length
209 of 25 map units. An interpolated raster map will be created at the cur‐
210 rent region resolution.
211
212 Estimation of lambda_i parameter with a cross validation process
213 v.surf.bspline -c input=point_vector
214
215 Estimation on sparse points
216 v.surf.bspline input=point_vector sparse=sparse_points output=interpolate_surface
217 An output map of vector points will be created, corresponding to the
218 sparse vector map, with interpolated values.
219
220 Using attribute values instead z-coordinates
221 v.surf.bspline input=point_vector raster=interpolate_surface layer=1 \
222 column=attrib_column
223 The interpolation will be done using the values in attrib_column, in
224 the table associated with layer 1.
225
226 North carolina location example using z-coordinates for interpolation
227 g.region region=rural_1m res=2 -p
228 v.surf.bspline input=elev_lid792_bepts raster=elev_lid792_rast \
229 ew_step=5 ns_step=5 method=bicubic lambda_i=0.1
230
232 Known issues:
233
234 In order to avoid RAM memory problems, an auxiliary table is needed for
235 recording some intermediate calculations. This requires the GROUP BY
236 SQL function is used, which is not supported by the DBF driver. For
237 this reason, vector map output (output) is not permitted with the DBF
238 driver. There are no problems with the raster map output from the DBF
239 driver.
240
242 • Brovelli M. A., Cannata M., and Longoni U.M., 2004, LIDAR Data
243 Filtering and DTM Interpolation Within GRASS, Transactions in
244 GIS, April 2004, vol. 8, iss. 2, pp. 155-174(20), Blackwell
245 Publishing Ltd
246
247 • Brovelli M. A. and Cannata M., 2004, Digital Terrain model re‐
248 construction in urban areas from airborne laser scanning data:
249 the method and an example for Pavia (Northern Italy). Computers
250 and Geosciences 30, pp.325-331
251
252 • Brovelli M. A e Longoni U.M., 2003, Software per il filtraggio
253 di dati LIDAR, Rivista dell’Agenzia del Territorio, n. 3-2003,
254 pp. 11-22 (ISSN 1593-2192)
255
256 • Antolin R. and Brovelli M.A., 2007, LiDAR data Filtering with
257 GRASS GIS for the Determination of Digital Terrain Models. Pro‐
258 ceedings of Jornadas de SIG Libre, Girona, España. CD ISBN:
259 978-84-690-3886-9
260
262 v.surf.idw, v.surf.rst
263
264 Overview: Interpolation and Resampling in GRASS GIS
265
267 Original version (s.bspline.reg) in GRASS 5.4: Maria Antonia Brovelli,
268 Massimiliano Cannata, Ulisse Longoni, Mirko Reguzzoni
269 Update for GRASS 6 and improvements: Roberto Antolin
270
272 Available at: v.surf.bspline source code (history)
273
274 Accessed: Saturday Oct 28 18:18:48 2023
275
276 Main index | Vector index | Topics index | Keywords index | Graphical
277 index | Full index
278
279 © 2003-2023 GRASS Development Team, GRASS GIS 8.3.1 Reference Manual
280
281
282
283GRASS 8.3.1 v.surf.bspline(1)