How best to manage Imagery on Portal without Image Server?

388
4
08-06-2019 06:04 PM
Labels (1)
Highlighted
New Contributor III

We have created multiple Hosted Tile Layers for historical imagery mosaics we have generated from scanned imagery.

Each Hosted tile Layer represents a decade from 1940s to 2000s. We receive the imagery a few at a time and they represent a 25K map sheet. When trying to update the hosted tile layers with new imagery we receive I have found no way to do it without deleting the existing services then re-publishing under the same name.

I am currently doing this by building a tpk from a cache, overwriting the tpk in portal, deleting the Hosted Tile Layer then re-publishing from the tpk under the same name.

Reply
0 Kudos
4 Replies
Highlighted
Regular Contributor

See the Serving Cached Imagery Workflow that links to Raster Tile Cache Tools. This provides tools to not only create tile cache easily with Pro, but also update tile cache with updates. For working with scanned historical maps do have a look at Managing Scanned Maps. It defines how best to create mosaic datasets from scanned maps that can be served as dynamic images services (IE single service that includes all dates and enables control such as selection of dates and metadata). The same mosaic datasets can also be used to create tile cache.

Reply
0 Kudos
Highlighted
New Contributor III

Thanks for the reply Peter.

Unfortunately our Enterprise Portal does not have an Image Server Federated to it so I am unable to utilise mosaic datasets for Imagery management. I am familiar with the process though.

The Update Tile Cache Service from the Raster Tile Cache Tools is what I am looking for but unfortunately it is not working for me.

I assume it is because our Portal is version 10.6.1 and the tool is looking for a tile package in Portal which is generated from a .tpkx format.

Is this a correct assumption? 

If so, was there a version that worked with 10.6.1?

Or is it possible to get the code used to run this tool?

Reply
0 Kudos
Highlighted
Regular Contributor

My understanding is that you are requesting a workflow to update a hosted tile layer with a new tpk while ensuring the name and item ID remains the same.

Currently ArcGIS Enterprise doesn’t have defined workflow for this. Currently is necessary to delete the existing layer and republish the new tpk with the existing name. There is work being done to enable this in future. Until then there are two options:

  1. Continue existing workflow of generating tpk using Desktop and then deleting the corresponding hosted tile layer before publishing a new one. OR
  2. Use ArcGIS Server to generate cache using Map/image service where the underlying data can get updated for generating updated cache. This would require and image server license if using mosaic datasets.

 

Note that ArcGIS Image Server is not required to create or work with Mosaic Datasets. Mosaic Datasets are created using ArcGIS Desktop (Pro or ArcMap) Standard or Advanced. Mosaic Datasets can be accessed in all levels of ArcGIS Desktop and also served as image services using ArcGIS Image Server. Without ArcGIS Image Server you should be able to use the workflows to manage the scanned maps in mosaic datasets and use them directly or cache them in ArcGIS Desktop. The general caching tools are available with ArcGIS Desktop. The Manage TileCache tools enable the updating of tile cache. For ArcGIS Online I would recommend using the tools mentioned above, which do allow for the update of tiles without changing the service.

Highlighted
New Contributor III

Thanks for the further information Peter.

You are correct in the understanding of the process we are trying to achieve.

As we did not want to be generating map services directly on our hosting server and the first option does not achieve our objective, we have developed a custom method.

Our Enterprise platform is hosted on AWS with Cloudfront sitting in front.

We have developed a lambda function using express that can retrieve image tiles from bundles stored in S3.

We then use cloudfront with a custom origin and behavior to route anything that goes through /tileservices to hit APIGateway and route to the lambda function.

This means we can create a listing in portal for our Tile Server and only need to update the bundles in S3 for updates to occur.

This also means we are saving on space on the EBS associated with the portal as the way described above I believe stores the data twice, once in the tpk and once in the cache folder for the published service.

Performance looks to be fairly similar to a normal hosted tile layer but we are getting some thin lines between the tiles which we are currently troubleshooting. 

Reply
0 Kudos