I file CSV sono file di testo con colonne separati da virgola e senza definizione dei campi, cioè tutti i campi sono testo.
Spesso i CSV contengono campi con valori String (testo), valori Integer (numeri interi), valori Real (virgola mobile) e risulta molto utile poterli utilizzare, per esempio in QGIS, con la reale definizione del campo.
Un modo per far capire a QGIS il tipo di campo di un CSV è tramite la definizione del file gemello del CSV, cioè il file CSVT; è un file che ha stesso nome del file CSV, cambia solo l’estensione. Questo file contiene solo una riga che definisce il tipo di campo (String, Integer, Real).
Un altro modo molto elegante, soprattutto utilizzando file CSV remoti, è attraverso la definizione di un Virtual File Format.
Vediamo un pratico esempio
Qui è presente un file CSV, cosi strutturato:
se importato, come testo delimitato, QGIS tenta di interpretare i campi e il risultato è il seguente:

cioè, il campo cod_ISTAT
viene interpretato come numerico. Questo potrebbe comportare dei problemi se volessimo, successivemente, fare una Join tabellare.
Per ovviare a tale problema e forzare il tipo di campo, basta utilizzare un file standard OGR, cioè un vrt cosi definito:
<OGRVRTDataSource>
<OGRVRTLayer name="pop_res_regioni_ISTAT20190101">
<SrcDataSource relativeToVRT="0">/vsicurl/https://gist.githubusercontent.com/pigreco/bc22970f613b4c8682cffa2267853c92/raw/ac512c116700fcb4ce981c77e19d62e0275d1094/pop_res_regioni_ISTAT20190101.csv</SrcDataSource>
<Field name="cod_ISTAT" type="String" />
<Field name="regione" type="String" />
<Field name="pop_res2019" type="Integer" />
</OGRVRTLayer>
</OGRVRTDataSource>
questo file (pop_res_regioni_ISTAT20190101.vrt
) può essere importato in QGIS in vari modi, tramite dragAndDrop oppure con il provider HTTPS:

e il file viene visto nel modo corretto:
NOTE FINALI: GDAL/OGR uno strumento indispensabile!
Riferimenti
- Virtual File Format : https://gdal.org/drivers/vector/vrt.html#virtual-file-format
- CSV : https://it.wikipedia.org/wiki/Comma-separated_values
- CSVT : https://anitagraser.com/2011/03/07/how-to-specify-data-types-of-csv-columns-for-use-in-qgis/
- QGIS : https://qgis.org/it/site/
- GIST by Andrea: https://gist.github.com/aborruso/93507e0baf8db0aceef9f15b45692560
Ringraziamenti
- Andrea Borruso : https://twitter.com/aborruso
- La comunità GDAL/OGR : https://gdal.org/