Eli,

I think that this should be possible. If your integration allows you to express the salinity as a weighted sum of evaluated values of the spatial smooth function (where the weights are known), then you could use the summation convention for smooths described in ?linear.functional.terms.

If that is not possible, then it is possible to use mgcv to set up a smoothing basis in at least 2 ways. i) You can use the ?smooth.construct functions, to set up model matrices and penalties, or
ii) You can set up, but not fit, a GAM model using gam(...,fit=FALSE)

Once you have rolled your own model matrix, you can either modify what was returned by option ii) and get `gam' to proceed with fitting, or use the paraPen argument to `gam' to fit a model with your model matrix, penalized according to the contents of `paraPen' (?gam.models has some example code using paraPen).

best,
Simon

On 11/07/12 15:56, Ateljevich, Eli wrote:
I have a data assimilation problem that might be amenable to the use of GAMS, 
but I am not sure how feasible it is to implement. I was told the R mailing 
list was a great resource.

My observations are spatiotemporal salinity in the San Francisco Bay at a 
number of instruments over a few days. The thing that I want to fit is the 
initial condition for a salt transport model at the beginning of this time 
period. The spline basis functions, parameters and curvature penalties would 
all be purely spatial, though the cross-validation would be in the space of the 
data.

The modification I need to make is as follows:
1. evaluate each spatial basis function at every computational point in my mesh 
(dense, but not part of the GAM)
2. use the bases members as individual initial conditions and integrate the PDE.
3. evaluate the salinity results at the (sparse) time and locations where I 
have observations.
4. construct a replacement model matrix X that reflects the influence at (x,t) 
of each spatial basis member. Summing these will works due to the linearity of 
the PDE.
5. The curvature penalty would remain in the spatial, not the spatio-temporal, 
space.

My concerns are: whether, say with mgcv, I can halt the process (probably set 
"fit" to false) and then evaluate at a large number of arbitrary points, then 
replace the matrix X and continue on. I am also concerned whether this is hopeless in the 
sense that at the point in the algorithm where I might inject the new X precalculations 
might have been made using the old matrix X that would be hard to reverse.



Can anyone give me some advice how to do this?


Thanks,
Eli

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.



--
Simon Wood, Mathematical Science, University of Bath BA2 7AY UK
+44 (0)1225 386603               http://people.bath.ac.uk/sw283

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to