[SoC] problems with R-Python data interchange

Anne Ghisla a.ghisla at studenti.uninsubria.it
Thu Jul 10 06:47:48 EDT 2008


Hello all,

the progress of my work is being blocked by a data interchange problem
between R and Python.
I succeeded in converting a Python dictionary (containing lists) into a
dataframe and pass it to R. (line 160 of interfaccia.py)
The next step is to apply the function that calculates homeranges.
This function is called HR_cruncher and returns a list of lists, of
class "homerange" (custom class, it is not a standard R object).
Here is the piece of code. Full code is available on the repository [1],
updated right now. pluginProva is the folder of the plugin, just copy it
in QGIS python plugin folder.

      r.require('rgdal')
      r.require('adehabitat') 
## FIXME: set more general import mode. But it runs.
      motore = '~/apps/share/qgis/python/plugins/pluginProva/motore.R'
      r.source(motore)
      exporter =
'~/apps/share/qgis/python/plugins/pluginProva/exporter.R'
      r.source(exporter)
      print "DEBUG infos about the data dataframe"
      print r.str(data) # it works also on no conversion mode. O_o ?!?
      #FIXME: not sure if line below works. Sure that the exporter line
doesn't work.
      #IDEA: if not easy to run around this problem, consider to source
an entire R script.
      set_default_mode(NO_CONVERSION)
#      homeranges = r("""HR_cruncher(data, method="mcp")""")
      print "###"
      print r.str(r("""HR_cruncher(data, method="mcp")""") )

Even if I use NO_CONVERSION mode, this is the output I obtain:

Loading required package: rgdal
Loading required package: sp
Geospatial Data Abstraction Library extensions to R successfully loaded
[...]
Loading required package: adehabitat
Loading required package: ade4

Attaching package: 'ade4'
[...]

Loading required package: gpclib
General Polygon Clipper Library for R (version 1.4-1)
	Type 'class ? gpc.poly' for help
DEBUG infos about the data dataframe
'data.frame':	20 obs. of  3 variables:
 $ Y : num  5109278 5109277 5109347 5109345 5109276 ...
 $ X : num  1560413 1560417 1560477 1560465 1560555 ...
 $ ID: Factor w/ 20 levels "CED02","CED03",..: 20 19 18 17 14 13 12 11
10 8 ...
<Robj object at 0xd0e470>
###
 chr [1:3] "function" "OptionalFunction" "PossibleMethod"
<Robj object at 0xd0e470>

I guess that this kind of object has no possible conversion for Pyhton.
This is not a problem, because it has to be passed as is to the next R
function. 

Any suggestions?

regards,

Anne


[1] svn://home.prea.net/svn/GSoC/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://lists.osgeo.org/pipermail/soc/attachments/20080710/606b79fc/attachment.bin


More information about the Soc mailing list