Programma da eseguire su ubuntu e su mac os
-
einstein1969
- Scoppiettante Seguace

- Messaggi: 931
- Iscrizione: mercoledì 7 dicembre 2005, 11:52
Programma da eseguire su ubuntu e su mac os
salve,
devo sviluppare un piccolo programma che poi deve essere eseguito su mac.
So che in Mac esiste bash quindi se possibile farlo in bash sarebbe meglio... altrimenti quale linguaggio usare?
Il programma deve fare una cosa del genere.
Dati due file di testo contenenti delle coordinate di oggetti generare un elenco in un file contenente gli oggetti che hanno una distanza, tra gli oggetti del primo file e gli oggetti del secondo file, minore di una data.
file 1:
id x y
-------
1 x1 y1
2 x2 y2
3 x3 y3
file 2:
id x y
--------
1 x1 y1
2 x2 y2
3 x3 y3
4 x4 y4
praticamente devo confrontare per ogni oggetto nel primo file , tutti gli oggetti del secondo e se la distanza e' minore di un tot devo segnare questo in un'altro file. Se ci sono piu' oggetti devo incrementare anche un contatore da inserire nel risultato.
(per i curiosi: Si tratta di due database di oggetti rilevati nello spazio da due satelliti diversi e devo individuare eventuali oggetti duplicati)
devo sviluppare un piccolo programma che poi deve essere eseguito su mac.
So che in Mac esiste bash quindi se possibile farlo in bash sarebbe meglio... altrimenti quale linguaggio usare?
Il programma deve fare una cosa del genere.
Dati due file di testo contenenti delle coordinate di oggetti generare un elenco in un file contenente gli oggetti che hanno una distanza, tra gli oggetti del primo file e gli oggetti del secondo file, minore di una data.
file 1:
id x y
-------
1 x1 y1
2 x2 y2
3 x3 y3
file 2:
id x y
--------
1 x1 y1
2 x2 y2
3 x3 y3
4 x4 y4
praticamente devo confrontare per ogni oggetto nel primo file , tutti gli oggetti del secondo e se la distanza e' minore di un tot devo segnare questo in un'altro file. Se ci sono piu' oggetti devo incrementare anche un contatore da inserire nel risultato.
(per i curiosi: Si tratta di due database di oggetti rilevati nello spazio da due satelliti diversi e devo individuare eventuali oggetti duplicati)
È più facile spezzare un atomo che un pregiudizio. Albert Einstein - http://wiki.ubuntu-it.org/Einstein1969 - [HOW-TO] Guida passo passo per creare copie di sistema avviabili su file. - [Progetto] Desk4Work : Scrivanie a portata di click! (Gestire il Desktop) - Problemi Grub?: http://sourceforge.net/projects/bootinfoscript
Re: Programma da eseguire su ubuntu e su mac os
ma dici bash perche lo conosci gia e quindi ti viene piu facile?Perche penso che un programma tipo quello che chiedi in pyhton dovrebbe essere abbastanza facile/corto da realizzare...So che in Mac esiste bash quindi se possibile farlo in bash sarebbe meglio... altrimenti quale linguaggio usare?
Altrimenti potresti scriverlo per esempio anche in C:dovresti poi compilarlo su mac os pero il codice non cambia..
They see me trollin
-
einstein1969
- Scoppiettante Seguace

- Messaggi: 931
- Iscrizione: mercoledì 7 dicembre 2005, 11:52
Re: Programma da eseguire su ubuntu e su mac os
python non lo conosco, il c sono un po' arrugginito... bash qualcosa ho gia' fatto , ma non sono un asso...Ipnorospo ha scritto:ma dici bash perche lo conosci gia e quindi ti viene piu facile?Perche penso che un programma tipo quello che chiedi in pyhton dovrebbe essere abbastanza facile/corto da realizzare...So che in Mac esiste bash quindi se possibile farlo in bash sarebbe meglio... altrimenti quale linguaggio usare?
Altrimenti potresti scriverlo per esempio anche in C:dovresti poi compilarlo su mac os pero il codice non cambia..
È più facile spezzare un atomo che un pregiudizio. Albert Einstein - http://wiki.ubuntu-it.org/Einstein1969 - [HOW-TO] Guida passo passo per creare copie di sistema avviabili su file. - [Progetto] Desk4Work : Scrivanie a portata di click! (Gestire il Desktop) - Problemi Grub?: http://sourceforge.net/projects/bootinfoscript
-
Bakuriu
- Entusiasta Emergente

- Messaggi: 1156
- Iscrizione: venerdì 23 ottobre 2009, 23:43
- Desktop: KDE4
- Distribuzione: Kubuntu 12.04 LTS - x86_64
Re: Programma da eseguire su ubuntu e su mac os
Io ti consiglio di farlo in python...
Ti faccio alcune domande:
1)Tu, per ogni linea di un file, hai dei dati che devi confrontare con tutte le linee di altri X file. Corretto?
2)I dati in che forma sono(sono numeri/interi/float/stringhe)?
3)Cosa esattamente ci devi fare?Hai detto che devi eliminare i duplicati, ma cosa significa esattamente...
Diciamo che uno scheletro di programma in python potrebbe essere:
Oppure potresti usare un po' di OOP e creare un oggetto al posto di usare due funzioni...
comunque non dovrebbe essere complicato.
Ti faccio alcune domande:
1)Tu, per ogni linea di un file, hai dei dati che devi confrontare con tutte le linee di altri X file. Corretto?
2)I dati in che forma sono(sono numeri/interi/float/stringhe)?
3)Cosa esattamente ci devi fare?Hai detto che devi eliminare i duplicati, ma cosa significa esattamente...
Diciamo che uno scheletro di programma in python potrebbe essere:
Codice: Seleziona tutto
def main():
import sys
fnames = sys.argv[1:] #gli argomenti da linea di comando sono
#i nomi dei file da analizzare.
if len(fnames) < 2:
print 'Usage: %s main_file other_filenames' % sys.argv[0]
sys.exit(0)
try:
main_file = open(fnames[0])
other_files = [open(fnames[i] for i in range(1, len(fnames))]
except (IOError,OSError),e:
sys.exit(str(e))
check_files(main_file,other_files)
def check_files(main_file, other_files):
out_file = open('out.txt','w+t')
for line in main_file:
data = get_data(line)
for fil in other_files:
fil.seek(0)
for other_line in fil:
other_data = get_data(other_line)
if are_equal(data, other_data):
out_file.write('Doppione: %s\n' % data)
def get_data(line):
#codice per parsare una linea del file
return data
def are_equal(data1,data2):
#controlla se i due oggetti sono considerati uguali
return True/False
main()
comunque non dovrebbe essere complicato.
-
einstein1969
- Scoppiettante Seguace

- Messaggi: 931
- Iscrizione: mercoledì 7 dicembre 2005, 11:52
Re: Programma da eseguire su ubuntu e su mac os
Grazie per la risposta!
Ho due files di testo (sono due cataloghi di oggetti rilevati nello spazio da due satelliti diversi)
Ci sono tre informazioni per ogni record. Un codice di catalogo e due coordinate in float pointing ma rappresentate come testo. Separati da spazi (la virgola puo' essere il punto o la virgola...)
esempio
catalogo 1:
codice x y
----------------
A340T 270.45678 65.3456787
B341E 230.4045 45.34567
....
catalogo 2:
codice x y
----------------
J340S 270.45668 65.3456783
H234T 270.45268 65.3416380
K360J 230.4142 45.34731
....
Devo confrontare ogni oggetto del primo file con ogni oggetto del secondo file. In realta' devo calcolare la distanza tramite una formula e se mi viene minore di un tot devo segnarmi i codici dei due oggetti (uno su un catalogo e uno sull'altro) in un file. Sono oggetti scovati nell'infrarosso quindi....
esempio:
Ho l'oggetto A340T del primo catalogo che e' "near" l'oggetto J340S del secondo catalogo. Se si scrivo I due codici nel file di testo risultante. Se ho piu' di un oggetto "near" devo appendere sulla stessa riga.
avro' un file di testo risultante:
result.txt
A340T near J340S, H234T, ....
B341E near K360J
......
Ho due files di testo (sono due cataloghi di oggetti rilevati nello spazio da due satelliti diversi)
Ci sono tre informazioni per ogni record. Un codice di catalogo e due coordinate in float pointing ma rappresentate come testo. Separati da spazi (la virgola puo' essere il punto o la virgola...)
esempio
catalogo 1:
codice x y
----------------
A340T 270.45678 65.3456787
B341E 230.4045 45.34567
....
catalogo 2:
codice x y
----------------
J340S 270.45668 65.3456783
H234T 270.45268 65.3416380
K360J 230.4142 45.34731
....
Devo confrontare ogni oggetto del primo file con ogni oggetto del secondo file. In realta' devo calcolare la distanza tramite una formula e se mi viene minore di un tot devo segnarmi i codici dei due oggetti (uno su un catalogo e uno sull'altro) in un file. Sono oggetti scovati nell'infrarosso quindi....
esempio:
Ho l'oggetto A340T del primo catalogo che e' "near" l'oggetto J340S del secondo catalogo. Se si scrivo I due codici nel file di testo risultante. Se ho piu' di un oggetto "near" devo appendere sulla stessa riga.
avro' un file di testo risultante:
result.txt
A340T near J340S, H234T, ....
B341E near K360J
......
Ultima modifica di einstein1969 il martedì 15 giugno 2010, 20:44, modificato 1 volta in totale.
È più facile spezzare un atomo che un pregiudizio. Albert Einstein - http://wiki.ubuntu-it.org/Einstein1969 - [HOW-TO] Guida passo passo per creare copie di sistema avviabili su file. - [Progetto] Desk4Work : Scrivanie a portata di click! (Gestire il Desktop) - Problemi Grub?: http://sourceforge.net/projects/bootinfoscript
Re: Programma da eseguire su ubuntu e su mac os
Ti conviene andare di python, gcc non è installato di default e dovresti scaricarti Xcode(che sono 2gb circa).
O semmai se ti va te lo compilo io
O semmai se ti va te lo compilo io
-
einstein1969
- Scoppiettante Seguace

- Messaggi: 931
- Iscrizione: mercoledì 7 dicembre 2005, 11:52
Re: Programma da eseguire su ubuntu e su mac os
ciao check
gcc non e' installato di default su ubuntu o su mac? Che e' Xcode?
gcc non e' installato di default su ubuntu o su mac? Che e' Xcode?
È più facile spezzare un atomo che un pregiudizio. Albert Einstein - http://wiki.ubuntu-it.org/Einstein1969 - [HOW-TO] Guida passo passo per creare copie di sistema avviabili su file. - [Progetto] Desk4Work : Scrivanie a portata di click! (Gestire il Desktop) - Problemi Grub?: http://sourceforge.net/projects/bootinfoscript
Re: Programma da eseguire su ubuntu e su mac os
gcc non e installato di default su mac os. Diciamo che Xcode e l'insieme degli strumenti necessari per programmare su mac os.einstein1969 ha scritto: ciao check
gcc non e' installato di default su ubuntu o su mac? Che e' Xcode?
Cmq credo che sia meglio che tu decida il linguaggio in cui scrivere il programmino(visto che sai meglio come verra usato) e si parte da li...
They see me trollin
Re: Programma da eseguire su ubuntu e su mac os
Installando Xcode ti ritrovi un po' di strumenti che altrimenti non avresti, tra cui gcc.
L'interprete python però credo sia installato di default, però non sono sicuro.
Su Linux dovresti avere già tutto bello pronto
L'interprete python però credo sia installato di default, però non sono sicuro.
Su Linux dovresti avere già tutto bello pronto
-
einstein1969
- Scoppiettante Seguace

- Messaggi: 931
- Iscrizione: mercoledì 7 dicembre 2005, 11:52
Re: Programma da eseguire su ubuntu e su mac os
ok vada per python o bash... (penso che java, nonostante la portabilita', sia da escludere visto che nessuno lo ha preso in considerazione? )
È più facile spezzare un atomo che un pregiudizio. Albert Einstein - http://wiki.ubuntu-it.org/Einstein1969 - [HOW-TO] Guida passo passo per creare copie di sistema avviabili su file. - [Progetto] Desk4Work : Scrivanie a portata di click! (Gestire il Desktop) - Problemi Grub?: http://sourceforge.net/projects/bootinfoscript
Re: Programma da eseguire su ubuntu e su mac os
anch'io (per quanto possa valere) ti consiglio il python...mi chiedo però come hai intenzione di procedere....
Bob
- crx
- Entusiasta Emergente

- Messaggi: 1341
- Iscrizione: martedì 2 settembre 2008, 18:31
- Desktop: Cinnamon
- Distribuzione: ArchLinux 64bit
- Località: Piombino
Re: Programma da eseguire su ubuntu e su mac os
Se è per questo io ti consiglierei pascal: lazarus c'è per tutti i sistemi.
Scrivi dove vuoi (linux, win, mac), poi compili su mac e hai il programma bello e pronto.
Scrivi dove vuoi (linux, win, mac), poi compili su mac e hai il programma bello e pronto.
S = k ln W
Il mio nome è Bond. Valence Bond. - Se non fai parte della soluzione, fai parte del precipitato.
Non c'è peggior sordo di chi non sente.
Il mio nome è Bond. Valence Bond. - Se non fai parte della soluzione, fai parte del precipitato.
Non c'è peggior sordo di chi non sente.
-
einstein1969
- Scoppiettante Seguace

- Messaggi: 931
- Iscrizione: mercoledì 7 dicembre 2005, 11:52
Re: Programma da eseguire su ubuntu e su mac os
L'ho fatta in bash ora vediamo se su mac funge...
È più facile spezzare un atomo che un pregiudizio. Albert Einstein - http://wiki.ubuntu-it.org/Einstein1969 - [HOW-TO] Guida passo passo per creare copie di sistema avviabili su file. - [Progetto] Desk4Work : Scrivanie a portata di click! (Gestire il Desktop) - Problemi Grub?: http://sourceforge.net/projects/bootinfoscript
- crx
- Entusiasta Emergente

- Messaggi: 1341
- Iscrizione: martedì 2 settembre 2008, 18:31
- Desktop: Cinnamon
- Distribuzione: ArchLinux 64bit
- Località: Piombino
Re: Programma da eseguire su ubuntu e su mac os
Per curiosità: quanto sono grandi questi file (10, 100, 1000 linee)? E quanto tempo impiega il tuo script per elaborarli?
S = k ln W
Il mio nome è Bond. Valence Bond. - Se non fai parte della soluzione, fai parte del precipitato.
Non c'è peggior sordo di chi non sente.
Il mio nome è Bond. Valence Bond. - Se non fai parte della soluzione, fai parte del precipitato.
Non c'è peggior sordo di chi non sente.
-
einstein1969
- Scoppiettante Seguace

- Messaggi: 931
- Iscrizione: mercoledì 7 dicembre 2005, 11:52
Re: Programma da eseguire su ubuntu e su mac os
circa 200-300 a file...
ci impiega circa 20 minuti
ci impiega circa 20 minuti
È più facile spezzare un atomo che un pregiudizio. Albert Einstein - http://wiki.ubuntu-it.org/Einstein1969 - [HOW-TO] Guida passo passo per creare copie di sistema avviabili su file. - [Progetto] Desk4Work : Scrivanie a portata di click! (Gestire il Desktop) - Problemi Grub?: http://sourceforge.net/projects/bootinfoscript
Re: Programma da eseguire su ubuntu e su mac os
Un po' lento o no? :P
-
einstein1969
- Scoppiettante Seguace

- Messaggi: 931
- Iscrizione: mercoledì 7 dicembre 2005, 11:52
Re: Programma da eseguire su ubuntu e su mac os
Ora, lo sto ottimizzando... vediamo cosa riesco a fare...
in bash purtroppo la gestione dei numeri float non c'e'... credo che il grosso del tempo sia li...
in bash purtroppo la gestione dei numeri float non c'e'... credo che il grosso del tempo sia li...
È più facile spezzare un atomo che un pregiudizio. Albert Einstein - http://wiki.ubuntu-it.org/Einstein1969 - [HOW-TO] Guida passo passo per creare copie di sistema avviabili su file. - [Progetto] Desk4Work : Scrivanie a portata di click! (Gestire il Desktop) - Problemi Grub?: http://sourceforge.net/projects/bootinfoscript
Re: Programma da eseguire su ubuntu e su mac os
Mi sono accorto che ho già una app in cocoa che fa quasi quello che serve, se posti i file(anche il risultato che non mi è chiaro) la modifico e te la mando, però sarebbe solo per mac os.
A proposito, che versione è? 10.5 o 10.6?
A proposito, che versione è? 10.5 o 10.6?
-
einstein1969
- Scoppiettante Seguace

- Messaggi: 931
- Iscrizione: mercoledì 7 dicembre 2005, 11:52
Re: Programma da eseguire su ubuntu e su mac os
Ti mando un pezzo dei file... sono in gradi e decimi di grado.
La distanza va calcolata con questa formula :
d = arccos(sin(y1)sin(y2)+cos(y1)cos(y2)cos(x1-x2))
Che cosa e' cocoa?
file 1:
-------
1 1.5986 83.7717
2 184.2875 83.8158
3 191.0637 85.3724
4 201.7507 83.2895
5 232.836 85.0443
6 347.6762 86.3815
7 54.1536 82.5904
8 85.4562 83.2836
9 124.7673 80.2561
file 2:
------
1 1.669365 83.765945
2 184.91566 83.76547
3 190.4857 85.30325
4 201.61098 83.29309
5 232.48483 84.959274
6 349.08652 86.3443
7 55.10367 82.57801
8 85.63064 83.310646
9 124.71011 80.00996
10 133.09158 80.50861
11 188.89348 82.03509
12 255.02696 81.62999
13 199.43828 78.34923
bisogna fare il match tra il primo file e il secondo file. Cioe' calcolare se la distanza e' minore di un tot (0.1 .. 1 in gradi)
con il bash sono ancora in alto mare per quanto riguarda le funzioni matematiche... sto usando bc ma credo che non vada poi tanto bene....
La distanza va calcolata con questa formula :
d = arccos(sin(y1)sin(y2)+cos(y1)cos(y2)cos(x1-x2))
Che cosa e' cocoa?
file 1:
-------
1 1.5986 83.7717
2 184.2875 83.8158
3 191.0637 85.3724
4 201.7507 83.2895
5 232.836 85.0443
6 347.6762 86.3815
7 54.1536 82.5904
8 85.4562 83.2836
9 124.7673 80.2561
file 2:
------
1 1.669365 83.765945
2 184.91566 83.76547
3 190.4857 85.30325
4 201.61098 83.29309
5 232.48483 84.959274
6 349.08652 86.3443
7 55.10367 82.57801
8 85.63064 83.310646
9 124.71011 80.00996
10 133.09158 80.50861
11 188.89348 82.03509
12 255.02696 81.62999
13 199.43828 78.34923
bisogna fare il match tra il primo file e il secondo file. Cioe' calcolare se la distanza e' minore di un tot (0.1 .. 1 in gradi)
con il bash sono ancora in alto mare per quanto riguarda le funzioni matematiche... sto usando bc ma credo che non vada poi tanto bene....
Ultima modifica di einstein1969 il domenica 20 giugno 2010, 12:26, modificato 1 volta in totale.
È più facile spezzare un atomo che un pregiudizio. Albert Einstein - http://wiki.ubuntu-it.org/Einstein1969 - [HOW-TO] Guida passo passo per creare copie di sistema avviabili su file. - [Progetto] Desk4Work : Scrivanie a portata di click! (Gestire il Desktop) - Problemi Grub?: http://sourceforge.net/projects/bootinfoscript
Re: Programma da eseguire su ubuntu e su mac os
Cocoa non è altro che il framework per scrivere applicazioni per osx/iphone/ipad
Se ti interessa mi basta modificare la formula per la distanza(la mia app era per distanza tra due punti) e poi è pronta, però non gira su linux mi spiace
Se ti interessa mi basta modificare la formula per la distanza(la mia app era per distanza tra due punti) e poi è pronta, però non gira su linux mi spiace
Chi c’è in linea
Visualizzano questa sezione: Sargonsei e 7 ospiti
