QGIS/python/core/auto_generated/raster/qgsrasterlayerelevationproperties.sip.in
Nyall Dawson 4383a3a225 Add "dynamic elevation range per band" mode for rasters
In this mode, the user can specify a QGIS expression for the
lower and upper value corresponding to raster bands, using
variables like @band, @band_name and @band_description.

E.g

    @band * 100

Can be used when each band represents a 100 m vertical slice
of data.

The expression will be evaluated when required to determine
the actual elevation range corresponding to each band.

This differs from the existing "Fixed Elevation Range Per Band"
mode in that "Fixed Elevation Range Per Band" requires users
to manually enter an elevation for each band separately,
and these values are then treated as constants. That mode works
best for rasters with non-regular steps in the band
elevation values, while this new mode is better for regular
band elevation steps
2024-03-21 12:33:33 +01:00

297 lines
8.9 KiB
Plaintext

/************************************************************************
* This file has been generated automatically from *
* *
* src/core/raster/qgsrasterlayerelevationproperties.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/
class QgsRasterLayerElevationProperties : QgsMapLayerElevationProperties
{
%Docstring(signature="appended")
Raster layer specific subclass of :py:class:`QgsMapLayerElevationProperties`.
.. versionadded:: 3.26
%End
%TypeHeaderCode
#include "qgsrasterlayerelevationproperties.h"
%End
public:
QgsRasterLayerElevationProperties( QObject *parent /TransferThis/ );
%Docstring
Constructor for QgsRasterLayerElevationProperties, with the specified ``parent`` object.
%End
~QgsRasterLayerElevationProperties();
virtual bool hasElevation() const;
virtual QDomElement writeXml( QDomElement &element, QDomDocument &doc, const QgsReadWriteContext &context );
virtual bool readXml( const QDomElement &element, const QgsReadWriteContext &context );
virtual QgsRasterLayerElevationProperties *clone() const /Factory/;
virtual QString htmlSummary() const;
virtual bool isVisibleInZRange( const QgsDoubleRange &range, QgsMapLayer *layer = 0 ) const;
virtual QgsDoubleRange calculateZRange( QgsMapLayer *layer ) const;
virtual bool showByDefaultInElevationProfilePlots() const;
virtual QgsMapLayerElevationProperties::Flags flags() const;
bool isEnabled() const;
%Docstring
Returns ``True`` if the elevation properties are enabled, i.e. the raster layer values represent an elevation surface.
.. seealso:: :py:func:`setEnabled`
%End
void setEnabled( bool enabled );
%Docstring
Sets whether the elevation properties are enabled, i.e. the raster layer values represent an elevation surface.
.. seealso:: :py:func:`isEnabled`
%End
Qgis::RasterElevationMode mode() const;
%Docstring
Returns the elevation mode.
.. seealso:: :py:func:`setMode`
.. versionadded:: 3.38
%End
void setMode( Qgis::RasterElevationMode mode );
%Docstring
Sets the elevation ``mode``.
.. seealso:: :py:func:`mode`
.. versionadded:: 3.38
%End
int bandNumber() const;
%Docstring
Returns the band number from which the elevation should be taken.
.. note::
This is only considered when :py:func:`~QgsRasterLayerElevationProperties.mode` is :py:class:`Qgis`.RasterElevationMode.RepresentsElevationSurface.
.. seealso:: :py:func:`setBandNumber`
%End
void setBandNumber( int band );
%Docstring
Sets the ``band`` number from which the elevation should be taken.
.. note::
This is only considered when :py:func:`~QgsRasterLayerElevationProperties.mode` is :py:class:`Qgis`.RasterElevationMode.RepresentsElevationSurface.
.. seealso:: :py:func:`bandNumber`
%End
QgsDoubleRange fixedRange() const;
%Docstring
Returns the fixed elevation range for the raster.
.. note::
This is only considered when :py:func:`~QgsRasterLayerElevationProperties.mode` is :py:class:`Qgis`.RasterElevationMode.FixedElevationRange.
.. note::
When a fixed range is set any :py:func:`~QgsRasterLayerElevationProperties.zOffset` and :py:func:`~QgsRasterLayerElevationProperties.zScale` is ignored.
.. seealso:: :py:func:`setFixedRange`
.. versionadded:: 3.38
%End
void setFixedRange( const QgsDoubleRange &range );
%Docstring
Sets the fixed elevation ``range`` for the raster.
.. note::
This is only considered when :py:func:`~QgsRasterLayerElevationProperties.mode` is :py:class:`Qgis`.RasterElevationMode.FixedElevationRange.
.. note::
When a fixed range is set any :py:func:`~QgsRasterLayerElevationProperties.zOffset` and :py:func:`~QgsRasterLayerElevationProperties.zScale` is ignored.
.. seealso:: :py:func:`fixedRange`
.. versionadded:: 3.38
%End
QMap<int, QgsDoubleRange> fixedRangePerBand() const;
%Docstring
Returns the fixed elevation range for each band.
.. note::
This is only considered when :py:func:`~QgsRasterLayerElevationProperties.mode` is :py:class:`Qgis`.RasterElevationMode.FixedRangePerBand.
.. note::
When a fixed range is set any :py:func:`~QgsRasterLayerElevationProperties.zOffset` and :py:func:`~QgsRasterLayerElevationProperties.zScale` is ignored.
.. seealso:: :py:func:`setFixedRangePerBand`
.. versionadded:: 3.38
%End
void setFixedRangePerBand( const QMap<int, QgsDoubleRange> &ranges );
%Docstring
Sets the fixed elevation range for each band.
.. note::
This is only considered when :py:func:`~QgsRasterLayerElevationProperties.mode` is :py:class:`Qgis`.RasterElevationMode.FixedRangePerBand.
.. note::
When a fixed range is set any :py:func:`~QgsRasterLayerElevationProperties.zOffset` and :py:func:`~QgsRasterLayerElevationProperties.zScale` is ignored.
.. seealso:: :py:func:`fixedRangePerBand`
.. versionadded:: 3.38
%End
QgsDoubleRange elevationRangeForPixelValue( QgsRasterLayer *layer, int band, double pixelValue ) const;
%Docstring
Returns the elevation range corresponding to a raw pixel value from the specified ``band``.
Returns an infinite range if the pixel value does not correspond to an elevation value.
.. versionadded:: 3.38
%End
int bandForElevationRange( QgsRasterLayer *layer, const QgsDoubleRange &range ) const;
%Docstring
Returns the band corresponding to the specified ``range``.
.. note::
This is only considered when :py:func:`~QgsRasterLayerElevationProperties.mode` is :py:class:`Qgis`.RasterElevationMode.FixedRangePerBand or
:py:class:`Qgis`.RasterElevationMode.DynamicRangePerBand. For other modes it will always return -1.
.. versionadded:: 3.38
%End
QgsLineSymbol *profileLineSymbol() const;
%Docstring
Returns the line symbol used to render the raster profile in elevation profile plots.
.. seealso:: :py:func:`setProfileLineSymbol`
%End
void setProfileLineSymbol( QgsLineSymbol *symbol /Transfer/ );
%Docstring
Sets the line ``symbol`` used to render the raster profile in elevation profile plots.
Ownership of ``symbol`` is transferred to the plot.
.. seealso:: :py:func:`profileLineSymbol`
%End
QgsFillSymbol *profileFillSymbol() const;
%Docstring
Returns the fill symbol used to render the raster profile in elevation profile plots.
.. seealso:: :py:func:`setProfileFillSymbol`
%End
void setProfileFillSymbol( QgsFillSymbol *symbol /Transfer/ );
%Docstring
Sets the fill ``symbol`` used to render the raster profile in elevation profile plots.
Ownership of ``symbol`` is transferred to the plot.
.. seealso:: :py:func:`profileFillSymbol`
%End
Qgis::ProfileSurfaceSymbology profileSymbology() const;
%Docstring
Returns the symbology option used to render the raster profile in elevation profile plots.
.. seealso:: :py:func:`setProfileSymbology`
%End
void setProfileSymbology( Qgis::ProfileSurfaceSymbology symbology );
%Docstring
Sets the ``symbology`` option used to render the raster profile in elevation profile plots.
.. seealso:: :py:func:`setProfileSymbology`
%End
double elevationLimit() const;
%Docstring
Returns the elevation limit, which is used when :py:func:`~QgsRasterLayerElevationProperties.profileSymbology` is
:py:class:`Qgis`.ProfileSurfaceSymbology.FillBelow or :py:class:`Qgis`.ProfileSurfaceSymbology.FillAbove
to limit the fill to a specific elevation range.
By default this is NaN, which indicates that there is no elevation limit.
.. seealso:: :py:func:`setElevationLimit`
.. versionadded:: 3.32
%End
void setElevationLimit( double limit );
%Docstring
Sets the elevation ``limit``, which is used when :py:func:`~QgsRasterLayerElevationProperties.profileSymbology` is
:py:class:`Qgis`.ProfileSurfaceSymbology.FillBelow or :py:class:`Qgis`.ProfileSurfaceSymbology.FillAbove
to limit the fill to a specific elevation range.
Set to NaN to indicate that there is no elevation limit.
.. seealso:: :py:func:`elevationLimit`
.. versionadded:: 3.32
%End
static bool layerLooksLikeDem( QgsRasterLayer *layer );
%Docstring
Returns ``True`` if a raster ``layer`` looks like a DEM.
This method applies some heuristics to ``layer`` to determine whether it looks like a candidate
for a DEM layer.
Specifically, it checks:
- the layer's name for DEM-like wording hints
- whether the layer contains a single band
- whether the layer contains an attribute table (if so, it's unlikely to be a DEM)
- the layer's data type
.. versionadded:: 3.32
%End
};
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/raster/qgsrasterlayerelevationproperties.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/