Excellent, that will help alot. I have the newest version of automap and am 
running an experiment now. 

Just to confirm I need to omit the statement 'grd(new_data argument)' which in 
my case is 'gridded(grd) <- TRUE'. That way the resolution is defined in 
x.range <- ..... and y.range <- ..... statements but the entire grid (square) 
is not defined and thus interpolation only occurs where data exists?

Wesley


Wesley Roberts MSc.
Researcher: Earth Observation (Ecosystems)
Natural Resources and the Environment
CSIR
Tel: +27 (21) 888-2490
Fax: +27 (21) 888-2693

"To know the road ahead, ask those coming back."
- Chinese proverb

>>> Paul Hiemstra <p.hiems...@geo.uu.nl> 02/16/09 12:08 PM >>>
Hi,

A convex hull should do the trick, if you have the latest automap 
version (>0.5-2) you don't have do to anything to get a convex hull. 
Just omit grd (new_data argument) and automap will automatically use a 
convex hull.

cheers,
Paul

Wesley Roberts wrote:
> Hi Paul,
>
> Many thanks for the reply. I am not sure about the convex hull approach as I 
> am not sure how to implement it as part of my program. Is the code you wrote 
> below replacing the following statements? Would I then pass grd to the 
> autoKrige statement as shown in the original code below?
>
> ************************************************************************************************************************************************************************************************************
>   
>> x.range <- as.integer(range(a...@coords[,1]))
>> y.range <- as.integer(range(a...@coords[,2]))
>> grd <- expand.grid(x=seq(from=x.range[1], to=x.range[2], by=0.1), 
>> y=seq(from=y.range[1], to=y.range[2], by=0.1))
>> coordinates(grd) <-~ x+y
>> gridded(grd) <- TRUE
>>     
> ************************************************************************************************************************************************************************************************************
>
> I have uploaded some pics of my points and interpolations to flickr. 
>
> Link 1 shows the timber compartment with the lidar points overlayed and the 
> bounding polygon used to subset the point data set. You cant really see the 
> irregularity of the points but trust me, they are all over the place. Average 
> distance between points is about 17cm so a 10cm interpolation resolution 
> should be okay. 
> Link 1
> http://www.flickr.com/photos/35273...@n07/3283623165/
>
> Link 2, is the height interpolation using the parameters you suggested on 
> Friday. As you can see the lack of points outside the polygon results in a 
> type of edge effect at the boundaries. I can mask the rest out but would 
> prefer to limit the interpolation to minimize errors at the boundaries.
> Link 2
> http://www.flickr.com/photos/35273...@n07/3283623941/
>
> Finally link 3 shows what I think is the kriging variance although I cant be 
> sure. When I import the tiff written by writeGDAL there are three bands 
> (using GRASS). The first is the interpolated variable, the next two are a 
> mystery to me. If this is indeed the krig variance then limiting the 
> interpolation based on kriging variance seems like a good idea? What do you 
> think?
> Link 3
> http://www.flickr.com/photos/35273...@n07/3284446466/
>   
This is indeed the kriging variance.
> Many thanks,
> Wesley
>
> Wesley Roberts MSc.
> Researcher: Earth Observation (Ecosystems)
> Natural Resources and the Environment
> CSIR
> Tel: +27 (21) 888-2490
> Fax: +27 (21) 888-2693
>
> "To know the road ahead, ask those coming back."
> - Chinese proverb
>
>   
>>>> Paul Hiemstra <p.hiems...@geo.uu.nl> 02/16/09 10:29 AM >>>
>>>>         
> Hi Wesley,
>
> You could take a look at using a convex hull. I'm not sure if this will
> fix your problem as we cannot see how exactly your points are irregular.
> The latest version on my website (0.5-2) uses a convex hull off the data
> if you don't pass a new_data object. You could try this. The function 
> making the convex hull is:
>
> create_new_data = function(obj) {
> # Function that creates a new_data object if one is missing
>         convex_hull = chull(coordinates(obj)[,1],coordinates(obj)[,2])
>         convex_hull = c(convex_hull, convex_hull[1]) # Close the polygon
>         d = Polygon(obj[convex_hull,])
>         new_data = spsample(d, 5000, type = "regular")
>         gridded(new_data) = TRUE
>         return(new_data)
> }
>
> If you want to call it directly from the package use 
> automap:::create_new_data.
>
> cheers,
> Paul
>
> Wesley Roberts wrote:
>   
>> Dear R-sig-geo'ers
>>
>> I am currently running some interpolations using automap written by Paul 
>> Hiemstra. So far my interpolations have been producing suitable results 
>> except for one problem. From the code you will see that the boundaries of 
>> the spatial grid are determined using the range of the X and Y coordinates 
>> creating a square grid. My point data do not cover the entire grid and I 
>> would only like to interpolate in areas where data exists otherwise I get a 
>> significant edge effect. Is it possible to limit / mask my interpolation to 
>> only predict where data exists? 
>>
>> The point data are lidar canopy returns for an irregular shaped timber 
>> compartment and number around 10 000 irregular spaced points. 
>>
>> Any help on this matter would be greatly appreciated.
>>
>> Kind regards,
>> Wesley
>>
>>
>> library(automap)
>> library(gstat)
>>
>> a <- read.csv("AreaOne_4pts.csv", header=TRUE)
>>
>> coordinates(a) <-~ x+y
>>
>> x.range <- as.integer(range(a...@coords[,1]))
>> y.range <- as.integer(range(a...@coords[,2]))
>>
>>
>> grd <- expand.grid(x=seq(from=x.range[1], to=x.range[2], by=0.1), 
>> y=seq(from=y.range[1], to=y.range[2], by=0.1))
>> coordinates(grd) <-~ x+y
>> gridded(grd) <- TRUE
>>
>> height = autoKrige(H~1, a, grd, nmax=100)
>> writeGDAL(height$krige_output, fname="test.tiff", drivername ="GTiff", type 
>> = "Float32")
>>
>> intensity = autoKrige(I~1, a, grd, nmax=100)
>> writeGDAL(intensity$krige_output, fname="test.tiff", drivername ="GTiff", 
>> type = "Float32")
>>
>> Wesley Roberts MSc.
>> Researcher: Earth Observation (Ecosystems)
>> Natural Resources and the Environment
>> CSIR
>> Tel: +27 (21) 888-2490
>> Fax: +27 (21) 888-2693
>>
>> "To know the road ahead, ask those coming back."
>> - Chinese proverb
>>
>>
>>   
>>     
>
>
>   


-- 
Drs. Paul Hiemstra
Department of Physical Geography
Faculty of Geosciences
University of Utrecht
Heidelberglaan 2
P.O. Box 80.115
3508 TC Utrecht
Phone:  +31302535773
Fax:    +31302531145
http://intamap.geo.uu.nl/~paul



-- 
This message is subject to the CSIR's copyright terms and conditions, e-mail 
legal notice, and implemented Open Document Format (ODF) standard. 
The full disclaimer details can be found at 
http://www.csir.co.za/disclaimer.html.


and is believed to be clean.  MailScanner thanks Transtec Computers for their 
support.

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to