Grass v.out.ogr

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Grass v.out.ogr

Marco Guiducci-2
Ciao,
utilizzo il comando in oggetto per esportare un layer di Grass in shapefile.
Se il layer è vuoto il comando segnala <0 elementi scritti in ....> ma sfortunatamente lo shapefile viene creato ugualmente (vuoto ovviamente).
Non mi pare ci siano degli switch per evitarlo.
Qualche suggeriumento?
grazie
marco g
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
605 iscritti al 10.7.2012
Reply | Threaded
Open this post in threaded view
|

Re: Grass v.out.ogr

Luca Sigfrido Percich
Ciao Marco,

non si tratta di sfortuna, anzi. Una tavola vuota ha una struttura, una
proiezione, e un numero di righe pari a 0: un sacco di informazioni.
Generare una tavola vuota è il comportamento atteso in questo caso. Una
"non tavola" sarebbe un "non risultato".

Se vuoi cancellare lo shape nel caso in cui sia vuoto al termine
dell'esportazione, puoi provare con una combinazione di ogrinfo e bash,
come in questo script di esempio, al quale devi passare il nome di uno
shape nella directory corrente - senza estensione:

#! /bin/bash

NUMROWS=$(ogrinfo -al -so $1.shp | \
    grep -e "Feature Count" | \
    sed -s 's/[^0-9]//g')
if [ $NUMROWS  -lt 1 ] ; then
        ogrinfo -sql "drop table $1" .
fi


Sig

Il giorno gio, 22/11/2012 alle 14.17 +0000, Marco Guiducci ha scritto:

> Ciao,
> utilizzo il comando in oggetto per esportare un layer di Grass in shapefile.
> Se il layer è vuoto il comando segnala <0 elementi scritti in ....> ma sfortunatamente lo shapefile viene creato ugualmente (vuoto ovviamente).
> Non mi pare ci siano degli switch per evitarlo.
> Qualche suggeriumento?
> grazie
> marco g
> _______________________________________________
> [hidden email]
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> Non inviate messaggi commerciali.
> I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
> 605 iscritti al 10.7.2012

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
605 iscritti al 10.7.2012
Reply | Threaded
Open this post in threaded view
|

Re: Grass v.out.ogr

Marco Guiducci-2




----- Messaggio originale -----

> Da: Luca Sigfrido Percich <[hidden email]>
> A: Marco Guiducci <[hidden email]>
> Cc: "[hidden email]" <[hidden email]>
> Inviato: Giovedì 22 Novembre 2012 22:49
> Oggetto: Re: [Gfoss] Grass v.out.ogr
>
> Ciao Marco,
>
> non si tratta di sfortuna, anzi. Una tavola vuota ha una struttura, una
> proiezione, e un numero di righe pari a 0: un sacco di informazioni.
> Generare una tavola vuota è il comportamento atteso in questo caso. Una
> "non tavola" sarebbe un "non risultato".
>
> Se vuoi cancellare lo shape nel caso in cui sia vuoto al termine
> dell'esportazione, puoi provare con una combinazione di ogrinfo e bash,
> come in questo script di esempio, al quale devi passare il nome di uno
> shape nella directory corrente - senza estensione:
>
> #! /bin/bash
>
> NUMROWS=$(ogrinfo -al -so $1.shp | \
>     grep -e "Feature Count" | \
>     sed -s 's/[^0-9]//g')
> if [ $NUMROWS  -lt 1 ] ; then
>         ogrinfo -sql "drop table $1" .
> fi
>

perfetto!
dovendo trattare decine, a volte centinaia di file in un colpo, lancio il batch che esporta, poi lo script che mi cancella quelli vuoti.
domani a mente fresca lo provo.
grazie
marco
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
605 iscritti al 10.7.2012
Reply | Threaded
Open this post in threaded view
|

Re: Grass v.out.ogr

Markus Neteler
In reply to this post by Marco Guiducci-2
2012/11/22 Marco Guiducci <[hidden email]>:
> Ciao,
> utilizzo il comando in oggetto per esportare un layer di Grass in shapefile.
> Se il layer è vuoto il comando segnala <0 elementi scritti in ....> ma sfortunatamente lo shapefile viene creato ugualmente (vuoto ovviamente).

Qual'è lo scopo esattamente?
La mappa non ha geometria ma degli attributi? Solo per capire...
(in caso c'è db.out.ogr).

ciao
Markus
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
605 iscritti al 10.7.2012
Reply | Threaded
Open this post in threaded view
|

Re: Grass v.out.ogr

Marco Guiducci-2




----- Messaggio originale -----

> Da: Markus Neteler <[hidden email]>
> A: Marco Guiducci <[hidden email]>
> Cc: "[hidden email]" <[hidden email]>
> Inviato: Sabato 24 Novembre 2012 23:59
> Oggetto: Re: [Gfoss] Grass v.out.ogr
>
> 2012/11/22 Marco Guiducci <[hidden email]>:
>>  Ciao,
>>  utilizzo il comando in oggetto per esportare un layer di Grass in
> shapefile.
>>  Se il layer è vuoto il comando segnala <0 elementi scritti in ....>
> ma sfortunatamente lo shapefile viene creato ugualmente (vuoto ovviamente).
>
> Qual'è lo scopo esattamente?
> La mappa non ha geometria ma degli attributi? Solo per capire...
> (in caso c'è db.out.ogr).
>
> ciao
> Markus
>

E la continuazione di un processo, di cui avevo già scritto qui per chiedere alcune cose.
Il quadro è questo: devo estrarre da una mappa in formato shapefile sia le porzioni di poligoni che si sovrappongono, sia i vuoti, cioè porzioni della mappa che non sono coperti da nessun poligono.
Step:
1) importo: v.ogr.in dsn=mioshape output=miolayer -o
2) estraggo i poligoni del layer1 in overlay con layer2: v.overlay ainput=miolayer atype=area alayer=1 binput=miolayer btype=area blayer=2 output=layeroverlay operator=and
3) esporto: v.out.ogr input=layeroverlay type=area format=ESRI dsn=shapefilesovrapp.shp olayer=default -e
4) creo i centroidi dei vuoti: v.centroids input=miolayer output=miocentroide option=add cat=1 step=1 layer=0
5) esporto i poligoni vuoti: v.out.ogr input=miocentroide type=area layer=0 format=ESRI dsn=shapevuoti olayer=default -e -c

Se lo shape iniziale è corretto non presenta i layer 0 e 2.
Sto cercando di fare un if esiste layer=2 then esporta.... if esiste layer=0 then esporta
sto provando con v.info, però v.info con layer=0 o layer=2 o layer=1 non sorte alcune differenza,
quindi non è usabile.
devo fare una db.select e contare i record?

Non mi interessa la tabella vuota.
grazie
marco
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
605 iscritti al 10.7.2012
Reply | Threaded
Open this post in threaded view
|

Re: Grass v.out.ogr

Marco Guiducci-2




----- Messaggio originale -----

> Da: Marco Guiducci <[hidden email]>
> A: "[hidden email]" <[hidden email]>
> Cc:
> Inviato: Domenica 25 Novembre 2012 9:24
> Oggetto: Re: [Gfoss] Grass v.out.ogr
>
>
> Se lo shape iniziale è corretto non presenta i layer 0 e 2.
> Sto cercando di fare un if esiste layer=2 then esporta.... if esiste layer=0
> then esporta
> sto provando con v.info, però v.info con layer=0 o layer=2 o layer=1 non sorte
> alcune differenza,
> quindi non è usabile.
> devo fare una db.select e contare i record?

piccola, sostanziale, integrazione e correzione: se il layer 2 è vuoto non viene fatto lo shape, invece per il layer 0 ottengo sempre lo shape.
ciao
marco
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
605 iscritti al 10.7.2012