Monday 31 May 2010

Vettori, non vettoriale

I vettoriali nei GIS sono pane quotidiano. Ma si riferiscono al formato degli oggetti geometrici rappresentati nei GIS e non hanno diretta relazione con i vettori usati in fisica, ingegneria e nelle altre scienze. Se si vogliono trattare i vettori nei GIS, di quali funzioni si dispongono? Di solito, tranne pochi casi, nessuna....

Divergenza, rotore, angoli tra vettori, prodotti scalari e vettoriali?
Possiamo calcolarli o usando delle funzioni da noi scritte, in Python, in Avenue, per esempio, oppure migrando temporaneamente i dati in software come MATLAB. Scomponiamo i vettori in componenti cartesiane conservandoli in due o tre campi della tabella degli attributi, oppure in due o tre grid se consideriamo campi continui, e quindi possiamo applicare le classiche operazioni scalari come addizione, sottrazione, o vettoriali come il prodotto scalare o vettoriale. Se il risultato corrisponde ad un vettore, potrà essere archiviato come prima nelle sue componenti e quando necessario trasformato nelle sue componenti polari.

Maggiori informazioni in questo pdf.

Saturday 22 May 2010

Cressie e Bivand al Spatial Statistics 2011 - 23 - 25 March 2011, Olanda

Su Linkedin viene segnalata la conferenza:

Spatial Statistics 2011, 23 - 25 March 2011, The Netherlands
 

Fra gli speaker invitati vi saranno Noel Cressie - autore del famoso Statistics for Spatial Data, Peter Atkinson, Yong Ge, Gilberto Camara, Martin Schlater, Roger Bivand - che si interessa di Geostatistica tramite R.



Come furono calcolati i portolani? Sul Washington Post

Link
http://www.washingtonpost.com/wp-dyn/content/article/2010/05/21/AR2010052104713.html?hpid%3Dtopnews&sub=AR



Saturday 15 May 2010

Verso il Lisp?

Interessante post di Paul Graham, segnalato in mailing list di Python: i linguaggi di programmazione, dal lontano 1958, starebbe tendendo lentamente verso il Lisp, uno degli ultimi casi Python.

http://www.paulgraham.com/icad.html

Tuesday 11 May 2010

Mapping Ancient Civilization, in a Matter of Days - NYTimes


http://www.nytimes.com/2010/05/11/science/11maya.html?hpw





PyConf

A Firenze dal 7 al 9 maggio quarta conferenza su Python.
A parte gli abstract degli interventi, non sono presenti video degli interventi di quest'anno, ma si possono vedere alcuni video di quelli degli anni precedenti. Due fra le possibili scelte: quello di Guido van Rossum, BDF di Python, su Goggle App Engine, del 2009,  e di Fabio Rotondo su PyHP, sempre dello stesso anno.

Monday 10 May 2010

Errori...

La propagazione degli errori nei GIS è un soggetto meno evidenziato e trattato di altri, come le interpolazioni o i cambiamenti di sistemi proiettivi. I dati geografici si portano appresso, esplicitamente o implicitamente, errori ed incertezze di varia natura ed origine, che possono influire sulla qualità dei risultati ottenuti con procedure GIS.

Le operazioni di sovrapposizione vettoriale, per esempio, dipendono dalla correttezza del posizionamento dei limiti geografici e di quella dei valori attribuiti ai vari elementi geografici. Con le sovrapposizioni otteniamo dei risultati che al variare della posizione o per differenti categorie possono avere differente incertezza o entità di errore e quindi influire sulla qualità di decisioni che si prendono supponendo che i risultati siano dappertutto e in ogni caso assolutamente corretti.

Molti aspetti degli errori nei GIS sono ben trattati nel recente testo di Burrough & McDonnell “Principles of Geographical Information Systems” o nel precedente, del solo Burrough, “Principles of Geographical Information Systems for Land Resources Assessment”.

In questo post volevo segnalarvi questa pagina che ho creato su un aspetto particolare, la propagazione degli errori numerici per operazioni analitiche (per esempio somma, moltiplicazione, elevamento a potenza). Sono ricordate le basi teoriche, riprese da Burrough, e per alcuni casi particolari sono descritte le formule per variabili fra loro correlate, assieme a piccole “calcolatrici” (in JavaScript) che permettono di calcolare i risultati per valori specifici. Nasce fondamentalmente da un approfondimento fatto per determinare gli errori associati a dati di flussi glaciali in Antartide, studiati in una tesi di dottorato..

Sunday 2 May 2010

Pagine web dinamiche con Python - la configurazione locale di Apache su Windows


Python permette anche di creare pagine web ed in questo si affianca ad altri linguaggi di scripting come PHP o Ruby. A differenza di PHP e mySQL (un sistema di gestione di database molto diffuso), sono poco diffuse distribuzioni di Apache che integrino Python. Per creare un server locale su cui sperimentare l'uso di Python, è necessario che l'utente si faccia carico, oltre all'installazione di Python, della configurazione di Apache in maniera che riconosca Python. La maniera più semplice per iniziare ad usare Python per il web è utilizzarlo come linguaggio per programmazione CGI (Common Gateway Interface). Per configurare in Windows Apache in maniera tale che riconosca Python come linguaggio CGI, sono necessari pochi settaggi di Apache e degli script Python che si creeranno, ben spiegati in questa pagina del team di EditRocket, un code editor.

Dopo avere installato Python, è necessario configurare Apache.
Si devono effettuare un paio di modifiche del file httpd.conf che si trova nella cartella conf del folder di installazione di Apache.
La prima modifica consiste nella modifica della linea:
  Options Indexes FollowSymLinks
aggiungendo ExecCGI , così da trasformarla in:
  Options Indexes FollowSymLinks ExecCGI

La seconda consiste nel decommentare la riga:
  #AddHandler cgi-script .cg
ed aggiungervi Python come linguaggio, modificandola quindi in:
  AddHandler cgi-script .cgi .py

Effettuate queste due modifiche e riavviato il server Apache, gli script Python che creiamo possono essere usati per generare pagine web dinamiche.

Prendiamo il semplice esempio successivo dal testo di Hans Petter Langtangen su Python, Python Scripting for Computational Science.

Creiamo un semplice Hello-World html file ed uno script Python, a nome hw.py, con questo contenuto:


  #!/Python26/python
  import cgi, math

  # required opening of CGI scripts with HTML output:
  print 'Content-type: text/html\n'

  # extract the value of the variable "r" (in the text field):
  form = cgi.FieldStorage()
  r = form.getvalue('r');

  s = str(math.sin(float(r)))
  print 'Hello, World! The sine of %s equals %s' % (r,s)



Notate la prima linea:
  #!/Python26/python

Essa fornisce il percorso all'eseguibile di Python. L'esempio sovrastante si riferisce ad una installazione di Python 2.6 nel folder: c:\Python26.
Se aveste installato Python 2.5 nel folder c:\Programmi\Python25, la prima linea sarebbe:
  #!/Programmi/Python25/python

Il file html Hello World, lanciato dal server locale, apparirà così:




e utilizzando lo script Python genererà una pagina web dinamica che ci illustra il valore del seno del numero inserito nella finestra: