<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>BloGis</title>
	<atom:link href="http://www.claudioschifani.it/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.claudioschifani.it/blog</link>
	<description>Informazione territoriale e analisi spaziale</description>
	<lastBuildDate>Tue, 25 Oct 2011 21:18:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Open Source GIS tools for Water Resources Management</title>
		<link>http://www.claudioschifani.it/blog/open-source-gis-tools-for-water-resources-management.html</link>
		<comments>http://www.claudioschifani.it/blog/open-source-gis-tools-for-water-resources-management.html#comments</comments>
		<pubDate>Tue, 25 Oct 2011 21:12:20 +0000</pubDate>
		<dc:creator>archcla77</dc:creator>
				<category><![CDATA[Presentazioni]]></category>

		<guid isPermaLink="false">http://www.claudioschifani.it/blog/?p=255</guid>
		<description><![CDATA[Condividi // La gestione delle risorse idriche, attualmente soggette ad una crescente pressione antropica ed alle crisi ricorrenti legate ai cambiamenti climatici, costituisce una delle problematiche ambientali cui si deve porre maggiore attenzione. In questo senso numerose raccomandazioni relative alla necessità di un nuovo approccio verso le metodologie e procedure di gestione delle risorse idriche [...]]]></description>
			<content:encoded><![CDATA[<p><a type="box_count" name="fb_share" href="http://www.facebook.com/sharer.php"></a>Condividi<br />
<script type="text/javascript" src="http://static.ak.fbcdn.net/connect.php/js/FB.Share"></script><br />
<script type="text/javascript">// <![CDATA[
tweetmeme_source = 'archcla';
// ]]&gt;</script><br />
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></p>
<p>La gestione delle risorse idriche, attualmente soggette ad una crescente pressione antropica ed alle crisi ricorrenti legate ai cambiamenti climatici, costituisce una delle problematiche ambientali cui si deve porre maggiore attenzione. In questo senso numerose raccomandazioni relative alla necessità di un nuovo approccio verso le metodologie e procedure di gestione delle risorse idriche sono state emanate recentemente anche dall’Agenzia Europea dell’Ambiente. In questo scenario si colloca il progetto di ricerca SID&amp;GRID (Simulazione e sistemi IDroinformatici per la Gestione delle Risorse Idriche), attualmente in corso, il cui obiettivo principale è di progettare e sviluppare un framework open source per l’integrazione del mondo GIS con la modellistica idrologica ed idrogeologica, per la pianificazione e gestione condivisa degli usi della ricorsa idrica da parte di Enti pubblici e società preposte a tale ruolo.</p>
<p><img class="aligncenter" src="http://ut11.isti.cnr.it/SIDGRID/images/stories/logo.jpg" alt="" width="118" height="112" /></p>
<p><span style="font-size: small;">Obiettivo del Progetto SID&amp;GRID è di sviluppare e rendere operativo un Sistema di Supporto alle Decisioni basato su <em>software open source</em> che possa essere utilizzato quale strumento operativo e condiviso per la gestione e la pianificazione degli usi della risorsa idrica dalla comunità, Enti pubblici e società che gestiscono e utilizzano tale risorsa. Ciò presuppone un importante lavoro di integrazione, in ambiente <em>open</em>, del mondo della modellistica idrologica ed idrogeologica con il mondo GIS attraverso la progettazione e realizzazione di appositi moduli. L’interfaccia grafica strutturerà un sistema di controllo in grado di agevolare e guidare l’utente dalla preparazione dei dati geografici fino alla loro traduzione in variabili numeriche (dati di input) richieste dal solutore del codice del modello matematico.<br />
</span></p>
<p><span style="font-size: small;">E&#8217; attivo un <a href="http://ut11.isti.cnr.it/SIDGRID/" target="_blank">sito del progetto</a> in cui è possibile seguire lo stato di avanzamento della ricerca. </span></p>
<hr />
<p><small>© admin for <a href="http://www.claudioschifani.it/blog">BloGis</a>, 2011. |
<a href="http://www.claudioschifani.it/blog/open-source-gis-tools-for-water-resources-management.html">Permalink</a> |
<a href="http://www.claudioschifani.it/blog/open-source-gis-tools-for-water-resources-management.html#comments">No comment</a>
Post tags: <br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.claudioschifani.it/blog/open-source-gis-tools-for-water-resources-management.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Informazione territoriale e web 2.0 &#8211; luci e ombre</title>
		<link>http://www.claudioschifani.it/blog/informazione-territoriale-e-web-2-0-luci-e-ombre.html</link>
		<comments>http://www.claudioschifani.it/blog/informazione-territoriale-e-web-2-0-luci-e-ombre.html#comments</comments>
		<pubDate>Tue, 25 Oct 2011 18:26:28 +0000</pubDate>
		<dc:creator>archcla77</dc:creator>
				<category><![CDATA[Dati territoriali liberi]]></category>
		<category><![CDATA[GeoWeb]]></category>
		<category><![CDATA[Informazioni Territoriali]]></category>
		<category><![CDATA[Condivisione]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://www.claudioschifani.it/blog/?p=234</guid>
		<description><![CDATA[Condividi // Di recente ho avuto modo di confrontarmi con alcuni colleghi (anche in occasione di seminari) su temi molto interessanti per la nostra professione. In particolare mi riferisco all&#8217;impatto che ha l&#8217;informazione territoriale nei processi partecipativi relativamente all&#8217;uso delle nuove tecnologie dell&#8217;informazione. A tal proposito ho incrociato spesso questo rapporto sia nel corso del [...]]]></description>
			<content:encoded><![CDATA[<p><a type="box_count" name="fb_share" href="http://www.facebook.com/sharer.php"></a>Condividi<br />
<script type="text/javascript" src="http://static.ak.fbcdn.net/connect.php/js/FB.Share"></script><br />
<script type="text/javascript">// <![CDATA[
tweetmeme_source = 'archcla';
// ]]&gt;</script><br />
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></p>
<p>Di recente ho avuto modo di confrontarmi con alcuni colleghi (anche in occasione di seminari) su temi molto interessanti per la nostra professione. In particolare mi riferisco all&#8217;impatto che ha l&#8217;informazione territoriale nei processi partecipativi relativamente all&#8217;uso delle nuove tecnologie dell&#8217;informazione. A tal proposito ho incrociato spesso questo rapporto sia nel corso del dottorato che della ricerca post-doc svolta a Venezia.</p>
<p>Come ci ricorda C. Beguinot nel suo saggio introduttivo al testo “Città nel XXI secolo tra recupero, innovazione, cooperazione”,<br />
nel 1994 a Napoli vennero presentati alla Comunità scientifica mondiale i nuovi principi e le nuove regole attraverso cui configurare la città del terzo millennio, che si declinano nei dieci principi enunciati nella testo della Carta di Megaride 94. Citiamo tre dei dieci principi che intercettano il tema di cui si scrive:</p>
<ul>
<li><cite class="wp-caption-dd" title="citazione" dir="ltr">Città e Cittadini – “</cite><em><cite class="wp-caption-dd" title="citazione" dir="ltr">La città futura dovrà garantire ad ogni cittadino la più ampia possibilità di accesso ai luoghi, ai servizi ed alle informazioni; è una città nella quale ogni diversità trova condizioni adeguate alle proprie esigenze che devono potersi esprimere liberamente</cite></em><cite class="wp-caption-dd" title="citazione" dir="ltr">”. Ciò implicherà che il dialogo tra i cittadini e le istituzioni potrà essere ampliato anche attraverso l’uso delle nuove tecnologie, che forniscono strumenti di controllo, di analisi e di supporto alle decisioni.</cite></li>
<li><cite class="wp-caption-dd" title="citazione" dir="ltr">Città e Complessità – “</cite><em><cite class="wp-caption-dd" title="citazione" dir="ltr">Nella città futura il governo della complessità deve coinvolgere l’intero sistema urbano e ogni sub-sistema che ne fa parte e deve attuarsi alle diverse scale di intervento: dal sistema funzionale a quello istituzionale, dalla scala architettonica alla scala territoriale</cite></em><cite class="wp-caption-dd" title="citazione" dir="ltr">”. Ciò implica la necessità di dotarsi di nuovi strumenti e modelli in grado di governare la complessità urbana. Le trasformazioni della città futura dovranno, quindi, essere governate attraverso strumenti in grado di consentire l’indirizzo, la regolarizzazione ed il controllo dei fenomeni urbani.</cite></li>
<li><cite class="wp-caption-dd" title="citazione" dir="ltr">Città e Tecnologia – “</cite><em><cite class="wp-caption-dd" title="citazione" dir="ltr">L’innovazione tecnologica e la telematica, in particolare, devono essere orientate al miglioramento delle prestazioni urbane e al governo della città futura</cite></em><cite class="wp-caption-dd" title="citazione" dir="ltr">”. Ciò vuol dire che i contributi dell’avanzamento culturale, scientifico, tecnologico dovranno essere impiegati nell’analisi, nel progetto e nel governo della città per contribuire ad innalzare il livello della qualità della vita e della vitalità urbana.</cite></li>
</ul>
<p>Questa citazione dovrebbe chiarire quali erano le luci quando si discuteva di nuove tecnologie e qualità della vita nelle città. Con ciò non intendo affermare che oggi tali luci si siano spente o sbiadite, ma forse amplificate fino a far correre il rischio di abbagliarci perdendo, a volte, di vista il reale obiettivo di integrazione. I primi anni ’90 risultano particolarmente vitali per l’accendersi di questioni, riflessioni e suggestioni che mirano ad inquadrare e delineare un nuovo scenario in cui le nuove tecnologie potrebbero svolgere un ruolo di neurone per la “trasformazione” della società in cui viviamo. L&#8217;intervento di C. Donolo nel 1997 è altresì interessante nel contesto di questo post:  «le istituzioni sono capaci di “intelligenza”, sono capaci di apprendere [...] occorre smettere di guardare alle istituzioni come a enti estranei, opprimenti, se non quasi nemici, da raggirare non appena possibile». Bene, sembra cosa fatta&#8230;ovvero ICT come strumento comunicativo a disposizione delle P.A. (e non solo) il tutto contestualizzato (geotaggato) su immagini del territorio.</p>
<p>Queste riflessioni, già trattate in un <a href="http://www.claudioschifani.it/blog/105.html" target="_blank">altro post</a> in cui si fa esplicito riferimento allo strumento del geotagging, dovrebbero oggi stimolare nuove riflessioni. In particolare ritengo che si stiano esprimendo alcuni dubbi e timori sull&#8217;uso di tali strumenti che sono emersi anche nel corso di alcuni seminari a cui ho partecipato come relatore e uditore.</p>
<p>Il geotagging basato sull&#8217;approccio 2.0 richiede un dialogo tra tutti i soggetti coinvolti per il raggiungimento di un determinato obiettivo. Questo dialogo è proficuo se a partecipare non sono soltanto gli utenti (tra cui i cittadini), ma anche il soggetto promotore (l&#8217;amministratore nel web).<br />
Ma chi è l&#8217;amministratore?</p>
<p>Nel caso più semplice, ovvero di un geoblog avviato da una P.A per un particolare processo (es. piani strategici, PGT, etc.), è la stessa P.A ad esporsi rispondendo alle istanze che provengono dal web. Rispondere non vuol dire sempre accogliere, ma far sentire la propria voce in accordo o disaccordo. Basterebbe rendere in forma esplicita l&#8217;analisi di tali istanze anche in fase di redazione dei documenti di piano. In assenza di tale dialogo, il rischio è quello di promuovere una semplice &#8220;piazza&#8221; senza mediatore.</p>
<p>Anche l&#8217;obiettivo nel Geoblog deve essere chiaro&#8230;a cosa serve? perché dovrei contribuire? chi mi sta ascoltando? Quest&#8217;ultima domanda chiarisce anche il perché tali strumenti vengano chiamati, più correttamente, &#8220;sistemi di ascolto&#8221; ed un &#8220;sistema di ascolto&#8221; richiede almeno due interlocutori altrimenti si rischia un monologo.</p>
<p>Altra questione riguarda la tematizzazione del Geoblog, fortemente legata all&#8217;obiettivo. Quali sono le voci di legenda che devono presentarsi all&#8217;utente in funzione non solo dell&#8217;obiettivo, ma anche del contesto territoriale in cui lo si sta applicando.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.claudioschifani.it/Immagini/Osservatorio_2.jpg" alt="Osservatorio del paesaggio - Regione Puglia" width="559" height="285" /></p>
<p>Il rischio è di sottovalutare alcuni &#8220;vincoli&#8221; per la corretta (in termini di risultato) applicabilità di tali strumenti in processi partecipativi supportati dalle GeoICT. CIò che noto (ed era già emerso nel corso della ricerca) è che l&#8217;uso del geotagging rischia seriamente di configurarsi come uno slogan tecnologico perdendo di vista alcune luci intraviste a partire degli anni &#8217;90.<br />
Concludo con un paio di link (uno lè già stato citato) di alcune esperienze che ritengo possano esplicitare queste mie semplici riflessioni.</p>
<p>[1] <a href="http://paesaggio.regione.puglia.it/osservatorio/main_login_page.php?info=DENIED" target="_blank">Il Paesaggio visto dagli abitanti</a> &#8211; Regione Puglia<br />
[2] <a href="http://iris.comune.venezia.it/" target="_blank">Manutenzione urbana a Venezia<br />
</a></p>
<p>&#8230;esperienza nata &#8220;dal basso&#8221;<br />
[3] <a href="https://segnalalivorno.crowdmap.com/main" target="_blank">Segnala Livorno </a>- interessante la sezione &#8220;Problemi risolti&#8221;</p>
<p>&nbsp;</p>
<hr />
<p><small>© admin for <a href="http://www.claudioschifani.it/blog">BloGis</a>, 2011. |
<a href="http://www.claudioschifani.it/blog/informazione-territoriale-e-web-2-0-luci-e-ombre.html">Permalink</a> |
<a href="http://www.claudioschifani.it/blog/informazione-territoriale-e-web-2-0-luci-e-ombre.html#comments">No comment</a>
Post tags: <a href="http://www.claudioschifani.it/blog/tag/condivisione" rel="tag">Condivisione</a>, <a href="http://www.claudioschifani.it/blog/tag/geoweb" rel="tag">GeoWeb</a>, <a href="http://www.claudioschifani.it/blog/tag/web-2-0" rel="tag">Web 2.0</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.claudioschifani.it/blog/informazione-territoriale-e-web-2-0-luci-e-ombre.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sviluppiamo con Sextante Gis (Parte seconda)</title>
		<link>http://www.claudioschifani.it/blog/sviluppiamo-con-sextante-gis-parte-seconda.html</link>
		<comments>http://www.claudioschifani.it/blog/sviluppiamo-con-sextante-gis-parte-seconda.html#comments</comments>
		<pubDate>Fri, 04 Mar 2011 13:45:05 +0000</pubDate>
		<dc:creator>archcla77</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Strumenti GIS]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[gvSIG]]></category>
		<category><![CDATA[SEXTANTE]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.claudioschifani.it/blog/?p=173</guid>
		<description><![CDATA[Condividi tweetmeme_source = 'archcla'; Questo articolo è il seguito di &#8220;sextante parte prima&#8221; e si consiglia la lettura prima di proseguire. Nel primo tutorial abbiamo creato il progetto Java e scritto un semplice algoritmo di manipolazione dei dati raster. Ora procederemo con la scrittura di un nuovo algoritmo nel mondo vettoriale. L&#8217;algoritmo prevederà un dato [...]]]></description>
			<content:encoded><![CDATA[<p><a type="box_count" name="fb_share" href="http://www.facebook.com/sharer.php">Condividi</a><br />
<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script><br />
<script type="text/javascript">
tweetmeme_source = 'archcla';
</script><br />
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></p>
<p>Questo articolo è il seguito di <a href="http://www.claudioschifani.it/blog/sviluppiamo-con-sextante-gis-parte-prima.html">&#8220;sextante parte prima&#8221;</a> e si consiglia la lettura prima di proseguire.<br />
Nel primo tutorial abbiamo creato il progetto Java e scritto un semplice algoritmo di manipolazione dei dati raster. Ora procederemo con la scrittura di un nuovo algoritmo nel mondo vettoriale. L&#8217;algoritmo prevederà un dato vettoriale di input, un campo della tabella attributi ed un parametro numerico per generare un nuovo layer vettoriale in cui i valori del campo di input saranno moltiplicati per il parametro numerico inserito. Il primo passo consiste nella creazione di un nuovo package &#8220;es.unex.sextante.multiplyVector&#8221;  ed una nuova classe &#8220;MultiplyVectorFieldAlgorithm&#8221;.</p>
<p>Definiamo i parametri di input e le caratteristiche del nuovo algoritmo</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">es.unex.sextante.multiplyVector</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.vividsolutions.jts.geom.Geometry</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">es.unex.sextante.additionalInfo.AdditionalInfoNumericalValue</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">es.unex.sextante.core.GeoAlgorithm</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">es.unex.sextante.dataObjects.IFeature</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">es.unex.sextante.dataObjects.IFeatureIterator</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">es.unex.sextante.dataObjects.IVectorLayer</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">es.unex.sextante.exceptions.GeoAlgorithmExecutionException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">es.unex.sextante.exceptions.RepeatedParameterNameException</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MultiplyVectorFieldAlgorithm <span style="color: #000000; font-weight: bold;">extends</span> GeoAlgorithm<span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> RESULT       <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;RESULT&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> INPUT       <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;INPUT&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> FIELD       <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;FIELD&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> VALUE       <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;VALUE&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	@Override
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> defineCharacteristics<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">setName</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Multiply vector&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">setGroup</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;My algorithm&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
		    m_Parameters.<span style="color: #006633;">addInputVectorLayer</span><span style="color: #009900;">&#40;</span>INPUT, <span style="color: #0000ff;">&quot;Vectorlayer&quot;</span>,IVectorLayer.<span style="color: #006633;">SHAPE_TYPE_POLYGON</span>,<span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		    m_Parameters.<span style="color: #006633;">addTableField</span><span style="color: #009900;">&#40;</span>FIELD, Sextante.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;field&quot;</span><span style="color: #009900;">&#41;</span>, INPUT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    m_Parameters.<span style="color: #006633;">addNumericalValue</span><span style="color: #009900;">&#40;</span>VALUE,<span style="color: #0000ff;">&quot;Value&quot;</span>,<span style="color: #cc66cc;">1</span>,AdditionalInfoNumericalValue.<span style="color: #006633;">NUMERICAL_VALUE_DOUBLE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    addOutputVectorLayer<span style="color: #009900;">&#40;</span>RESULT, <span style="color: #0000ff;">&quot;Result&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">final</span> RepeatedParameterNameException e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	                   Sextante.<span style="color: #006633;">addErrorToLog</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	                <span style="color: #009900;">&#125;</span>
	                 <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">final</span> UndefinedParentParameterNameException e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	                   Sextante.<span style="color: #006633;">addErrorToLog</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	               <span style="color: #009900;">&#125;</span>
	                 <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">final</span> OptionalParentParameterException e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	                   Sextante.<span style="color: #006633;">addErrorToLog</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	                <span style="color: #009900;">&#125;</span>
		    <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Definiti i parametri di input dell&#8217;algoritmo, si procede con la definizione del corpo del processo, ovvero con il metodo processAlgorithm().</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> processAlgorithm<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> GeoAlgorithmExecutionException <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">int</span> iField<span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">double</span> dValue<span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">double</span> dConstant<span style="color: #339933;">;</span>
IVectorLayer layer<span style="color: #339933;">;</span>
&nbsp;
layer <span style="color: #339933;">=</span> m_Parameters.<span style="color: #006633;">getParameterValueAsVectorLayer</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;INPUT&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
iField <span style="color: #339933;">=</span> m_Parameters.<span style="color: #006633;">getParameterValueAsInt</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;FIELD&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
dConstant <span style="color: #339933;">=</span> m_Parameters.<span style="color: #006633;">getParameterValueAsDouble</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;VALUE&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">Class</span> type <span style="color: #339933;">=</span> layer.<span style="color: #006633;">getFieldType</span><span style="color: #009900;">&#40;</span>iField<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #339933;">!</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Number</span>.<span style="color: #006633;">isAsignableFrom</span><span style="color: #009900;">&#40;</span>type<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> GeoalgorithmExecutionException<span style="color: #009900;">&#40;</span>
<span style="color: #0000ff;">&quot;Selected field is not numeric&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Dalla riga 50 alla 54 è chiaro come stiamo catturando un&#8217;eventuale eccezione relativa alla tipologia del campo definito come input. Se il campo non è di tipo numerico, l&#8217;algoritmo non potrà procedere con la moltiplicazione della costante e restituirà un errore.<br />
Proseguiamo con la definizione dei campi attributi di input ed output e con il layer vettoriale risultato.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>55
56
57
58
59
60
61
62
63
64
65
66
67
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">Class</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> fieldTypes <span style="color: #339933;">=</span> layer.<span style="color: #006633;">getFieldTypes</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">Class</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> outputFieldTypes <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000000; font-weight: bold;">Class</span><span style="color: #009900;">&#91;</span>fieldTypes.<span style="color: #006633;">length</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> fieldTypes.<span style="color: #006633;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">==</span> iTop <span style="color: #339933;">||</span> i <span style="color: #339933;">==</span> iBottom<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	     outputFieldTypes<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #003399;">Double</span>.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #339933;">;</span>
	     <span style="color: #009900;">&#125;</span>
	     <span style="color: #000000; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
	     outputFieldTypes<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> fieldTypes<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	      <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
IVectorLayer output <span style="color: #339933;">=</span> getNewVectorLayer<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;RESULT&quot;</span>,nome,layer.<span style="color: #006633;">getShapeType</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>,outputFieldTypes,layer.<span style="color: #006633;">getFieldNames</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Procediamo con il vero corpo dell&#8217;algoritmo in cui il layer vettoriale è letto nella sua componente geometrica ed alfanumerica. Tale procedura avviene tramite due metodi:<br />
public Geometry getGeometry();<br />
public IRecord getRecord();<br />
Il primo legge e archivia e ritorna le geometrie attraverso la JTS (Java Topology Suite), mentre il secondo ritorna l&#8217;oggetto record implementato nell&#8217;interfaccia IRecord di Sextante.</p>
<p>Nel codice seguente andremo a copiare tutti i valori in un nuovo array che sarà usato per popolare i record del nuovo layer di output, eccetto che per il campo selezionato e dove andremo a moltiplicare i valori per la costante dConstant. Chiarita la procedura principale non sarà difficile comprendere dal codice che il layer di input &#8220;smontato&#8221; ed analizzato sarà successivamente ristrutturato nella sua componente geometrica ed alfanumerica.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">int</span> iShapeCount <span style="color: #339933;">=</span> m_Layer.<span style="color: #006633;">getShapesCount</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
IFeatureIterator iter <span style="color: #339933;">=</span> m_Layer.<span style="color: #006633;">iterator</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>iter.<span style="color: #006633;">hasNext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> setProgress<span style="color: #009900;">&#40;</span>i, iShapeCount<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
IFeature feature <span style="color: #339933;">=</span> iter.<span style="color: #006633;">next</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003399;">Object</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> values <span style="color: #339933;">=</span> feature.<span style="color: #006633;">getRecord</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getValues</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003399;">Object</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> outputValues <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Object</span><span style="color: #009900;">&#91;</span>values.<span style="color: #006633;">length</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> j <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;</span> fieldTypes.<span style="color: #006633;">length</span><span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">==</span> iField<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>values<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
outputValues<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
dValue <span style="color: #339933;">=</span> <span style="color: #003399;">Double</span>.<span style="color: #006633;">parseDouble</span><span style="color: #009900;">&#40;</span>values<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
outputValues<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Double</span><span style="color: #009900;">&#40;</span>dValue <span style="color: #339933;">*</span> dConstant<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
outputValues<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> values<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
Geometry geom <span style="color: #339933;">=</span> feature.<span style="color: #006633;">getGeometry</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
ouput.<span style="color: #006633;">addFeature</span><span style="color: #009900;">&#40;</span>geometry, outputValues<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
i<span style="color: #339933;">++;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>A questo punto vi basterà trarre spunto dagli algoritmi già implementati in Sextante Gis e utilizzare tutte le classi a disposizione per scrivere e sviluppare nuovi algoritmi in funzione dei vostri obiettivi.</p>
<hr />
<p><small>© admin for <a href="http://www.claudioschifani.it/blog">BloGis</a>, 2011. |
<a href="http://www.claudioschifani.it/blog/sviluppiamo-con-sextante-gis-parte-seconda.html">Permalink</a> |
<a href="http://www.claudioschifani.it/blog/sviluppiamo-con-sextante-gis-parte-seconda.html#comments">No comment</a>
Post tags: <a href="http://www.claudioschifani.it/blog/tag/gis" rel="tag">GIS</a>, <a href="http://www.claudioschifani.it/blog/tag/gvsig" rel="tag">gvSIG</a>, <a href="http://www.claudioschifani.it/blog/tag/sextante" rel="tag">SEXTANTE</a>, <a href="http://www.claudioschifani.it/blog/tag/tutorial" rel="tag">Tutorial</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.claudioschifani.it/blog/sviluppiamo-con-sextante-gis-parte-seconda.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sviluppiamo con Sextante Gis (Parte prima)</title>
		<link>http://www.claudioschifani.it/blog/sviluppiamo-con-sextante-gis-parte-prima.html</link>
		<comments>http://www.claudioschifani.it/blog/sviluppiamo-con-sextante-gis-parte-prima.html#comments</comments>
		<pubDate>Fri, 28 Jan 2011 11:51:17 +0000</pubDate>
		<dc:creator>archcla77</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Strumenti GIS]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[gvSIG]]></category>
		<category><![CDATA[SEXTANTE]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.claudioschifani.it/blog/?p=122</guid>
		<description><![CDATA[Condividi // Da un po&#8217; di mesi sono passato da utente a &#8220;sviluppatore in erba&#8221; di algoritmi con la potente libreria di Sextante GIS (qualcuno la conoscerà come integrazione di gvSIG) interamente scritta in Java e che ha un papà attivissimo: Victor Olaya . Per chi non la conoscesse, Sextante è una libreria di geoalgoritmi [...]]]></description>
			<content:encoded><![CDATA[<p><a type="box_count" name="fb_share" href="http://www.facebook.com/sharer.php">Condividi</a><br />
<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script> <script type="text/javascript">// <![CDATA[
 tweetmeme_source = 'archcla';
// ]]&gt;</script><br />
<script src="http://tweetmeme.com/i/scripts/button.js" type="text/javascript"></script></p>
<p>Da un po&#8217; di mesi sono passato da utente a &#8220;sviluppatore in erba&#8221; di algoritmi con la potente libreria di <a href="http://forge.osor.eu/plugins/wiki/index.php?id=13&amp;type=g" target="_parent">Sextante GIS</a> (qualcuno la conoscerà come integrazione di gvSIG) interamente scritta in Java e che ha un papà attivissimo: Victor Olaya  <img src='http://www.claudioschifani.it/blog/wp-includes/images/smilies/icon_cool.gif' alt='8-)' class='wp-smiley' /> . Per chi non la conoscesse, Sextante è una libreria di geoalgoritmi in grado di interfacciarsi con i dati geografici attraverso specifici Bindings (tra cui per gvSIG, OpenJump ed anche le GeoTools). Non entro nel merito su come funzionano i <a href="http://it.wikipedia.org/wiki/Binding" target="_parent">bindings</a>, ma possiamo intenderli come delle interfacce tra Sextante e le applicazioni desktop GIS.</p>
<p>Credo che molti di noi utenti GIS abbiano una volta almeno desiderato sviluppare un algoritmo di analisi spaziale per uno scopo ben preciso  <img src='http://www.claudioschifani.it/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  A volte ci viene in aiuto la possibilità di costruire dei flussi di lavoro (workflow) possibili anche con Sextante attraverso il suo modelbuilder, ma in questo post proveremo a sviluppare ex novo un geoalgoritmo basato sulla libreria di Sextante.</p>
<p>Ciò che troverete scritto è sostanzialmente tratto e basato sull&#8217;ottimo <a href="http://www.scribd.com/doc/25545395/SEXTANTE-Programming-Guide" target="_parent">manuale di programmazione</a> Sextante scritto da V. Olaya. Lo scenario applicativo è il seguente: abbiamo installato sul nostro calcolatore un software GIS Open Source (es. gvSIG) esteso con Sextante. Questo breve tutorial presuppone anche una conoscenza di base di Java e un ambiente di sviluppo, in questo caso mi baserò su Eclipse.</p>
<p>Per prima cosa scarichiamo i binari dal <a href="http://forge.osor.eu/plugins/wiki/index.php?Downloads&amp;id=13&amp;type=g" target="_blank">sito di Sextante</a>. Appena aperta la cartella, troveremo delle sotto cartelle (bindings, core e help). Ciò di cui avremo bisogno sono i file .jar contenuti nella cartella &#8220;core&#8221; e che costituiranno le nostre librerie per lo sviluppo dei nostri geoalgoritmi.</p>
<p>A questo punto possiamo avviare Eclipse e creare un nuovo progetto nominandolo &#8220;Tutorial&#8221;. Adesso creaimo una cartella &#8220;lib&#8221; dove andremo a collocare i file .jar presenti nella cartella &#8220;core&#8221; di Sextante. Non ci resta che aggiungere al Build Path del nostro progetto i file presenti nella cartella &#8220;lib&#8221;.</p>
<p style="text-align: center;"><a href="http://www.claudioschifani.it/blog/wp-content/uploads/2011/01/path.jpg"><img class="size-medium wp-image-128 aligncenter" title="path" src="http://www.claudioschifani.it/blog/wp-content/uploads/2011/01/path-300x243.jpg" alt="" width="300" height="243" /></a></p>
<p>Bene, adesso dovremo creare un nuovo package (es. it.mionome.sextante.testraster). La struttura di Sextante prevede che ciascun package contenga un algoritmo ed eventuali classi di supporto. Per questo motivo creeremo una nuova classe (senza metodo <em>main</em>)  nominandola MoltplicaRasterAlgorithm &#8211; nota bene che il suffisso Algorithm è necessario per essere riconosciuto nel Framework di Sextante come nuovo algoritmo.<br />
Tutti gli algoritmi estendono la classe GeoAlgorithm di Sextante e, pertanto, implementano due metodi:</p>
<ul>
<li> defineCharacteristics()</li>
<li>processAlgorithm()</li>
</ul>
<p>Il primo definisce i parametri dell&#8217;algoritmo che serviranno anche per la sua interfaccia grafica; il secondo definisce la struttura dell&#8217;algoritmo in termini di calcolo e processi. Procediamo con lo sviluppo di un semplice algoritmo che moltiplica ogni cella di un dato raster in ingresso per un dato valore e restituisce un nuovo raster. Questo esempio è tratto proprio dalla guida citata, ovvero la <a href="http://www.scribd.com/doc/25545395/SEXTANTE-Programming-Guide" target="_parent">Programming Guide di Sextante scritta da Victor Olaya</a>.<br />
Ecco come si presenterà la nostra classe dopo averla estesa con GeoAlgorithm</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">es.unex.sextante.multiplyRaster</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">es.unex.sextante.core.GeoAlgorithm</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">es.unex.sextante.exceptions.GeoAlgorithmExecutionException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MoltiplicaRasterAlgorithm <span style="color: #000000; font-weight: bold;">extends</span> GeoAlgorithm<span style="color: #009900;">&#123;</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> defineCharacteristics<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">// TODO Auto-generated method stub</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> processAlgorithm<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> GeoAlgorithmExecutionException <span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">// TODO Auto-generated method stub</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Passiamo con il definire il contenuto del primo metodo e, dunque, le caratteristiche del nostro algoritmo</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> RESULT <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;RESULT&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> INPUT <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;INPUT&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> VALUE <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;VALUE&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> defineCharacteristics<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">setName</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Multiply raster&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">setGroup</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;My algorithm&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">setGeneratesUserDefinedRasterOutput</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
		m_Parameters.<span style="color: #006633;">addInputRasterLayer</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;INPUT&quot;</span>, <span style="color: #0000ff;">&quot;Raster layer&quot;</span>, <span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		m_Parameters.<span style="color: #006633;">addNumericalValue</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;VALUE&quot;</span>, <span style="color: #0000ff;">&quot;Value&quot;</span>, <span style="color: #cc66cc;">1</span>,
				AdditionalInfoNumericalValue.<span style="color: #006633;">NUMERICAL_VALUE_DOUBLE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		addOutputRasterLayer<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;RESULT&quot;</span>, <span style="color: #0000ff;">&quot;Result&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>RepeatedParameterNameException e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Analizziamo il codice passo passo. Dalla riga 5 alla riga 6 vengono definiti il nome ed il gruppo di appartenenza del nuovo algoritmo riferito all&#8217;interfaccia grafica della toolbar di Sextante. La riga 7 è necessaria perchè creando un nuovo dato raster in uscita, dovremmo definire le estensioni di tale dato in termini di cella e regione. In questo caso impostiamo di default che il dato in uscita avrà le stesse caratteristiche del dato di ingresso e disattiviamo l&#8217;opzione con un <em>false</em>.<br />
Le righe 10,11 e 12 rispondono alle semplici domande: quali sono i dati ed i parametri di input (definibili nella GUI del nostro algoritmo) e quali sono i dati in uscita prodotti. In questo caso necessitiamo di un raster in ingresso, un valore numerico come moltiplicatore ed un dato raster in uscita per cui si debba definire il path di scrittura.</p>
<p>Passiamo adesso a definire il processo di calcolo dell&#8217;algoritmo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="java" style="font-family:monospace;">	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> processAlgorithm<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> GeoAlgorithmExecutionException <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">int</span> x,y<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> iNX, iNY<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">double</span> dValue<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">double</span> dConstant<span style="color: #339933;">;</span>
		IRasterLayer layer<span style="color: #339933;">;</span>
                IRasterLayer result<span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Per prima cosa definiamo le variabili. Come potrete approfondire nel manuale, Sextante si interfaccia con dati raster, vector e tabelle tramite classi apposite: IRasterLayer, IVectorLayer e ITable.<br />
Adesso possiamo inizializzare le nostre variabili notando come definiamo, a livello di codice, anche l&#8217;estensione del raster in uscita (ricordiamo che abbiamo disattivato l&#8217;opzione tramite GUI).</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>8
9
10
11
</pre></td><td class="code"><pre class="java" style="font-family:monospace;">    layer <span style="color: #339933;">=</span> m_Parameters.<span style="color: #006633;">getParameterValueAsRasterLayer</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;INPUT&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    dConstant <span style="color: #339933;">=</span> m_Parameters.<span style="color: #006633;">getParameterValueAsDouble</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;VALUE&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    GridExtent extent <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> GridExtent<span style="color: #009900;">&#40;</span>layer<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    result <span style="color: #339933;">=</span> getNewRasterLayer<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;RESULT&quot;</span>, Sextante.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Result&quot;</span><span style="color: #009900;">&#41;</span>, IRasterLayer.<span style="color: #006633;">RASTER_DATA_TYPE_FLOAT</span>, extent<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Dalla riga 8 alla 11 impostiamo come parametri dell&#8217;algoritmo i dati di input immessi tramite GUI. Non ci resta che definire il processo di calcolo. Abbiamo bisogno di due semplici cicli <em>for</em> che scandisca cella per cella ne recuperi il <em>value</em> e lo moltiplichi per il nostro moltiplicatore restituendo il risultato come nuovo <em>value</em>.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code"><pre class="java" style="font-family:monospace;">layer.<span style="color: #006633;">setWindowExtent</span><span style="color: #009900;">&#40;</span>extent<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		iNX <span style="color: #339933;">=</span> extent.<span style="color: #006633;">getNX</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		iNY <span style="color: #339933;">=</span> extent.<span style="color: #006633;">getNY</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>y <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> y <span style="color: #339933;">&lt;</span> iNY <span style="color: #339933;">&amp;&amp;</span> setProgress<span style="color: #009900;">&#40;</span>y, iNY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> y<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>x <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> x <span style="color: #339933;">&lt;</span> iNX<span style="color: #339933;">;</span> x<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				dValue <span style="color: #339933;">=</span> layer.<span style="color: #006633;">getCellValueAsDouble</span><span style="color: #009900;">&#40;</span>x, y<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				result.<span style="color: #006633;">setCellValue</span><span style="color: #009900;">&#40;</span>x, y, dValue <span style="color: #339933;">*</span> dConstant<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #339933;">!</span>m_Task.<span style="color: #006633;">isCanceled</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>La riga 21 contiene il codice con cui terminare la procedura del nostro algoritmo.<br />
Ricapitolando&#8230;il codice completo sarà il seguente:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">es.unex.sextante.multiplyRaster</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">es.unex.sextante.additionalInfo.AdditionalInfoNumericalValue</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">es.unex.sextante.core.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">es.unex.sextante.dataObjects.IRasterLayer</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">es.unex.sextante.exceptions.RepeatedParameterNameException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">es.unex.sextante.exceptions.GeoAlgorithmExecutionException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">es.unex.sextante.rasterWrappers.GridExtent</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MultiplyRasterAlgorithm <span style="color: #000000; font-weight: bold;">extends</span> GeoAlgorithm<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> RESULT <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;RESULT&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> INPUT <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;INPUT&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> defineCharacteristics<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">setName</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Multiply raster&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">setGroup</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;My algorithm&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">setGeneratesUserDefinedRasterOutput</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
&nbsp;
m_Parameters.<span style="color: #006633;">addInputRasterLayer</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;INPUT&quot;</span>, <span style="color: #0000ff;">&quot;Raster layer&quot;</span>, <span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
m_Parameters.<span style="color: #006633;">addNumericalValue</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;VALUE&quot;</span>, <span style="color: #0000ff;">&quot;Value&quot;</span>, <span style="color: #cc66cc;">1</span>,
AdditionalInfoNumericalValue.<span style="color: #006633;">NUMERICAL_VALUE_DOUBLE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
addOutputRasterLayer<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;RESULT&quot;</span>, <span style="color: #0000ff;">&quot;Result&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>RepeatedParameterNameException e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> processAlgorithm<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> GeoAlgorithmExecutionException <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">int</span> x,y<span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">int</span> iNX, iNY<span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">double</span> dValue<span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">double</span> dConstant<span style="color: #339933;">;</span>
IRasterLayer layer<span style="color: #339933;">;</span>
IRasterLayer result<span style="color: #339933;">;</span>
&nbsp;
layer <span style="color: #339933;">=</span> m_Parameters.<span style="color: #006633;">getParameterValueAsRasterLayer</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;INPUT&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
dConstant <span style="color: #339933;">=</span> m_Parameters.<span style="color: #006633;">getParameterValueAsDouble</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;VALUE&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
GridExtent extent <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> GridExtent<span style="color: #009900;">&#40;</span>layer<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
result <span style="color: #339933;">=</span> getNewRasterLayer<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;RESULT&quot;</span>, Sextante.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Result&quot;</span><span style="color: #009900;">&#41;</span>, IRasterLayer.<span style="color: #006633;">RASTER_DATA_TYPE_FLOAT</span>, extent<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
layer.<span style="color: #006633;">setWindowExtent</span><span style="color: #009900;">&#40;</span>extent<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
iNX <span style="color: #339933;">=</span> extent.<span style="color: #006633;">getNX</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
iNY <span style="color: #339933;">=</span> extent.<span style="color: #006633;">getNY</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>y <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> y <span style="color: #339933;">&lt;</span> iNY <span style="color: #339933;">&amp;&amp;</span> setProgress<span style="color: #009900;">&#40;</span>y, iNY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> y<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>x <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> x <span style="color: #339933;">&lt;</span> iNX<span style="color: #339933;">;</span> x<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
dValue <span style="color: #339933;">=</span> layer.<span style="color: #006633;">getCellValueAsDouble</span><span style="color: #009900;">&#40;</span>x, y<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
result.<span style="color: #006633;">setCellValue</span><span style="color: #009900;">&#40;</span>x, y, dValue <span style="color: #339933;">*</span> dConstant<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #339933;">!</span>m_Task.<span style="color: #006633;">isCanceled</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Siamo pronti per testare il nostro algoritmo. Esportiamo i nostri sorgenti come file .jar prestando attenzione al nome del file che dovrà contenere il prefisso &#8220;sextante&#8221;. Ad esempio potremmo nominare il nostro file: &#8220;sextante_test&#8221;.<br />
Copiamo il nostro jar nella cartella &#8220;es.unex.sextante&#8221; presente nella directory &#8220;extensiones&#8221; di gvSIG. A questo punto troveremo nella toolbar di Sextante un nuovo gruppo di algoritmi &#8220;My Algorithm&#8221; con il geoalgoritmo &#8220;Multiply raster&#8221;.<br />
Spero che possa avere stimolato la vostra curiosità e vi invito ancora una volta a consultare e approfondire questi argomenti nel manuale scritto da Olaya (a cui si riferisce questo post).</p>
<p>Spero presto di aggiungere la seconda parte con un algoritmo nel mondo vector (..tratto sempre dallo stesso manuale in inglese)  <img src='http://www.claudioschifani.it/blog/wp-includes/images/smilies/icon_lol.gif' alt=':lol:' class='wp-smiley' /> </p>
<hr />
<p><small>© admin for <a href="http://www.claudioschifani.it/blog">BloGis</a>, 2011. |
<a href="http://www.claudioschifani.it/blog/sviluppiamo-con-sextante-gis-parte-prima.html">Permalink</a> |
<a href="http://www.claudioschifani.it/blog/sviluppiamo-con-sextante-gis-parte-prima.html#comments">No comment</a>
Post tags: <a href="http://www.claudioschifani.it/blog/tag/gis" rel="tag">GIS</a>, <a href="http://www.claudioschifani.it/blog/tag/gvsig" rel="tag">gvSIG</a>, <a href="http://www.claudioschifani.it/blog/tag/sextante" rel="tag">SEXTANTE</a>, <a href="http://www.claudioschifani.it/blog/tag/tutorial" rel="tag">Tutorial</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.claudioschifani.it/blog/sviluppiamo-con-sextante-gis-parte-prima.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Territorio tecnologico: alcuni spunti di riflessione sulla rivoluzione geografica in corso</title>
		<link>http://www.claudioschifani.it/blog/105.html</link>
		<comments>http://www.claudioschifani.it/blog/105.html#comments</comments>
		<pubDate>Sat, 06 Nov 2010 17:16:12 +0000</pubDate>
		<dc:creator>archcla77</dc:creator>
				<category><![CDATA[GeoWeb]]></category>
		<category><![CDATA[Condivisione]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://www.claudioschifani.it/blog/?p=105</guid>
		<description><![CDATA[Condividi tweetmeme_source = 'archcla'; In seguito alla lettura del Blog dei miei colleghi e amici di TANTO, ho pensato interessante fissare anche nel mio diario alcune riflessioni scaturite da percorsi di ricerca e che ritengo condivise da molti È in corso una rivoluzione contemporaneamente concettuale, metodologica e operativa e che trova il suo nucleo nell’informazione [...]]]></description>
			<content:encoded><![CDATA[<p><a type="box_count" name="fb_share" href="http://www.facebook.com/sharer.php">Condividi</a><br />
<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script><br />
<script type="text/javascript">
tweetmeme_source = 'archcla';
</script><br />
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></p>
<p>In seguito alla lettura del Blog dei miei colleghi e amici di <a href="http://blog.spaziogis.it/" target="_blank">TANTO</a>, ho pensato interessante fissare anche nel mio diario alcune riflessioni scaturite da percorsi di ricerca e che ritengo condivise da molti  <img src='http://www.claudioschifani.it/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>È in corso una rivoluzione contemporaneamente concettuale, metodologica e operativa e che trova il suo nucleo nell’informazione geografica e nell’aggiornamento dei modelli di conoscenza dei fenomeni territoriali che si sviluppano sulla base delle interazioni e contaminazioni tra la mole di dati geografici pubblici e “privati” e la filosofia e la tecnologia dell’era Web 2.0. Ciò ci suggerisce che anche il contesto in cui si sviluppano oggi i processi decisionali si complica, o potremo dire si arricchisce di un ulteriore “binario di saperi” che sono prodotti dalla collettività o da aggregazioni di individui, ma non per questo meno utili e validi di quelli distribuiti dalle fonti istituzionali.<br />
«Web 2.0 a supporto dei processi decisionali inclusivi». Così S<a href="http://www.scribd.com/people/view/168560-stefano-fiaschi" target="_blank">tefano Fiaschi</a> definisce ciò che rappresenta di fatto un possibile scenario di svolta generato dall’utilizzo delle nuove tecnologie dell’informazione. Il tema centrale è quello della democrazia partecipativa basata sull’idea che la partecipazione alla “cosa pubblica” includa tra gli attori anche tutti i cittadini direttamente interessati dalle decisioni che le istituzioni prendono per il proprio territorio. <a href="http://www.michelecamp.it/" target="_blank">Michele Vianello</a> ci ricorda inoltre che «la conoscenza non è un gioco “individuale”, ma è figlia di un processo di collaborazione che deve coinvolgere i cittadini». Tende a configurarsi, dunque, nell’era della <em>Digital Earth</em> e del Web 2.0 l&#8217;integrazione, in un unico modello di conoscenza, di tutti gli elementi conoscitivi di un territorio &#8220;adottato&#8221; tra soggetti, attori e comunità attivi nelle azioni di monitoraggio, gestione e governo del territorio. L’uso appropriato e creativo delle nuove tecnologie consentirebbe di “fare rete” tra tutti i soggetti interessati, a vario titolo, in azioni che hanno per oggetto il territorio. in tale scenario il <em>Geotagging</em> consente una partecipazione attiva della comunità locale dandole la possibilità di segnalare problemi, forme di disagio ma anche istanze progettuali e proposte per una gestione partecipata del proprio territorio.</p>
<p>Le prime sperimentazioni di social <em>geotagging</em> per il monitoraggio partecipato del territorio sono rintracciabili nel progetto britannico pioniere di <em>FixMyStreet</em> attraverso cui è possibile segnalare geograficamente un problema attinente al tema della manutenzione della viabilità (<a href="http://www.fixmystreet.com/">www.fixmystreet.com/</a>). Questo progetto è stato anche il modello su cui si è basata parte della strategia di Amministrare 2.0 del Comune di Venezia che, tra i <a href="http://www.comune.venezia.it/flex/cm/pages/ServeBLOB.php/L/IT/IDPagina/21871" target="_blank">servizi Web 2.0 </a>messi a disposizione per la propria cittadinanza digitale, ha attivato una piattaforma attraverso cui è possibile segnalare e localizzare problemi, forme di disagio e questioni attinenti al tema della manutenzione urbana.</p>
<p style="text-align: center;"><img class="aligncenter" title="Servizio 2.0 del Comune di Venezia" src="http://www.claudioschifani.it/Immagini/IRIS.jpg" alt="" width="390" height="243" /></p>
<p style="text-align: center;">
<p>In linea con questo scenario è il progetto <a href="http://geospatialrevolution.psu.edu/" target="_blank">Geospatial Revolution</a> della Penn State University che pone come obiettivo quello di diffondere conoscenza, o meglio la conoscenza delle potenzialità della rivoluzione basata sulle tecnologie <em>local-based.<br />
<span style="font-style: normal;">Il progetto ambizioso quanto estremamente  interessante e stimolante si articolerà in 8 episodi di cui, attualmente, ne sono disponibili i primi due.</span></em></p>
<p style="text-align: center;"><em><span style="font-style: normal;"><img class="aligncenter" title="Home page del progetto Geospatial Revolution" src="http://www.claudioschifani.it/Immagini/geospatial.jpg" alt="" width="562" height="312" /></span></em></p>
<p style="text-align: center;"><em><span style="font-style: normal;"> </span></em></p>
<p><em><span style="font-style: normal;">Grazie al mio Blog preferito di TANTO ed alle persone che alimentandolo sempre stimolano la curiosità di tutti noi studiosi, professionisti o semplici utenti che vivono questa rivoluzione geografica in cui il territorio lo fa da protagonista  <img src='http://www.claudioschifani.it/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  </span></em></p>
<hr />
<p><small>© admin for <a href="http://www.claudioschifani.it/blog">BloGis</a>, 2010. |
<a href="http://www.claudioschifani.it/blog/105.html">Permalink</a> |
<a href="http://www.claudioschifani.it/blog/105.html#comments">No comment</a>
Post tags: <a href="http://www.claudioschifani.it/blog/tag/condivisione" rel="tag">Condivisione</a>, <a href="http://www.claudioschifani.it/blog/tag/geoweb" rel="tag">GeoWeb</a>, <a href="http://www.claudioschifani.it/blog/tag/web-2-0" rel="tag">Web 2.0</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.claudioschifani.it/blog/105.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Virtual Machine per il GIS libero</title>
		<link>http://www.claudioschifani.it/blog/virtual-machine-per-il-gis-libero.html</link>
		<comments>http://www.claudioschifani.it/blog/virtual-machine-per-il-gis-libero.html#comments</comments>
		<pubDate>Wed, 09 Jun 2010 17:28:35 +0000</pubDate>
		<dc:creator>archcla77</dc:creator>
				<category><![CDATA[Presentazioni]]></category>

		<guid isPermaLink="false">http://www.claudioschifani.it/blog/?p=99</guid>
		<description><![CDATA[Condividi tweetmeme_source = 'archcla'; Sicuramente è noto il mondo delle &#8220;macchine virtuali&#8221; con cui possiamo avere disponibili nei nostri pc vari sistemi operativi che usiamo per test o semplicemente perchè alcuni software che non sono platform indipendent. L&#8217;anno scorso mi è capitato di utilizzare GISVM come macchina virtuale (un disco virtuale con Ubuntu ed una [...]]]></description>
			<content:encoded><![CDATA[<p><a type="box_count" name="fb_share" href="http://www.facebook.com/sharer.php">Condividi</a><br />
<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script><br />
<script type="text/javascript">
tweetmeme_source = 'archcla';
</script><br />
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></p>
<p>Sicuramente è noto il mondo delle &#8220;macchine virtuali&#8221; con cui possiamo avere disponibili nei nostri pc vari sistemi operativi che usiamo per test o semplicemente perchè alcuni software che non sono platform indipendent.<br />
L&#8217;anno scorso mi è capitato di utilizzare <a href="http://www.gisvm.com/download.html" target="_blank">GISVM</a> come macchina virtuale (un disco virtuale con Ubuntu ed una ricca suite di sw GIS open source). Grazie a GISVM ho potuto ovviare ad una serie di problemi di compatibilità e librerie tra alcuni sw GIS e Windows (soprattutto Vista) ed oggi questa macchina virtuale è giunta alla Beta 2. Personalmente mi sono trovato talmente bene che ancora oggi svolgo le lezioni GIS sul mio mac con la VM di GISVM in Ubuntu  <img src='http://www.claudioschifani.it/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>In questi giorni ho appreso che anche un&#8217;altra Virtual Machine con un Live DVD è alla terza release con alcune novità che mi hanno solleticato e che ben presto testerò sempre sul mio mac. Il suo nome è Arramagong, la cui distribuzione (come nel caso di GISVM) è libera e disponibile nel <a href="http://www.arramagong.com/Arramagong/home.html" target="_blank">web</a>. Tra le novità più interessanti di questa terza edizione, sicuramente le nuove release di <a href="http://geoserver.org/display/GEOS/Welcome" target="_blank">Geoserver</a> 2.0, <a href="http://www.gvsig.org/web/" target="_blank">gvSIG 1.9</a>, <a href="http://www.opengis.es/" target="_blank">Kosmo 2.0</a> e <a href="http://grass.itc.it/" target="_blank">GRASS 6.4</a> incluse nella VM.</p>
<p>E&#8217; chiaro che tutti questi software possono essere installati singolarmente sulle proprie macchine &#8211; nel sito si legge che è presente una cartella con i diversi installer &#8211; ma volete mettere la possibilità di disporre di strumenti desktop ed anche server in un solo colpo!<br />
Personalmente ritengo sia GISVM che Arramagong due VM GIS open source molto utili e versatili soprattutto per la didattica GIS e consiglio di provarle sulle proprie macchine  <img src='http://www.claudioschifani.it/blog/wp-includes/images/smilies/icon_cool.gif' alt='8-)' class='wp-smiley' /> </p>
<hr />
<p><small>© admin for <a href="http://www.claudioschifani.it/blog">BloGis</a>, 2010. |
<a href="http://www.claudioschifani.it/blog/virtual-machine-per-il-gis-libero.html">Permalink</a> |
<a href="http://www.claudioschifani.it/blog/virtual-machine-per-il-gis-libero.html#comments">6 comments</a>
Post tags: <br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.claudioschifani.it/blog/virtual-machine-per-il-gis-libero.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>OSM per la nostra creatività</title>
		<link>http://www.claudioschifani.it/blog/osm-per-la-nostra-creativita.html</link>
		<comments>http://www.claudioschifani.it/blog/osm-per-la-nostra-creativita.html#comments</comments>
		<pubDate>Wed, 03 Mar 2010 21:26:44 +0000</pubDate>
		<dc:creator>archcla77</dc:creator>
				<category><![CDATA[Dati territoriali liberi]]></category>
		<category><![CDATA[Informazioni Territoriali]]></category>
		<category><![CDATA[Free]]></category>
		<category><![CDATA[GeoDati]]></category>
		<category><![CDATA[OSM]]></category>

		<guid isPermaLink="false">http://www.claudioschifani.it/blog/?p=51</guid>
		<description><![CDATA[Dopo lo stimolo ricevuto tempo fa da un mio collega studioso e professionista , ho recuperato un link che avevo archiviato tra i miei &#8220;preferiti&#8221; di Safari senza dargli adeguato peso ed attenzione (mea culpa). Questo collegamento mi ha ricondotto al sito di una &#8221;società a responsabilità limitata &#8221; (GmbH) dal nome Geofabrik promossa da attivi [...]]]></description>
			<content:encoded><![CDATA[<p>Dopo lo stimolo ricevuto tempo fa da un mio collega studioso e professionista  <img src='http://www.claudioschifani.it/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' />  , ho recuperato un link che avevo archiviato tra i miei &#8220;preferiti&#8221; di Safari senza dargli adeguato peso ed attenzione (mea culpa). Questo collegamento mi ha ricondotto al sito di una &#8221;società a responsabilità limitata &#8221; (GmbH) dal nome <a href="http://www.geofabrik.de/">Geofabrik</a> promossa da attivi collaboratori al noto progetto <a href="http://www.openstreetmap.org/">OpenStreetMap</a>.</p>
<p><cite class="wp-caption" title="Tratto da Geofabrik.de">&#8220;At Geofabrik – German for &#8220;geo factory&#8221; –, we extract, select, and process free geodata for you. We create shape files, maps, map tiles and full-blown web mapping solutions. We provide advice and training to our customers dealing with OpenStreetMap and keep them up to date.&#8221; (www.geofabrik.de)</cite></p>
<p>Geofabrik, oltre ad offrire una serie di <a href="http://www.geofabrik.de/services/index.html">servizi</a> innovativi legati alle opportunità offerte da OSM come la consulenza, la formazione e lo sviluppo software, mette a disposizione dell&#8217;intera comunità un server dedicato al download dei <em>geodati</em> di OpenStreetMap (gestiti dinamicamente).</p>
<p>Dal <a href="http://download.geofabrik.de/osm/">server</a> è possibile accedere ai dati disponibili e scaricarli sia in formato grezzo che in formato shape file e, dunque, facilmente integrabili in ambiente gis (ad esempio per avere uno strato informativo del grafo stradale per analisi di rete); potreste anche &#8220;ritagliarne&#8221; una porzione di territorio per testare in locale la pubblicazione di servizi con Geoserver. Insomma il limite è la nostra e vostra creatività (o le vostre necessità di studio).</p>
<p>Probabilmente eravate già a conoscenza di Geofabrik, ma trattandosi di un soggetto che, tra varie attività, promuove anche i dati geografici ed il software  libero&#8230;ho ritenuto utile lasciarne traccia anche qui   <img src='http://www.claudioschifani.it/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<hr />
<p><small>© admin for <a href="http://www.claudioschifani.it/blog">BloGis</a>, 2010. |
<a href="http://www.claudioschifani.it/blog/osm-per-la-nostra-creativita.html">Permalink</a> |
<a href="http://www.claudioschifani.it/blog/osm-per-la-nostra-creativita.html#comments">No comment</a>
Post tags: <a href="http://www.claudioschifani.it/blog/tag/free" rel="tag">Free</a>, <a href="http://www.claudioschifani.it/blog/tag/geodati" rel="tag">GeoDati</a>, <a href="http://www.claudioschifani.it/blog/tag/osm" rel="tag">OSM</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.claudioschifani.it/blog/osm-per-la-nostra-creativita.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Esperienza didattica con gvSIG Open Source</title>
		<link>http://www.claudioschifani.it/blog/gvsig-e-didattica.html</link>
		<comments>http://www.claudioschifani.it/blog/gvsig-e-didattica.html#comments</comments>
		<pubDate>Thu, 25 Feb 2010 20:03:28 +0000</pubDate>
		<dc:creator>archcla77</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Strumenti GIS]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[gvSIG]]></category>
		<category><![CDATA[OGC]]></category>
		<category><![CDATA[WCS]]></category>
		<category><![CDATA[WFS]]></category>
		<category><![CDATA[WMS]]></category>

		<guid isPermaLink="false">http://www.claudioschifani.it/blog/?p=8</guid>
		<description><![CDATA[Dopo essermi documentato ed averlo testato per circa un anno, ho proposto ed introdotto gvSIG come applicazione open source desktop GIS (distribuito con licenza GNU GPL) nella didattica. Prima di esporvi le grandi potenzialità di questo software, è utile tracciarne le origini&#8230; gvSIG (Generalità Valenziana Sistema d&#8217;Informazione Geografica) è prima di tutto un progetto avviato nel 2002 [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: small;">Dopo essermi documentato ed averlo testato per circa un anno, ho proposto ed introdotto gvSIG come applicazione open source desktop GIS (distribuito con licenza GNU GPL) nella didattica. Prima di esporvi le grandi potenzialità di questo software, è utile tracciarne le origini&#8230;</span></p>
<p style="text-align: center;"><img class="aligncenter" style="vertical-align: baseline;" src="http://upload.wikimedia.org/wikipedia/commons/7/7e/Logo_gvSIG.png" alt="Logo" width="162" height="163" /></p>
<p><span style="font-size: small;">gvSIG (Generalità Valenziana Sistema d&#8217;Informazione Geografica) è prima di tutto un progetto avviato nel 2002 dalla Direzione Infrastrutture e Trasporti della Comunità Valenziana e finanziato con fondi europei (FEDER) &#8211; </span><em><span style="font-size: small;">una buona pratica su come &#8220;investire&#8221; e promuovere progetti sostenibili ed innovativi!<br />
<span style="font-style: normal;">La base di gvSIG è il linguaggio di programmazione java e tra i punti di forza vi è quello di essere platform indipendent (Win, MacOS e Linux), ma il vero valore aggiunto (come da buona tradizione open source) consiste nel suo continuo sviluppo e cura da parte dell&#8217;intera comunità sia di utenti che di sviluppatori! gvSIG è, infatti, supportato da una lista di utenti internazionale e nazionale in continua crescita e animata dalla condivisa voglia di contribuire al suo miglioramento.<br />
Tale contesto creativo ha consentito, all&#8217;intero progetto, di crescere e di mettere a disposizione alla comunità una suite di strumenti non soltanto desktop (gvSIG desktop è giunto alla release 1.9), ma anche mobile e mini, oltre ad una ricca disponibilità di estensioni per l&#8217;analisi topologica, analisi di rete, 3D, strumenti per il telerilevamento, per l&#8217;analisi di dati Lidar e Sextante (Sistema Extremeño di Analisi Territoriale) una cassetta degli attrezzi con oltre 250 algoritmi per analisi vector e raster ed in grado di costruire modelli e flussi di processamento sulla scia del model builder di ESRI.</span></span></em></p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.claudioschifani.it/Immagini/rischio_frana" alt="Screenshot tematizzazione rischio frana con gvSIG" width="400" height="197" /></p>
<p><em><span style="font-size: small;"><span style="font-style: normal;">Questa breve presentazione di gvSIG era doverosa oltre che necessaria per introdurre le sue potenzialità che lo hanno reso protagonista anche nella mia esperienza di didattica nel laboratorio GIS. L&#8217;occasione didattica è stata un buon banco di prova in cui ho potuto testarne le potenzialità dalla semplice restituzione spaziale dei dati sia vector che raster alle analisi più complesse per l&#8217;elaborazione di modelli digitali del terreno, operazioni di map algebra e analisi della visibilità, solo per citarne alcune.</span></span></em></p>
<p style="text-align: center;"><em><span style="font-size: small;"><span style="font-style: normal;"><img class="aligncenter" src="http://www.claudioschifani.it/Immagini/shaded_frane" alt="modello delle ombreggiature con Sextante" width="240" height="218" /></span></span></em></p>
<p><em><span style="font-size: small;"><span style="font-style: normal;">Un altro aspetto interessante di gvSIG è l&#8217;integrazione con gli standard OGC per la condivisione e l&#8217;interoperabilità delle informazioni territoriali sul web. L&#8217;uso di gvSIG come client desktop OGC consente, infatti, di effettuare chiamate WMS, WCS, WFS e WFS-T.</span></span></em></p>
<p><em><span style="font-size: small;"><span style="font-style: normal;">E&#8217; chiaro che oggi vi sono molti sw GIS open source performanti, basti citare GRASS, Kosmo, uDIG e Qgis, ma ciò che mi ha colpito di gvSIG abbinato a SEXTANTE è la semplicità di utilizzo (importante nella didattica per focalizzare l&#8217;attenzione sul problema da risolvere piuttosto che sul sw in se) unita alla possibilità, ad esempio, di scegliere l&#8217;algoritmo più idoneo in funzione della morfologia del territorio in analisi &#8211; es. Travis o Zevenbergen &amp; Thorne per le pendenze?</span></span></em></p>
<p><em><span style="font-size: small;"><span style="font-style: normal;">Non mi dilungo oltre anche perchè credo che sia più utile fornirvi le fonti web per provarlo e trarne da voi le potenzialità.</span></span></em></p>
<p><a href="http://www.gvsig.gva.es/eng/off/gvsig-desktop/">Link ufficiale del progetto</a><br />
<a href="https://gvsig.org/web/">Link del repository da cui scaricare gvSIG e le estensioni disponibili</a><br />
<a href="https://gvsig.org/lists/mailman/listinfo/gvsig_italian">Link della Lista Utenti in italiano (un altro valore aggiunto!) </a></p>
<hr />
<p><small>© admin for <a href="http://www.claudioschifani.it/blog">BloGis</a>, 2010. |
<a href="http://www.claudioschifani.it/blog/gvsig-e-didattica.html">Permalink</a> |
<a href="http://www.claudioschifani.it/blog/gvsig-e-didattica.html#comments">No comment</a>
Post tags: <a href="http://www.claudioschifani.it/blog/tag/3d" rel="tag">3D</a>, <a href="http://www.claudioschifani.it/blog/tag/gis" rel="tag">GIS</a>, <a href="http://www.claudioschifani.it/blog/tag/gvsig" rel="tag">gvSIG</a>, <a href="http://www.claudioschifani.it/blog/tag/ogc" rel="tag">OGC</a>, <a href="http://www.claudioschifani.it/blog/tag/wcs" rel="tag">WCS</a>, <a href="http://www.claudioschifani.it/blog/tag/wfs" rel="tag">WFS</a>, <a href="http://www.claudioschifani.it/blog/tag/wms" rel="tag">WMS</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.claudioschifani.it/blog/gvsig-e-didattica.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

