• Passa al contenuto principale
  • Skip to secondary menu
  • Passa alla barra laterale primaria
logo openoikos

openoikos

Soluzioni CAD low cost

banner nanocad italia
  • Home
  • Chi sono e di cosa parlo
  • Blog
    • NANOCAD free
    • NANOCAD
    • GIS
    • Grafica
    • Altri software
    • Programmazione
    • Android
    • Hardware
    • Web

Blog

Tutorial QGIS 4: i Sistemi di Riferimento più usati in Italia

19 commenti

sistemi riferimento italia

Questo post è il quarto tutorial QGIS della serie.

Dopo aver definito nei precedenti tutorial cosa sono i Sistemi di Riferimento in ambito GIS vediamo quali sono quelli più usati in Italia.

Ancora prima della tecnologia digitale la cartografia prodotta da vari enti si riferiva principalmente a due Sistemi di Riferimento:
il sistema Roma40 Gauss-Boaga
il sistema ED50 UTM

Il sistema Roma40 Gauss-Boaga si basa sul datum Roma1940 con riferimento all’ellissoide Internazionale di Hayford (1924) orientato a Monte Mario.
E’ rappresentato attraverso la proiezione inversa di Mercatore (o conforme di Gauss).

Il territorio italiano risulta suddiviso in due fusi, ad ovest ed est del meridiano di Monte Mario (12°) e con i meridiani centrali situati a 9° e 15°.
I fusi hanno una ampiezza di 6° e 30’ per cui è presente una zona di sovrapposizione.

Le coordinate sono espresse in metri.
Per la latitudine (dimensione Y, northing) il riferimento è l’equatore.
Per la longitudine (dimensione X, easting) il riferimento è il meridiano centrale di ogni fuso ma per evitare di avere coordinate con valori numerici negativi e, si è adottata la soluzione di assegnare una falsa X di 1.500.000 m per il meridiano Ovest e e di 2.520.000 m per il meridiano Est.

coordinate gauss-boaga

Per il nome Gauss è riferito alla proiezione e Boaga è il cognome del geodeta dell’IGM che formalizzò il sistema.
Utilizzato nella produzione cartografica IGM fino alla fine degli anni ’80, è ancora in uso in molta Cartografia Tecnica Regionale.

Il sistema ED50 UTM si basa su European Datum 1950 con riferimento all’ellissoide Internazionale di Hayford (1924) orientato a Potsdam in Germania.
Il sistema di proiezione utilizzato è l’UTM (Universal Transverse Mercator) che si basa, come il Gauss-Boaga, sulla proiezione inversa di Mercatore.
Nell’UTM la superficie terrestre viene suddivisa in 60 fusi di 6° di ampiezza longitudinale.

Ciascun fuso viene proiettato indipendentemente e ha un meridiano centrale.
Ogni fuso è suddiviso a sua volta in 20 fasce di 8° di latitudine.
Le intersezioni tra fusi e fasce individuano le zone.

Il territorio italiano è all’interno dei fusi 32 e 33 e per una piccola parte nel fuso 34 (area più orientale della Puglia).

UTM

Nel sistema UTM, che a differenza del Gauss-Boaga è concepito per un uso internazionale, al meridiano centrale di ogni fuso viene assegnata una falsa coordinata easting con valore 500.000, mentre la coordinata northing è definita dalla distanza rispetto all’equatore.

coordinate UTM

Perciò è sempre necessario comunicare oltre alle coordinate il numero del fuso a cui si fa riferimento, senza il quale risulta impossibile la localizzazione.
Questo sistema è stato introdotto al fine di uniformare la cartografia europea ed è utilizzato sia nella più recente produzione cartografica dell’IGM, sia per la cartografia regionale.

Con l’introduzione del sistema di rilevamento GPS si è reso necessario l’utilizzo di un datum non più locale ma globale ed è stato definito il datum WGS84 (World Geodetic System 1984).

Il sistema WGS84 UTM si basa su questo datum a configurazione geocentrica associando a questo il sistema di proiezione UTM.
Si ha quindi la stessa suddivisione in fusi con l’adozione delle medesime convenzioni riguardo all’assegnazione delle coordinate.

Questo sistema è stato progressivamente inserito anche nella più recente produzione cartografica di alcune Regioni ed anche l’IGM lo ha implementato attraverso la configurazione europea ETRS89 che è praticamente analoga al WGS84.

Il sistema WGS84 UTM non va confuso con quello WGS84 geografico, che non è un sistema proiettato ma che si basa su valori di latitudine e di longitudine in gradi angolari.

Più recentemente, con il Decreto 10 novembre 2011 Adozione del Sistema di riferimento geodetico nazionale, è stato introdotto il nuovo sistema ETRF 2000.
L’introduzione di questo nuovo sistema di riferimento, motivato dall’aggiornamento degli scostamenti dovuti allo spostamento delle placche tettoniche, non comporta grandi differenze con altri sistemi alle scale di lavoro tipiche dei GIS.

I massimi scostamenti rilevati tra ETRF 2000, ETRS89 e WGS84 risultano infatti non superiori a 40 centimetri.
ETRF 2000 è già presente nel registro EPSG come RDN2008 (RDN sta per Rete Dinamica Nazionale).

Nella tabella sotto vengono riportati tutti i codici EPSG dei sistemi fino a qui citati.

codici EPSG in Italia

La riproiezione da un sistema di riferimento a un altro viene definita conversione quando avviene nell’ambito dello stesso datum, oppure trasformazione quando avviene tra datum diversi.
La conversione avviene automaticamente senza errori mentre la trasformazione è in genere un’operazione più approssimativa.

QGIS effettua la cosiddetta “riproiezione al volo”, cioè riproietta automaticamente (a condizione che questo sia correttamente georeferenziato) uno shapefile (o altre entità) al sistema di riferimento del progetto, ma è un’operazione di semplice visualizzazione, che non converte o trasforma l’oggetto che viene inserito in mappa.

Per convertire o trasformare un’entità da un sistema di riferimento a un altro esistono appositi software (ad esempio CartLab, Verto, Traspunto) oppure è una funzionalità che molte piattaforme GIS hanno (compreso QGIS) ma non sempre si ottengono buoni risultati.

Per ottenere una maggiore precisione è necessario l’uso dei grigliati prodotti dall’IGM, disponibili in vari formati, ma che non sono gratuiti.

Il Geoportale Nazionale, in recepimento della Direttiva INSPIRE, mette a disposizione un servizio gratuito di trasformazione delle coordinate (CTS, Coordinate Trasformation Service) che permette di trasformare entità vettoriali e raster tra diversi sistemi di riferimento.

geoportale nazionale
Questo servizio utilizza i grigliati IGM ed attualmente è lo strumento che mi sento di consigliare.

Altre letture consigliate:

AA.VV., GIS Open Source, Grass Gis, Quantum Gis e SpatiaLite. Elementi di software libero applicato al territorio

V. Noti, GIS open source per geologia e ambiente. Analisi e gestione dei dati territoriali e ambientali con QGIS

Tutorial QGIS 3: la rappresentazione della Terra ed i Sistemi di Riferimento

5 commenti

proiezioni geografiche

Questo post è il terzo tutorial QGIS della serie.

proiezione cartograficaPrima di iniziare a lavorare con QGIS c’è una questione fondamentale e di una certa complessità che riguarda il GIS in generale ed ancora prima la cartografia: la corretta rappresentazione della Terra, o meglio della sua superficie su un piano.
La carta è sempre una rappresentazione imperfetta della superficie terrestre perché i due piani non coincidono.

La Terra ha una forma approssimativamente sferica con una superficie curva in tutte le direzioni.
Riportare una tale superficie su un piano non è possibile senza deformarla e ciò vale sia che lo si faccia in forma analogica su carta, sia che si faccia in forma digitale sullo schermo di un computer.

Il nostro pianeta poi ha una forma irregolare, non è una sfera ma neanche uno sferoide perfetto perché ha una superficie con rilievi e avvallamenti.
La sua forma reale perciò non è rappresentabile matematicamente come avviene per le figure geometriche.
Per questo motivo si sono definite delle superfici teoriche di riferimento che meglio approssimano la sua forma.

La prima di queste è il geoide che semplificando può essere definita la superficie che coincide con il livello del mare riportata anche nella parte delle terre emerse.
E’ la superficie di riferimento attraverso cui si definisce l’altitudine.
Tuttavia anche il geoide non è una forma matematicamente definita perché le variazioni di gravità e di densità delle varie zone della terra determinano uno sferoide non regolare.

Per supplire a questo difetto è necessario introdurre una seconda superficie di riferimento che corrisponda a un solido geometricamente ben definito: un ellissoide di rotazione, cioè uno sferoide schiacciato ai poli, con una superficie approssimata al geoide con uno scostamento massimo di circa 100 metri e che finalmente permette una formulazione e la proiezione matematica su un piano.

Nella fig. 1 e 2 amplificando le differenze vengono rappresentate le tre superfici.

geoide e ellissoide
fig. 1 – superficie terrestre e superfici di riferimento (modello)

 

geoide e ellissoide
fig. 2 – rappresentazione geoide e ellissoide (modello)

Nel corso del tempo sono stati definiti più ellissoidi e la loro scelta dipende dal miglior grado di approssimazione rispetto alla superficie che si vuole rappresentare.
Per fare questo spesso si sposta l’ellissoide in modo tale da minimizzare le differenze con il geoide in una determinata zona geografica.
La scelta dell’ellissoide di riferimento e il suo orientamento preferenziale rispetto al geoide costituisce quello che viene definito il datum. 

Nel caso in cui l’ellissoide sia stato translato rispetto al centro di massa della Terra ed orientato a favore di una determinata regione si parla di datum locali (ad esempio i datum ED 1950 o Roma 1940); se il suo centro invece corrisponde a quello della Terra è denominato datum geocentrico o globale (ad esempio WGS 84, che è il datum su cui poggia il rilevamento GPS).

datum globale e datum locale
fig. 3 – Datum globale e datum locale (modello)

Nella fig. 3, sempre amplificando le differenze vengono rappresentati i due tipi di datum.

Una volta definita la superficie del solido di riferimento e la sua posizione rispetto alla Terra la rappresentazione cartografica su un piano si ottiene per proiezione.
Si tratta di un procedimento che ha una formulazione matematica attraverso algoritmi  ma che può essere anche “visto” geometricamente.

Si tratta di proiettare l’ellissoide su un piano tangente alla zona che si vuole meglio rappresentare, o ancora meglio, al fine di ridurre le deformazioni, proiettarlo su superfici curve srotolabili come quelle di un cilindro o di un cono.

proiezioni cartografiche
fig. 4 – proiezione conica, cilindrica e su piano tangente.

Nella fig.4 vengono riportate tre diverse tipologie di proiezione. 

In ogni caso la distorsione del risultato cartografico è inevitabile perché trasferire su un piano una superficie sferoidale porta sempre a deformazioni che sono maggiori quanto più grande è l’area da rappresentare.
Per limitare il fenomeno spesso si introducono delle convenzioni come quella più adottata di proiettare l’ellissoide facendolo a spicchi, ottenendo in proiezione dei fusi. 

La proiezione convenzionale più diffusa è la conforme di Gauss (o cilindrica trasversa di Mercatore) ed è quella su cui si basa molta cartografia prodotta in Italia nei sistemi UTM o Gauss Boaga.

Nella fig. 5 si può vedere la proiezione conforme di Gauss e nella fig. 6 e 7 la sua suddivisione in fusi secondo il sistema UTM.

proiezione conforme di Gauss
fig. 5 – proiezione conforme di Gauss

 

proiezione dei fusi nel sistema UTM
fig. 6 – proiezione dei fusi nel sistema UTM
fusi e fascie nel sistema UTM
fig. 7 – fusi e fascie nel sistema UTM

Proiettando per fusi (nel sistema UTM ognuno di questi rappresenta 6° di longitudine) si può notare che la deformazione aumenta allontanandosi dal meridiano centrale.
Per questo il cilindro viene ruotato in modo da riproiettare l’ellissoide a partire dal meridiano centrale della zona che si vuole cartografare. 

Una volta rappresentata la carta si tratta poi di assegnare un sistema di coordinate che definisca il posizionamento geografico degli oggetti.
In ambito GIS questi sistemi di riferimento vengono denominati CRS (Coordinate Reference System) oppure SRS (Spatial Reference System) o più semplicemente SR, che sono classificabili in due categorie fondamentali:

  1. SR geografici (o non proiettati), nei quali ogni punto della superficie terrestre viene localizzato sulla base dei valori angolari di latitudine e di longitudine;
  2. SR proiettati, nei quali la posizione di ogni punto della superficie terrestre è il risultato di una proiezione che ha per risultato un sistema cartesiano bidimensionale in cui ogni punto ha una coppia di coordinate X,Y 

Un Sistema di Riferimento è comunque il risultato di tutti i fattori che sono stati descritti ed è per questo motivo che ne esistono moltissimi, soprattutto in funzione delle esigenze locali ma anche della diversità di datum, proiezioni, convenzioni, sistemi di coordinate, evoluzioni temporali, ecc. 

Un utente GIS alle prime armi rimane disorientato ed ha difficolltà anche a distinguere l’uno dall’altro sulla base dei nomi.
Per fortuna ci viene in soccorso il registro EPSG (European Petroleum Survey Group), gestito da un’organizzazione internazionale, che assegna ad ogni sistema archiviato un codice numerico univoco.
Nel database dei Sistemi di Riferimento di QGIS è consigliabile fare riferimento a tale registro per non fare confusione. 

C’è poi da considerare che operando nel nostro contesto geografico ci sono solo alcuni Sistemi di Riferimento che in qualche modo, sulla base della cartografia analogica e digitale finora prodotta, costituiscono uno standard.

Dei sistemi cartografici (e dei relativi codici EPSG) adottati in Italia parleremo nel prossimo tutorial QGIS, scendendo più nello specifico ed affrontando anche il problema della loro conversione e trasformazione.

Altre letture consigliate:

AA.VV., GIS Open Source, Grass Gis, Quantum Gis e SpatiaLite. Elementi di software libero applicato al territorio

V. Noti, GIS open source per geologia e ambiente. Analisi e gestione dei dati territoriali e ambientali con QGIS

Tutorial QGIS 2: i formati dell’informazione geografica

7 commenti

formati qgis

Questo post è il secondo tutorial QGIS della serie.

Nel precedente tutorial abbiamo visto come le piattaforme GIS nascono dall’integrazione di diversi tipi di software per cui gestiscono informazione geografica di diversi formati.

Queste informazioni geografiche sono gestite dal GIS in modo sistematico e possono essere di due tipi:
1) informazioni spaziali;
2) informazioni non spaziali.

Le informazioni spaziali a loro volta possono essere suddivise in base a due modelli:
1.1) modello vettoriale (punti, linee, poligoni);
1.2) modello raster (griglia di celle).

Qualsiasi utente di computer grafica conosce già la distinzione tra formato vettoriale e formato immagine (raster) e tra software che gestiscono il vettoriale (Adobe Illustrator, Inkscape, tutti i CAD) e software che gestiscono immagini raster (Adobe Photoshop, Gimp, ecc.).

I file che contengono informazioni spaziali hanno assunto diversi formati e l’evoluzione del GIS, come per tutti i software, è stata condizionata da alcuni formati proprietari adottati dai produttori di software che hanno avuto maggiore successo.

I formati vettoriali proposti da ESRI (shapefile, coverage, personal geodatabase) sono quelli che più di tutti hanno caratterizzato il software GIS.
Lo shapefile in particolare è ancora fondamentale, anche per la notevole quantità di dati geografici che hanno assunto questo formato. Soffermiamoci su esso.
Che cos’è uno shapefile?
Un formato di archiviazione di dati vettoriali capace di registrare localizzazione, forma ed attributi di entità spaziali.

tutorial qgis
Uno shapefile è composto da più file relazionati e contiene una sola classe di oggetti, cioè punti, linee o poligoni.
Tutti i file che compongono lo shapefile devono avere lo stesso nome e ciò che li differenzia è l’estensione (i caratteri dopo il punto). I file devono essere almeno tre:

nomefile.shp: è il file che contiene le informazioni geometriche;
nomefile.dbf: è il file che contiene l’informazione tabellare (dati attributo);
nomefile.shx: è il file indice, che permette di raccordare geometria e informazione tabellare.

Il set può inoltre contenere altri file:
nomefile.prj: registra il Sistema di Riferimento geografico;
nomefile.sbn (o anche fbn, fbx): registrano indici spaziali;
nomefile.ain (o aih): registrano indici di attributo;
nomefile.xml: registra i metadati.

tutorial qgis shapefile
Quando si lavora con gli shapefile se si vuole spostare/copiare un dataset da una cartella a un’altra occorre ricordarsi di selezionare tutti i file, così come per rinominarli o qualsiasi altra operazione.
Con la versione 2.0 (e successive) di QGIS è stato introdotto QGIS Browser (simile ad ArcExplorer di ArcGis) per facilitare la gestione dei file.

Sugli altri formati vettoriali ESRI torneremo in seguito ed una elencazione dettagliata di altri formati vettoriali (TAB MapInfo, formati CAD, ecc.) non è il caso di farla, almeno per ora.
Più recentemente attraverso l’uso del linguaggio XML, già usato per l’informazione sui metadati (dati sui dati), sono nati altri formati come GML e KML (formato Google) che hanno inserito nuove possibilità di implementazione.

Una cosa importante da dire è che QGIS supporta tutti i formati della libreria GDAL/OGR che coprono un ampio spettro di formati raster e vettoriali.

Tra i formati immagine (raster) i più usati sono TIF e JPG, che possono essere da soli o come parte di un dataset.
Un dataset TIF ad esempio può essere composto dai seguenti file:
nomefile.tif: file immagine
nomefile.tfw: file di georeferenziazione
nomefile.aux (o .rrd): informazioni che velocizzano la rappresentazione (pyramids)
nomefile.xml: metadati

tutorial qgis dataset tif

Ci sono poi altri formati raster come Geotiff, JPG2000 e ECW che incorporano all’interno di un unico file anche le informazioni necessarie per la georeferenziazione.

Altri formati raster degni di nota sono i GRID che nel caso degli ASCII GRID incorporano in un unico file .grd informazioni grafiche e di georeferenziazione.

Gli ESRI GRID invece sono dei dataset piuttosto complessi organizzati in due directory:
– una directory con lo stesso nome della GRID contenente un numero variabile di file con estensione .adf (Arc Data File);
– la directory INFO, che è condivisa con le altre GRID o coverage che sono collocate allo stesso livello della struttura delle directory.

tutorial qgis esri grid

Le informazioni non spaziali invece sono quelle che registrano semplici attributi, senza geometria né in termini di forma né di localizzazione. Sono file riconducibili ai formati tipici di database, fogli di calcolo e testi.
Ad esempio i dati rilevati e pubblicati dall’ISTAT, che possono essere messi in relazione agli ambiti geografici a cui si riferiscono solo attraverso un’unione ad altri file contenenti informazioni spaziali.

Una questione di grande importanza e attualità su cui c’è un fervente dibattito è quella della disponibilità delle informazioni geografiche all’interno della più ampia problematica degli open data unitamente ai problemi di standardizzazione e di interoperabilità su cui ci sono direttive di organismi internazionali ancora non pienamente applicate.
Sono temi interessanti ma di una certa complessità su cui torneremo in seguito con altri tutorial.

Altre letture consigliate:

AA.VV., GIS Open Source, Grass Gis, Quantum Gis e SpatiaLite. Elementi di software libero applicato al territorio

V. Noti, GIS open source per geologia e ambiente. Analisi e gestione dei dati territoriali e ambientali con QGIS

Imparare il 3D con SketchUp: toolbars e comandi basilari

Lascia un commento

sketchup tutorial

Benvenuti al nostro appuntamento con i tutorials di 3D con SketchUp.

Questa volta ci occuperemo di collocare le barre degli strumenti che ci servono realmente e dei comandi basilari per cominciare a gestire la visualizzazione dell’area di lavoro.

Appartengo a quella brutta categoria di disegnatori che è ancora testardamente convinta che un’area di lavoro libera da toolbars inutili sia meglio!
Non sono le toolbars che impressionano i vostri clienti ma quanto riuscite a disegnare realmente.

Chi ha installato recentemente il programma avrà notato che esso propone una serie di templates (modelli) con dei presets (impostazioni) relativi alla vista e alle unità di misura.
I meno esperti si saranno ritrovati con la barra “Per cominciare” che serve veramente a poco e con una scala in pollici.

Per ottenere una bella area di lavoro, potente e senza troppi comandi strani, dovete andare subito nel menù “Visualizza” e nel sotto menù “Barre degli strumenti” e da qui scegliere, in ordine alfabetico: “Google”; “Layer”; “Set grande di strumenti”; “Standard”; “Stili”; “Viste”. Ecco tutto qua!

toolbars sketchup

Con queste sole 6 toolbars avrete tanto spazio sull’area di lavoro e potete gestire un modello molto complesso senza problemi.

Prendere confidenza con questi comandi risulta particolarmente vantaggioso quando si è alle prese con modelli molto estesi e composti da molti gruppi nidificati.
Se si ha la necessità di stampare un disegno nelle sue viste principali, piante, profili, prospetti, ecc. saper scegliere la vista giusta può fare la differenza.

Si tenga presente che i pulsanti dei comandi non compaiono tutti sulla stessa barra pur agendo sull’area di lavoro.
SketchUp offre due diversi tipi di comando per gestire la visualizzazione dell’area di lavoro:

– STATICI, che richiedono per la loro attivazione solo un click e offrono una vista standardizzata del disegno (ad es. la vista dall’alto, il prospetto, ecc.).
Sono contenuti nella barra degli strumenti Views (Viste).

– DINAMICI, che dipendono dagli spostamenti fatti col mouse, o con periferiche analoghe, dall’utente.
Attraverso di essi è possibile sia gestire completamente lo sviluppo del disegno in maniera tridimensionale, sia esplorare il disegno stesso.
Le toolbars Camera (Telecamera) e Walkthrough (Attraversare) contengono i comandi dinamico-esplorativi.
Nella tabella sotto ho realizzato un breve prospetto riassuntivo di tutte e tre le toolbars circa l’uso e la funzione dei relativi comandi.

tabella comandi sketchup

Prossimamente torneremo a parlare nuovamente, e in maniera più approfondita, di questi comandi e degli stratagemmi per il loro totale impiego.

Conviene spendere ancora qualche parola circa la terna di assi cartesiani ortogonali X, Y, Z.
Come si può notare, nella figura sotto è disegnata una riproduzione 3D dell’icona dei comandi di Views e cioè una casetta.

assi sketchup

Il posizionamento di un suo punto con l’origine degli assi permette di esaminare la loro disposizione particolare in base al comando digitato.

Altre letture utili:
SketchUp: modellazione 3D e geomodellazione
Perché SketchUp ?: Manuale pratico per realizzare progetti esecutivi con SketchUp 2014
Progettazione virtuale con SketchUp

Geoportale in Comune, i dati territoriali che mancano

1 commento

geoportale comune

Recentemente il Geoportale Nazionale con il progetto Geoportale in Comune ha rivolto attenzione anche ai Comuni.
La logica è quella di una maggiore integrazione e di una più efficace interoperabilità tra tutti gli enti in possesso di dati territoriali.

Cos’è il Geoportale Nazionale?

Chiunque faccia uso di tecnologie GIS ha bisogno di reperire i dati geografici che gli servono e questi devono essere affidabili.

logo INSPIREIl Geoportale Nazionale sui dati italiani in questo senso costituisce il riferimento principale.

Esso è nato su iniziativa del Ministero dell’Ambiente in attuazione della Direttiva europea INSPIRE, entrata in vigore nel 2007 e che avrà piena applicazione nel 2021.

La Direttiva INSPIRE si ispira a 5 principi:

1. Gestione più efficiente – i dati vanno raccolti una sola volta e gestiti laddove ciò può essere fatto in maniera più efficiente;

2. Interoperabilità – deve essere possibile combinare i dati provenienti da differenti fonti e condividerli tra più utenti ed applicazioni;

3. Condivisione – deve essere possibile la condivisione di informazioni raccolte dai diversi livelli di governo;

4. Abbondanza e fruibilità – l’informazione geografica necessaria per il buon governo deve esistere ed essere realmente accessibile a condizioni che non ne limitino il possibile uso;

5. Reperibilità ed accesso – deve essere facile individuare quale informazione geografica è disponibile, valutarne l’utilità per i propri scopi e le condizioni secondo cui è possibile ottenerla ed usarla.

Servizi di rete

Attraverso i servizi di rete WMS per la consultazione e WFS (dati vettoriali) e WCS (dati raster) per lo scaricamento è possibile ottenere geodati di un ampio catalogo tra cui ortofoto, la cartografia IGM, quella delle Regioni, e i dati territoriali tematici prodotti da altri enti.

geodati raster e vettoriali

Il catalogo dei metadati è consultabile anche restringendo il campo a una precisa zona geografica.
Se si fa la ricerca su un singolo Comune, per esempio, si ottiene l’elenco di tutti geodati disponibili e ce ne sono a centinaia.

Questo consente di realizzare analisi territoriali anche complesse di qualsiasi zona italiana,  utilizzando strati geografici tematici sovrapponibili ai temi cartografici di base.

geoportale area Roma

Esperienze sui dati comunali

Dal momento che anche i Comuni ed altri enti producono dati e carte territoriali nella loro attività amministrativa e di pianificazione, il passo successivo è ampliare la base dei dati a ciò che proviene da questi enti, ma non è un’operazione facile.

Per questo nel 2016 è partito un progetto pilota su un’area che presenta una certa complessità come quella dell’Area Metropolitana di Roma.
Si tratta di un’area con più di 4 milioni di abitanti, che coinvolge 121 Comuni di dimensioni e caratteristiche diverse (si va dalla montagna, alla collina, al mare), 2 Autorità di Bacino e 86 tra parchi ed aree protette.

La scelta di operare su scala “pilota” è nata dalla volontà di fornire, nel breve periodo, una dimostrazione applicativa di un processo di interoperabilità e interscambio dati tra amministrazione locale e amministrazione centrale.

area metro venezia
Area metropolitana di Venezia

Nel 2017, in continuità con il lavoro avviato il progetto “Geoportale in Comune” è stato riproposto sulla Città Metropolitana di Venezia (44 Comuni).

Al momento non è noto come si procederà per il coinvolgimento degli oltre 8.000 Comuni presenti sul territorio nazionale.

Certamente è questo l’obiettivo finale, un obiettivo ambizioso.

Nelle spire del Python (lezione 6): tuple, liste e dizionari

2 commenti

tutorial python 6

tutorial python 6

Sesto incontro con Python, ancora non ho ricevuto feedback, quindi proseguiamo con il linguaggio.

Vediamo meglio come lavorare con gli iterabili, ovvero tuple, liste e dizionari.
In altri linguaggi sarebbero chiamati array, scalar, hashtables e simili nomi.
Si tratta in pratica di variabili che contengono sequenze di dati.
Ma in Python ogni cosa è un oggetto, come vedremo presto, per cui ha dei metodi, ovvero funzioni dell’oggetto, specifiche, per la manipolazione dell’oggetto stesso.
Abbiamo tre tipi di oggetti, le tuple e le liste che sono semplici liste di elementi assortiti e i dizionari che invece sono coppie chiave-valore.
Vediamole in dettaglio.

TUPLE
Una tupla è una sequenza di elementi assortiti. Si riconosce perché gli elementi sono racchiusi, alla creazione o inizializzazione della tupla, tra parentesi tonde.

>>> mia_tupla = (1,’ciccio’, 3.14, “Giovanni dalle bande nere”)

Come vedete possono essere eterogenee, ovvero contenere qualsiasi tipo di elemento. Un esempio di tupla piu’ sensato è il seguente:

>>> settimana = (“Lunedì”, “Martedì”, “Mercoledì”, “Giovedì”, “Venerdì”, “Sabato”, “Domenica”)

Possiamo quindi selezionare un giorno della settimana con

>>> settimana[indice]

dove indice è un valore compreso tra 0 e 6.

Ricordate sempre che gli indici iniziano con 0 e hanno come valore massimo il numero di elementi meno 1.

Per esempio per stampare tutti gli elementi potremmo scrivere
>>> settimana = (“Lunedì”, “Martedì”, “Mercoledì”, “Giovedì”, “Venerdì”, “Sabato”, “Domenica”)
>>> for a in range(0, len(settimana)):
>>> print settimana[a]

e otterremo come output
Lunedì
Martedì
Mercoledì
Giovedì
Venerdì
Sabato
Domenicapy61

Bene, manca un particolare importante: le tuple sono delle costanti. Una volta assegnate non si possono modificare. Né aggiungere né sottrarre elementi.
Certo possiamo tranquillamente scrivere

>>> settimana = (‘Lun’, ‘Mar’, ‘Mer’, ‘Gio’, ‘Ven’, ‘Sab’, ‘Dom’)

ma in realtà avremo creato un altro oggetto con la stessa etichetta.

A cosa servono le tuple?

Le tuple sono più veloci delle liste. Se state definendo un gruppo costante di valori e l’unica cosa che intendete farci è iterare al suo interno, usate una tupla invece di una lista.
Potete rendere più sicuro il vostro codice “proteggendo dalla scrittura” i dati che non devono essere modificati.

Le tuple possono essere convertite in liste e viceversa. La funzione built-in tuple prende una lista e ritorna una tupla con gli stessi elementi, mentre la funzione list prende una tupla e ritorna una lista. In effetti, tuple congela una lista e list scongela una tupla.

Possiamo controllare se un elemento è presente in una tupla:
>>> ‘Sabato’ in settimana
True

mentre
>>> ‘Giovanni’ in settimana
False

Inoltre possiamo controllare quale sia l’indice dell’elemento
>>> settimana[‘sabato’] 5

E poi possiamo estrarre un certo numero di elementi con lo slicing
>>> settimana[2:4]
(‘Mercoled\xc3\xac’, ‘Gioved\xc3\xac’)

\xc3\xac è la rappresentazione UTF-8 della lettera accentata.
UTF-8 è una codifica che ci permette di descrivere qualsiasi carattere, inclusi quelli di lingue tipo cinese o arabo.

In pratica i due valori all’interno delle parentesi quadre, indicano l’inizio e la fine delle fette. Qui dobbiamo aprire una parentesi:

Se usiamo un indice averemo una situazione tipo:
‘a’,’b’,’c’,’d’,’e’
0 1 2 3 4

Invece con lo slicing
‘a’,’b’,’c’,’d’,’e’
0 1 2 3 4 5

Per cui posto che abbiamo la tupla
>>> miatupla = (‘a’,’b’,’c’,’d’,’e’)
>>> miatupla[2:4]
(‘c’, ‘d’)

Questa cosa funziona anche con le stringhe come avremo occasione di vedere in seguito.

LISTE
Le liste sono simili alle tuple, ma sono modificabili e si inizializzano con le parentesi quadre.

>>> mia_lista = [1,2,3,4,5,6,7]python liste
>>> mia_lista
[1, 2, 3, 4, 5, 6, 7]

Ma possiamo aggiungere elementi alla lista
>>> mia_lista.append(8)
>>> mia_lista
[1, 2, 3, 4, 5, 6, 7,8]

>>> mia_lista.insert(2,10)
>>> mia_lista
[1, 2, 10, 3, 4, 5, 6, 7, 8]

>>> mia_lista.extend([11,12])
>>> mia_lista
[1, 2, 10, 3, 4, 5, 6, 7, 8, 11, 12]

Possiamo fare ricerche
>>> mia_lista.index(10)
2

E possiamo anche fare cose tipo:
>>> mia_lista[mia_lista.index(10)]
10

che ci conferma che index ha tornato il valore corretto.

Possiamo anche togliere elementi

>>> mia_lista.remove(10)
>>> mia_lista
[1, 2, 3, 4, 5, 6, 7, 8, 11, 12]

oppure
>>> mia_lista.pop()
12
>>> mia_lista
[1, 2, 3, 4, 5, 6, 7, 8, 11]

Ma non abbiamo finito, perché possiamo anche fare cose tipo
>>> mia_lista = mia_lista + [‘a’,’b’]
>>> mia_lista
[1, 2, 3, 4, 5, 6, 7, 8, 11, ‘a’, ‘b’]

>>> mia_lista += [‘c’]
[1, 2, 3, 4, 5, 6, 7, 8, 11, ‘a’, ‘b’, ‘c’]

>>> altra_lista = [1,2,3] * 3
>>> altra_lista
[1, 2, 3, 1, 2, 3, 1, 2, 3]

Inoltre una lista può avere come elementi altre liste, tuple e dizionari
>>> nuova_lista = [1,2,3,’a’,[‘AAA’, ‘BBB’], (1,2,3)]
>>> nuova_lista
[1, 2, 3, ‘a’, [‘AAA’, ‘BBB’], (1, 2, 3)]
>>> nuova_lista[2:5]
[3, ‘a’, [‘AAA’, ‘BBB’]] liste python

DIZIONARI
Un dizionario e’ una specie di lista dove l’indice non è il numero (progressivo) assegnato dalla lista stessa, in base all’ordine di apparizione e che è mutabile ma bensì un valore che decidiamo noi (un numero, una stringa etc.) e quindi immutabile.

Per contro una lista torna sempre nello stesso ordine (quello in cui sono ordinati gli elementi in base all’indice) mentre un dizionario può tornare ogni volta gli elementi in maniera differente. Se eseguiamo un
>>> mio_dizio = {1: ‘AAA’, ‘2’: ‘BBB’, ‘3’: ‘CCC’, 4: ‘DDD’}

e poi invochiamo diverse volte
>>> mio_dizio

non è garantito che tutte le volte torni lo stesso ordine, sopratutto se nel mezzo ho fatto operazioni (aggiunto, rimosso o modificato elementi).
Esiste una versione speciale l’OrderedDict che torna sempre nello stesso ordine, come una lista, ma si tratta di un caso differente, di cui parleremo in futuro.

Vediamo ora quali siano i metodi propri di un dizionario.
>>> mio_dizio = {“server”:”mpilgrim”, “database”:”master”}
>>> mio_dizio
{‘server’: ‘mpilgrim’, ‘database’: ‘master’}
>>> mio_dizio[“server”]
‘mpilgrim’
>>> mio_dizio[“database”]
‘master’
>>> mio_dizio[“mpilgrim”]
Traceback (innermost last):
File “<interactive input>”, line 1, in ?
KeyError: mpilgrim
python dizionario

Abbiamo definito un dizionario assegnandogli delle coppie chiave:valore, abbiamo fatto stampare il contenuto, abbiamo fatto stampare i valori delle due chiavi, ma quando abbiamo cercato di passare come chiave un contenuto abbiamo ricevuto un errore.

Vediamo ora come modificare un dizionario
>>> mio_dizio
{‘server’: ‘mpilgrim’, ‘database’: ‘master’}
>>> mio_dizio[“database”] = “pubs”
>>> mio_dizio
{‘server’: ‘mpilgrim’, ‘database’: ‘pubs’}
>>> mio_dizio[“uid”] = “sa”
>>> mio_dizio
{‘server’: ‘mpilgrim’, ‘uid’: ‘sa’, ‘database’: ‘pubs’}
dizionari python

In pratica abbiamo aggiunto una nuova chiave (uid) assegnandogli un valore con la semplice istruzione [‘uid’] = ‘sa’, e modificato il valore della chiave ‘database’ con un sistema analogo.
Se si indica una chiave esistente se ne modifica il valore, in caso contrario si aggiunge una coppia chiave:valore.

Notate che il nuovo elemento (chiave ‘uid’, valore ‘sa’) sembra trovarsi nel mezzo. Infatti è una semplice coincidenza che gli elementi appaiano ordinati nel primo esempio; è comunque una coincidenza anche il fatto che ora appaiano disordinati.

Un dizionario può, esattamente come le liste e le tuple, contenere elementi eterogenei.
Ecco un esempio
>>> mio_dizio
{‘server’: ‘mpilgrim’, ‘uid’: ‘sa’, ‘database’: ‘pubs’}
>>> mio_dizio[“retrycount”] = 3
>>> mio_dizio
{‘server’: ‘mpilgrim’, ‘uid’: ‘sa’, ‘database’: ‘master’, ‘retrycount’: 3}
>>> mio_dizio[42] = “douglas”
>>> mio_dizio
{‘server’: ‘mpilgrim’, ‘uid’: ‘sa’, ‘database’: ‘master’, 42: ‘douglas’, ‘retrycount’: 3}

Per rimuovere un elemento da un dizionario si fa così
>>> mio_dizio
{‘server’: ‘mpilgrim’, ‘uid’: ‘sa’, ‘database’: ‘master’, 42: ‘douglas’, ‘retrycount’: 3}
>>> del mio_dizio[42]
>>> mio_dizio
{‘server’: ‘mpilgrim’, ‘uid’: ‘sa’, ‘database’: ‘master’, ‘retrycount’: 3}
>>> mio_dizio.clear()
>>> mio_dizio
{}
dizionario python

del rimuove l’elemento con la chiave indicata, il metodo clear() invece rimuove tutte le coppie chiave:valore del dizionario, lasciando un dizionario vuoto.

In Python le stringhe usate come chiavi o nomi di variabili sono case sensitive, ovvero c’è differenza tra maiuscole e minuscole, come possiamo vedere qui di seguito
mio_dizio = {}
>>> mio_dizio[“key”] = “value”
>>> mio_dizio[“key”] = “other value”
>>> mio_dizio
{‘key’: ‘other value’}
>>> mio_dizio[“Key”] = “third value”
>>> mio_dizio
{‘Key’: ‘third value’, ‘key’: ‘other value’}

‘Key’ e ‘key’ sono due chiavi diverse tra loro.

Per avere un valore di una chiave inserita si possono usare due strade
>>> mio_dizio = {‘server’: ‘mpilgrim’, ‘uid’: ‘sa’, ‘database’: ‘master’, 42: ‘douglas’, ‘retrycount’: 3}
>>> mio_dizio[‘database’]
‘master’
>>> mio_dizio.get(‘database’)
‘master’

Il secondo e’ un metodo più chiaro, il primo è più immediato.

Se voglio l’elenco dei valori contenuti nel dizionario
>>> mio_dizio = {‘server’: ‘mpilgrim’, ‘uid’: ‘sa’, ‘database’: ‘master’, 42: ‘douglas’, ‘retrycount’: 3}
>>> mio_dizio.values()
[3, ‘douglas’, ‘master’, ‘sa’, ‘mpilgrim’]

che mi torna sotto forma di lista. In maniera simile posso avere l’elenco delle chiavi
>>> mio_dizio = {‘server’: ‘mpilgrim’, ‘uid’: ‘sa’, ‘database’: ‘master’, 42: ‘douglas’, ‘retrycount’: 3}
>>> mio_dizio.keys()
[‘retrycount’, 42, ‘database’, ‘uid’, ‘server’]

Ma posso anche farmi tornare una lista di tuple che contengono le coppie chiave:valore
>>> mio_dizio = {‘server’: ‘mpilgrim’, ‘uid’: ‘sa’, ‘database’: ‘master’, 42: ‘douglas’, ‘retrycount’: 3}
>>> mio_dizio.items()
[(‘retrycount’, 3), (42, ‘douglas’), (‘database’, ‘master’), (‘uid’, ‘sa’), (‘server’, ‘mpilgrim’)]

Per sapere se un dizionario contenga o meno una data chiave si puo’ usare il metodo has_key()
>>> mio_dizio = {‘server’: ‘mpilgrim’, ‘uid’: ‘sa’, ‘database’: ‘master’, 42: ‘douglas’, ‘retrycount’: 3}
>>> mio_dizio.has_key(‘server’)
True
>>> mio_dizio.has_key(‘nonserver’)
False

Oppure possiamo scrivere
>>> mio_dizio = {‘server’: ‘mpilgrim’, ‘uid’: ‘sa’, ‘database’: ‘master’, 42: ‘douglas’, ‘retrycount’: 3}
>>> ‘server’ in mio_dizio
True
>>> ‘nonserver’ in mio_dizio
False

Per farci tornare separatamente le coppie possiamo utilizzare un ciclo for come segue
>>> for key,value in mio_dizio.items():
>>> print key, value
retrycount 3
42 douglas
database master
uid sa
server mpilgrim

Bene per oggi chiudiamo qui.
Nella prossima lezione potremo dare una occhiata ad uno dei piu’ potenti strumenti che Python ci mette a disposizione: le List Comprehensions, che ci permettono di racchiudere in una sola stringa, di elevata leggibilità, istruzioni complesse per la gestione di stringhe, liste e dizionari.

Arrivederci alla prossima.

Altre letture utili:
Programmare con Python. Guida completa
Python
Programmare in Python

Tutorial QGIS 1: l’evoluzione dell’informazione geografica e il GIS open source

2 commenti

logo qgis

tutorial qgisCon questo primo tutorial si avvia un percorso formativo su QGIS e il GIS open source rivolto ai principianti assoluti. Non ci sarà una frequenza prestabilita e non so ancora dove si arriverà. L’importante è cominciare perché chi inizia è a metà dell’opera.

 

La Geografia è antica quanto l’uomo e secondo la sua etimologia si occupa di descrivere la Terra e lo fa attraverso vari linguaggi.

Fin dalle epoche più remote l’uomo ha cercato di rappresentare visivamente il territorio creando le prime mappe in rapporto alle sue necessità di cacciatore, agricoltore, costruttore, guerriero, viaggiatore ed ancora oggi è qui il senso e l’utilità di una disciplina che fa riferimento a una quantità enorme di informazioni.
La maggior parte dei dati direttamente o indirettamente sono riferibili ad un costesto spaziale, geografico, ad una posizione sulla superficie terrestre.

Per millenni l’uomo ha disegnato carte geografiche, prima in modo approssimativo, poi con il progredire delle conoscenze sulla Geometria (anche qui l’etimologia è significativa) ha rappresentato il suo mondo, mano a mano che lo scopriva, in modo sempre più preciso.

La conoscenza geografica ha sempre avvantaggiato chi la possedeva, per le attività commerciali, militari, amministrative ed è stato uno strumento di potere, a volte anche tenuto segreto.
In Italia l’Istituto Geografico Militare (IGM) è stato a lungo il principale detentore istituzionale dell’informazione geografica nazionale (c’è da riconoscere che l’ha fatto piuttosto bene) e sulle carte in corrispondenza delle basi militari c’erano delle omissioni, dei vuoti di informazione.

Prima dell’impiego delle foto aeree (possibilità relativamente recente) il rilievo geografico è stato eseguito con gli strumenti della geometria e della topografia.

Negli ultimi decenni c’è stata una rivoluzione tecnologica che ha messo in campo nuovi strumenti che cambiano profondamente il lavoro di chi ha a che fare con il territorio, con delle possibilità fino a poco tempo fa impensabili.

Le tecnologie che hanno rivoluzionato l’acquisizione e la gestione delle informazioni geografiche sono sostanzialmente tre:

  1. il GPS (Global Positioning Systems): un sistema di comunicazioni tra stazioni a terra e una rete di satelliti che consente la localizzazione di un punto sulla superficie terrestre con un livello di precisione crescente in funzione della strumentazione in uso.
    Le applicazioni sono innumerevoli e la tecnologia ormai è di uso comune. Le stazioni GPS più sofisticate consentono ormai una precisione topografica superiore a quella degli strumenti ottico-elettronici, unita ad una migliore facilità d’uso;
  2. il Telerilevamento (o Remote Sensing): un insieme di tecniche per acquisire immagini o altri tipi di dati attraverso rilevazioni fatte a distanza da aerei e satelliti, con lo sviluppo di elaborazione ed analisi dei dati. Chi studia la natura nelle sue varie forme oggi ha una massa di informazioni (in archivio e in tempo reale) ed una quantità di dati interpretabili anche in modo dinamico;
  3. il GIS (Geographic Information Systems): una tecnologia informatica che consente di gestire i dati rilevati dalle altre due e molte altre informazioni in modo sistematico, consentendo visualizzazioni, elaborazioni ed analisi che aggiungono ulteriore conoscenza e che facilitano le decisioni in termini progettuali e gestionali.

Da ora in poi parleremo di questa ultima tecnologia di informazione spaziale, il GIS, perché è quella che dà maggiori possibilità in termini applicativi, risultando utilissima, in qualche caso indispensabile, a molte categorie professionali, a tutti coloro cioè che hanno a che fare con il territorio, per conoscerlo, conservarlo, amministrarlo, pianificarlo, gestirlo, progettarlo.

Tra chi legge queste righe sono pochi quelli che possono chiamarsi fuori ed indipendentemente dal lavoro svolto l’argomento è comunque di grande fascino.
Se poi aggiungiamo il fatto che esistono in campo GIS ottimi software liberi, open source e gratuiti, come QGIS e tutto ciò che ci gira intorno, sarebbe sciocco per qualsiasi operatore non cogliere questa opportunità.

Prima di parlare di QGIS però cerchiamo di capire meglio cos’è il GIS e come è nato.

I primi software GIS nascono nella seconda metà degli anni 80 dall’integrazione di altri programmi informatici appartenenti a quattro categorie:

  1. Sistemi di gestione di banche dati (DBMS: Database Management Systems). Generalmente un database non contiene informazione spaziale esplicita (in termini di localizzazione con posizionamento e descrizione di caratteristiche geometriche) ma si limita a gestire dati alfanumerici. Esempi: MS Access, Oracle, MySQL, …
  2. Sistemi di trattamento di informazioni grafiche vettoriali (CAD: Computer Aided Design). I CAD non usano sistemi di riferimento geografici ma un sistema di riferimento locale e hanno una limitata capacità di gestione di dati non grafici. L’esempio più famoso è AutoCAD.
  3. Sistemi di elaborazione di mappe raster (image processing). Possono essere distinti in due gruppi: quelli che sono semplici strumenti di manipolazione di immagini come Photoshop, Gimp, Photopaint, … e quelli che lo fanno assegnando alle immagini un sistema di riferimento geografico, elaborando così delle vere e proprie mappe raster, come Erdas Imagine, Envi, ErMapper, …
  4. Sistemi di analisi statistica di dati alfanumerici (statistical software). Contengono la stessa tipologia di dati dei DBMS ma sono più orientati al calcolo e all’analisi previsionale. Esempi: SPSS, StatSoft, MATLAB, …

La potenza del GIS sta proprio nel mettere insieme le caratteristiche di questi programmi e nel gestire in modo sempre più integrato varie tipologie di dati, come nessun altro software riesce a fare.
L’evoluzione di questo tipo di software è avvenuta così per integrazione di moduli successivi e di estensioni.
La piattaforma GIS commerciale più nota è ArcGIS (ex ArcView) della ESRI, ancora software house leader in questo settore, ma è anche molto diffuso AutoCAD Map di Autodesk ed altri che non sto ad elencare.

Il software libero ed open source in ambito GIS negli ultimi anni ha avuto un’evoluzione incredibile e sono cresciuti una serie di programmi specifici e l’interoperabilità tra di loro.
QGIS è un software straordinario perché oltre alle qualità dovute al proprio sviluppo ha saputo mettersi al centro di questo articolato ecosistema, diventandone l’interfaccia naturale.

QGIS è nato nel 2002 come semplice visualizzatore ed in poco più di un decennio è diventato la piattaforma di base del GIS open source, con funzionalità che non hanno più quasi niente da invidiare ad ArcGIS.
Ciò è avvenuto grazie al lavoro di una community internazionale di sviluppatori, sostenitori e utenti in cui la comunità italiana ha avuto un ruolo non marginale.
Con il rilascio di QGIS 2.0 (a cui sono seguiti in breve tempo 2.2, 2.4, 2.6) il progetto ha raggiunto la sua piena maturità. Non rimane che provarlo.

Con la dovuta umiltà il mio scopo sarà quello di facilitare questo percorso. Seguitemi anche nei prossimi tutorial.

Altre letture consigliate:

AA.VV., GIS Open Source, Grass Gis, Quantum Gis e SpatiaLite. Elementi di software libero applicato al territorio

V. Noti, GIS open source per geologia e ambiente. Analisi e gestione dei dati territoriali e ambientali con QGIS

 

Imparare il 3D con SketchUp: l’area di lavoro principale

Lascia un commento

schermo sketchup

schermo sketchup

La finestra principale di SketchUp, come si vede nella figura, è composta nella sua parte superiore dalla barra del titolo (1): in essa compare oltre ai classici comandi Microsoft (Riduci a icona, Ripristino in basso\in alto e Chiudi), il nome del file attribuito dall’utente solo dopo il primo salvataggio.

Subito sotto è collocata la barra dei menù (2) che è composta da voci e sottovoci che permettono una manipolazione completa del modello, la configurazione del programma, le varie modalità di visualizzazione, l’accesso a particolari strumenti o a plugins di cui vi parlerò dettagliatamente in seguito.

L’area di lavoro del programma è perimetrata, nella parte superiore e sul lato sinistro, da due fasce “magnetiche” (3) su cui è possibile agganciare, orizzontalmente e verticalmente, le toolbars (barre degli strumenti).

Sulla parte inferiore è collocata la barra delle istruzioni (6).
Attraverso di essa l’utente ottiene, guardandone l’estremità sinistra, le istruzioni d’uso per ogni strumento selezionato.

Poi c’è una casella di dialogo (7) denominata VCB (Value Control Box, Casella di controllo dimensioni), con cui l’utente imposta o acquisisce misure di linee, il numero di lati di un poligono, il raggio di una circonferenza, ecc.

Per default, in un nuovo file, il programma presenta l’area di lavoro con la vista in Pianta; il nome della vista (4) viene riportato in alto a sinistra, viene mostrata la vista in pianta e il centro dello schermo (5) indica l’origine della terna di assi cartesiani ortogonali X, Y e Z, ciascuno dei quali è contraddistinto da un colore (X = rosso, Y = blu, Z = verde).
Gli assi offrono, soprattutto agli utenti meno esperti, un riferimento costante durante la stesura del disegno.

Tutti gli strumenti grafici del programma, come si potrà constatare in seguito, durante il loro utilizzo sfruttano, in modi diversi, i riferimenti cartesiani colorati, per informare l’utente circa la direzione o il piano scelti: alcuni visualizzano una linea tratteggiata che assume, in virtù dello spostamento effettuato, il colore dell’asse cartesiano di competenza; altri impiegano colore e forma del puntatore per il medesimo scopo.

Devo fare assolutamente una precisazione: la finestra che vedete in questa pagina, in termini di barre degli strumenti e loro disposizione, è quella che nel corso di tanti anni di lavoro con questo programma mi ha semplificato tantissimo la vita!
Personalmente ritengo che non sia il caso di appesantire l’area di lavoro di barre inutili o che non servono assolutamente per determinati tipi di lavoro.
Mi dite cosa se ne fa un disegnatore meccanico industriale dei comandi “sabbiera” per la modellazione dei terreni?
Anche se state sviluppando un lavoro grafico per l’edilizia e avete un super computer vi conviene sempre mantenere l’area di lavoro e le fasce magnetiche libere da inutili aggiunte.

Per cominciare a prendere confidenza col software fate così: andate nel menù “Visualizza” e scegliete l’item “Barre degli strumenti” aggiungendo il segno di spunta ad una barra per volta ed esplorate le funzionalità provando a pasticciare qualcosa sullo schermo… Fatelo tranquillamente e ricordate che questo è il modo migliore per imparare.

Nelle spire del Python (lezione 5): eseguire operazioni ripetitive

1 commento

python for

logo pythonEccoci qui per il quinto incontro. Oggi scopriremo come si eseguono operazioni ripetitive in Python.
Abbiamo due possibilità di eseguire operazioni ripetitive.
Per un preciso numero di volte oppure fino a che non si verifica una data condizione.

Prima possibilità: il FOR
L’istruzione FOR ci permette di eseguire un certo numero di iterazioni come segue
>>> for a in range(1, 10):
>>> print a
e otterremo come outputpython for
1
2
3
4
5
6
7
8
9

La funzione predefinita range prende due parametri, il valore iniziale e quello finale (in realtà si deve aumentare di uno il valore finale, capiremo tra breve perché) ed esegue un numero di iterazioni pari alla differenza tra i due (10-1 = 9) assegnando alla variabile “a” il valore conteggiato.

Ovviamente possiamo fare di meglio, ad esempio stampare solo i numeri dispari, con il seguente codice
>>> for a in range(1, 10, 2):for-2
>>> print a

che stamperà
1
3
5
7
9

Il secondo parametro indica lo step, ovvero di quanto si deve incrementare il contatore.

Ora facciamo un giochino.
Chi è uso a risolvere le parole crociate conosce quelle definizioni tipo “Arteria senza pari”, dove si devono scrivere solo le lettere dispari della parola.
Vediamo come Python ci viene in aiuto:

>>> parola = “arteria”for-3
>>> for a in range(0,len(parola),2):
>>> print parola[a]

a
t
r
a
la funzione len() ci torna la lunghezza della stringa che gli passiamo.
Quindi range con parametri 0, len(parola) e 2 ci permette di avere gli indici (posizioni delle lettere) dispari.
L’istruzione print parola[a] stampa la lettera che ha indice a.

Come dire se avessimo scritto
>>> print parola[3] avremmo ottenuto come output
r
che è la lettera nella quarta posizione (tenete conto che gli indici in Python iniziano sempre da 0).

In seguito vedremo come possiamo ritagliare solo una parte (substring o sottostringa) da una stringa, ma per ora ci basta l’indice.

Abbiamo visto quindi come fare un ciclo con un numero di iterazioni predefinito. Che sia con un valore fisso o con la lunghezza di una stringa, sempre un preciso numero di iterazioni avranno luogo.

Abbiamo pero’ la possibilita’ di eseguire un numero di iterazioni indefinite che terminano al verificarsi di una determinata condizione. Un poco come se iniziassimo un loop infinito (ciclo senza un valore limite maggiore) e ne uscissimo se una istruzione if <condizione>: si verifica.
Che poi si potrebbe fare con le istruzioni:
>>> from random import randintfor-4
>>> for x in iter(int, 1):
>>> print x
>>> if randint(1,9) == 3:
>>> break

stamperà 0 per un numero indefinito di volte.

Rieseguite le istruzioni più volte, al limite racchiudendole in una funzione con codice come il seguente:
>>> from random import randint
>>> def funzione():
>>> for x in iter(int, 1):
>>> print x
>>> if randint(1,9) == 3:
>>> break
>>> funzione()

Chiamando più volte funzione() non dovrete digitare tutte le volte il gruppo di istruzioni.

L’istruzione from random import randint importa dal package random la funzione randint.
randint con due parametri (i due estremi) genera un numero intero casuale tra i due estremi.
Quando il numero generato è uguale a 3 l’istruzione break interrompe il ciclo.
Però fare le cose cosi’ non è molto comodo. Facciamo pertanto conoscenza con l’istruzione while.

Seconda possibilità: il WHILE

>>> from random import randint
>>> while randint(1,9) != 3:
>>> print “ciao”

stamperà ciao un numero variabile di volte, in base a quando verrà generato il numero 3 da randint.
Ovviamente se allargassimo da 9 a 90 o a 900 il limite le probabilita’ che il ciclo termini diminuiranno in maniera proporzionale.

Abbiamo visto quindi come con while fino a che non si verifica la condizione abbiamo un ciclo.
Qui la condizione la impostiamo dall’istruzione.
Un ciclo infinito con while possiamo averlo con
>>> while 1 == 1:
>>> print “ciao”

Arrivederci alla prossima settimana.

Altre letture utili:
Programmare con Python. Guida completa
Python
Programmare in Python

La BIM è lo standard del futuro

Lascia un commento

IFC nanocad plus

La BIM è il nuovo paradigma della progettazione non solo edile. Uno standard che ben presto cancellerà la visione del progettista “isolato” per far posto al concetto di Team.

DrawingIl nostro Paese deve svecchiarsi se vuole realmente uscire dalla crisi.
Per farlo deve avere i coraggio di scommettere sulle innovazioni tecnologiche e sulla cultura e cambiare radicalmente certi modi di pensare e di concepire il mondo del lavoro.
Volenti o nolenti l’era digitale, non meno della Rivoluzione industriale, ha sconvolto profondamente la produzione industriale prima, tagliando tanti posti di lavoro con l’automazione da una parte e creando nuove figure professionali dall’altra; poi è toccato al mondo dell’ufficio e adesso, sempre più prepotentemente, anche quello della progettazione.
I vantaggi offerti da certe nuove filosofie aziendali, in cui il progettista non lavora più da solo ma che interagisce in tempo reale con altri professionisti, è una realtà che all’estero è diventata uno standard vero e proprio.

La progettazione strutturata o Building Information Modeling (BIM) permette di realizzare progettazioni intelligenti riducendo errori e costi legati a revisioni, riunioni, sopralluoghi in cantiere e tanti altri grattacapi legati alla progettazione stand alone tradizionale.
La BIM non è solo una famiglia di software è una vera e propria organizzazione del lavoro di studio e di cantiere.

Sul nostro sito comunitario, da qualche mese, ho inserito la sezione BIM e ho deciso di partire dalle basi di questo nuovo concetto progettuale traducendo delle dispense della California State University, in cui non compaiono riferimenti all’uso di un particolare programma ma mirano, piuttosto, alla realizzazione di una forma mentis per i team progettuali.
Si parte dall’individuazione dei target principali che saranno oggetto dei compiti BIM per ogni livello di progettazione (architettonica, ingegneristica, impiantistica, ecc.) attraverso delle schede e per ogni settore si individua un responsabile per la progettazione e la realizzazione.

Successivamente si determina una scala delle priorità esecutive attraverso dei diagrammi di flusso che serviranno anche per lo scambio dei dati tra i vari professionisti (progettisti ed esecutori) impegnati nel cantiere.
La fase di studio preliminare svolto attraverso schede di raccolta dati, questionari, diagrammi ecc., faciliterà enormemente la messa in atto del progetto vero e proprio, riducendo al minimo il margine di errori e le sforature sul budget imposto dalla committenza.

BIM_Illustration

Se corredato correttamente con tutti i dati di fabbricazione, commenti e risultati finali, questo materiale allegato ai file BIM servirà, inoltre, anche come modello per altri lavori futuri del team.
Per attuare una buona progettazione BIM è necessario avere, quindi, una visione moderna del cantiere e dello studio investendo in attrezzature all’avanguardia che permettono di digitalizzare i dati a partire dal rilievo dell’area d’intervento per poi trasmetterli a chi avrà il compito di elaborarli per il progetto.

Lo stesso studio deve avere un’architettura hardware potente, basata su workstation e LAN ultraveloci per incrociare il lavoro dei vari progettisti.
Per chi comincia adesso conviene fare pratica presso uno studio in cui già si lavora con la BIM o, comunque, fare pratica con altri progettisti su piccoli cantieri di facile gestione.

La BIM si presta molto anche per il recupero edile di vecchi manufatti e diventa allettante anche per l’amministrazione condominiale dello stabile dal momento che la documentazione prodotta, unitamente al file BIM, costituiscono un vero e proprio registro manutentivo dello stabile su cui pianificare gli interventi e eventuali adeguamenti normativi, controllando anche le spese di esecuzione.

Riuscirà il mondo dell’open source e del software free a ritagliarsi un ruolo importante dentro queste dinamiche?

« Pagina precedente
Pagina successiva »

Barra laterale primaria

Scarica gratis i nostri software

Prenota il video corso

Partecipa al nostro forum

forum nanocad italia

Post in evidenza

software computi gratuiti

I migliori 3 software gratuiti per computi metrici

blocchi cad gratis

I migliori siti per scaricare blocchi CAD gratis

video tutorial autocad

I migliori video tutorial gratuiti su AutoCAD

come impostare scala autocad

Il CAD e l’equivoco delle scale

retini nanocad

Come aggiungere nuovi retini a nanoCAD free

sistemi riferimento italia

Tutorial QGIS 4: i Sistemi di Riferimento più usati in Italia

proiezioni geografiche

Tutorial QGIS 3: la rappresentazione della Terra ed i Sistemi di Riferimento

formati qgis

Tutorial QGIS 2: i formati dell’informazione geografica

logo qgis

Tutorial QGIS 1: l’evoluzione dell’informazione geografica e il GIS open source

alternative autocad lt

Le alternative gratis ad AutoCAD LT per il CAD 2D

OPENOIKOS di Fabrizio Pieri - P.IVA 02181310562 - email: openoikos@gmail.com