Rotate Data Frame in Layout to Screen

04-30-2011 06:49 AM
Regular Contributor II
I have a data frame inside my Layout with parcel information. I received a rotation degrees that I can input that will rotate the parcels so they 'almost look' straight up and down in comparison to my screen and print. But what I want is more precision.

Is there any way to use the 'DRAWING' tools in the 'DRAW' toolbar to draw a straight line from the left hand side of my screen to the right hand side of my screen creating a 'rotation' bar? Then somehow click on the West corner of a 'straight' parcel and attach it to the left side of my rotation bar, and attach the East corner of this parcel to the right side of my rotation bar so that everything lines up?

I want the rotation setting to adjust to this setting, I don't want to move any parcel data geographically, just change how I view the parcel data.

I have 'ATLAS Pages' for every square mile of my city, in order to print out the pages from the Shapefiles to match our Archival Mylar sheets I need to get this rotation worked out for each page. I have a couple thousand sheets... so if there is ALSO an auto-rotate function as well that would be fantastic.

If not, I would be very happy to learn that I can at least line up each sheet on a sheet-by-sheet basis.

Thanks in advance!
Tags (2)
0 Kudos
1 Reply
Regular Contributor II
If you are using Data Driven Pages in ArcGIS 10 you can set the dataframe rotation in a Python script before exporting each page. See the help example scripts.

To get the rotation required I have in the distant past written an AML that found the diagonal corners of the page and calculated the average angle between the two points in two different projections to set the cogo bearing adjustment. You could do the same in Python and maybe store it in the page index for easy retrieval during printing.

If the angle is not predictable because the parcel layout is the old flat earth projection, then maybe find a line in the view of each sheet (say a road centreline) and extract the angle from that to derive the angle required. You can find the bearing angle easily in Python using math.atan2(y,x) where these are the deltas between the line ends. Then subtract the bearing from 90 or 180 degrees to get the angle.
0 Kudos