Gegevens CSV en TIFF bestand combineren

Hallo allemaal,

Wij maken geurmodellen via IMPACT en laden de gemaakte modellen in QGIS als TIFF-bestanden om de geurcontouren te visualiseren. In de gemaakte geurcontour willen we nagaan wat de geurconcentratie is per woning. Om dit te doen, laden we een CSV-bestand met alle x- en y-coördinaten en de huisnummers van de woningen. Via objecten visualiseren kunnen we per woning nagaan wat de geurconcentratie is. Echter is dit niet efficiënt.

We hebben geprobeerd de waarden van de CSV (de huisnummers) en de waarden van het TIFF-bestand (geurconcentratie) te combineren, maar we vinden niet hoe. Vermoedelijk zijn er verschillende mogelijkheden, maar we lopen telkens vast.
We dachten aan volgende mogelijkheden:

  • Attributentabel van de CSV uitbreiden met een extra kolom, namelijk de geurconcentratie
  • Meerdere objecten met een polygoon selecteren

Vaak worden er meerdere geurmodellen gemaakt (vergunde situatie, gewenste situatie 1, 2,…). Is het mogelijk om deze verschillende geurmodellen naast elkaar weer te geven voor hetzelfde huisnummer, zodat de verschillen tussen de modellen duidelijk zichtbaar zijn?

Zouden jullie ons kunnen helpen hoe we dit best aanpakken?
Alvast een dikke merci!

Hoi Sara, als ik je goed begrijp wil je met één puntenlaag meerdere raster lagen sampelen en de gesampelde waarde op te slaan in de puntenlaag.

Dit kan door met een stukje Python code in QGIS de Sample raster values processing tool voor elke rasterlaag/geurmodel een keer aan te roepen:

point_lyr = QgsProject.instance().mapLayersByName('csv')[0]
layers = QgsProject.instance().mapLayers()

result_lyr = None
for layer_id, layer in layers.items():
    layer_name = layer.name()
    if layer_name.startswith("model_"):
        raster_lyr = QgsProject.instance().mapLayersByName(layer_name)[0]
        input_lyr = point_lyr       
        if result_lyr:
            input_lyr = result_lyr
        # COLUMN_PREFIX - because if multiple bands per raster, all bands are sample and additional attribute added
        params = {
        'COLUMN_PREFIX': f"{layer_name}_",
        'INPUT' : input_lyr,
        'OUTPUT' : 'TEMPORARY_OUTPUT',
        'RASTERCOPY' : raster_lyr}
        result = processing.run('native:rastersampling', params)
        result_lyr = result['OUTPUT']

QgsProject.instance().addMapLayer(result_lyr)

Zie het resultaat in de volgende screenshot:

Ik heb een testopzetje in QGIS draaien, als je interesse hebt kan ik een zip file van het project sturen (inclusief de test data).

Dag Anton, klopt inderdaad. Bedankt!

1 like