Ionut Sandric
Thank you Zack:
By raster data I mean classified slope gradient (derived from a dem), landuse-landcover, lithology etc. A crosstabulation analysis will give me a table with the common areas for each class from each raster and this will go into other analysis. I can do it with other softwares (like ArcGIS DEsktop etc), but I would like to have all with numpy or to build something on top of numpy
Thanks's again
Ionut
----- Original Message ----- From: "Zachary Pincus"
To: "Discussion of Numerical Python" Sent: Wednesday, July 14, 2010 9:42:49 PM GMT +02:00 Athens, Beirut, Bucharest, Istanbul Subject: Re: [Numpy-discussion] Crosstabulation Hi Ionut,
Check out the "tabular" package: http://parsemydata.com/tabular/index.html
It seems to be basically what you want... it does "pivot tables" (aka crosstabulation), it's built on top of numpy, and has simple data IO tools.
Also check out this discussion on "pivot tables" from the numpy list a while ago: http://mail.scipy.org/pipermail/numpy-discussion/2007-August/028739.html
One question -- what do you mean by "raster data"? In my arena, that usually means "images"... and I'm not sure what a crosstabulation on image data would mean!
Zach
On Jul 14, 2010, at 2:28 PM, Ionut Sandric wrote:
Sorry, the first email was sent before to finish it...
Hi:
I have two raster data and I would like to do a crosstabulation between them and export the results to a table in a text file. Is it possible to do it with NumPy? Does someone have an example?
Thank you,
Ionut
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion <at> scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion <at> scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Hi, You may be able to adapt this simple script to your case. import numpy as np # generate some test data def gen(b, e, m, n): return np.arange(b, e+ 1), np.random.randint(b, e+ 1, (m, n)) m, n= 15, 15 c1, d1= gen(0, 3, m, n); print d1 c2, d2= gen(3, 5, m, n); print d2 # perform actual x-tabulation xtab= np.zeros((len(c1), len(c2)), np.int) for i in xrange(len(c1)): tmp= d2[c1[i]== d1] for j in xrange(len(c2)): xtab[i, j]= np.sum(c2[j]== tmp) print xtab, np.sum(xtab)== np.prod(d1.shape) Anyway it's straightforward to extend it to nd x-tabulations ;-). My 2 cents, eat