Select to view content in your preferred language

Reprojection performance

465
4
03-20-2014 07:59 AM
DavidAllan1
New Contributor II
I have a web app using web mercator due to the basemap spatial reference. On top of this I need am overlaying some data held in 27700.

Is there any difference in terms of performance between the following options:

1) Publish the 27700 data in a service in 27700 and let ArcGIS Server reproject it when a request for data in 102100 is received from the web app.

2) Publish the 27700 data in a service using a data frame set to web mercator meaning from the rest end point the projections appear to match, but I presume the same reprojection operation is still occuring internally

Dave
Tags (2)
0 Kudos
4 Replies
WilliamCraft
MVP Regular Contributor
I'm not entirely sure of what to make of the two scenarios you asked about, but I think what you are asking is whether it yields better performance to reproject your data on the fly in a map service as opposed to reproject your data ahead of time and subsequently publish it so that it doesn't have to be reprojected on the fly.  Here are the two scenarios that I am taking away from what I think your question might be:

Scenario 1: Your data currently resides in Projected Coordinate System (PCS) "A" but you want it to display in PCS "B", so you change the data frame in your MXD from "A" to "B" and publish the MXD as a service.  While the underlying data exists in "A", it is being rendered in "B". 

Scenario 2: You actually perform a one-time, up-front reprojection of all your data using the ArcGIS Desktop tools such that they are modified from PCS "A" to PCS "B".  Now they reside in "B".  Then, you add the data to an MXD and publish it as a service without modifying the data frame. 

Let me know if I am understanding your question or not.  Scenario 2 will yield better performance because the data is being published in its native Projected Coordinate System rather than being reprojected on the fly with each request as with Scenario 1.
0 Kudos
DavidAllan1
New Contributor II
Not quite.

Scenario 1 is as you describe with the PCS exposed at the rest endpoint = PCS B

Scenario 2 is to leave the data frame and data in PCS A and publish the service, resulting in PCS A as the default for the service

Then make a request for data to the server using PCS B from a web application. Both scenarios require a transformation on the fly by the server. The question is whether it makes any difference performance-wise in scenario 1 or 2 other than setting the default PCS for the service - I suspect not..
0 Kudos
WilliamCraft
MVP Regular Contributor
Then make a request for data to the server using PCS B from a web application. Both scenarios require a transformation on the fly by the server.


Are you talking about inputting a different WKID value for the Image Spatial Reference parameter in the REST export map request issued by your web application?  I gave that a try just now and didn't notice a difference in performance.  Just make sure you only use this approach for dynamic map services and not cached services.
0 Kudos
JonathanQuinn
Esri Notable Contributor
If you change the projection of the dataframe, projecting on the fly will occur in the MSD in the arcgisinput folder, which I believe is is more efficient that projecting in an application.
0 Kudos