Creating image cache using imagery with different resolution (best practice)

4226
5
06-13-2016 03:52 AM
MartinSirkovsky
Occasional Contributor

I would like to create an image service with a cache. I have created a raster mosaic which consist of images with various resolution (ground sample distance). I know how to publish the service an create the cache but I am not sure how to optimize my service.

Here is a practical example. At the image below there is a blue zone, that is the area which I want to publish an image service for. The GSD for the whole blue zone is 50 cm. However within that area there are some other zones, in this case zone 2 and 3 where I have an additional images with resolution of 10 cm. I want a user to be able to zoom to the greatest detail possible.

2016-06-13_Caching aerial imagery.jpg

Option 1:

So I will set the service to be cached to the actual resolution of images with 10 cm GSD. This will work fine, but the problem is that the whole blue area will be cached to GSD of 10cm even though the actual resolution for the most of the area is 50 cm. This will result in unnecessary big cache size and if the area is big enough, then the cache size can be easily 100 times greater than necessary.

Option 2:

I can create 2 image services. One for the high resolution imagery and other for low resolution imagery. However, when user request the tiles from the services and the map extent is located in the area of high resolution imagery, the tiles from both image services will be sent to the user from the server. The high resolution will overlap the low resolution image, but this will increase the response time, as two sets of tiles have to be downloaded.

So I wonder, what is the best practice to solving this dilema?

Thank you.

Martin

0 Kudos
5 Replies
FC_Basson
MVP Regular Contributor

Maybe you should stick with option 1 with the mixture of different GSD imagery, but just calculate the cell size ranges for the mosaic: Cell size ranges in a mosaic dataset—Help | ArcGIS for Desktop

PeterBecker
Esri Regular Contributor

Use 'Manage Tile Cache'. This enables you to defined not only the scales at which the imagery should be created but also Area of Interest. Run the tool twice once for the 'blue' area at the lower resolution and then again with the same cache but define AOIs for the 'red' areas. For the second time just define the higher resolution scales.

You do not need to create two separate mosaic datasets. The mosaic dataset can easily contain multiple resolutions and you can define which has the higher priority at different scales.

Note if you have already generated the tiles (using same tiling scheme) you can then use 'Import Tile Cache' to merge the two caches.

MartinSirkovsky
Occasional Contributor

Thank you for both answer. Both were helpful. 

But what happens when users zooms all the way in, in the blue area where there are no high resolution tiles. Will he get the tiles which are available just digitally resampled on the fly, or no tiles will be served, so he will see white background or whatever layers is located below?

0 Kudos
PeterBecker
Esri Regular Contributor

Depends on the client and the layers that have been defined. In Desktop it will resample the image and display imagery if the layer has not been defined. In web it will display blank. One alternative is to serve as an image service and turn on demand caching one. Then the server will generate the additional tiles if required.

0 Kudos
PaulDavidson1
Occasional Contributor III

Peter,

When you say: turn on demand caching  

I assume you mean in Service Editor> Caching>  Advanced

Click the Create Tiles on Demand

Correct ?

How about combining dynamic layers with a tiled  cache for an Image Service.

This would be like what's described for a map service:

http://server.arcgis.com/en/server/10.5/publish-services/windows/enabling-dynamic-layers-on-a-map-se...

Thanks....

0 Kudos