Som du kanske läste i ett tidigare inlägg så har jag en katalog med över 1’800 NetCDF filer som är lite krångliga att hantera, när man inte har full kontroll på vilken fil som är geografiskt placerad var.
Tänk om det var enkelt att skapa ett geografiskt index över alla dessa filer, så att man kan visa detta i QGIS och från det välja de rasterfiler man vill använda.
Tack och lov så är lösningen inte alls komplicerad, och jag behöver inte ens öppna QGIS för att fixa det grundläggande.
I ett terminalfönster så går jag till katalogen där alla mina filer finns och kör ett kommando.
gdaltindex -f GPKG ASTGTMV003_index.gpkg *.nc
Detta kommando tar en sekund att köra (!) och skapar en indexfil (ASTGTMV003_index.gpkg) baserat på alla filer på sökvägen som slutar med *.nc. Och ja, du kan välja andra format än geopackage om du vill. Alla filerna är i WGS-84, men om man har filer i olika projektioner så kan man lägga till växeln -t_srs EPSG:4326 vilket kommer att göra om alla täckningspolygoner till den angivna projektionen. Om man vill ha med ett attribut i tabellen för vilken projektion som varje raster har så kan man också lägga till -src_srs_name Namn.
Om man vill ha den absoluta sökvägen till varje fil i tabellen kan man lägga till -write_absolute_path. Om man inte gör det så sparas filnamnen exakt som de anges i kommandot. (Jag har använt denna växel i mitt exempel nedan)
I mitt fall så skapas en fil med följande utseende.
Om man använder absoluta sökvägar, eller om man kompletterar med aktuell sökväg, så kan man skapa ett verktyg som körs och laddar önskat raster automatiskt när man klickar på en ruta.
raster_path = "[%location%]"
raster_layer = QgsRasterLayer(raster_path)
QgsProject.instance().addMapLayer(raster_layer)
Ovanstående ”action” gör att jag markerar indexlagret, väljer ”Action” verktyget, sedan är det bara för mig att klicka där jag vill ha höjddata inläst. Höjddatafilen läses in automatiskt och visas i QGIS. Supersmidigt.