"""
# Projection (Proj) module
"""
###############################################################################
# Module: projection (Proj) module #
# Copyright: 2000, Regents of the University of California #
# This software may not be distributed to others without #
# permission of the author. #
# Author: PCMDI Software Team #
# Lawrence Livermore NationalLaboratory: #
# support@pcmdi.llnl.gov #
# Description: Python command wrapper for VCS's projection secondary method. #
# Version: 4.0 #
###############################################################################
from . import VCS_validation_functions
import vcs
import copy
from .xmldocs import scriptdocs, listdoc
# used to decide if we show longitude labels for round projections or
# latitude labels for elliptical projections
round_projections = ['polar (non gctp)', 'stereographic']
elliptical_projections = ["robinson", "mollweide", 'orthographic', "ortho"]
# projections in this list are not deformed based on the window size
no_deformation_projections = ['polar (non gctp)', 'stereographic',
'orthographic', "ortho", ]
no_over_proj4_parameter_projections = round_projections+["aeqd", "lambert conformal c"]
def process_src(nm, code):
try:
gm = Proj(nm)
except Exception:
gm = vcs.elements["projection"][nm]
i = code.find("(")
j = code.find(")")
params = []
for v in code[i + 1:j].split(","):
params.append(float(v))
i = code.find("=")
gm.type = int(code[i + 1:].split()[0])
gm.parameters = params
[docs]class Proj(vcs.bestMatch):
"""
The projection secondary method (Proj) is used when plotting 2D data, and define
how to project from lon/lat coord to another mapping system (lambert, mercator, mollweide, etc...)
This class is used to define a projection table entry used in VCS, or it
can be used to change some or all of the attributes in an existing
projection table entry.
.. describe:: Projection Transformation Package Projection Parameters
+-----------------------+---------------------------------------------------------+
| | Array Element |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|*Code & Projection Id* | 1 | 2 | 3 | 4 | 5 | 6 |7 | 8| 9 |
+=======================+======+======+======+======+=======+=========+==+==+=====+
|0 Geographic | | | | | | | | | |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|1 U T M |Lon/Z |Lat/Z | | | | | | | |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|2 State Plane | | | | | | | | | |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|3 Albers Equal Area |SMajor|SMinor|STDPR1|STDPR2|CentMer|OriginLat|FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|4 Lambert Conformal C |SMajor|SMinor|STDPR1|STDPR2|CentMer|OriginLat|FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|5 Mercator |SMajor|SMinor| | |CentMer|TrueScale|FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|6 Polar Stereographic |SMajor|SMinor| | |LongPol|TrueScale|FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|7 Polyconic |SMajor|SMinor| | |CentMer|OriginLat|FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|8 Equid. Conic A |SMajor|SMinor|STDPAR| |CentMer|OriginLat|FE|FN| zero|
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
| Equid. Conic B |SMajor|SMinor|STDPR1|STDPR2|CentMer|OriginLat|FE|FN| one |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|9 Transverse Mercator |SMajor|SMinor|Factor| |CentMer|OriginLat|FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|10 Stereographic |Sphere| | | |CentLon|CenterLat|FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|11 Lambert Azimuthal |Sphere| | | |CentLon|CenterLat|FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|12 Azimuthal |Sphere| | | |CentLon|CenterLat|FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|13 Gnomonic |Sphere| | | |CentLon|CenterLat|FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|14 Orthographic |Sphere| | | |CentLon|CenterLat|FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|15 Gen. Vert. Near Per |Sphere| |Height| |CentLon|CenterLat|FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|16 Sinusoidal |Sphere| | | |CentMer| |FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|17 Equirectangular |Sphere| | | |CentMer|TrueScale|FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|18 Miller Cylindrical |Sphere| | | |CentMer| |FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|19 Van der Grinten |Sphere| | | |CentMer|OriginLat|FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|20 Hotin Oblique Merc A|SMajor|SMinor|Factor| | |OriginLat|FE|FN|Long1|
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
| Hotin Oblique Merc B|SMajor|SMinor|Factor|AziAng|AzmthPt|OriginLat|FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|21 Robinson |Sphere| | | |CentMer| |FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|22 Space Oblique Merc A|SMajor|SMinor| |IncAng|AscLong| |FE|FN|PSRev|
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
| Space Oblique Merc B|SMajor|SMinor|Satnum|Path | | |FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|23 Alaska Conformal |SMajor|SMinor| | | | |FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|24 Interrupted Goode |Sphere| | | | | | | | |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|25 Mollweide |Sphere| | | |CentMer| |FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|26 Interrupt Mollweide |Sphere| | | | | | | | |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|27 Hammer |Sphere| | | |CentMer| |FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|28 Wagner IV |Sphere| | | |CentMer| |FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|29 Wagner VII |Sphere| | | |CentMer| |FE|FN| |
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
|30 Oblated Equal Area |Sphere| |Shapem|Shapen|CentLon|CenterLat|FE|FN|Angle|
+-----------------------+------+------+------+------+-------+---------+--+--+-----+
+-----------------------+-----------------------+
| | Array Element |
+-----------------------+-----+-----+-----+-----+
| Code & Projection Id | 10 | 11 | 12 | 13 |
+=======================+=====+=====+=====+=====+
|20 Hotin Oblique Merc A|Lat1 |Long2|Lat2 |zero |
+-----------------------+-----+-----+-----+-----+
| Hotin Oblique Merc B| | | | one |
+-----------------------+-----+-----+-----+-----+
|22 Space Oblique Merc A|LRat |PFlag| |zero |
+-----------------------+-----+-----+-----+-----+
| Space Oblique Merc B| | | | one |
+-----------------------+-----+-----+-----+-----+
.. note::
All other projections are blank (containing 0) for elements 10-13
.. glossary::
Lon/Z
Longitude of any point in the UTM zone or zero. If zero,
a zone code must be specified.
Lat/Z
Latitude of any point in the UTM zone or zero. If zero, a
zone code must be specified.
SMajor
Semi-major axis of ellipsoid. If zero, Clarke 1866 in meters
is assumed.
SMinor
Eccentricity squared of the ellipsoid if less than zero,
if zero, a spherical form is assumed, or if greater than
zero, the semi-minor axis of ellipsoid.
Sphere
Radius of reference sphere. If zero, 6370997 meters is used.
STDPAR
Latitude of the standard parallel
STDPR1
Latitude of the first standard parallel
STDPR2
Latitude of the second standard parallel
CentMer
Longitude of the central meridian
OriginLat
Latitude of the projection origin
FE
False easting in the same units as the semi-major axis
FN
False northing in the same units as the semi-major axis
TrueScale
Latitude of true scale
LongPol
Longitude down below pole of map
Factor
Scale factor at central meridian (Transverse Mercator) or
center of projection (Hotine Oblique Mercator)
CentLon
Longitude of center of projection
CenterLat
Latitude of center of projection
Height
Height of perspective point
Long1
Longitude of first point on center line (Hotine Oblique
Mercator, format A)
Long2
Longitude of second point on center line (Hotine Oblique
Mercator, format A)
Lat1
Latitude of first point on center line (Hotine Oblique
Mercator, format A)
Lat2
Latitude of second point on center line (Hotine Oblique
Mercator, format A)
AziAng
Azimuth angle east of north of center line (Hotine Oblique
Mercator, format B)
AzmthPt
Longitude of point on central meridian where azimuth occurs
(Hotine Oblique Mercator, format B)
IncAng
Inclination of orbit at ascending node, counter-clockwise
from equator (SOM, format A)
AscLong
Longitude of ascending orbit at equator (SOM, format A)
PSRev
Period of satellite revolution in minutes (SOM, format A)
LRat
Landsat ratio to compensate for confusion at northern end
of orbit (SOM, format A -- use 0.5201613)
PFlag
End of path flag for Landsat: 0 = start of path,
1 = end of path (SOM, format A)
Satnum
Landsat Satellite Number (SOM, format B)
Path
Landsat Path Number (Use WRS-1 for Landsat 1, 2 and 3 and
WRS-2 for Landsat 4, 5 and 6.) (SOM, format B)
Shapem
Oblated Equal Area oval shape parameter m
Shapen
Oblated Equal Area oval shape parameter n
Angle
Oblated Equal Area oval rotation angle
.. describe:: Array Elements:
* Array elements 14 and 15 are set to zero
* All array elements with blank fields are set to zero
* All angles (latitudes, longitudes, azimuths, etc.) are entered in packed
degrees/ minutes/ seconds (DDDMMMSSS.SS) format
.. describe:: Space Oblique Mercator A projection:
* A portion of Landsat rows 1 and 2 may also be seen as parts of rows
246 or 247. To place these locations at rows 246 or 247, set the end of
path flag (parameter 11) to 1--end of path. This flag defaults to zero.
* When Landsat-1,2,3 orbits are being used, use the following values
for the specified parameters:
* Parameter 4 099005031.2
* Parameter 5 128.87 degrees - (360/251 * path number) in packed DMS format
* Parameter 9 103.2669323
* Parameter 10 0.5201613
* When Landsat-4,5 orbits are being used, use the following values
for the specified parameters:
* Parameter 4 098012000.0
* Parameter 5 129.30 degrees - (360/233 * path number) in packed DMS format
* Parameter 9 98.884119
* Parameter 10 0.5201613
.. note::
In vcs angles can be entered either in DDDMMMSSS or regular angle format.
.. describe:: Useful Functions:
.. code-block:: python
# VCS Canvas Constructor
a=vcs.init()
# Show predefined projection secondary methods
a.show('projection')
.. describe:: Create a Canvas object to work with:
.. code-block:: python
a=vcs.init()
.. describe:: Create a new instance of projection:
.. code-block:: python
# Copies content of 'quick' to 'new'
p=a.createprojection('new','quick')
# Copies content of 'default' to 'new'
p=a.createprojection('new')
.. describe:: Modify an existing projection:
.. code-block:: python
p=a.getprojection('lambert')
# List all the projection attribute values
p.list()
p.type='lambert'
# Fill a list with projection parameter values
params= []
for _ in range(0,14):
params.append(1.e20)
# params now a list with 1.e20, 15 times
p.parameters= params
iso=x.createisoline('new')
iso.projection=p
# or
iso.projection='lambert'
.. pragma: skip-doctest
"""
def __init__(self, Proj_name=None, Proj_name_src='default'):
# Initialize the projection class and its members
# The getProjmember function retrieves the values of the
# projection members in the C structure and passes back the
# appropriate Python Object.
if isinstance(Proj_name_src, Proj):
Proj_name_src = Proj_name_src.name
if Proj_name_src != "default" and Proj_name_src not in list(vcs.elements[
"projection"].keys()):
raise ValueError("Projection '%s' does not exists" % Proj_name_src)
if (Proj_name is None):
raise ValueError('Must provide a projection name.')
else:
if Proj_name in list(vcs.elements["projection"].keys()):
raise ValueError(
"The projection '%s' already exists, use getprojection instead" %
Proj_name)
self._name = Proj_name
self.s_name = 'Proj'
# #
###########################################################
# Inherits core secondary method attributes. #
###########################################################
# #
# graphics_secondary method_core.__init__(self, parent)
# Doesn't make sense to inherit. This would mean writing more code
self._type = 0
self._parameters = [
1e+20,
1e+20,
1e+20,
1e+20,
1e+20,
1e+20,
1e+20,
1e+20,
1e+20,
1e+20,
1e+20,
1e+20,
1e+20,
1e+20,
1e+20]
if Proj_name != "default":
src = vcs.elements["projection"][Proj_name_src]
self._type = src._type
self._parameters = copy.copy(src._parameters)
vcs.elements["projection"][Proj_name] = self
##########################################################################
# #
# List out projection secondary method members (attributes). #
# #
##########################################################################
[docs] def list(self):
if (self.name == '__removed_from_VCS__'):
raise ValueError('This instance has been removed from VCS.')
print('---------- Projection (Proj) member (attribute) listings ----------')
print('secondary method =', self.s_name)
print('name =', self.name)
print('type =', self.type)
# print 'parameters =',self.parameters
for att in self.attributes:
print(att, '=', getattr(self, att))
list.__doc__ = listdoc.format(name="projection", parent="")
@property
def attributes(self):
p = []
if self._type in [3, 4]:
p.append('smajor')
p.append('sminor')
p.append('standardparallel1')
p.append('standardparallel2')
p.append('centralmeridian')
p.append('originlatitude')
p.append('falseeasting')
p.append('falsenorthing')
elif self._type == 5:
p.append('smajor')
p.append('sminor')
p.append('centralmeridian')
p.append('truescale')
p.append('falseeasting')
p.append('falsenorthing')
elif self._type == 6:
p.append('smajor')
p.append('sminor')
p.append('centerlongitude')
p.append('truescale')
p.append('falseeasting')
p.append('falsenorthing')
elif self._type == 7:
p.append('smajor')
p.append('sminor')
p.append('centralmeridian')
p.append('originlatitude')
p.append('falseeasting')
p.append('falsenorthing')
elif self._type == 8:
p.append('subtype')
p.append('smajor')
p.append('sminor')
p.append('centralmeridian')
p.append('originlatitude')
p.append('falseeasting')
p.append('falsenorthing')
if self.subtype == 0:
p.append('standardparallel')
else:
p.append('standardparallel1')
p.append('standardparallel2')
elif self._type == 9:
p.append('smajor')
p.append('sminor')
p.append('factor')
p.append('centralmeridian')
p.append('originlatitude')
p.append('falseeasting')
p.append('falsenorthing')
elif self._type in [10, 11, 12, 13, 14]:
p.append('sphere')
p.append('centerlongitude')
p.append('centerlatitude')
p.append('falseeasting')
p.append('falsenorthing')
elif self._type == 15:
p.append('sphere')
p.append('height')
p.append('centerlongitude')
p.append('centerlatitude')
p.append('falseeasting')
p.append('falsenorthing')
elif self._type in [16, 18, 21, 25, 27, 28, 29]:
p.append('sphere')
p.append('centralmeridian')
p.append('falseeasting')
p.append('falsenorthing')
elif self._type == 17:
p.append('sphere')
p.append('centralmeridian')
p.append('truescale')
p.append('falseeasting')
p.append('falsenorthing')
elif self._type == 19:
p.append('sphere')
p.append('centralmeridian')
p.append('originlatitude')
p.append('falseeasting')
p.append('falsenorthing')
elif self._type == 20:
p.append('subtype')
p.append('smajor')
p.append('sminor')
p.append('factor')
p.append('originlatitude')
p.append('falseeasting')
p.append('falsenorthing')
if self.subtype == 0:
p.append('longitude1')
p.append('latitude1')
p.append('longitude2')
p.append('latitude2')
else:
p.append('azimuthalangle')
p.append('azimuthallongitude')
elif self._type == 22:
p.append('subtype')
p.append('smajor')
p.append('sminor')
p.append('falseeasting')
p.append('falsenorthing')
if self.subtype == 0:
p.append('orbitinclination')
p.append('orbitlongitude')
p.append('satelliterevolutionperiod')
p.append('landsatcompensationratio')
p.append('pathflag')
else:
p.append('satellite')
p.append('path')
elif self._type == 23:
p.append('smajor')
p.append('sminor')
p.append('falseeasting')
p.append('falsenorthing')
elif self._type in [24, 26]:
p.append('sphere')
elif self._type == 30:
p.append('sphere')
p.append('shapem')
p.append('shapen')
p.append('centerlongitude')
p.append('centerlatitude')
p.append('falseeasting')
p.append('falsenorthing')
return p
##########################################################################
# #
# Script out primary projection secondary method in VCS to a file. #
# #
##########################################################################
[docs] def script(self, script_filename=None, mode=None):
if (script_filename is None):
raise ValueError(
'Error - Must provide an output script file name.')
if (mode is None):
mode = 'a'
elif (mode not in ('w', 'a')):
raise ValueError(
'Error - Mode can only be "w" for replace or "a" for append.')
# By default, save file in python script mode
scr_type = script_filename[
len(script_filename) -
4:len(script_filename)]
if (script_filename is None):
raise ValueError(
'Error - Must provide an output script file name.')
if (mode is None):
mode = 'a'
elif (mode not in ('w', 'a')):
raise ValueError(
'Error - Mode can only be "w" for replace or "a" for append.')
# By default, save file in json
scr_type = script_filename.split(".")
if len(scr_type) == 1 or len(scr_type[-1]) > 5:
scr_type = "json"
if script_filename != "initial.attributes":
script_filename += ".json"
else:
scr_type = scr_type[-1]
if scr_type == '.scr':
raise vcs.VCSDeprecationWarning("scr script are no longer generated")
elif scr_type == "py":
mode = mode + '+'
py_type = script_filename[
len(script_filename) -
3:len(script_filename)]
if (py_type != '.py'):
script_filename = script_filename + '.py'
# Write to file
fp = open(script_filename, mode)
if (fp.tell() == 0): # Must be a new file, so include below
fp.write("#####################################\n")
fp.write("# #\n")
fp.write("# Import and Initialize VCS #\n")
fp.write("# #\n")
fp.write("#############################\n")
fp.write("import vcs\n")
fp.write("v=vcs.init()\n\n")
unique_name = '__Proj__' + self.name
fp.write(
"#----------Projection (Proj) member (attribute) listings ----------\n")
fp.write("proj_list=v.listelements('projection')\n")
fp.write("if ('%s' in proj_list):\n" % self.name)
fp.write(
" %s = v.getprojection('%s')\n" %
(unique_name, self.name))
fp.write("else:\n")
fp.write(
" %s = v.createprojection('%s')\n" %
(unique_name, self.name))
# Common core secondary method attributes
fp.write("%s.type = '%s'\n" % (unique_name, self.type))
fp.write("%s.parameters = '%s'\n" % (unique_name, self.parameters))
else:
# Json type
mode += "+"
f = open(script_filename, mode)
vcs.utils.dumpToJson(self, f)
f.close()
script.__doc__ = scriptdocs['projection']
__slots__ = [
's_name',
'_smajor',
'_sminor',
'_centralmeridian',
'_truescale',
'_falseeasting',
'_falsenorthing',
'_factor',
'_originlatitude',
'_azimuthalangle',
'_azimuthlongitude',
'_longitude1',
'_longitude2',
'_latitude1',
'_latitude2',
'_subtype',
'_orbitinclination',
'_orbitlongitude',
'_satelliterevolutionperiod',
'_landsatcompensationratio',
'_pathflag',
'_path',
'_satellite',
'_sphere',
'_centerlongitude',
'_centerlatitude',
'_standardparallel1',
'_standardparallel2',
'_standardparallel',
'_height',
'_angle',
'_shapem',
'_shapen',
'_name',
'_type',
'_parameters',
]
def checkPP(self, name, value):
value = VCS_validation_functions.setProjParameter(self, name, value)
setattr(self, '_' + name, value)
def _getsmajor(self):
return self._smajor
def _setsmajor(self, value):
self.checkPP('smajor', value)
smajor = property(_getsmajor, _setsmajor)
def _getsminor(self):
return self._sminor
def _setsminor(self, value):
self.checkPP('sminor', value)
sminor = property(_getsminor, _setsminor)
def _getcentralmeridian(self):
return self._centralmeridian
def _setcentralmeridian(self, value):
self.checkPP('centralmeridian', value)
centralmeridian = property(_getcentralmeridian, _setcentralmeridian)
def _gettruescale(self):
return self._truescale
def _settruescale(self, value):
self.checkPP('truescale', value)
truescale = property(_gettruescale, _settruescale)
def _getfalseeasting(self):
return self._falseeasting
def _setfalseeasting(self, value):
self.checkPP('falseeasting', value)
falseeasting = property(_getfalseeasting, _setfalseeasting)
def _getfalsenorthing(self):
return self._falsenorthing
def _setfalsenorthing(self, value):
self.checkPP('falsenorthing', value)
falsenorthing = property(_getfalsenorthing, _setfalsenorthing)
def _getfactor(self):
return self._factor
def _setfactor(self, value):
self.checkPP('factor', value)
factor = property(_getfactor, _setfactor)
def _getoriginlatitude(self):
return self._originlatitude
def _setoriginlatitude(self, value):
self.checkPP('originlatitude', value)
originlatitude = property(_getoriginlatitude, _setoriginlatitude)
def _getazimuthalangle(self):
return self._azimuthalangle
def _setazimuthalangle(self, value):
self.checkPP('azimuthalangle', value)
azimuthalangle = property(_getazimuthalangle, _setazimuthalangle)
def _getazimuthallongitude(self):
return self._azimuthallongitude
def _setazimuthallongitude(self, value):
self.checkPP('azimuthallongitude', value)
azimuthallongitude = property(
_getazimuthallongitude,
_setazimuthallongitude)
def _getlongitude1(self):
return self._longitude1
def _setlongitude1(self, value):
self.checkPP('longitude1', value)
longitude1 = property(_getlongitude1, _setlongitude1)
def _getlongitude2(self):
return self._longitude2
def _setlongitude2(self, value):
self.checkPP('longitude2', value)
longitude2 = property(_getlongitude2, _setlongitude2)
def _getlatitude1(self):
return self._latitude1
def _setlatitude1(self, value):
self.checkPP('latitude1', value)
latitude1 = property(_getlatitude1, _setlatitude1)
def _getlatitude2(self):
return self._latitude2
def _setlatitude2(self, value):
self.checkPP('latitude2', value)
latitude2 = property(_getlatitude2, _setlatitude2)
def _getsubtype(self):
return self._subtype
def _setsubtype(self, value):
self.checkPP('subtype', value)
subtype = property(_getsubtype, _setsubtype)
def _getorbitinclination(self):
return self._orbitinclination
def _setorbitinclination(self, value):
self.checkPP('orbitinclination', value)
orbitinclination = property(_getorbitinclination, _setorbitinclination)
def _getorbitlongitude(self):
return self._orbitlongitude
def _setorbitlongitude(self, value):
self.checkPP('orbitlongitude', value)
orbitlongitude = property(_getorbitlongitude, _setorbitlongitude)
def _getsatelliterevolutionperiod(self):
return self._satelliterevolutionperiod
def _setsatelliterevolutionperiod(self, value):
self.checkPP('satelliterevolutionperiod', value)
satelliterevolutionperiod = property(
_getsatelliterevolutionperiod,
_setsatelliterevolutionperiod)
def _getlandsatcompensationratio(self):
return self._landsatcompensationratio
def _setlandsatcompensationratio(self, value):
self.checkPP('landsatcompensationratio', value)
landsatcompensationratio = property(
_getlandsatcompensationratio,
_setlandsatcompensationratio)
def _getpathflag(self):
return self._pathflag
def _setpathflag(self, value):
self.checkPP('pathflag', value)
pathflag = property(_getpathflag, _setpathflag)
def _getpath(self):
return self._path
def _setpath(self, value):
self.checkPP('path', value)
path = property(_getpath, _setpath)
def _getsatellite(self):
return self._satellite
def _setsatellite(self, value):
self.checkPP('satellite', value)
satellite = property(_getsatellite, _setsatellite)
def _getsphere(self):
return self._sphere
def _setsphere(self, value):
self.checkPP('sphere', value)
sphere = property(_getsphere, _setsphere)
def _getcenterlongitude(self):
return self._centerlongitude
def _setcenterlongitude(self, value):
self.checkPP('centerlongitude', value)
centerlongitude = property(_getcenterlongitude, _setcenterlongitude)
def _getcenterlatitude(self):
return self._centerlatitude
def _setcenterlatitude(self, value):
self.checkPP('centerlatitude', value)
centerlatitude = property(_getcenterlatitude, _setcenterlatitude)
def _getstandardparallel1(self):
return self._standardparallel1
def _setstandardparallel1(self, value):
self.checkPP('standardparallel1', value)
standardparallel1 = property(_getstandardparallel1, _setstandardparallel1)
def _getstandardparallel2(self):
return self._standardparallel2
def _setstandardparallel2(self, value):
self.checkPP('standardparallel2', value)
standardparallel2 = property(_getstandardparallel2, _setstandardparallel2)
def _getstandardparallel(self):
return self._standardparallel
def _setstandardparallel(self, value):
self.checkPP('standardparallel', value)
standardparallel = property(_getstandardparallel, _setstandardparallel)
def _getheight(self):
return self._height
def _setheight(self, value):
self.checkPP('height', value)
height = property(_getheight, _setheight)
def _getangle(self):
return self._angle
def _setangle(self, value):
self.checkPP('angle', value)
angle = property(_getangle, _setangle)
def _getshapem(self):
return self._shapem
def _setshapem(self, value):
self.checkPP('shapem', value)
shapem = property(_getshapem, _setshapem)
def _getshapen(self):
return self._shapen
def _setshapen(self, value):
self.checkPP('shapen', value)
shapen = property(_getshapen, _setshapen)
def _getname(self):
return self._name
def _setname(self, value):
value = VCS_validation_functions.checkname(self, 'name', value)
if value is not None:
self._name = value
name = property(_getname, _setname)
def _settype(self, value):
value = VCS_validation_functions.checkProjType(self, 'type', value)
self._type = value
def _gettype(self):
return VCS_validation_functions.getProjType(self)
type = property(_gettype, _settype)
def _getparameters(self):
return self._parameters
def _setparameters(self, value):
value = VCS_validation_functions.checkProjParameters(
self,
'parameters',
value)
self._parameters = value
parameters = property(_getparameters, _setparameters)