An operation that can be performed on one or more rasters or a mosaic dataset by applying on-the-fly processing. More...
Header: | #include <RasterFunction.h> |
Since: | Esri::ArcGISRuntime 100.0 |
Inherits: | Esri::ArcGISRuntime::Object |
Public Functions
RasterFunction(const QString &path, QObject *parent = nullptr) | |
virtual | ~RasterFunction() override |
Esri::ArcGISRuntime::RasterFunctionArguments * | arguments() const |
Static Public Members
Esri::ArcGISRuntime::RasterFunction * | fromJson(const QString &json, QObject *parent = nullptr) |
Detailed Description
Examples of RasterFunctions include Hillshade, Stretch, Colormap, Mask, and ShadedRelief, among others.
RasterFunctions in ArcGIS Maps SDK work very similarly to the ArcGIS REST API. The following workflow is a common way to render a raster using a raster function:
- Create a raster function via JSON. For example, the following JSON could be used for a Pansharpen function:
{ "raster_function":{"type":"Pansharpen_function"}, "raster_function_arguments": { "weights":{"double_array":[0.10000000000000001,0.5,0.40000000000000002,0.29999999999999999],"type":"Raster_function_variable"}, "pansharpen_type":{"pansharpen_type":"gram_schmidt","type":"Raster_function_variable"}, "pan_raster":{"name":"pan_raster","is_raster":true,"type":"Raster_function_variable"}, "raster":{"name":"raster","is_raster":true,"type":"Raster_function_variable"}, "type":"Raster_function_arguments" }, "type":"Raster_function_template" }
For documentation on this API's JSON format and syntax for the different raster functions, please see the Guide topic Add raster data.
- Construct a RasterFunction object with the JSON created in step 1.
- Get the RasterFunctionArguments with arguments.
- Add rasters to the RasterFunctionArguments.
- Create a new Raster object with this RasterFunction.
- Create a new RasterLayer with the Raster object.
- Add the RasterLayer to a map or scene.
For further details on raster functions, please see the ArcGIS Desktop documentation.
Use an ImageServiceRaster as an argument for a raster function:
RasterFunction* rasterFunction = new RasterFunction(m_dataPath + "/hillshade_simplified.json", this); RasterFunctionArguments* arguments = rasterFunction->arguments(); arguments->setRaster("raster", m_imageServiceRaster); // create a new raster with the raster function and add to the operational layer Raster* raster = new Raster(rasterFunction, this); RasterLayer* rasterLayer = new RasterLayer(raster, this);
Relevant samples:
- Raster function (file): Apply a raster function to a local raster file and display the output with a raster layer.
- Raster function (service): Load a raster from a service, then apply a function to it.
Member Function Documentation
[explicit]
RasterFunction::RasterFunction (const QString &path, QObject *parent = nullptr)
Constructor that takes a path to a local JSON file and an optional parent.
[override virtual]
RasterFunction::~RasterFunction ()
Destructor.
Esri::ArcGISRuntime::RasterFunctionArguments *RasterFunction::arguments() const
Returns the arguments of this raster function.
[static]
Esri::ArcGISRuntime::RasterFunction *RasterFunction::fromJson (const QString &json, QObject *parent = nullptr)
Creates a new RasterFunction from its JSON representation.
- json - The JSON text.
- parent - The optional parent.