Use Classified renderer and correct legend display with Image services

7615
3
02-21-2015 08:56 AM
MichaelRich
New Contributor III

I'm trying to setup image services from 32 bit floating point single band rasters values 0-100.  The goal is to display the rasters with the same Classified Defined Interval renderer used in the original .mxd with interval set to 20 = 5 classes, 0-20,20-40 and so on, like this:

LayerProps.JPG

I save the Symbology as the Raster Function Template to .rft.xml file.  I apply the raster function to the published image service referencing the same data from the .mxd.

ImageServiceFunction.JPG

Here's the problem:

It properly renders the pixels with the classified range and colors.  This also allows users to click the service in AGOL and get a popup of the original value (needed requirement and main reason to not use cached map service).  However, the legend display just shows RGB, Band 1,2,3.  This doesn't help the users when viewing the data.  The project sponsors identified this as a problem and again requested popups with correct legend display.  See here:

AGOL.JPG

My plea for help!

  • Is there a way to create/enable the raster function to output the legend for proper display?  I tried using the Colormap function (first applying the Local function with Math > Int function),  but this outputs a legend with 255 values for each distinct color value, not the original raster values 0-100, and not split into the 5 class ranges.

-OR-

  • IS there a way to combine a tile layer with the correct popup information?  I tried creating a hosted tile layer (can also create an AGS cache map service, but this was faster for now), which will improve performance and output correct legend.  I found the option to enable a popup for a tile layer and specify a service URL as the popup info, but it did not take the image service.  Boo.. 

AGOLError.JPG

Lastly, I tried creating a Dynamic map service from the same data.  Results = Correct legend BUT NO POPUP.....therefore can't combine that with the tile layer either.

Thanks for looking and hope you can help.  Oh did I mention project milestone due by Monday and have been working all week (and now the weekend...) on this?,..!  cheers, Mike

0 Kudos
3 Replies
JakeSkinner
Esri Esteemed Contributor

Hi Michael,

One thing you can do is add the Dynamic Map Service and Image Service to your web map.  Configure the pop-up for the Image Service, and then choose to hide this layer in the legend.  You will still have the ability to identify the image service and return the pixel values, and the user will be presented with the correct legend.

Also, some good news is that this appears to be resolved with ArcGIS Server 10.3.  The Image Service will appear correctly in the Legend when the function is applied.

MichaelRich
New Contributor III

Hi Jake,

Thanks, I had tried that and yes that is an option.  However, they also require a number of services to be able to toggle on/off in a LayerList, so by having the same layer twice = not good = confused user.

For now, I decided to go with Image Services and will create a 'custom' legend just using text and graphics and displaying in the Description of the AGOL item.  Legend won't update dynamic, but that's okay for now.

We're still on 10.2.2, glad to hear this is resolved at 10.3.

Mike

AshrafHanna
New Contributor

Hi Michael,

could you describe steps for the workaround plz?Michael Rich

0 Kudos