[SOLVED] Bug éxécution RGeoS

If you have problems using RGeostats package or if you simply need some help on an unlisted subject.

[SOLVED] Bug éxécution RGeoS

Postby Maxime Beauchamp » Tue Feb 05, 2013 2:05 pm

Bonjour,

Après des échanges avec Didier Renard, je suis ses conseils et fais suivre mon problème sur le forum. J'essaie de résumer le problème rencontré :

Je viens d'installer RGeoS sur les calculateurs du CCRT au CEA de Saclay où je dispose, en tant qu'ingénieur Ineris, d'un certain nombre d'heures de calcul.
La librairie s'installe bien mais à l'exécution des méthodes, j'ai des messages d'erreur qui font planter mon code, j'en donne deux exemples :

1- Lorsque je crée une table avec db.create (table=db.create(...)), la fonction s'effectue bien mais si j'essaie d'afficher le résultat en tapant simplement table dans la console R, ça plante.
2- Si je laisse la table se crée sans essayer de l'afficher (db.create, db.locate, etc...) puis que j'essaie de modéliser le variogramme avec vario.calc, nouveau type de bug avec le message d'erreur suivant:
terminate called after throwing an instance of 'Rcpp::not_compatible'
what(): not compatible with REALSXP
Aborted

Je précise que je viens d'installer la version 9.1.0 de RGeoS et apporte quelques précisions sur le système d'exploitation utilisé. Je travaille pour ma part sur le calculateur AIRAIN :http://www-ccrt.cea.fr/fr/moyen_de_calcul/airain.htm dont voici les principales caractéristiques :
Marque :BULL
Modele : Bullx B510
Systeme d'exploitation : bullx supercomputer suite (base Linux64 bits)
Nom : Airain

En espérant que vous pourrez m'aider.

Maxime Beauchamp
Last edited by Maxime Beauchamp on Wed Feb 13, 2013 9:38 am, edited 1 time in total.
Maxime Beauchamp
 
Posts: 29
Joined: Thu Jan 17, 2013 2:48 pm

Re: Bug éxécution RGeoS

Postby Fabien Ors » Tue Feb 05, 2013 2:45 pm

Bonjour Maxime.

Oui nous avons un problème sur cette version RGeoS 9.1.0 qui à priori ne fonctionne pas sur toutes les plateformes Linux 64 bits.
Je suggère de revenir à la version 9.0.8 qui nécessite R 2.15.2 et Rcpp 0.10.2 le temps que ce pb soit corrigé.

Cordialement,
Fabien Ors
Administrateur du site
 
Posts: 124
Joined: Thu Sep 20, 2012 1:07 pm

Re: Bug éxécution RGeoS

Postby Maxime Beauchamp » Tue Feb 05, 2013 2:54 pm

Désolé j'aurai dû vous préciser que le problème était déjà présent sur les versions 9.0.6, 9.0.7 et 9.0.8 au moment où j'avais entamé mes discussions avec D.Renard.

Merci pour votre réactivité

Maxime Beauchamp
Maxime Beauchamp
 
Posts: 29
Joined: Thu Jan 17, 2013 2:48 pm

Re: Bug éxécution RGeoS

Postby Fabien Ors » Tue Feb 05, 2013 4:34 pm

Ok (j'ai pris connaissance de votre discussion avec Didier)

Depuis la version 9.1.0, la dépendance vers Rcpp n'existe plus (Rcpp est directement intégré à RGeoS).
Si vous n'avez pas besoin du package Rcpp par ailleurs (d'autres package peuvent en avoir besoin), je vous propose de le supprimer en exécutant sous R les commandes :
Code: Select all
packageDescription("Rcpp")
remove.package("Rcpp")

Merci de m'indiquer ce que renvoient ces commandes.
Fabien Ors
Administrateur du site
 
Posts: 124
Joined: Thu Sep 20, 2012 1:07 pm

Re: Bug éxécution RGeoS

Postby Maxime Beauchamp » Wed Feb 06, 2013 8:46 am

Bonjour,

Voici le résultat des commandes :

> packageDescription("Rcpp")
Package: Rcpp
Title: Seamless R and C++ Integration
Version: 0.10.2
Date: $Date: 2012-12-21 06:24:27 -0600 (Fri, 21 Dec 2012) $
Author: Dirk Eddelbuettel and Romain Francois, with contributions by
Douglas Bates, John Chambers and JJ Allaire
Maintainer: Dirk Eddelbuettel <edd@debian.org>
Description: The Rcpp package provides R functions as well as a C++
library which facilitate the integration of R and C++.
.
R data types (SEXP) are matched to C++ objects in a class hierarchy.
All R types are supported (vectors, functions, environment, etc
...) and each type is mapped to a dedicated class. For
example, numeric vectors are represented as instances of the
Rcpp::NumericVector class, environments are represented as
instances of Rcpp::Environment, functions are represented as
Rcpp::Function, etc ... The "Rcpp-introduction" vignette
provides a good entry point to Rcpp.
.
Conversion from C++ to R and back is driven by the templates Rcpp::wrap
and Rcpp::as which are highly flexible and extensible, as
documented in the "Rcpp-extending" vignette.
.
Rcpp also provides Rcpp modules, a framework that allows exposing C++
functions and classes to the R level. The "Rcpp-modules"
vignette details the current set of features of Rcpp-modules.
.
Rcpp includes a concept called Rcpp sugar that brings many R functions
into C++. Sugar takes advantage of lazy evaluation and
expression templates to achieve great performance while
exposing a syntax that is much nicer to use than the equivalent
low-level loop code. The "Rcpp-sugar" vignette gives an
overview of the feature.
.
Rcpp attributes provide a high-level syntax for declaring C++ functions
as callable from R and automatically generating the code
required to invoke them. Attributes are intended to facilitate
both interactive use of C++ within R sessions as well as to
support R package development. Attributes are built on top of
Rcpp modules and their implementation is based on previous work
in the inline package.
.
Many examples are included, and over 870 unit tests in over 390 unit
test functions provide additional usage examples.
.
An earlier version of Rcpp, containing what we now call the 'classic
Rcpp API' was written during 2005 and 2006 by Dominick Samperi.
This code has been factored out of Rcpp into the package
RcppClassic, and it is still available for code relying on the
older interface. New development should always use this Rcpp
package instead.
Depends: R (>= 2.15.1)
Imports: methods
Suggests: RUnit, inline, rbenchmark
URL: http://dirk.eddelbuettel.com/code/rcpp.html,
http://romainfrancois.blog.free.fr/inde ... ckage/Rcpp
License: GPL (>= 2)
BugReports:
http://r-forge.r-project.org/tracker/?a ... unc=browse
MailingList: Please send questions and comments regarding Rcpp to
rcpp-devel@lists.r-forge.r-project.org
Packaged: 2012-12-21 12:29:41.246628 UTC; edd
Repository: CRAN
Date/Publication: 2012-12-21 16:38:58
Built: R 2.15.2; x86_64-unknown-linux-gnu; 2013-01-17 12:24:02 UTC;
unix

-- File: /ccc/cont004/dsku/zinc/home/user/beaucham/R_LIBS/Rcpp/Meta/package.rds

> remove.packages("Rcpp")
Removing package(s) from '/ccc/cont004/dsku/zinc/home/user/beaucham/R_LIBS'
(as 'lib' is unspecified)

Le lancement de mon script aboutit ensuite à la même erreur qu'hier.

Maxime Beauchamp
Maxime Beauchamp
 
Posts: 29
Joined: Thu Jan 17, 2013 2:48 pm

Re: Bug éxécution RGeoS

Postby Fabien Ors » Fri Feb 08, 2013 3:42 pm

Ok merci.
Prenons donc les pb dans l'ordre
De quelle distribution Linux 64 bits s'agit-il SVP (commande 'uname -a') ?
Maxime Beauchamp wrote:1- Lorsque je crée une table avec db.create (table=db.create(...)), la fonction s'effectue bien mais si j'essaie d'afficher le résultat en tapant simplement table dans la console R, ça plante.

Quel est le symptôme ?
- Un crash de l'affichage de 'table' ?
- Un arrêt complet de R ?

Pourrais-je avoir un extrait du script qui est lancé ?
L'idéal serait de reproduire le problème chez nous.
Fabien Ors
Administrateur du site
 
Posts: 124
Joined: Thu Sep 20, 2012 1:07 pm

Re: Bug éxécution RGeoS

Postby Maxime Beauchamp » Mon Feb 11, 2013 8:47 am

Bonjour,

Voici le résultat de la commande uname -a :
Linux airain71 2.6.32-220.23.1.bl6.Bull.28.8.x86_64 #1 SMP Thu Jul 5 16:46:35 CE ST 2012 x86_64 x86_64 x86_64 GNU/Linux

Le plantage du script a pour conséquence un arrêt complet de R : le message Aborted apparaît et le terminal me rend la main.

Voici un extrait du script mais il est assez basique et je ne sais pas s'il vous apprendra grand chose. Le data.frame res contient les coordonnées lon-lat et des variables complémentaires (nd_obs,ind_obs, etc...). Je passe un argument var_krig dans ma fonction qui définira la variable à spatialiser.

Code: Select all
 
  data.db=db.create(res,flag.grid=F,ndim=2,autoname=F)
  data.db=db.locate(data.db,paste(var_krig,"obs",sep="_"),"z")

  # création du grid.db
  grid=read.csv(paste(rep_result_analyse,"/",date[1],".resAnalyse.csv",sep=""))[,c(1,2)]
  grid.db=db.create(grid,flag.grid=F,ndim=2,autoname=F)

  # création du data.model
  data.vario=vario.calc(data.db,lag=1,nlag=20)
  struct_=c('Spherical','Exponential','Linear','Nugget Effect')
  data.model=model.auto(data.vario,struct=struct_)
  data.u.neigh=neigh.init(ndim=2,type=0)


Merci encore de votre aide,

Maxime Beauchamp
Maxime Beauchamp
 
Posts: 29
Joined: Thu Jan 17, 2013 2:48 pm

Re: Bug éxécution RGeoS

Postby Fabien Ors » Mon Feb 11, 2013 4:37 pm

En effet, ce bout de script ne suffit pas.
De plus je ne vois pas de "table = db.create()" et je ne sais pas à partir de quelle ligne apparait le plantage.
Il y aussi un étrange nommage de variable puisque la variable grid.db stocke une db qui n'est pas une grille (flag.grid=F)
Enfin, il est déconseillé d'utiliser des noms de variables qui sont déjà des fonctions existantes. La fonction "table" existe déjà il serait souhaitable de choisir un autre nom de variable.

Afin de reproduire le pb chez nous, il nous faudrait le .RData et le .RHistory ainsi que les fichiers ASCII lus.
Merci de nous envoyer ça par mail si possible.
Fabien Ors
Administrateur du site
 
Posts: 124
Joined: Thu Sep 20, 2012 1:07 pm

Re: Bug éxécution RGeoS

Postby Didier Renard » Tue Feb 12, 2013 8:44 pm

Bonjour Maxime (et merci a Fabien pour avoir piste le bug ... assez subtile)
En regardant le contenu de db.data (cree par le script de Maxime) [ mais surtout pas en utilisant la fonction print()
(ou en tapant simplement le nom "data.db" .... ce qui revient au meme) ] en utilisant la commande unclass(),
on constate aisement que le data.frame interne (correspondant au slot "items") contient deux champs
remplis de chaines de caracteres (les variables "lsitm" et "typo")

Or les Db de RGeoS ne sont pas faites pour stocker de l'alphanumerique. Elles sont reservees aux seules
variables numeriques. Il suffit de s'en debarasser:
- soit en recommencant le chargement
- ou en frappant la commande suivante:
data.db <- db.delete(data.db,seq(5,6))

On reduit la Db a 14 variables (ou "fields") pour 333 echantillons.

L'affichage de data.db ne plus alors plus de probleme ... ni le calcul du variogramme avec la commande:
vario <- vario.calc(data.db,lag=1,nlag=20)

Message a Fabien: Il restera a faire en sorte d'interdire le chargement de tableaux (ou de vecteurs) dont le contenu n'est pas uniquement numerique.

Cordialement
Didier Renard
 
Posts: 251
Joined: Thu Sep 20, 2012 4:22 pm

Re: Bug éxécution RGeoS

Postby Maxime Beauchamp » Wed Feb 13, 2013 9:38 am

Bonjour,

Effectivement tout fonctionne bien maintenant.

Merci beaucoup d'avoir pu corriger ces problèmes si rapidement.

Cordialement,

Maxime Beauchamp
Maxime Beauchamp
 
Posts: 29
Joined: Thu Jan 17, 2013 2:48 pm


Return to Other Troubleshooting

Who is online

Users browsing this forum: No registered users and 1 guest

cron