Skip to content
  • ContinuousField
  • class Esri::ArcGISRuntime::ContinuousField

    Continuous floating-point values associated with each point across a two-dimensional (x, y) extent. More...

    Header: #include <ContinuousField.h>
    Since: Esri::ArcGISRuntime 300.0
    Inherits: Esri::ArcGISRuntime::Object

    Public Functions

    virtual ~ContinuousField() override
    QFuture<QStringList> exportToFilesAsync(const QString &outputDirectory, const QString &filenamesPrefix)
    Esri::ArcGISRuntime::Envelope extent() const

    Static Public Members

    QFuture<Esri::ArcGISRuntime::ContinuousField *> createFromFilesAsync(const QStringList &filePaths, int band, QObject *parent = nullptr)
    QFuture<Esri::ArcGISRuntime::ContinuousField *> createFromFilesAsync(const QStringList &filePaths, int band, const Esri::ArcGISRuntime::SpatialReference &spatialReference, QObject *parent = nullptr)

    Detailed Description

    Continuous fields represent phenomena that vary continuously across the two-dimensional extent. For example, a field in which each location is an interpolated measure of a phenomenon. Continuous data is also referred to as nondiscrete, or surface data.

    Examples of continuous fields include:

    • Elevation
    • Temperature
    • Pollutant concentration
    • Aspect
    • Probability of visibility

    One type of continuous field is derived from those characteristics that define a surface, in which each location is measured from a fixed origin. These include elevation (the fixed origin being sea level) and aspect (the fixed origin being direction: north, east, south, and west).

    Another type of continuous field includes phenomena that progressively vary as they move across a field from a source. Illustrations of progressively varying continuous data are fluid and air movement. These fields are characterized by the type or manner in which the phenomenon moves. The first type of movement is through diffusion or any other locomotion in which the phenomenon moves from areas with high concentration to those with less concentration until the concentration level evens out. Surface characteristics of this type of movement include salt concentration moving through either the ground or water, contamination level moving away from a hazardous spill or a nuclear reactor, and heat from a forest fire. In this type of continuous surface, there has to be a source. The concentration is always greater near the source and diminishes as a function of distance and the medium the substance is moving through.

    Relevant samples:

    • Apply map algebra: Apply map algebra to an elevation raster to floor, mask, and categorize the elevation values into discrete integer-based categories.

    See also BooleanField, DiscreteField, ContinuousFieldFunction, and ContinuousFieldFunction::evaluateAsync.

    Member Function Documentation

    [override virtual noexcept] ContinuousField::~ContinuousField()

    Destructor.

    [static] QFuture<Esri::ArcGISRuntime::ContinuousField *> ContinuousField::createFromFilesAsync(const QStringList &filePaths, int band, QObject *parent = nullptr)

    Create a continuous field from one or more raster files.

    • filePaths - One or more raster file paths.
    • band - Zero-based index identifying a raster band.
    • parent - The optional parent.

    The field will be in the spatial reference of the first raster file.

    There will be an error if creation of a ContinuousField is unsuccessful.

    This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.

    See Working with QFuture for further details.

    See also exportToFilesAsync(const QString&, const QString&) and TransformationCatalog::transformationsBySuitability.

    [static] QFuture<Esri::ArcGISRuntime::ContinuousField *> ContinuousField::createFromFilesAsync(const QStringList &filePaths, int band, const Esri::ArcGISRuntime::SpatialReference &spatialReference, QObject *parent = nullptr)

    Creates a continuous field from one or more raster files.

    • filePaths - One or more raster file paths.
    • band - Zero-based index identifying a raster band.
    • spatialReference - The spatial reference into which to project the raster content.
    • parent - The optional parent.

    If no spatial reference is given, the spatial reference of the first raster file is used.

    If a spatial reference is given, the raster content is projected into that spatial reference using the most suitable transformation available. Projection transforms only the horizontal coordinate system, not the field values.

    Supports reading of all raster pixel types except 64-bit float. Returns an error if creation of a ContinuousField is unsuccessful.

    This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.

    See Working with QFuture for further details.

    See also exportToFilesAsync(const QString&, const QString&) and TransformationCatalog::transformationsBySuitability.

    QFuture<QStringList> ContinuousField::exportToFilesAsync(const QString &outputDirectory, const QString &filenamesPrefix)

    Exports the ContinuousField to files in geoTIFF format.

    • outputDirectory - The location of the exported files.
    • filenamesPrefix - The filename prefix of the exported files.

    This enables a ContinuousField to be saved, persisted, and shared.

    Regardless of the original data format:

    • A ContinuousField is always exported as 32-bit floating point data
    • A value of -3e38F is used to represent NoData in the exported files

    Small spatial fields are saved as a single file named outputDirectory/filenamesPrefix.tiff. Large spatial fields will be saved as multiple files using the following naming convention: outputDirectory/filenamesPrefix_0.tiff, outputDirectory/filenamesPrefix_1.tiff, ..., outputDirectory/filenamesPrefix_N.tiff. The decision to save a field as multiple files is automatic and depends on the amount of information contained within the field and the memory resources available on the host device. The .tiff extension is automatically appended to each file name.

    The output directory is expected to exist and have appropriate write permissions. There should be no existing files at the export location.

    To read a ContinuousField from files created by this method, use createFromFilesAsync(const QStringList&, int, const Esri::ArcGISRuntime::SpatialReference&, QObject*) with the paths returned from this method and a band identifier of 0.

    An error is returned if file export is unsuccessful.

    This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.

    See Working with QFuture for further details.

    See also createFromFilesAsync(const QStringList&, int, const Esri::ArcGISRuntime::SpatialReference&, QObject*).

    Esri::ArcGISRuntime::Envelope ContinuousField::extent() const

    Returns the extent of the continuous field.

    An extent may be empty, indicating there is no data across the two-dimensional space. This may occur when performing operations on two spatial fields that do not intersect.

    See also Geometry::isEmpty.

    Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.