:: Python :: tin.to.raster :: |
|---|
|
Nello script v.quota.py si calcola la quota di un
singolo punto appartenente ad un vettoriale 3D. Questa tipologia di copertura, se è realizzata
mediante facce triangolari, è detta TIN, per apprendere come realizzarla utilizzando
Grass, si faccia riferimento alle seguenti pagine:
Costruzione TIN da Punti Quotati,
Costruzione TIN da Curve di Livello e
Costruzione TIN da Entità Quotate.
Si analizza ora, lo script tin.to.raster.py (*) sviluppato per convertire i TIN in coperture vettoriali; all'utente è sufficiente indicare il nome di un TIN e il nome di un nuovo raster nelle cui celle, durante l'elaborazione, vengono inseriti i valori delle quote calcolate. L'applicativo preleva in automatico i valori delle impostazioni della regione corrente e quindi il numero di righe e colonne, la risoluzione lungo x e y, ecc. Noti questi valori, in un doppio ciclo for dei quali, il più l'esterno incrementa le ordinate e il più interno le ascisse, si calcola la quota da assegnare alla singola cella mediante la funzione Vect_tin_get_z(map_info, x, y, byref(z), None, None). Si tenga presente che la conversione richiede diversi minuti, ad esempio, per un raster di circa 10.000.000 di celle il tempo di elaborazione si aggira intorno ai 12 minuti.
#!/usr/bin/env python
#****************************************************************
#*
#* MODULE: tin.to.raster, v 1.0.3
#*
#* AUTHOR(S): Antonio Alliegro
#*
#* PURPOSE: Converte coperture TIN in raster
#*
#* COPYRIGHT: (C) 2011-2012 Antonio Alliegro Civil Engineer
#* Salerno, Italy
#* antonioall(at)libero.it
#*
#* First Version: 2011/09/08
#* Last Version: 2012/09/29
#*
#* This program is free software under the
#* GNU General Public License (>=v2).
#* Read the file COPYING that comes with GRASS
#* for details.
#*
#****************************************************************
#%module
#% description: Converte coperture TIN in raster
#% keywords: TIN, vector, raster
#%end
#%option
#% key: map
#% type: string
#% gisprompt: old,vector,vector
#% key_desc: tin
#% description: Nome copertura TIN
#% required: yes
#%end
#%option
#% key: output
#% type: string
#% gisprompt: new,cell,raster
#% key_desc: raster
#% description: Nome copertura raster
#% required: yes
#%end
import os, sys
import grass.script as grass
from grass.lib.gis import *
from grass.lib.vector import *
def main():
input = options['map']
output = options['output']Visualizza il file sorgente di tin.to.raster.py NOTA (*): La libreria grass.lib è disponibile a partire dalla versione 6.4.2 di Grass. Pertanto il presente applicativo non è utilizzabile nelle versioni 6.4.1, 6.4.0 e precedenti.
Argomenti correlati:
|