Menu

SAGA GPP material flux

2023-08-13
2023-08-15
  • Kerry Leith

    Kerry Leith - 2023-08-13

    Hi Volker,

    Thanks for putting the GPP tool together, we're finding it really useful for regional scale landslide impact assessments. Recently, we've employed it to assess the influence of Tropical Cyclone Gabrielle on the North Island of New Zealand. In case you're interested, there's a link to a USGS presentation with some model results here: https://youtu.be/9zmAGiTIEU4

    Looking ahead, we hope to employ the GPP model for risk assessments. Along with the layer you've recently added to monitor source cells that contribute to endangered infrastructure (which will be an awesome addition, when I have time to figure out how to use it), the risk to infrastructure is also a function of the flux of material passing it's location (lots of material transitioning, high risk, less material transitioning, less risk).

    As explained in your 2007 paper, and this forum post, https://sourceforge.net/p/saga-gis/discussion/354013/thread/c5e6208d89/?limit=25 it's my understanding that the ProcessArea output provides a record of how many times a pixel counts a transition. As the number of releases from each source cell is independent of the material thickness, a source with zero material will therefore contribute as many transitions to the ProcessArea as an adjacent source with a greater material thickness.

    I wonder if it's possible to include a materialFlux output grid as an optional output? I had a look at the code, and I think adding the section below to the .cpp should be the basis for the change, but I'm not sure how to integrate it. Is it possible for you to implement this (I'm completely new to SourceForge, and have no idea how the system works)?

    Thanks a lot for the awesome tool,
    Kerry

    m_pFlux         = Parameters("FLUX")->asGrid();         m_pFlux->Assign(0.0);
    
    
    //---------------------------------------------------------
    void CGPP_Model_BASE::Calc_Path_Flux(CGPP_Model_Particle *pParticle)
    {
        //---------------------------------------------------------
        // no flux if no material is left over
    
        if(pParticle->Get_Material() <= 0.0 )
        {
            return;
        }
    
        dFlux = pParticle->Get_Material();
    
        m_pFlux->Add_Value(pParticle->Get_X(), pParticle->Get_Y(), dFlux/m_iIterations);
    
        return;
    }
    
     

    Last edit: Kerry Leith 2023-08-13
  • Volker Wichmann

    Volker Wichmann - 2023-08-14

    Hi Kerry,

    thanks for sharing the presentation! It's always nice to see how the model is used.

    I've now implemented the (optional) output of a material flux grid, see
    https://sourceforge.net/p/saga-gis/code/ci/03126dd75374c47d06eef97732a72ddf17076309/

    If you are not compiling the sources yourself this will be available with the next (autumn) release of SAGA.

    Regarding the endangered infrastructure: if you have a vector layer with endangered objects, just create a new "object class" attribute and label your different infrastructures with identifiers matching the powers of ten (1, 10, 100, ...). Then convert the vector layer (using the object class as grid values) to a grid. Using such a grid will show which object classes have been hit from a start cell. For example, if the "Endangered Objects" grid labels a start cells with "101", this means that from that cell two types of infrastructure (classes 1 and 100) have been hit.

    Looking forward to see this in action,
    best regards,
    Volker

     
  • Kerry Leith

    Kerry Leith - 2023-08-15

    Thanks Volker,

    That's amazingly quick!

    I'll be away for the next few weeks, but will take a look at compiling a version from source when I get back. Will let you know how I get on.

    Best,
    Kerry

     

Log in to post a comment.