Status of LUE

File format

TODO

Modelling operations

Currently, PCRaster contains implementations of more modelling operations than LUE. Over time more operations will be added to LUE. Here we compare the list of PCRaster operations with the current set of operations implemented in LUE. When planning to port a PCRaster model to LUE, it is a good idea to compare the information in the next table with the operations used by the model.

Here we only mention LUE operations that implement an operation that is also in PCRaster. LUE also contains other operations, not listed here.

If an operation used in a PCRaster model is not available in LUE yet, it is a good idea to report it to the project team. Various factors determine the order in which operations are added to the LUE framework. The number of model developers requesting one is one of them.

Note

A LUE operation that implements an operation that is also in PCRaster may be different from the PCRaster operation. It may be named different, it may accept different arguments, or accept them in a different order. We provide a special module that can be used to quickly port PCRaster model by hiding these differences as much as possible.

Legend

LUE supports this PCRaster operation, or an operation like it.
It may be that the LUE operation is named differently, that it
supports different parameters, or that it accepts parameters in
a different order.

This PCRaster operations is not considered yet. It may be in the future.

🗑

This PCRaster operation is considered, but skipped. See notes for reason.

1, 2, 3

Guesstimate of the amount of effort required to add it:
1 little, 2 somewhat, 3 serious.
This is only relevant for operations that have not been added yet.
Status of LUE operations vs PCRaster operations

PCRaster

LUE

Notes

+

-

/ or div

div is only part of lue.pcraster

*

**

abs

abs with non-spatial expression is not available

accucapacityflux
accucapacitystate

1

accuflux

not yet in Python package
accuflux with non-spatial material is not available
accufractionflux
accufractionstate

accu_fraction
accu_fraction with non-spatial material and non-spatial
transport fraction is not available
accuthresholdflux
accuthresholdstate

accu_threshold3
accu_threshold with non-spatial material and non-spatial
threshold is not available
accutriggerflux
accutriggerstate

1

accutraveltimestate
accutraveltimeflux
accutraveltimeremoved

2

accutraveltimefractionstate
accutraveltimefractionflux
accutraveltimefractionremoved

2

acos

and, &, pcrand

argorder
argorderwithid

?

argorderaddarealimited
argorderwithidaddarealimited

?

argorderarealimited
argorderwithidarealimited

?

areaarea

zonal_area
Returns the number of cells per class

areaaverage

zonal_mean

areadiversity

zonal_diversity

areamajority

zonal_majority

areamaximum

zonal_maximum

areaminimum

zonal_minimum

areanormal

zonal_normal

areaorder

1

areatotal

zonal_sum

areauniform

zonal_uniform
Returned values are in range [0, 1)

asin

aspect

atan

boolean

boolean with non-spatial argument
is not available

catchment

2

catchmenttotal

1

cellarea

1

celllength

1

clump

1

cos

cover

1

defined

directional

🗑

LUE currently does not support value scales.

downstream

downstreamdist

dynwavestate
dynwaveflux
lookuppotential
lookupstate

3

dynamicwave

3

eq or ==

exp

extentofview

2

fac

1

ge or >=

gt or >

horizontan

1

idiv, //

1

if then

if then else

influencesimplegauss

?

inversedistance

2

kinematic

kinematic_wave
The nrTimeSlices argument is removed.
Negative values for the the discharge, lateral
inflow and channel length arguments result in
no-data values in the result (Github issue 524)
kinwavestate
kinwaveflux

?

ldd

🗑

LUE currently does not support value scales.

lddcreate

The operation assumes the DEM passed in is sound:
depressions are filled and flats are handled.

lddcreatedem

3

ldddist

2

lddmask

2

lddrepair

2

le or <=

ln

log

log10

lookup

?

lookuplinear

?

lookupmapstack

?

lt or <

maparea

1

mapmaximum

mapminimum

mapnormal

1

maptotal

mapuniform

1

markwhilesumle
markwhilesumge

2

max

1

min

1

mod, %

1

ne or !=

nodirection

1

nominal

normal

1

not
~
pcrnot

or
|
pcror

order

? Idea is easy, parallel implementation seems not.

ordinal

path

2

pit

1

plancurv

2

pred

🗑

Not sure why this is useful…

profcurv

2

rounddown

floor

roundoff

round

roundup

ceil

scalar

shift
shift0

🗑

Not sure why this is useful…

sin

slope

slopelength

3

spatial

spread

3

spreadldd

3

spreadlddzone

3

spreadmax

3

spreadmaxzone

3

spreadzone

3

sqr

Not as an operation. Just use value * value.

sqrt

streamorder

2

subcatchment

3

succ

🗑

Not sure why this is useful…

tan

time

🗑

Things work differently in a LUE C++/Python model.

timeinput…

?

timeinput

?

timeinputmodulo

?

timeinputsparse

?

timeoutput

?

timeslice

?

transient

2

uniform

uniqueid

unique_id

upstream

view

3

window4total

🗑

Not needed, LUE’s focal_mean accepts a custom kernel

windowaverage

focal_mean

windowdiversity

focal_diversity

windowhighpass

focal_high_pass

windowmajority

focal_majority
Note that, unlike in PCRaster, the kernel window is not enlarged
when no unique most frequent value is encountered within the
focal window. In that case, no-data is output.

windowmaximum

focal_maximum

windowminimum

focal_minimum

windowtotal

focal_sum

xcoordinate

🗑

Not sure why this is useful…

xor
^
pcrxor

ycoordinate

🗑

Not sure why this is useful…

Modelling framework

Like PCRaster, LUE contains helper classes for implementing forward numerical simulation models as well. The lue.pcraster.framework sub package contains classes that behave like the PCRaster Python Framework classes, but are implemented in terms of the LUE classes. Not all PCRaster classes have been ported to LUE yet. The next table lists the current status.

Legend

LUE supports this class.
It may be that the LUE class and its member functions are named
differently, that the member functions support different parameters,
or that they accept parameters in a different order.

This PCRaster class is not considered yet. It may be in the future.

🗑

This PCRaster class is considered, but skipped. See notes for reason.

1, 2, 3

Guesstimate of the amount of effort required to add it:
1 little, 2 somewhat, 3 serious.
This is only relevant for classes that have not been added yet.
Status of LUE model development support classes vs PCRaster Python Framework classes

PCRaster

LUE

Notes

StaticModel

Work in progress

StaticFramework

Work in progress

DynamicModel

Work in progress

DynamicFramework

Work in progress

MonteCarloModel

MonteCarloFramework

ParticleFilterModel

ParticleFilterFramework

ResidualResamplingFramework

SequentialImportanceResamplingFramework

EnKfModel

EnsKalmanFilterFramework