You can define persistent object definitions with the Projection Engine
software without storing the string definitions after defining the coordinate
system. You can also use this to updated or edit existing
predefined objects. To allow a platform- and software-independent
implementation, a system environment variable, PEOBJEDITHOME, has been defined to
store the object definitions.
On UNIX/Linux:
setenv PEOBJEDITHOME /path/to/the/data (C shell) PEOBJEDITHOME = /path/to/the/data; export PEOBJEDITHOME (Bourne shell)
On Windows:
set PEOBJEDITHOME \path\to\the\data
The PEOBJEDITHOME directory must contain the files which have the custom
coordsys/geogtran/units/etc information.Use the file names.
datum /* DATUM,code,"name",<spheroid_code> */
geogcs /* GEOGCS,code,"name",<datum_code>,<primem_code>,<unit_code> */
geogtran /* GEOGTRAN,code,"name",<gcs1_code>,<gcs2_code>,<method_code>,
<parameter_code1>,<parameter_value1>,..., <parameter_codeN>,<parameter_valueN>
*/
primem /* PRIMEM,code,"name",<value> */
projcs /* PROJCS,code,"name",<gcs_code>,<projection_code>,
<parameter_code1>,<parameter_value1,..., <parameter_codeN>,<parameter_valueN>,<unit_code>
*/
spheroid /* SPHEROID,code,"name",<semimajor axis>,<1/f> */
unit /* UNIT,code,"name",<value> */
Each file has a particular comma-delimited format. Do not use commas in any
numerical values. Just as when you define a coordinate system definition, you
need to define any objects used by a higher level
object. For example, if you
want to define a geographic coordinate system, you may need to define the
spheroid or datum if they are not predefined.
Because you define a code for each new object, you can use that code in your
programs. Use codes in the 200000-299999 (or higher) range. EPGS reserves
1-32766. ESRI-defined objects are in the
32670-50000 and the 100000-199999
ranges. You must add 200000 to a standard code value when defining a new object.
For example, predefined spheroids use 7001-7999. You must use 207001-207999
for
enterprise-defined spheroids. If you use an existing code, your new definition
will override the internal one. User-defined ranges are:
- Linear units 209000-209099
- Angular units 209100-209199
- Spheroids 207000-207999
- Datums 206000-206999
- Prime meridians 208900-208999
- Geogcs 204000-204999
- Projcs 202000-202999
- Geogtran 208000-208399
Here are some examples.
UNIT,209100,"my_feet",3.2808
UNIT,9003,"Survey_feet_modified",3.2808
UNIT,PE_U_FOOT_US,"Survey_foot_mod",3.2808
SPHEROID,207260,"my_spheroid",6378000,298.1
DATUM,206260,"my_datum",207260
DATUM,206261,"my_datum2",PE_S_BESSEL_NAMIBIA
PRIMEM,208901,"my_primem",-117.0
PRIMEM,PE_PM_STOCKHOLM,"Stockholm_new",18.0582
GEOGCS,204000,"my_gcs",206261,208901,9102
GEOGCS,204000,"my_gcs",206261,208901,PE_U_DEGREE
For any predefined object, you can use the code or the macro.
PROJCS,202000,?my_pcs?,204000,43004,3082,500000,3088,-112.0,9001
PROJCS,202000,?my_pcs?,204000,PE_PRJ_MERCATOR,PE_PAR_FALSE_NORTHING,500000,
PE_PAR_FALSE_EASTING,200000,PE_PAR_CENTRAL_MERIDIAN,-112.0,PE_U_METER
GEOGTRAN,208004,?my_gt?,4267,4268,PE_MTH_COORDINATE_FRAME,PE_PAR_X_AXIS_TRANSLATION,328.4,PE_PAR_Y_AXIS_TRANSLATION,75.9,PE_PAR_Y_AXIS_TRANSLATION,31.6,
PE_PAR_X_AXIS_ROTATION,3.6,PE_PAR_Y_AXIS_ROTATION,2.3,PE_PAR_Z_AXIS_ROTATION,4.7,PE_PAR_SCALE_FACTOR,1.4
Changing a low-level object like a unit of measure affects any other objects that use the unit. For example, if you change the definition of a US survey foot
(shown above), all NAD 1927 State Plane coordinate systems will be affected.
NoteAlthough it is easier to use the integer numbers for a predefined object,
you should instead use the macros. Occasionally, the codes will change because
of a conflict or an update by EPSG. The macros will not change. |