Gambas-it

Programmazione => Progetti degli utenti => Topic aperto da: pedrak - 14 Febbraio 2011, 20:42:30

Titolo: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: pedrak - 14 Febbraio 2011, 20:42:30
Fantastico !!!!  :2birre:
meglio di quanto avessi sperato !!! ...

mi studio l'esempio e poi vi racconto qualcosa di più
su quanto avevo in mente e gli sviluppi che potrebbe avere

 :)

Giuseppe
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: pedrak - 15 Febbraio 2011, 16:34:03
Amici e Gambas Gurus,

sperando possa interessarvi provo a raccontarvi qualcosa in più  dell'uso che mi piacerebbe fare di Gambas e R . Spero resistiate a leggere fino in fondo ...

Se credete posso poi darvi tutte le informazioni anche personali che riterrete di chiedere.

Mi occupo di ricerca nel campo della Fisica e lavoro all'Università di Parma. Insieme ad altri colleghi e in  collaborazione anche con alcuni ricercatori della NASA stiamo sviluppando alcuni modelli matematici per l'analisi di dati che vengono inviati dalle sonde spaziali. Questi dati dovrebbero aiutare a capire, mediante immagini e spettri in riflettanza la composizione mineralogica della superficie planetaria, ad esempio di Marte. 

A tale scopo abbiamo codificato il modello che ci serve per analizzare i dati in R. ( http://cran.r-project.org/ )

Come dovrebbe ormai  risultarvi credibile, R è estremamente versatile e potente, in poche righe di codice si possono definire funzioni anche molto complesse e si hanno a disposizione, praticamente senza scrivere codice, routine potenti per il fitting dei dati sperimentali, l'analisi statistica, e la grafica . R sta diventando sempre di più lo standard del mondo accademico per quanto riguarda la statistica. Anche pacchetti commerciali da decine di migliaia di euro tipo Matlab e SPSS stanno rilasciando le loro ultime versioni con plug-in aggiuntivi per R.  Questo è un grande riconoscimento all'open source !

D'altra parte R è principalmente a riga di comando e batch, quindi non piace molto a tutte quelle persone, compresi scienziati più o meno famosi che non hanno molta dimestichezza con la programmazione e magari usano solo Excel o qualche pacchetto preconfezionato per un certo uso.

Tempo fa, abbiamo scritto un programma in visual basic .net che si interfacciava con R , tramite COM, e permetteva di utilizzare una interfaccia grafica per pilotare tutto il processo di lettura dei dati, analisi statistica e plot dei risultati. Tutto graficamente. Il programma è piaciuto ai colleghi che lo hanno visto e volevamo metterlo a disposizione come progetto open con licenza GPL. Poi abbiamo cominciato a incontrare problemi vari di compatibilità software, il programma non funzionava allo stesso modo su computer diversi nonostante la stessa versione di .net, visual Basic ecc ecc ...
Questo magari è dovuto anche al fatto che non siamo programmatori professionisti, quindi siamo un po' scarsi ...  :'(
tuttavia ci ha disturbato parecchio.

Comunque è passato un po' di tempo, io ho sviluppato sempre di più l'interesse per Linux e il mondo Open Source ... allora mi sono chiesto ...

Perchè non in Gambas ?

Mi piacerebbe coinvolgere un po' la comunità Gambas per produrre un progettino come questo. Si potrebbero pubblicare senza difficoltà i risultati su una rivista scientifica internazionale e rendere disponibile il software come Università e comunità Gambas, inclusi i nomi di chi effettivamente partecipasse.  :coder:  :ok:

Penso che per un esperto come fsurfing (Sergio)  sarebbe un gioco da ragazzi far funzionare il tutto in pochissimo tempo ...
ho visto il software che ha sviluppato, molto interessante davvero.

---------

Avrei poi un altro progetto, un pochino più complesso ma di portata ben maggiore se ci fosse interesse ...

Sviluppare un intero pacchetto per l'analisi statistica, tipo SPSS. Grafica Gambas, ovviamente, e motore R .

Produrrebbe sicuramente un grande interesse, anche internazionale. L'Università dove lavoro paga parecchio per le licenze di SPSS, non sarebbe meglio se ce li spendessimo a cena o in qualche altra attività di comune interesse ?  :2birre:

Se qualcuno è interessato ... batta un colpo .


Saluti più che cordiali a tutti
Giuseppe
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: milio - 15 Febbraio 2011, 17:08:26
Caspiterina, addirittura la NASA  :o

Se serve una mano ben volentieri, ma bisognerebbe studiarsi il modo di integrare le funzioni direttamente in gambas senza utilizzare la Shell...
Stasera se ho tempo vedo di trovare un modo, ma non prometto niente :)
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: pedrak - 15 Febbraio 2011, 17:25:41
grazie in ogni caso ...

sono sicuro che con il vostro aiuto qualcosa di buono
verrà fuori sicuramente, magari diverso dallo scopo originale
ma comunque interessante ...

Giuseppe
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: Taurus dei miracoli - 15 Febbraio 2011, 18:12:52
@pedrak e milio

Se avete bisogno di bassa manovalanza Gambas fatemi sapere, un po' di tempo ce l'ho...
...io ho incontrato Gambas da poco dopo aver programmato per 20 anni sotto Windows (soprattutto Visual Basic).
Fatemi sapere. :D
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: Taurus dei miracoli - 15 Febbraio 2011, 18:13:45
Già che si pensa ad un progetto così importante...
...e a lungo termine, non è il caso di pensare a G3 ???
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: fsurfing - 15 Febbraio 2011, 19:41:38
il tuo preambolo non può che essere super interessante , ma avete considerato il fatto che gambas si puo utilizzare a livello nativo solo su macchine LINUX?  per utilizzare il programma su win si dovrebbe far girare  tramite macchina virtuale o al limite come applicazione client di un server LINUX

Poi per riuscire a realizzare qualcosa di valido bisognerebbe sapere esattamente cosa si vuole realizzare , percui dovresti descrivere per benino le funzioni che dovrebbero essere implementate dal programma.

@milio
Slegare R dai comandi shell sarebbe molto bello , credo che l' unico modo sia tramite i comandi extern , ma questo penso implichi la completa conoscenza di tutte le funzioni di R e di tutti i moduli aggiuntivi, forse con un buon controllo degli errori shel sia meglio , del resto viene utilizzato solo per avviare R e poi i comandi vengono inviati tramite il processo.
che ne dici?
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: milio - 15 Febbraio 2011, 20:04:11
il tuo preambolo non può che essere super interessante , ma avete considerato il fatto che gambas si puo utilizzare a livello nativo solo su macchine LINUX?  per utilizzare il programma su win si dovrebbe far girare  tramite macchina virtuale o al limite come applicazione client di un server LINUX

E chi se ne frega, peggio per loro!  :P

@milio
Slegare R dai comandi shell sarebbe molto bello , credo che l' unico modo sia tramite i comandi extern , ma questo penso implichi la completa conoscenza di tutte le funzioni di R e di tutti i moduli aggiuntivi, forse con un buon controllo degli errori shel sia meglio , del resto viene utilizzato solo per avviare R e poi i comandi vengono inviati tramite il processo.
che ne dici?

Penso che tu abbia ragione, anche perche' io non so quali siano le funzioni da utilizzare o cosa bisognerà tirare fuori come output...
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: fsurfing - 15 Febbraio 2011, 20:21:01
Citazione
E chi se ne frega, peggio per loro!  Linguaccia
concordo  ;D
ma pedrak potrebbe essere di diverso avviso..
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: fsurfing - 15 Febbraio 2011, 21:42:26
intanto ho provato a mettere in pratica il suggerimento di milio a riguardo di far scrivere il grafico direttamente in un file, il funzionamento è ottimo però in caso si voglia aggiungere altri disegni al grafico diventa un problema, per cui ho optato per l' embledded
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: Ceskho - 16 Febbraio 2011, 00:34:48
Amici e Gambas Gurus,

sperando possa interessarvi...

@pedrak

Non dispiacerti ma ho editato il messaggio per renderlo più compatto. Non c'è bisogno di andare a capo ad ogni rigo altrimenti vien su una poesia...la casella ha l'auto wrap e va a capo da sola...;)

Comunque personalmente direi che conviene abbandonare questa discussione visto che l'oggetto della richiesta ormai non sussiste più e di aprire una nuova discussione, magari in "Progetti in cerca di aiuto"....

P.S. La tua proposta è molto allettante ma io sono solo un bracciante agricolo più che ventiduenne e con la NASA ho poco a che fare.. :)
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: pedrak - 16 Febbraio 2011, 01:09:56
grazie Ceskho,

accetto volentieri il tuo suggeriremento di aprire una nuova discussione ... domani provvedo,
con tutti i dettagli.

Per quanto riguarda il resto ... l'esperienza e le capacità creative sono qualità preziose che possono
interessare chiunque, NASA compresa ...
A volta non si sospetta nemmeno di quanto utile possa essere per altri quel che si sa fare ...

Saluti
Giuseppe
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: fsurfing - 16 Febbraio 2011, 20:08:46
R è veramente un bel programmone

provate a copiare questo listato nel programma allegato (pulsante "scrivi listato")  , avrete un grafico delle anomalie termiche ( fonte http://www.climatemonitor.it/?cat=420 (http://www.climatemonitor.it/?cat=420))

Codice: [Seleziona]
options(digits=6) # APPROSSIMAZIONE ALLA 6° CIFRA DECIMALE
library(tseries)
install.packages("tseries")
dati<- "http://www.remss.com/data/msu/monthly_time_series/RSS_Monthly_MSU_AMSU_Channel_TLT_Anomalies_Land_and_Ocean_v03_2.txt"
RSS_mensile <- read.table(dati,skip = 3,sep = "",dec=".",row.names = NULL,header = FALSE,as.is = T,colClasses = c(rep("numeric",3),rep("NULL", 8)),comment.char = "#",na.strings = c("*", "-",-99.9, -999.9),col.names = c("Anno", "Mese", "RSS_anom", rep("",8)))
anno_fraz <- RSS_mensile$Anno + (RSS_mensile$Mese-1)/12
RSS_data_frame<-data.frame(RSS_mensile,anno_fraz)
attach(RSS_data_frame)
c<-nrow(RSS_data_frame)
ultimo_mese <- RSS_data_frame$Mese
ultimo_anno <- RSS_data_frame$Anno
ultimo_dato <- RSS_anom
RSS <- ts(RSS_anom,start=c(1979,1),frequency=12)
plot(anno_fraz,RSS_anom,type="s",col="grey",xlab="",ylab = "°C - Anomalia termica",xlim=c(1979, 2010), ylim=c(-0.6,max(RSS)),cex.axis=0.95,cex.lab=0.95)
lines(RSS,type="h",col="lightgrey") # GRAFICO DI FONDO
abline(h=0,col="darkgrey")
lm_fit <- lm(RSS_anom~anno_fraz)
a <- coef(lm_fit)[1]
b <- coef(lm_fit)[2]
yr1 <- min(anno_fraz)
yr2 <- max(anno_fraz)
y1 <- a+b*yr1
y2 <- a+b*yr2
x_val <- c(yr1,yr2)
y_val <- c(y1,y2)
lines(x_val,y_val,type="l",col="red")
b <- signif(b, 3)
#points(yr2, ultimo_dato, pch=20, col = "blue")
#points(1995, -0.5, pch=20, col = "blue")
note2 <- paste("Ultima osservazione ",ultimo_mese, "/", ultimo_anno, " = ", ultimo_dato," °C")
text(1995, -0.5, note2, pos = 4, col = "blue", cex = 0.7)
note3 <- paste("Trend = ",b," °C / anno ")
text(1995,-0.4, note3,pos=4, col = "red", cex = 0.7)
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: pedrak - 16 Febbraio 2011, 23:19:54
fsurfing, hai già prodotto molto di quello che può servire per il primo progettino !! ...   :coder:
... sono convinto che con tutti i dettagli vi basterebbe un giorno o due per produrne una versione
perfettamente funzionante e di gran lunga migliore della mia  :yeah:

allego un file zippato con un pdf che mostra alcune immagini di quello che faceva il programma visual basic. In sostanza l'interfaccia serviva per aprire e leggere un file di dati in formato ASCII, plottare tramite R il grafico (spettro) corrispondente, poi aggiungere un certo numero di curve (che abbiamo chiamato EGO [Exponential Gaussian Optimization]), modificare la forma interattivamente con refresh del grafico, sempre via R, e alla fine, ottenuto il profilo voluto, far partire la routine di calcolo con R che produce i parametri finali. Dall'output di R viene poi aperta una finestra che mostra i risultati statistici e permette di salvarli in formati diversi, così come per il plot.
Il tuo programmino Gambas ha già molto di tutto questo ...

Nel pdf ho anche allegato una ricerca che potete fare con google e che rimanda a due lavori che abbiamo pubblicato sulle curve EGO scaricabili via internet. Non li ho allegati perchè occupano troppo spazio. A chi fosse interessato posso eventualmente inviarne una copia via email, se ha problemi a scaricarli dalla rete.

Spero davvero che questo possa essere l'inizio di una lunga e proficua collaborazione con la comunità Gambas.

Per quanto riguarda
Citazione
E chi se ne frega, peggio per loro!  Linguaccia
concordo  ;D
ma pedrak potrebbe essere di diverso avviso..

mi trovo anch'io d'accordo ... facciamo pubblicità a Gambas e ai "gamberi" nazionali ...

chiedo scusa a Ceskho, la discussione in effetti sarebbe più opportuna continuarla aprendo un nuovo titolo  ...
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: pedrak - 17 Febbraio 2011, 19:59:16
Gent.mi tutti,

continuando la discussione iniziata nell'area programmazione dal titolo "leggere e scrivere in una finestra terminale", alla quale rimando per le prime  informazioni (se riscrivo tutto Ceskho mi bacchetta ...  ;D) , rinnovo l'invito, a chi fosse interessato, a produrre insieme qualcosa che riguardi l'uso di Gambas come interfaccia grafica per il pacchetto statistico R  (forse più di un pacchetto, un sistema ormai)    (http://cran.r-project.org/).

Avevo proposto un primo progettino per il fitting di dati sperimentali, con l'idea poi di passare a qualcosa di più complesso e ambizioso come un software statistico tipo SPSS. Esiste già un progetto simile in Linux, chiamato RKWard che si basa su R, ma a mio avviso non è proprio entusiasmante per gli utilizzatori. Se riuscissimo a produrre qualcosa in questo senso (prendendo ovviamente tutto il tempo necessario) potrebbe essere un progetto di grande interesse per chiunque usi software scientifico (e una grande pubblicità per la comunità Gambas italiana).

Tagliando corto ... , l'amico fsurfing (con suggerimenti anche di Milio et al) ha già prodotto alcune idee per usare Gambas insieme ad R  :ok:.  Ho fatto alcune prove, che non allego ora per non schifare nessuno  :-[,  e ho visto che il primo progettino che vi avevo proposto mi sembra già pienamente realizzabile. Tra l'altro già così com'è appare più veloce dell'equivalente programma in visual basic .net sotto windows  :bad:
Avevo provato anche ad usare Python con RPy, ma sinceramente con Gambas è più facile e versatile.

Mi prendo qualche giorno per produrre qualcosa di più decente (forse) e poi vi allego tutto, codice R compreso, per sottoporlo alla vostra attenzione .

Ringrazio tantissimo per il tempo che avete già dedicato e rimango ammirato per le soluzioni trovate ...

Saluti a tutti
Giuseppe


Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: fsurfing - 17 Febbraio 2011, 20:50:59
ottimo, buon lavoro allora e se hai bisogno fai un fischio  :)
ps: ho unito la parte relativa all' utilizzo di R dei post dell' altra discussione , giusto per tenere separato la parte di  collegamnto gambas-terminale con la parte relativa ad R
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: pedrak - 01 Marzo 2011, 17:33:49
Gent.mi tutti,

speravo di avere qualcosa da sottoporvi velocemente, ma questi ultimi
giorni sono stati densi di altri problemi e non ho potuto dedicarmi al
sotware come avrei desiderato.   :'(

Mentre stavo tentando di aggiungere qualcosa mi sono imbattuto in un
altra piccola difficoltà.
Gambas usa il formato numerico locale quindi con i decimali in virgola,
es:  12,345
mentre R usa sempre il formato americano, quindi con il punto decimale
es 12.345

I dati che usiamo sono espressi quasi sempre in formato americano.
E' possibile fare in modo che Gambas usi il formato numerico americano
senza cambiare i settaggi locali  del sistema ?

Grazie come sempre per ogni risposta

saluti
Giuseppe

Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: Ceskho - 01 Marzo 2011, 18:01:40
In realtà la cosa è fattibile ma devi usare uno stratagemma. In pratica si tratta di realizzare una textbox che accetti solo valori numerici e il punto.

TI allego l'esempio già fatto così capisci cosa intendo....

P.S.

Ho inserito un controllo che mi era sfuggito per evitare di inserire due volte il punto....:-)
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: pedrak - 01 Marzo 2011, 19:47:15
Grazie mille Ceskho, mi sarà sicuramente utile.  :)

Il problema nasceva in realtà dalla lettura di un file di testo
con 2 colonne di numeri decimali (con il punto) che tentavo di
inserire in una tableview. Mi chiedevo se nella lettura dei numeri
si poteva evitare di dover convertire il punto in virgola.
Allego il file di testo.

Grazie ancora
Giuseppe
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: Ceskho - 01 Marzo 2011, 19:56:45
Beh qui la cosa è ancora più semplice....tutto ciò che ti serve è un replace su ogni numero estratto...

Codice: gambas [Seleziona]
replace(valore_numerico, ",", ".")


Ti faccio un esempio...sposta il file allegato qui nella tua home e in un progetto gambas copia questo codice

Codice: gambas [Seleziona]
PUBLIC SUB Form_Open()
 
  DIM old_file, new_file AS String

  old_file = File.Load(User.Home &/ "B118tronc.txt")
  new_file = Replace(old_file, ".", ",")
  File.Save(User.Home &/ "file_con_virgola.txt", new_file)

END


Vedrai che nella home avrai un file di nome file_con_virgola tale a quale al tuo ma con tutti i valori riportanti la virgola...
Con questo steso sistema puoi sovrascrivere il tuo file e poi farlo leggere al programma così da avere il formato voluto....
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: pedrak - 02 Marzo 2011, 15:03:05
grazie 10^3 Ceskho, ho imparato ancora qualcosa di nuovo.

Per le impostazioni locali  (  ,  oppure  .  ) , forse è sufficiente fare un check
con

Codice: gambas [Seleziona]


IF IsNull(Val("12,34")) THEN
  ... usare punto decimale
ELSE
  ... usare le virgole
ENDIF


Che dici ? Probabilmente non è molto elegante, ma potrebbe essere sufficiente
per lo scopo.  Se un canadese utilizzasse il programma non avrebbe
bisogno di convertire il punto, mentre se lo utilizzasse un francese si.
La conversione potrebbe essere fatta in automatico ...

grazie di nuovo

Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: Ceskho - 02 Marzo 2011, 15:17:45
La scelta circa la progettazione dell'algoritmo migliore spetta a te (e chi altro sviluppa il software). Qui c'è da scegliere dove focalizzare la complessità computazionale del codice. Se si vuole un codice più veloce allora il codice scritto da te potrebbe essere preferibile. Non so quanto siano pesanti i file da cui prelevate i dati. Sta solo a voi scegliere la strada da intraprendere.
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: pedrak - 02 Marzo 2011, 23:46:09
grazie ancora per la risposta.
Io comunque confido sempre che quel "sta a 'voi' scegliere la strada ..."   possa intendersi anche con "noi" ...   :)

Saluti
Giuseppe
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: Ceskho - 03 Marzo 2011, 12:17:00
grazie ancora per la risposta.
Io comunque confido sempre che quel "sta a 'voi' scegliere la strada ..."   possa intendersi anche con "noi" ...   :)

Saluti
Giuseppe

Noi siam qui per aiutare e dare consigli....il resto tocca a chi decide di sviluppare il software...altrimenti abbiamo troppe responsabilità.... :rotfl:
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: pedrak - 04 Marzo 2011, 00:02:18
Certamente ... è solo per poter dividere i meriti (se mai ce ne saranno),
è come bere una birra, in compagnia c'è più gusto  :2birre:
Titolo: Re: programmi in cerca di autore ... R - Gambas et al ...
Inserito da: pedrak - 23 Aprile 2011, 15:39:19
Gent.mi tutti,

nonostante il desiderio di lavorare su questo progetto altri impegni
contingenti mi stanno impedendo di portalo avanti come vorrei ...
procedo molto moooolto a rilento. Ma non demordo ... prima o poi ...

Colgo l'occasione per augurare a tutta la comunità una serena
Pasqua e tonnellate di buon cioccolato condito di sincera amicizia.

Giuseppe