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
_______________________________________________
Talk-it mailing list
Talk-it@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-it