Topic: Automatizzazione codice di calcolo  (Letto 837 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline ErnestoF

  • python unicellularis
  • *
  • Post: 8
  • Punti reputazione: 0
    • Mostra profilo
Automatizzazione codice di calcolo
« il: Ottobre 27, 2015, 15:43 »
Salve, sto svolgendo un lavoro abbastanza complesso e mi sto servendo del linguaggio python. Purtroppo sono stato aiutato per diverso periodo da un collaboratore molto valido (il quale mi ha praticamente scritto tutto il codice di cui dispongo) che adesso non è più disponibile. Il problema è che dovrei modificare questo codice in alcuni aspetti essenziali. Il codice, partendo da un file in inupt che gli fornisco io, svolge le seguenti operazioni :
decodifica questo file, creando un file txt ed un' immagine;

dando nuovamente in input questo file txt e l'immagine appena creati mi crea una matrice ASCII;

Questa matrice appena creata, dopo aver aggiunto una breve intestazione, la riesco finalmente al aprire con un software del pacchetto GIS (Geographic Information System), per farla breve un software di gestione territoriale.

Alla matrice appena creata devo però assegnare delle coordinate reali (georeferencing) e questo lo riesco a fare tramite la funzione gdal translate.

A questo punto ho la mia matrice ascii corretta e tramite il software riesco a vederla come immagine. Di questa immagine devo trarre delle informazioni quantitative in punti specifici e questo riesco a farlo tramite la parte terminale del codice che mi restituisce alla fin fine una tabella csv con coordinate di questi punti specifici e il valore della grandezza che andavo ricercando riferita a questi punti (cioè a queste coordinate geografiche).

Il mio problema è il seguente: dovrei automatizzare il codice in modo tale da dare non UN SOLO file in input ma tanti file e per tutti questi file che do in input deve ripetere tutte le operazioni suddette. Alla fine però non mi deve creare tante tabelle csv quanti sono i file ma mi deve di volta in volta modificare una sola tabella dove mi lascia inalterate le coordinate (componente statica non variabile ma fissa) e mi va ad aggiungere di volta in volta la colonna relativa alla grandezza di mio interesse che viene fuori dai diversi cicli che compie il codice (componente dinamica).

Vi prego di darmi una mano perchè non so davvero come uscirne. Grazie in anticipo!!!
P.S.Se richiesto allego o invio il codice in oggetto....

Offline Aezio

  • python neanderthalensis
  • ****
  • Post: 326
  • Punti reputazione: 1
    • Mostra profilo
Re: Automatizzazione codice di calcolo
« Risposta #1 il: Ottobre 27, 2015, 17:42 »
Da come descrivi il tuo problema dovresti scrivere una funzione per ogni step che hai descritto (o anche piu' funzioni, evita funzioni calderone).

A quel punto farlo per un file di input o per 100 sara' banale.

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.862
  • Punti reputazione: 9
    • Mostra profilo
Re: Automatizzazione codice di calcolo
« Risposta #2 il: Ottobre 28, 2015, 08:54 »
Uhm, direi di sì... a occhio basterà wrappare il tuo codice in una o più funzioni, e poi scrivere un "main loop" che le chiami in serie passando ogni volta argomenti diversi in input.

Il vero problema, temo (ma potrei anche sbagliare), è che questa soluzione ti sarebbe già saltata agli occhi, se conoscessi almeno un po' di programmazione in python. Ne deduco che stai cercando di risolvere il tuo "lavoro abbastanza complesso" usando python senza conoscere python, e questa è una ricetta per sicuri mal di testa, comunque vada.

Onestamente, se questo è il caso (ripeto, potrei sbagliare), ti conviene
- far capire alla tua azienda che il "collaboratore molto valido" non era lì per figura, e il fatto che adesso non c'è più comporta delle conseguenze nel mondo reale, che non si possono annullare con la bacchetta magica;
- che, se tu sei quello che deve prendere in carico il problema, hai bisogno di competenze che al momento non possiedi, e quindi la timeline per la soluzione del problema slitta necessariamente di almeno 6-8 mesi;
- dopo di che, te la prendi comoda e studi python, cosa che ri consentirà di risolvere il problema ma soprattutto di risolverne altri diecimila e vivere felice.

Offline ErnestoF

  • python unicellularis
  • *
  • Post: 8
  • Punti reputazione: 0
    • Mostra profilo
Re: Automatizzazione codice di calcolo
« Risposta #3 il: Ottobre 28, 2015, 09:59 »
RicPol non hai sbagliato è vero sono ad un livello di conoscenza di programmazione molto basso comunque non ho tutto questo tempo per risolvere il problema ne di studiare Python per arrivare ai livelli richiesti....potreste aiutarmi se invio codice di calcolo e i file da dare in input?? GRAZIE!!!!
P.S. l'azienda di cui tu parli è l'università dove sto svolgendo la tesi e il collaboratore sarebbe un assistente che ha trovato di meglio ed è andato via...:)

Offline Max74

  • python neanderthalensis
  • ****
  • Post: 383
  • Punti reputazione: 0
    • Mostra profilo
Re: Automatizzazione codice di calcolo
« Risposta #4 il: Ottobre 28, 2015, 10:55 »
RicPol non hai sbagliato è vero sono ad un livello di conoscenza di programmazione molto basso comunque non ho tutto questo tempo per risolvere il problema ne di studiare Python per arrivare ai livelli richiesti....potreste aiutarmi se invio codice di calcolo e i file da dare in input?? GRAZIE!!!!

Va beh. :confused:

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.862
  • Punti reputazione: 9
    • Mostra profilo
Re: Automatizzazione codice di calcolo
« Risposta #5 il: Ottobre 28, 2015, 11:00 »
Citazione
P.S. l'azienda di cui tu parli è l'università dove sto svolgendo la tesi e il collaboratore sarebbe un assistente che ha trovato di meglio ed è andato via...:)
Vale esattamente lo stesso discorso. Il fordismo è superato da parecchio, soprattutto in questi campi. Non è pensabile mantenere la stessa qualità di un prodotto, indipendentemente da chi ci lavora. Non è come avvitare e svitare bulloni. Esistono delle condizioni al contorno molto concrete, per cui se l'istituzione (azienda, università, bottega del falegname) tiene a un certo prodotto, fa anche in modo che il collaboratore-chiave che lo sviluppa non finisce per "trovare di meglio"... oppure, se lo lascia andar via, trova qualcuno che lo sostituisce adeguatamente (e magari lo paga, hai visto mai che talvolta fa la differenza). Oppure decide che in fondo quel prodotto non ti serve poi così tanto. Ma non puoi avere contemporaneamente la botte... la moglie... hai capito.
Il tuo compito sarebbe far capire questa semplice realtà di fatto alla tua istituzione, e/o metterti l'anima in pace e rinunciare a quel prodotto (magari sostituendolo con un prodotto/workflow più inefficiente, ma tant'è), e/o acquisire con calma le competenze necessarie.

Citazione
non ho tutto questo tempo per risolvere il problema ne di studiare Python per arrivare ai livelli richiesti....
Allora vedo un problema.

Citazione
potreste aiutarmi se invio codice di calcolo e i file da dare in input?? GRAZIE!!!!
Ehm... ho paura di no. Scusa, niente di personale, eh.
Ma mettiamola in questo modo: il collaboratore molto bravo che ha sviluppato un software evidentemente importante e che però è stato messo nelle condizioni di "trovare di meglio", cosa direbbe se qualche anima caritatevole su un forum garantisse alla tua istituzione di poter fare a meno di lui, radicalizzando magari la convinzione che in fondo, dopo tutto, il codice si scrive anche gratis, e che quindi non c'era poi così tanto bisogno del collaboratore bravo?

Detto questo, naturalmente, se riesci a isolare dei problemi specifici e su questi vuoi aiuto, consigli, indicazioni e suggerimenti, qui sei il benvenuto. Se poi i problemi specifici sono anche interessanti e divertenti, è facile che trovi anche qualcuno che perderà un bel po' di tempo a scriverti interi pezzi di codice funzionante.