Landslide Science Rule · creep_behavior
← All rules

creep_behavior → writes creep_behavior

1556 already match 0 would change

Function source

This is read live from inventory/derived.py via inspect.getsource(); what you see is exactly what runs.

def compute_creep_behavior(row):
    """The creep-evidence label observed for this landslide.

    The two Planet flags work as a pair, not a simple severity ranking:
      - `planet_labs_creep` says "creep is apparent in Planet imagery"
      - `planet_labs_patchy_creep` is a refinement: "the creep is patchy,
        not uniform across the landslide"

    Conceptually, "obvious creep" is the broader / stronger assertion
    (the whole feature is moving). The patchy flag, when set, *overrides*
    that interpretation to say "actually it's only patchy" — so in the
    compositional rule the patchy flag wins. The order below reflects
    that override semantics:

      1. planet_labs_patchy_creep   → 'Patchy obvious creep'
         (more specific call; supersedes plain obvious when both are set)
      2. planet_labs_creep          → 'Obvious creep'
      3. its_live_creep             → 'Obvious creep'
      4. insar_creep                → 'Subtle creep'
      5. other_subtle_creep is set  → 'Subtle creep'
      6. geomorph_creep             → 'Geomorph creep'
      7. creep_evaluated is TRUE    → 'Cryptic'
         (record was reviewed for precursors and none were found — a
         deliberate null finding, distinct from records where
         creep_evaluated is FALSE which simply means no review yet)
      8. otherwise                  → None

    `its_live_creep` (added 2026-10-06, Hig) says the motion shows in the
    ITS_LIVE feature-tracking velocity fields, and qualifies the landslide
    as 'Obvious creep' — a second, independent route to that label beside
    `planet_labs_creep`, not a label of its own. The patchy flag still
    wins over it, exactly as it does over the plain Planet flag. That
    ordering was not asked for; it is the reading that leaves the existing
    override alone (patchy is the more specific statement about how much
    of the feature moves). Swap steps 1 and 3 if ITS_LIVE should outrank it.

    Feeds into `landslide_class`, which prefixes the label with 'Slow '
    or 'Catastrophic '. The `creep_evaluated` boolean is human-set in
    the data-entry UI and is not itself a rule output.
    """
    if row.get('planet_labs_patchy_creep'):
        return 'Patchy obvious creep'
    if row.get('planet_labs_creep') or row.get('its_live_creep'):
        return 'Obvious creep'
    if row.get('insar_creep'):
        return 'Subtle creep'
    if (row.get('other_subtle_creep') or '').strip():
        return 'Subtle creep'
    if row.get('geomorph_creep'):
        return 'Geomorph creep'
    if row.get('creep_evaluated'):
        return 'Cryptic'
    return None

Proposed changes

All rows already match this rule — nothing to apply.