Il tipo di dati hstore memorizza set di coppie chiave/valore all’interno di un singolo campo di una tabella. Ciò può essere utile in vari scenari, ad esempio righe con molti attributi che vengono esaminati raramente o dati semi-strutturati. Chiavi e valori sono semplicemente stringhe di testo.
Questo formato viene molto utilizzato nel database di OpenStreetMap soprattutto per memorizzare tag, ovvero i campi tags
e other_tags
sono in questo formato hstore.
Vediamo un caso concreto, scarichiamo le isole da qui OpenStreetMap Data Extracts e DragAnDrop in QGIS:

seleziono solo i points
, sotto la tabella attributi:
Come usare questo campo in QGIS?
Un modo per trasformare il campo hstore in tanti campi testuali classici, dove ogni chiave diventa un campo, è attraverso l’algoritmo di Processing Esplodi Campo HStore
; questa procedura creerà un nuovo layer con moltissimi campi e potrebbe creare confusione oltre al fatto che genera altro file.
Una buona alternativa è quella di utilizzare le espressioni di QGIS e in particolare il gruppo funzioni Maps
:
il trucco passa nell’utilizzare la funzione hstore_to_map
che prende il campo other_tags
e lo trasforma in mappa (chiave/valore):
a questo punto possiamo utilizzare tutte le altre funzioni del gruppo.
Un esempio: selezionare tutti i record che hanno la chiave denomination
e valore catholic
:
mentre se volessi tutte i valori di quella chiave:
map_get(
hstore_to_map( "other_tags" ),
'denomination')
IS NOT NULL
Altro esempio: creare un campo e popolarlo con i valori di una chiave
Per altri interessanti utilizzi delle espressioni di QGIS, vi rimando al Corso FULL sul Field Calc.
NOTE FINALI: anche in questo caso dei dati OSM, il field calc e le espressioni si rilevano uno strumento indispensabile per risparmiare tempo.
RIFERIMENTI
- QGIS : https://www.qgis.org/it/site/
- HfcQGIS : https://hfcqgis.opendatasicilia.it/
- HfcQGIS Gruppo Maps : https://hfcqgis.opendatasicilia.it/gr_funzioni/maps/maps_unico/
- OpenStreetMap Data Extracts : https://download.geofabrik.de/
- OSM Isole : https://download.geofabrik.de/europe/italy/isole.html
Se il blog post vi è piaciuto cliccate su ‘Mi piace’, grazie!!!
if you liked the blog post click on ‘Like’, thank you !!!
Grazie mille! un’altra cosa nuova ed utile!
"Mi piace"Piace a 1 persona
Grazie Luca
"Mi piace""Mi piace"