<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic How to use a raster function? in ArcGIS Runtime SDK for iOS Questions</title>
    <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/how-to-use-a-raster-function/m-p/11633#M125</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I was wondering if anyone had any experience or examples rendering raster functions as a raster layer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Every time I pass a raster function with the mask_function the whole raster isn't shown.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I use a function of the following&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="color: #000000; font-size: 12px;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;{&amp;nbsp; "raster_function":{"type":"Mask_function"},&amp;nbsp; "raster_function_arguments":&amp;nbsp; {&amp;nbsp; &amp;nbsp; "nodata_values":{"double_array":["0.0","1.0","2.0","3.0","4.0","5.0","6.0","7.0","8.0","9.0","10.0","11.0","12.0","13.0","14.0","15.0","16.0","17.0","18.0","19.0","20.0","21.0","22.0","23.0","24.0","25.0","26.0","27.0","28.0","29.0","30.0","31.0","32.0","33.0","34.0","35.0","36.0","37.0","38.0","39.0","40.0","41.0","42.0","43.0","44.0","45.0","46.0","47.0","48.0","49.0","50.0"],"type":"Raster_function_variable"},&amp;nbsp; &amp;nbsp; "nodata_interpretation":{"nodata_interpretation":"all","type":"Raster_function_variable"},&amp;nbsp; &amp;nbsp; "raster":{"name":"raster","is_raster":true,"type":"Raster_function_variable"},&amp;nbsp; &amp;nbsp; "type":"Raster_function_arguments"&amp;nbsp; },"type":"Raster_function_template"}&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have also tried using instead of string values just regular values in the form of [0.0, 1.0, 2.0, ...]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My code looks like the following&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&lt;SPAN style="color: #ba2da2;"&gt;class&lt;/SPAN&gt; &lt;SPAN style="color: #ba2da2;"&gt;func&lt;/SPAN&gt; loadOnlineRasterImage(function: &lt;SPAN style="color: #703daa;"&gt;String&lt;/SPAN&gt;, complete: &lt;SPAN style="color: #ba2da2;"&gt;@escaping&lt;/SPAN&gt; (&lt;SPAN style="color: #4f8187;"&gt;AGSRasterLayer&lt;/SPAN&gt;) -&amp;gt;()) {&lt;/P&gt;&lt;P style="color: #d12f1b; background-color: #ffffff; font-size: 12px;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; x = &lt;/SPAN&gt;&lt;SPAN style="color: #703daa;"&gt;URL&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: #ba2da2;"&gt;init&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;(string: &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2Futility.arcgis.com%2Fusrsvcs%2Fservers%2F11e0cb598d77463cbe3b90d5e53f37d6%2Frest%2Fservices%2FWorldElevation%2FTerrain%2FImageServer" rel="nofollow" target="_blank"&gt;https://utility.arcgis.com/usrsvcs/servers/11e0cb598d77463cbe3b90d5e53f37d6/rest/services/WorldElevation/Terrain/ImageServer&lt;/A&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; imageServiceRaster = &lt;SPAN style="color: #4f8187;"&gt;AGSImageServiceRaster&lt;/SPAN&gt;.&lt;SPAN style="color: #ba2da2;"&gt;init&lt;/SPAN&gt;(url: x!)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; &lt;SPAN style="text-decoration: underline;"&gt;s&lt;/SPAN&gt;erviceInfo = imageServiceRaster.&lt;SPAN style="color: #4f8187;"&gt;serviceInfo&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; renderingRule = &lt;SPAN style="color: #4f8187;"&gt;AGSRenderingRule&lt;/SPAN&gt;(renderingRuleJSON: [&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #d12f1b;"&gt;"rasterFunction"&lt;/SPAN&gt;: function,&lt;/P&gt;&lt;P style="color: #d12f1b; background-color: #ffffff; font-size: 12px;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;"format"&lt;SPAN style="color: #000000;"&gt;:&lt;/SPAN&gt;"jpg"&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ])&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; imageServiceRaster.&lt;SPAN style="color: #4f8187;"&gt;renderingRule&lt;/SPAN&gt; = renderingRule&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; imageServiceRaster.&lt;SPAN style="color: #31595d;"&gt;load&lt;/SPAN&gt; { (error) &lt;SPAN style="color: #ba2da2;"&gt;in&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;if&lt;/SPAN&gt; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; error = error {&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #3e1e81;"&gt;print&lt;/SPAN&gt;(error)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;return&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; rasterFunction = &lt;SPAN style="color: #ba2da2;"&gt;self&lt;/SPAN&gt;.&lt;SPAN style="color: #31595d;"&gt;setRasterfunction&lt;/SPAN&gt;(raster: imageServiceRaster)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; finalRaster = &lt;SPAN style="color: #4f8187;"&gt;AGSRaster&lt;/SPAN&gt;.&lt;SPAN style="color: #ba2da2;"&gt;init&lt;/SPAN&gt;(rasterFunction: rasterFunction)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #3e1e81;"&gt;print&lt;/SPAN&gt;(&lt;SPAN style="color: #d12f1b;"&gt;"nardo"&lt;/SPAN&gt;)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #3e1e81;"&gt;print&lt;/SPAN&gt;(&lt;SPAN style="text-decoration: underline;"&gt;e&lt;/SPAN&gt;rror)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; rasterLayer = &lt;SPAN style="color: #4f8187;"&gt;AGSRasterLayer&lt;/SPAN&gt;(raster: finalRaster)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; complete(rasterLayer)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; }&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #4f8187; background-color: #ffffff; font-size: 12px;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #ba2da2;"&gt;class&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #ba2da2;"&gt;func&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; setRasterfunction(raster: &lt;/SPAN&gt;AGSImageServiceRaster&lt;SPAN style="color: #000000;"&gt;) -&amp;gt; &lt;/SPAN&gt;AGSRasterFunction&lt;SPAN style="color: #000000;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;var&lt;/SPAN&gt; x: [&lt;SPAN style="color: #703daa;"&gt;Double&lt;/SPAN&gt;] = []&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;for&lt;/SPAN&gt; index &lt;SPAN style="color: #ba2da2;"&gt;in&lt;/SPAN&gt; &lt;SPAN style="color: #272ad8;"&gt;0&lt;/SPAN&gt;...&lt;SPAN style="color: #272ad8;"&gt;50&lt;/SPAN&gt; {&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; x.&lt;SPAN style="color: #3e1e81;"&gt;append&lt;/SPAN&gt;(&lt;SPAN style="color: #703daa;"&gt;Double&lt;/SPAN&gt;(index))&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;var&lt;/SPAN&gt; &lt;SPAN style="text-decoration: underline;"&gt;x&lt;/SPAN&gt;x = x.&lt;SPAN style="color: #3e1e81;"&gt;map&lt;/SPAN&gt;({abc -&amp;gt; &lt;SPAN style="color: #703daa;"&gt;String&lt;/SPAN&gt; &lt;SPAN style="color: #ba2da2;"&gt;in&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN style="color: #d12f1b;"&gt;"&lt;/SPAN&gt;\&lt;SPAN style="color: #d12f1b;"&gt;(&lt;/SPAN&gt;abc&lt;SPAN style="color: #d12f1b;"&gt;)"&lt;/SPAN&gt;}).&lt;SPAN style="color: #3e1e81;"&gt;joined&lt;/SPAN&gt;(separator: &lt;SPAN style="color: #d12f1b;"&gt;","&lt;/SPAN&gt;)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #d12f1b; background-color: #ffffff; font-size: 12px;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #ba2da2;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #000000; text-decoration: underline;"&gt;c&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;ontent = &lt;/SPAN&gt;"{&amp;nbsp; \"raster_function\":{\"type\":\"Mask_function\"},&amp;nbsp; \"raster_function_arguments\":&amp;nbsp; {&amp;nbsp; &amp;nbsp; \"nodata_values\":{\"double_array\":[{{replace}}],\"type\":\"Raster_function_variable\"},&amp;nbsp; &amp;nbsp; \"nodata_interpretation\":{\"nodata_interpretation\":\"all\",\"type\":\"Raster_function_variable\"},&amp;nbsp; &amp;nbsp; \"raster\":{\"name\":\"raster\",\"is_raster\":true,\"type\":\"Raster_function_variable\"},&amp;nbsp; &amp;nbsp; \"type\":\"Raster_function_arguments\"&amp;nbsp; },\"type\":\"Raster_function_template\"}"&lt;SPAN style="color: #000000;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: #3e1e81;"&gt;replacingOccurrences&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;(of: &lt;/SPAN&gt;"{{replace}}"&lt;SPAN style="color: #000000;"&gt;, with: xx )&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #3e1e81;"&gt;print&lt;/SPAN&gt;(content)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #4f8187;"&gt;FileUtil&lt;/SPAN&gt;.&lt;SPAN style="color: #31595d;"&gt;writefile&lt;/SPAN&gt;(name: &lt;SPAN style="color: #d12f1b;"&gt;"hi.json"&lt;/SPAN&gt;, content: content&amp;nbsp; )&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; docDir = &lt;SPAN style="color: #ba2da2;"&gt;try&lt;/SPAN&gt;! &lt;SPAN style="color: #703daa;"&gt;FileManager&lt;/SPAN&gt;.&lt;SPAN style="color: #ba2da2;"&gt;default&lt;/SPAN&gt;.&lt;SPAN style="color: #3e1e81;"&gt;url&lt;/SPAN&gt;(for: .&lt;SPAN style="color: #3e1e81;"&gt;documentDirectory&lt;/SPAN&gt;, in: .&lt;SPAN style="color: #703daa;"&gt;userDomainMask&lt;/SPAN&gt;, appropriateFor: &lt;SPAN style="color: #ba2da2;"&gt;nil&lt;/SPAN&gt;, create: &lt;SPAN style="color: #ba2da2;"&gt;true&lt;/SPAN&gt;)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; mapUrl = docDir.&lt;SPAN style="color: #3e1e81;"&gt;appendingPathComponent&lt;/SPAN&gt;(&lt;SPAN style="color: #d12f1b;"&gt;"hi.json"&lt;/SPAN&gt;)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; rasterFunction = &lt;SPAN style="color: #4f8187;"&gt;AGSRasterFunction&lt;/SPAN&gt;(fileURL: mapUrl)&lt;/P&gt;&lt;P style="color: #008400; background-color: #ffffff; font-size: 12px;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;// initialize the arguments of the raster function&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; rasterFunctionArguments = rasterFunction.&lt;SPAN style="color: #4f8187;"&gt;arguments&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #3e1e81;"&gt;print&lt;/SPAN&gt;(rasterFunctionArguments.&lt;SPAN style="color: #703daa;"&gt;debugDescription&lt;/SPAN&gt;)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; rasterNames = rasterFunctionArguments!.&lt;SPAN style="color: #4f8187;"&gt;rasterNames&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #008400; background-color: #ffffff; font-size: 12px;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;// assuming rasterNames has 2 entries, set the 2 rasters&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; rasterFunctionArguments!.&lt;SPAN style="color: #31595d;"&gt;setRaster&lt;/SPAN&gt;(raster, withName: rasterNames[&lt;SPAN style="color: #272ad8;"&gt;0&lt;/SPAN&gt;])&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;return&lt;/SPAN&gt; rasterFunction&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; }&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The first function uses the second function to create a raster function and load it into a new agsraster which is then placed in a layer. I know that the file is properly being written as I've checked it. I'm not sure what I'm doing wrong : \&lt;BR /&gt;&lt;BR /&gt;Does anyone have any working examples or advice?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 31 Jan 2018 08:49:14 GMT</pubDate>
    <dc:creator>BernardoArevalo</dc:creator>
    <dc:date>2018-01-31T08:49:14Z</dc:date>
    <item>
      <title>How to use a raster function?</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/how-to-use-a-raster-function/m-p/11633#M125</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I was wondering if anyone had any experience or examples rendering raster functions as a raster layer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Every time I pass a raster function with the mask_function the whole raster isn't shown.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I use a function of the following&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="color: #000000; font-size: 12px;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;{&amp;nbsp; "raster_function":{"type":"Mask_function"},&amp;nbsp; "raster_function_arguments":&amp;nbsp; {&amp;nbsp; &amp;nbsp; "nodata_values":{"double_array":["0.0","1.0","2.0","3.0","4.0","5.0","6.0","7.0","8.0","9.0","10.0","11.0","12.0","13.0","14.0","15.0","16.0","17.0","18.0","19.0","20.0","21.0","22.0","23.0","24.0","25.0","26.0","27.0","28.0","29.0","30.0","31.0","32.0","33.0","34.0","35.0","36.0","37.0","38.0","39.0","40.0","41.0","42.0","43.0","44.0","45.0","46.0","47.0","48.0","49.0","50.0"],"type":"Raster_function_variable"},&amp;nbsp; &amp;nbsp; "nodata_interpretation":{"nodata_interpretation":"all","type":"Raster_function_variable"},&amp;nbsp; &amp;nbsp; "raster":{"name":"raster","is_raster":true,"type":"Raster_function_variable"},&amp;nbsp; &amp;nbsp; "type":"Raster_function_arguments"&amp;nbsp; },"type":"Raster_function_template"}&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have also tried using instead of string values just regular values in the form of [0.0, 1.0, 2.0, ...]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My code looks like the following&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&lt;SPAN style="color: #ba2da2;"&gt;class&lt;/SPAN&gt; &lt;SPAN style="color: #ba2da2;"&gt;func&lt;/SPAN&gt; loadOnlineRasterImage(function: &lt;SPAN style="color: #703daa;"&gt;String&lt;/SPAN&gt;, complete: &lt;SPAN style="color: #ba2da2;"&gt;@escaping&lt;/SPAN&gt; (&lt;SPAN style="color: #4f8187;"&gt;AGSRasterLayer&lt;/SPAN&gt;) -&amp;gt;()) {&lt;/P&gt;&lt;P style="color: #d12f1b; background-color: #ffffff; font-size: 12px;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; x = &lt;/SPAN&gt;&lt;SPAN style="color: #703daa;"&gt;URL&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: #ba2da2;"&gt;init&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;(string: &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2Futility.arcgis.com%2Fusrsvcs%2Fservers%2F11e0cb598d77463cbe3b90d5e53f37d6%2Frest%2Fservices%2FWorldElevation%2FTerrain%2FImageServer" rel="nofollow" target="_blank"&gt;https://utility.arcgis.com/usrsvcs/servers/11e0cb598d77463cbe3b90d5e53f37d6/rest/services/WorldElevation/Terrain/ImageServer&lt;/A&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; imageServiceRaster = &lt;SPAN style="color: #4f8187;"&gt;AGSImageServiceRaster&lt;/SPAN&gt;.&lt;SPAN style="color: #ba2da2;"&gt;init&lt;/SPAN&gt;(url: x!)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; &lt;SPAN style="text-decoration: underline;"&gt;s&lt;/SPAN&gt;erviceInfo = imageServiceRaster.&lt;SPAN style="color: #4f8187;"&gt;serviceInfo&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; renderingRule = &lt;SPAN style="color: #4f8187;"&gt;AGSRenderingRule&lt;/SPAN&gt;(renderingRuleJSON: [&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #d12f1b;"&gt;"rasterFunction"&lt;/SPAN&gt;: function,&lt;/P&gt;&lt;P style="color: #d12f1b; background-color: #ffffff; font-size: 12px;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;"format"&lt;SPAN style="color: #000000;"&gt;:&lt;/SPAN&gt;"jpg"&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ])&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; imageServiceRaster.&lt;SPAN style="color: #4f8187;"&gt;renderingRule&lt;/SPAN&gt; = renderingRule&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; imageServiceRaster.&lt;SPAN style="color: #31595d;"&gt;load&lt;/SPAN&gt; { (error) &lt;SPAN style="color: #ba2da2;"&gt;in&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;if&lt;/SPAN&gt; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; error = error {&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #3e1e81;"&gt;print&lt;/SPAN&gt;(error)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;return&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; rasterFunction = &lt;SPAN style="color: #ba2da2;"&gt;self&lt;/SPAN&gt;.&lt;SPAN style="color: #31595d;"&gt;setRasterfunction&lt;/SPAN&gt;(raster: imageServiceRaster)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; finalRaster = &lt;SPAN style="color: #4f8187;"&gt;AGSRaster&lt;/SPAN&gt;.&lt;SPAN style="color: #ba2da2;"&gt;init&lt;/SPAN&gt;(rasterFunction: rasterFunction)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #3e1e81;"&gt;print&lt;/SPAN&gt;(&lt;SPAN style="color: #d12f1b;"&gt;"nardo"&lt;/SPAN&gt;)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #3e1e81;"&gt;print&lt;/SPAN&gt;(&lt;SPAN style="text-decoration: underline;"&gt;e&lt;/SPAN&gt;rror)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; rasterLayer = &lt;SPAN style="color: #4f8187;"&gt;AGSRasterLayer&lt;/SPAN&gt;(raster: finalRaster)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; complete(rasterLayer)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; }&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #4f8187; background-color: #ffffff; font-size: 12px;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #ba2da2;"&gt;class&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #ba2da2;"&gt;func&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; setRasterfunction(raster: &lt;/SPAN&gt;AGSImageServiceRaster&lt;SPAN style="color: #000000;"&gt;) -&amp;gt; &lt;/SPAN&gt;AGSRasterFunction&lt;SPAN style="color: #000000;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;var&lt;/SPAN&gt; x: [&lt;SPAN style="color: #703daa;"&gt;Double&lt;/SPAN&gt;] = []&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;for&lt;/SPAN&gt; index &lt;SPAN style="color: #ba2da2;"&gt;in&lt;/SPAN&gt; &lt;SPAN style="color: #272ad8;"&gt;0&lt;/SPAN&gt;...&lt;SPAN style="color: #272ad8;"&gt;50&lt;/SPAN&gt; {&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; x.&lt;SPAN style="color: #3e1e81;"&gt;append&lt;/SPAN&gt;(&lt;SPAN style="color: #703daa;"&gt;Double&lt;/SPAN&gt;(index))&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;var&lt;/SPAN&gt; &lt;SPAN style="text-decoration: underline;"&gt;x&lt;/SPAN&gt;x = x.&lt;SPAN style="color: #3e1e81;"&gt;map&lt;/SPAN&gt;({abc -&amp;gt; &lt;SPAN style="color: #703daa;"&gt;String&lt;/SPAN&gt; &lt;SPAN style="color: #ba2da2;"&gt;in&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN style="color: #d12f1b;"&gt;"&lt;/SPAN&gt;\&lt;SPAN style="color: #d12f1b;"&gt;(&lt;/SPAN&gt;abc&lt;SPAN style="color: #d12f1b;"&gt;)"&lt;/SPAN&gt;}).&lt;SPAN style="color: #3e1e81;"&gt;joined&lt;/SPAN&gt;(separator: &lt;SPAN style="color: #d12f1b;"&gt;","&lt;/SPAN&gt;)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #d12f1b; background-color: #ffffff; font-size: 12px;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #ba2da2;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #000000; text-decoration: underline;"&gt;c&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;ontent = &lt;/SPAN&gt;"{&amp;nbsp; \"raster_function\":{\"type\":\"Mask_function\"},&amp;nbsp; \"raster_function_arguments\":&amp;nbsp; {&amp;nbsp; &amp;nbsp; \"nodata_values\":{\"double_array\":[{{replace}}],\"type\":\"Raster_function_variable\"},&amp;nbsp; &amp;nbsp; \"nodata_interpretation\":{\"nodata_interpretation\":\"all\",\"type\":\"Raster_function_variable\"},&amp;nbsp; &amp;nbsp; \"raster\":{\"name\":\"raster\",\"is_raster\":true,\"type\":\"Raster_function_variable\"},&amp;nbsp; &amp;nbsp; \"type\":\"Raster_function_arguments\"&amp;nbsp; },\"type\":\"Raster_function_template\"}"&lt;SPAN style="color: #000000;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: #3e1e81;"&gt;replacingOccurrences&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;(of: &lt;/SPAN&gt;"{{replace}}"&lt;SPAN style="color: #000000;"&gt;, with: xx )&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #3e1e81;"&gt;print&lt;/SPAN&gt;(content)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #4f8187;"&gt;FileUtil&lt;/SPAN&gt;.&lt;SPAN style="color: #31595d;"&gt;writefile&lt;/SPAN&gt;(name: &lt;SPAN style="color: #d12f1b;"&gt;"hi.json"&lt;/SPAN&gt;, content: content&amp;nbsp; )&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; docDir = &lt;SPAN style="color: #ba2da2;"&gt;try&lt;/SPAN&gt;! &lt;SPAN style="color: #703daa;"&gt;FileManager&lt;/SPAN&gt;.&lt;SPAN style="color: #ba2da2;"&gt;default&lt;/SPAN&gt;.&lt;SPAN style="color: #3e1e81;"&gt;url&lt;/SPAN&gt;(for: .&lt;SPAN style="color: #3e1e81;"&gt;documentDirectory&lt;/SPAN&gt;, in: .&lt;SPAN style="color: #703daa;"&gt;userDomainMask&lt;/SPAN&gt;, appropriateFor: &lt;SPAN style="color: #ba2da2;"&gt;nil&lt;/SPAN&gt;, create: &lt;SPAN style="color: #ba2da2;"&gt;true&lt;/SPAN&gt;)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; mapUrl = docDir.&lt;SPAN style="color: #3e1e81;"&gt;appendingPathComponent&lt;/SPAN&gt;(&lt;SPAN style="color: #d12f1b;"&gt;"hi.json"&lt;/SPAN&gt;)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; rasterFunction = &lt;SPAN style="color: #4f8187;"&gt;AGSRasterFunction&lt;/SPAN&gt;(fileURL: mapUrl)&lt;/P&gt;&lt;P style="color: #008400; background-color: #ffffff; font-size: 12px;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;// initialize the arguments of the raster function&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; rasterFunctionArguments = rasterFunction.&lt;SPAN style="color: #4f8187;"&gt;arguments&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #3e1e81;"&gt;print&lt;/SPAN&gt;(rasterFunctionArguments.&lt;SPAN style="color: #703daa;"&gt;debugDescription&lt;/SPAN&gt;)&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;let&lt;/SPAN&gt; rasterNames = rasterFunctionArguments!.&lt;SPAN style="color: #4f8187;"&gt;rasterNames&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #008400; background-color: #ffffff; font-size: 12px;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;// assuming rasterNames has 2 entries, set the 2 rasters&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; rasterFunctionArguments!.&lt;SPAN style="color: #31595d;"&gt;setRaster&lt;/SPAN&gt;(raster, withName: rasterNames[&lt;SPAN style="color: #272ad8;"&gt;0&lt;/SPAN&gt;])&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="color: #ba2da2;"&gt;return&lt;/SPAN&gt; rasterFunction&lt;/P&gt;&lt;P style="color: #000000; background-color: #ffffff; font-size: 12px;"&gt;&amp;nbsp; }&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The first function uses the second function to create a raster function and load it into a new agsraster which is then placed in a layer. I know that the file is properly being written as I've checked it. I'm not sure what I'm doing wrong : \&lt;BR /&gt;&lt;BR /&gt;Does anyone have any working examples or advice?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jan 2018 08:49:14 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/how-to-use-a-raster-function/m-p/11633#M125</guid>
      <dc:creator>BernardoArevalo</dc:creator>
      <dc:date>2018-01-31T08:49:14Z</dc:date>
    </item>
    <item>
      <title>Re: How to use a raster function?</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/how-to-use-a-raster-function/m-p/11634#M126</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;So I managed to get the raster function working with a saved raster file. However when I try to apply a raster function to a AGSImageServiceRaster the raster never gets rendered. When checking the web requests that go out, there are none that go out to the export service that are used to populate the raster : \&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Has anyone ever used an&amp;nbsp;&lt;SPAN&gt;AGSImageServiceRaster with a raster function?&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Jan 2018 20:42:51 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/how-to-use-a-raster-function/m-p/11634#M126</guid>
      <dc:creator>BernardoArevalo</dc:creator>
      <dc:date>2018-01-31T20:42:51Z</dc:date>
    </item>
    <item>
      <title>Re: How to use a raster function?</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/how-to-use-a-raster-function/m-p/11635#M127</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In the &lt;EM style="background-color: #ffffff; color: #000000;"&gt;loadOnlineRasterImage&lt;/EM&gt;&amp;nbsp;function, imageServiceRaster is going out of scope.&amp;nbsp; The call to &lt;EM&gt;load&lt;/EM&gt; is asynchronous; when the completion block is executed and tries to use imageServiceRaster, it has gone out of scope.&amp;nbsp; With that fixed, your code is working for me.&amp;nbsp; I made two other minor changes.&amp;nbsp; I wasn't sure why you were setting the renderingRule so I removed that code.&amp;nbsp; And instead of writing the JSON to disk and reading it back, I changed it to use the fromJSON method, like this:&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;let&lt;/SPAN&gt; rasterFunction = &lt;SPAN class=""&gt;AGSRasterFunction&lt;/SPAN&gt;.&lt;SPAN class=""&gt;fromJSON&lt;/SPAN&gt;(content, error: &lt;SPAN class=""&gt;nil&lt;/SPAN&gt;) &lt;SPAN class=""&gt;as&lt;/SPAN&gt;? &lt;SPAN class=""&gt;AGSRasterFunction&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;I hope that helps.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Phil&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Feb 2018 23:49:58 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/how-to-use-a-raster-function/m-p/11635#M127</guid>
      <dc:creator>PhilipGruenler</dc:creator>
      <dc:date>2018-02-02T23:49:58Z</dc:date>
    </item>
    <item>
      <title>Re: How to use a raster function?</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/how-to-use-a-raster-function/m-p/11636#M128</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Confirming this works in the following example (C# WPF):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;async&lt;/SPAN&gt; Task &lt;SPAN class="token function"&gt;AddRasterAndSetBackgroundColorValue&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; 
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
    &lt;SPAN class="keyword token"&gt;try&lt;/SPAN&gt;
    &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
        &lt;SPAN class="comment token"&gt;// Create a raster dataset from a local file raster.&lt;/SPAN&gt;
        Raster raster &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;new&lt;/SPAN&gt; &lt;SPAN class="token class-name"&gt;Raster&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;@"..\FileRaster.tif"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

        &lt;SPAN class="comment token"&gt;// Await the Load to catch any errors.&lt;/SPAN&gt;
        &lt;SPAN class="keyword token"&gt;await&lt;/SPAN&gt; raster&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;LoadAsync&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

        &lt;SPAN class="comment token"&gt;// Create a raster function from the JSON string using the static/Shared method called: RasterFunction.FromJson(json as String)&lt;/SPAN&gt;
        RasterFunction rasterFunction &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; RasterFunction&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;FromJson&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;jsonFunction&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

        &lt;SPAN class="comment token"&gt;// Get the raster function arguments&lt;/SPAN&gt;
        RasterFunctionArguments rasterFunctionArguments &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; rasterFunction&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Arguments&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
                
        &lt;SPAN class="comment token"&gt;// Get the list of raster names from the raster function arguments.&lt;/SPAN&gt;
        IReadOnlyList&lt;SPAN class="operator token"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;string&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;&amp;gt;&lt;/SPAN&gt; rasterNames &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; rasterFunctionArguments&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;GetRasterNames&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

        &lt;SPAN class="comment token"&gt;// Set the local file raster as a raster name argument.&lt;/SPAN&gt;
        rasterFunctionArguments&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;SetRaster&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;rasterNames&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; raster&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

        &lt;SPAN class="comment token"&gt;// Create a new raster based on the raster function.&lt;/SPAN&gt;
        Raster rasterWithFunction &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;new&lt;/SPAN&gt; &lt;SPAN class="token class-name"&gt;Raster&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;rasterFunction&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

        &lt;SPAN class="comment token"&gt;// Create a new raster layer from the raster with function applied.&lt;/SPAN&gt;
        RasterLayer rasterLayer &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;new&lt;/SPAN&gt; &lt;SPAN class="token class-name"&gt;RasterLayer&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;rasterWithFunction&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

        &lt;SPAN class="comment token"&gt;// Add RasterLayer with function to Map OperationalLayers collection.&lt;/SPAN&gt;
        Map&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;OperationalLayers&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;Add&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;rasterLayer&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
    &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
    &lt;SPAN class="keyword token"&gt;catch&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token class-name"&gt;Exception&lt;/SPAN&gt; ex&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
    &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
        &lt;SPAN class="comment token"&gt;// TODO : Handle Errors&lt;/SPAN&gt;
    &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

&lt;SPAN class="keyword token"&gt;string&lt;/SPAN&gt; jsonFunction &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;
&lt;SPAN class="string token"&gt;@"{
    ""raster_function"":{""type"":""Mask_function""},
    ""raster_function_arguments"":
    {
        ""nodata_values"":{""double_array"":[0],""type"":""Raster_function_variable""},
        ""nodata_interpretation"":{""nodata_interpretation"":""all"",""type"":""Raster_function_variable""},
        ""raster"":{""name"":""raster"",""is_raster"":true,""type"":""Raster_function_variable""},
        ""type"":""Raster_function_arguments""
   },
    ""type"":""Raster_function_template""
}"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mike&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 20:29:45 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/how-to-use-a-raster-function/m-p/11636#M128</guid>
      <dc:creator>MichaelBranscomb</dc:creator>
      <dc:date>2021-12-10T20:29:45Z</dc:date>
    </item>
  </channel>
</rss>

