Skip to content

Create/convert a point pattern from raw txt file in spatstat?

2 messages · opheliawang at mail.utexas.edu, Barry Rowlingson

#
Hi all,

I'm new to R, so I'm still learning how to do this: I have a txt file  
that contains X Y coordinate of trees (range from 0-100 for both X and  
Y) and a "mark" column that's the tree ID. The total is about 600  
lines. Part of the data looks like:

X	Y	Mark
1	94	1
2.5	94.5	4
3	93	5
4	92	6
4	95	7
6	98	8
4	84	9
6	86	10
6	86	11
6	86	12
6	86	13
8	88	14
9.5	89.5	15
10	90	16

In order to create a point pattern, should I used scanpp, ppp, or  
as.ppp?Here's the error I get for each command:
Error: is.numeric(x) is not TRUE
Error in ppp(x, y, xrange = c(0, 100), yrange = c(0, 100), marks,  
check = TRUE) : object "x" not found
Error in verifyclass(window, "owin") : argument ?window? is not of  
class ?owin?
Error: is.numeric(x) is not TRUE

My problems are not knowing which command to use and how the "window"  
should be specified. Can anyone help me with this? Thanks so much!

Ophelia
#
2008/10/14  <opheliawang at mail.utexas.edu>:
That's a clue there. Something in your data isn't a number. Now your
file looks like all numbers.. except... those headers!

 You need to tell read.table that you've got headings, by using
head=TRUE. Compare:

 > test = read.table("tree.txt")
 > test[1:5,]
     V1   V2   V3     <- R made these headings
 1    X    Y Mark     <- oops
 2    1   94    1
 3  2.5 94.5    4
 4    3   93    5
 5    4   92    6

 > test = read.table("tree.txt",head=TRUE)
 > test[1:5,]
      X    Y Mark    <- R's headings
 1  1.0 94.0    1  <-  your data starts here
 2  2.5 94.5    4
 3  3.0 93.0    5
 4  4.0 92.0    6
 5  4.0 95.0    7

from there, as.ppp(test,w) works fine:
marked planar point pattern: 14 points
marks are numeric, of type 'integer'
window: rectangle = [0, 100] x [0, 100] units
Warning message:
In ppp(X[, 1], X[, 2], window = win, check = check) :
  data contain duplicated points

 If you still get errors with head=TRUE then there's something else in
your data file that's not a number. Read some introductory R docs on
reading data (help(read.table) for starters).

 summary(test) and str(test) will tell you things about test before
you go on and try and do things with it. You should always make sure
step N is okay before assuming the problem is with step N+1...

Barry