[Talk-it] CTR Puglia
Leonardo
kinetocore86 a gmail.com
Gio 22 Ott 2015 17:20:09 UTC
Grazie mille Daniele!
Ora lo script funziona correttamente e ho imparato qualcosa di nuovo
sulla sintassi :)
#Filtro per eliminare le geometrie non volute
def filterFeature(ogrfeature, fieldNames, reproject):
if not ogrfeature: return
DESCR = None
descrizione = ogrfeature.GetField('DESCR') #crea un indice di tutti
i valori della colonna DESCR
if descrizione in ['area incolto', 'area Seminativi', 'area
arborato', 'area Frutteti', 'area Uliveti', 'area Vigneti']: #se il
valore corrisponde a uno di quelli dell'IF allora elimina la geometria
return None
return ogrfeature
Federico bisogna aggiungere le rimanenti aree/boschi/colture all'IF e
dopo puoi aggiungerlo tranquillamente al tuo script (occhio alle
indentazioni), l'ho testato su un paio di riquadri.
Leonardo
Il 22/10/2015 16:00, Daniele Forsi ha scritto:
> Il 22 ottobre 2015 14:41, Leonardo ha scritto:
>
>> In effetti c'è la possibilità di eliminarlo via ogr2osm, ho provato anche a
>> scrivere la porzione di codice per effettuare questa cancellazione. Questo
>> script va posto prima della porzione dedicata al tagging, quindi all'inizio
>> del file:
>>
>> def filterFeature(ogrfeature, fieldNames, reproject):
>> if not ogrfeature: return
>>
>> DESCR = None
>>
>> index = ogrfeature.GetFieldIndex('DESCR')
>> if ogrfeature.GetFieldIndex('index') in ['area incolto']:
> ci sono 2 errori in questa riga: usi GetFieldIndex in vece di GetField
> e 'index' con gli apici invece di index, cioè dovrebbe essere:
> if ogrfeature.GetField(index) in ['area incolto']:
> ma a cosa serve index? Perché non elimini la riga precedente e usi solo:
> if ogrfeature.GetField('DESCR') in ['area incolto']:
>
> io userei una variabile specialmente per dare un nome più
> comprensibile al campo nello shapefile:
> descrizione = ogrfeature.GetField('DESCR')
> if descrizione in ['area incolto']:
>
>> return None
>>
>> return ogrfeature
Maggiori informazioni sulla lista
Talk-it