|
Teale Albers projection parameters:
projection albers
units meters
parameters
1st Standard Parallel: 34 00 00
2nd Standard Parallel: 40 30 00
Central Meridian: -120 00 00
Latitude of origin: 00 00 00
False easting (meters): 0
False northing (meters): -4000000
Datum: NAD27
Spheroid: Clarke 1866
Projecting in Arcview:
An extension to reproject shapefiles is available from www.esri.com ; navigate to free
scripts. You may also find this extension in the Arcview
Samples/ext directory.
This extension has a problem in the form menu. The default
spheroid is listed as Clarke 1866, which is correct for the
Teale Albers projection, however unless you pull this menu down and
redundantly select Clarke 1866, the menu passes Sphere
to the projection engine, and the resulting projection is
incorrect.
The following script will either append the Teale Albers projection
to the system-wide default.prj ($AVHOME/etc/default.prj) or create
or append to a user default.prj ($HOME/default.prj) file. This
makes Teale Albers one of the selectable standard
projections.
' script to create Teale Albers projection for default.prj
' default.prj resides either in $AVHOME/etc or $HOME.
' Just compile and run, follow prompts to save file.
' Andy Richardson 8/98
'
AlbCooSys = CoordSys.Make
AlbCooSys.SetName("Teale Albers")
PrjLst = AlbCooSys.GetProjections
AlbPrj = Albers.Make(rect.Make("-124.5".AsNumber@32.5,"-114".AsNumber@42.25))
AlbPrj.SetDescription("Teale Albers")
AlbPrj.SetCentralMeridian(-120)
AlbPrj.SetReferenceLatitude(0)
AlbPrj.SetFalseEasting(0)
AlbPrj.SetFalseNorthing(-4000000)
AlbPrj.SetUpperStandardParallel(40.5)
AlbPrj.SetLowerStandardParallel(34)
AlbPrj.SetSpheroid(#SPHEROID_CLARKE1866)
AlbPrj.Recalculate
PrjLst.Add(AlbPrj)
msg =
"The Teale Albers projection should be written to either" ++
"$AVHOME/etc/default.prj (for system-wide access but you must" ++
"have write access) or $HOME/default.prj (for user-only access)."
MsgBox.Report(msg,"Save Locations")
defFN = FileDialog.Put("$AVHOME/etc/default.prj".AsFileName,"default.prj","Pick default.prj")
if (defFN = nil) then
return nil
end
if (File.Exists(defFN)) then
defprj = ODB.Open(defFN)
else
defprj = ODB.Make(defFN)
end
defprj.Add(AlbCooSys)
defprj.Commit
|